Nummers maken met AI
Drie manieren van werken
Vraag voor vraag begeleid worden, de gaten laten invullen, of alles in één keer opgeven.
build_song heeft een mode. Die bestaat omdat "maak een nummer voor me" en "hier is precies het akkoordenschema dat ik wil" verschillende verzoeken zijn, en een server die er maar één aankan bij het andere in de weg zit.
guided: één vraag tegelijk
Voor als je NØISE nog niet kent. De server vraagt in muzikale volgorde: hoe heet het, welke toonsoort, hoe snel, welke stijl (één voor het hele nummer), in welke groove het begint, welke kit, welke stemming, hoe is het opgebouwd. En elke optie zegt wat ze doet, niet alleen hoe ze heet:
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 patternOmdat de server geen sessie bijhoudt, komt bij elk antwoord het concept tot dan toe mee terug. Je model stuurt dat concept plus het nieuwe antwoord, en krijgt de volgende vraag. Er wordt nergens iets opgeslagen.
Dat heeft een handig gevolg: het concept is altijd een geldig vertrekpunt. Halverwege kun je de rest zelf invullen en overstappen op direct; de begeleide route is geen fuik.
assisted: de standaard
Bouwt wat je gegeven hebt, en vraagt alleen naar wat ontbreekt én echt verandert wat je hoort: de toonsoort en de stijl. Wat je verder weglaat blijft leeg, en de app speelt het met de vaste standaardwaarden van het formaat — de eerste kit en feel van de stijl, de preset STOCK, de eigen fills van de opbouw. Een waarde die de server niet kon gebruiken komt terug als waarschuwing, met wat hij in plaats daarvan gebruikte.
direct: geen vragen
Bouwt het nummer of geeft precieze foutmeldingen terug. Voor batchwerk, en voor als je precies weet wat je wilt.
{ "mode": "direct", "song": { "name": "…", "key": "Am", "sections": [ … ] } }Als een client niet kan vragen
De server gebruikt geen elicitation van MCP, ook niet bij clients die dat ondersteunen. Een vraag komt altijd terug als gestructureerde data, en je model stelt die zelf aan jou:
{
"done": false,
"step": 2,
"total": 8,
"question": { "field": "key", "prompt": "Which key is it in? …" },
"draft": { "name": "What's Up" }
}Zo werkt het gesprek in elke client. De server blokkeert nooit in afwachting van iets wat hij niet kan krijgen.