Songs mit KI machen
Drei Arten zu arbeiten
Frage für Frage geführt werden, die Lücken füllen lassen, oder alles auf einmal angeben.
build_song nimmt einen mode. Den gibt es, weil „mach mir einen Song“ und „hier ist genau das Schema, das ich will“ verschiedene Anfragen sind, und ein Server, der nur eine davon kann, für die andere lästig ist.
guided – eine Frage nach der anderen
Für den Fall, dass du NØISE noch nicht kennst. Der Server fragt in musikalischer Reihenfolge – wie heißt er, welche Tonart, wie schnell, welcher Stil (einer für den ganzen Song), welcher Groove, mit dem er beginnt, welches Kit, welche Stimmung, wie ist er aufgebaut – und jede Option sagt, was sie tut, nicht nur, wie sie heißt:
Which groove does the song start in? These are the ones rock offers; a section may pick another with its own `feel`.
- straight (recommended): Straight - the rock default
- halfTime: Half-time - changes the timing grid, not just the pattern
- driving16: Driving 16ths - changes the timing grid, not just the patternWeil der Server keine Session hält, kommt jede Antwort mit dem bisherigen Entwurf zurück. Dein Modell schickt diesen Entwurf plus die neue Antwort und bekommt die nächste Frage. Nirgends wird etwas gespeichert.
Das hat eine nützliche Folge: der Entwurf ist immer ein gültiger Ausgangspunkt. Auf halbem Weg kannst du den Rest selbst ausfüllen und auf direct wechseln; der geführte Ablauf ist kein Trichter, in dem du feststeckst.
assisted – der Standard
Baut, was du ihm gegeben hast, und fragt nur nach den Dingen, die wirklich ändern, was du hörst, und die fehlen: die Tonart und der Stil. Alles andere, was du weglässt, bleibt schlicht ungesetzt, und die App spielt es mit den festen Standards des Formats – dem ersten Kit und Feel des Stils, dem Preset STOCK, den eigenen Fills des Arrangements. Ein Wert, den der Server nicht verwenden konnte, kommt als Warnung zurück, mit dem, was er stattdessen genommen hat.
direct – keine Fragen
Baut den Song oder scheitert mit genauen Fehlern. Für Stapelarbeit, und für den Fall, dass du genau weißt, was du willst.
{ "mode": "direct", "song": { "name": "…", "key": "Am", "sections": [ … ] } }Wenn ein Client nicht fragen kann
Der Server benutzt keine MCP-Elicitation, auch nicht in Clients, die sie unterstützen. Eine Frage kommt immer als strukturierte Daten neben dem Text zurück, und dein Modell stellt sie dir selbst:
{
"done": false,
"step": 2,
"total": 8,
"question": { "field": "key", "prompt": "Which key is it in? …" },
"draft": { "name": "What's Up" }
}So funktioniert das Gespräch in jedem Client. Der Server blockiert nie, während er auf etwas wartet, das er nicht bekommen kann.