Hier mein Protokoll und Analyse:
Aufgrund des gestrigen Artikels
https://www.mikrocontroller.net/news/claude-code-trifft-avr-assembler-vom-chip-in-den-browser-mit-einem-prompt
hatte ich mich inspirieren lassen, selbst einmal ein altes Projekt aufarbeiten zu lassen, wo ich aus Zeitgründen und mangels Druck nicht weitergearbeitet hatte. Ich habe dabei auch gezielt die kostenlose Version von CGPT befragt, weil Vielen nur die zur Verfügung steht.
Ich habe nun die Anforderung was ich machen will dem Tschätschi übergeben und er/sie/es hat mir sofort vorgeschlagen das mit VBA zu machen und auch erklärt, wie es bei Win7 und Win10 gehen müsste.
Es wurden dann Testprogramme gemacht, die auch immer ein bischen funktionierten, am Ende kam dann ein Knack, ein Ton und schließlich der Sound. Auch die Soundkarten im PC werden richtig erkannt.
CGPT bietet auch direkt an zu erklären, wie man das per Knopf aus Excel heraus anklicken kann, falls das einer nicht weiß. Anders als die Windowshilfe selber, weiß CGPT auch, wo und wie man die Entwickler-tools dafür auf den Desktop bekommt :-)
Kurz und knapp, nach etwa 1h und rumprobieren hatte ich ein VBA, das in Win7 lief. Es sieht etwas anders aus, als meines, macht gewissen Dinge abstrakter per Initialisierung und Variablen, das es gut anpassbar ist.
Ich konnte es z.B: selber auf 96kHz bringen, nachdem CGPT es selber nicht geschafft hat. Auch musste ich erklären, wie die Soundkarten anzusprechen sind, weil da nicht alle alle Formate können. CGPT will das durch probieren und stückweises Herantasten ausprobieren. Ich habe das dann für alle vorgegeben und es lief.
Zwischenzeitlich wollte CGPT Testtöne generieren und bat mich die Audiodaten im Excel vorzubreiten. Allerdings implementierte er einen Sinuston über die volle Periode. Was ist dabei der Fehler?
Ich ließ es ihn selber rausfinden indem ich darauf beharrte, das nichts kommt. Erst am Ende des Versuchs kam er drauf, dass die Frequenz zu gering ist und man gar nichts hören kann (und auch nichts sehen !) weil die Audiokarte keine 1Hz überträgt. Das hatte er dann gelernt und baute ab dann nur noch files, die einen hörbaren Testton generieren.
Was nicht ging, war Win10! Da habe ich geholfen und darauf hingewiesen, daß Win10 ein neues Treibersystem und Behandlung mittels WASAPI verwendet und die Win7-Schnittstelle ausläuft.
Und blubbs: Sofort hatte er binnen Sekunden das auch kapiert und bestätigte es.
Daraufhin kam dann ein neuer Code, der aber erst mal wieder nicht lief, weil er es mit dem Buffer kopieren nicht hinbekam. Dann hat er irgendwas geändert, was ich nicht mehr genau protokolliert habe und danach kam wieder ein Ton.
Machen wir es kurz, nach insgesamt 10 Lern- und Diskussionsschleifen hat er/sie/es dann mit meiner Hilfe hinbekommen, dann in der Tat einen Loop des Samples zu erzeugen und abzuspielen.
Erfolg!
Auffällig ist, dass er zwischen zwei Testsessions gerne auch mal mit "ich möchte auch hier noch etwas ändern" hochkommt und nicht am aktuellen Problem arbeitet, sondern den Code von vorher ohne Not! noch weiter verändert. Es schaut aus, als würde er weiter "nachdenken", während ich teste. Das dauert nämlich, weil ich den Code händisch ins VBA kopieren muss und dann erst das Excel starten kann. Zudem braucht das Übertragen des Buffers Zeit.
Bisweilen macht er durch das intuitive Ändern auch die Funktion wieder kaputt, weil er etwas Falsches ausprobiert, kam aber am Ende mit einer Idee rüber, wie man den Buffer besser kopieren kann. Das führte dann auch dazu, daß die jetzige Funktion die ich durch den CGBT habe, schneller reagiert, als meine. Das muss man zugeben. Allerdings war es vorher kein Problem, weil die Mimik eine andere war und ich kürzere Samples hatte, wo das nicht auffiel.
Wo er wieder Hilfe brauchte, war das Thema statische oder dynamische Samplelänge. Das versteht er funktionell nicht.
Fazit: CGPT durchsucht in Windesweile allemöglichen Quellen und sortiert auch oft was Passendes heraus. Das könnte man mit Google selber nie so schnell! Laut der Einblendungen schaut er oft bei Microsoft vorbei und hat dort offenbar auch das mit der Buffergeschichte gefunden. durch das stückweise Vorkämpfen und Ausprobieren nähert er sich unweigerlich dem Ziel, wenn auch mit einigen Extraschleifen.
Lustig ist, dass er mich immer wieder bestätigt, daß es "eine gute Idee ist", etwas so oder so zumachen, wenn ich ihm sage, was er von den Vorschlägen nehmen soll und was nicht und auch warum nicht. Z.B. musste ich ihm die Sammpleanpassung verbieten, weil sich dann falsche Tonhöhen ergäben. Auch das Resamplen was die Meisten in solchen Fällen tun, wäre nachteilig bis falsch. Er kapiert das System der Granularsynthese nicht. Meine Begründung hat er aber als gut und richtig eingestuft. Auch ein fadeout, das ich angefragt habe, hat er hinbekommen und am Ende ebenfalls als "sinnvoll" deklariert.
Man hat das Gefühl, dass da einer mitdenkt und lernt! Er versteht es aber nur in einer abstrakten Weise - nicht funktionell. Er sieht auch nicht die impliziten Zusammenhänge, wenn man sie ihm nicht als Randbedingung mitgibt.
Das ist auch irgendwo logisch: Was nicht eingegrenzt ist, kann er nicht sicher auswählen. Es kommt daher umsomehr drauf an, ihm alles mitzugeben, während ein echter Kollege mit viel weniger auskommen, da er sich seine eigenen Gedanken macht und fehlende Vorgaben vervollständigt.
Der Chatter versteht das Problem nicht umfänglich und fragt Vieles zurück. Wenigstens wird man dadurch darauf aufmerksam, dass die Beschreibung nicht vollständig genug war.
Wo er Probleme hat, ist die Datenhaltung der bisherigen Anforderungen: Meistens holt er sich Sachen hoch, die zuvor diskutiert wurden, schmeißt aber auch mal Aspekte rein, die eigentlich schon verworfen wurden. Da muss man aufpassen und seine Zusammenfassung lesen, die er als Requirements ausgibt, bevor er loslegt. Sonst dreht man sich gfs im Kreis oder es dauert länger. In zwei Fällen hat er auch falsche oder schlechte kleine Änderungen vorgeschlagen, die ich einbauen sollte. Diese haben aber nicht immer funktioniert. Auch da hat er nach meiner Beschwerde sofort wieder "gewusst", warum das nicht geht, so als habe er inzwischen nachgedacht. In einem Fall hat er mit (und sich!) erklärt, dass die Änderung auf einer vorherigen Version beruht und das ein Fehler war.
Entweder wird er erst durch die Beschwerde getriggert, weiter zu suchen und zuprüfen, oder er ist in einer Art Suchmodus und klappert Alternativen ab - gfs. um selber zu lernen. Das könnte technische Strategie sein, oder auch Teil des Freeware-Konzeptes: Es wäre mal interessant, das zu untersuchen, ob das die Bezahlversion auch so macht. Es könnte ja sein, dass die kostenlose Version auch dazu da ist, anhand von try and error selber zu lernen und die Lösung nach hinten weiterzugeben.
Insgesamt ist das ein echtes Hilfsmittel. Es nimmt einem Sucharbeit und Tipparbeit ab und vermeidet Tippfehler. Man bekommt auf Wunsch Änderungen oder gleich einen neuen Code. Dort wo er sich verrant hat und die Änderungen in die Sackgasse führen, muss man um einen neuen Code bitten. Der sieht dann auch etwas anders aus und hat nicht nur die Änderungen richtig drin, sondern auch wieder andere Vereinfachungen.
Die Frage ist, wie man dann damit umgehen muss, wenn man eigene Änderungen hat, die man nicht überschrieben bekommen möchte, oder Kommentare bzw eigene IP schützen will. Da bietet sich ein modulares Arbeiten an, wo man die CGBT-Komponenten möglichs klein und isoliert hält und Eigenes als blackbox reinwirft.
Klar ist, je genauer man beschreibt, was man will und was nicht, desto schneller geht es ins Ziel. Die gesamte Geschichte hat insgesamt rund 2h gedauert und lieferte ein gutes Ergebnis, auf dem ich weiter aufbauen kann. Weil ich gut VBA kann, bin ich in der Lage, das nun funktionell anzupassen und auszubauen, nachdem es technisch gut gelöst ist.
Schlussbemerkung: Wie eingangs schon gesagt: Gelernt haben jetzt beide Seiten!