Nummers maken met AI
De tools
Elke tool die de MCP-server van NØISE aanbiedt, wat hij verwacht en wat hij teruggeeft.
Zeven tools. Eerst song_format, daarna wat de klus vraagt.
song_format
Geen argumenten. Geeft het hele formaat in één keer terug: de vorm die build_song verwacht, hoe maten en akkoorden geschreven worden, elke stijl met zijn grooves, kits en drumgenre, wat een sectie tegen de band kan zeggen (het DRUMS-blok met zijn bekken- en fillwoorden en de zeven presets, het JAM-blok), hoe je de band gebruikt zoals een drummer dat zou doen, elke energie, kleur en stemming, de notatie van grepen, en de limieten.
Ook beschikbaar als resource noise://format/guide, zodat een client die resources ondersteunt het in context kan houden zonder toolaanroep. De machineleesbare helft is noise://format/vocabulary.
capabilities
Geen argumenten. Wat NØISE wel en niet kan, en welke velden echt iets veranderen als een nummer laadt.
check_chords
{ "chords": ["Am", "F", "E7", "Bm7b5"], "key": "Am" }Per akkoord: of NØISE het kan lezen en zo niet, waar het stukloopt; de canonieke spelling; of het diatonic, borrowed of outside de toonsoort is; en of er een greep voor bestaat.
Am -> Am (diatonic), grip xxx555
F -> F (diatonic), grip xx3211
E7 -> E7 (borrowed), grip 020100
Bm7b5 -> Bm7b5 (diatonic), no guitar gripLees die laatste regel goed: het akkoord is volkomen geldig, het past in de toonsoort en de band speelt het. NØISE heeft alleen geen greep in de bibliotheek voor een m7b5, dus de hals laat niets zien tenzij je zelf een greep opgeeft.
chord_shapes
{ "chords": ["F"], "category": "easy", "limit": 1 }Echte grepen uit de grepenbibliotheek van NØISE, getekend:
F - EASY - xx3211 - F easy (xx3211)
1 2 3 4
e · 1 · · ·
B · 1 · · ·
G · · 2 · ·
D · · · 3 ·
A x · · · ·
E x · · · ·Elke greep komt met een tag die je rechtstreeks in build_song kunt zetten. De categorieën zijn easy, open, barre, power en triads; geef een tuning mee en de grepen worden daarvoor afgeleid (een open stemming heeft er geen, en het antwoord zegt dat in plaats van leeg terug te komen).
Gebruik dit in plaats van fretnummers te verzinnen. Een model dat frets gokt is de kortste weg naar een nummer dat er goed uitziet en niet te spelen is.
build_song
De belangrijkste. Verwacht een nummer, of een gedeeltelijk concept plus een mode, of een bestaand nummer om op voort te bouwen:
{
"mode": "direct",
"song": {
"name": "What's Up",
"author": "4 Non Blondes",
"key": "A",
"bpm": 132,
"style": "rock",
"sections": [
{ "name": "VERSE", "repeats": 2, "bars": ["A", "Bm", "D", "A"] },
{ "name": "CHORUS", "energy": "lift", "fillIn": "crash", "fillOut": "fill", "preset": "DRIVING", "bars": ["A", "Bm", "D", "A"] }
]
}
}Geeft de link naar het .noisesong-bestand terug, de pagina van het nummer, een samenvatting, het document en eventuele waarschuwingen; een noise://-link alleen met link: true. fillGrips: true zet op elk akkoord zonder greep een greep uit de bibliotheek; met gripCategory zeg je welke soort.
Alles wat de server niet kon gebruiken komt terug als waarschuwing, met wat hij in plaats daarvan gebruikt heeft: een onbekende groove, een bpm buiten 20-300, een kit die niet bij de stijl hoort, een presetnaam die hij niet kent, een bekkenwoord dat de app nog niet speelt. Hij verandert je nummer nooit stilletjes. Een sectie die zijn eigen band, jamKit of drumgenre drums opgeeft wordt geweigerd, met de nieuwe plaats erbij genoemd: een nummer is één band met één kit, en een sectie zegt hoe die band speelt (feel, fillIn, fillOut, preset, de knoppen, drumsOff).
validate_song
Dezelfde controles, geen vragen en geen link. Om te schaven tot het nummer klopt, zonder iets achter te laten.
load_song
{ "source": "noise://song?d=…" }Leest een bestaand nummer (een .noisesong-document, een noise://-link of het id van een nummer op de website) in dezelfde vorm die build_song verwacht. Het akkoordenschema blijft heen en terug ongewijzigd, dus je kunt één ding veranderen en het opnieuw bouwen. Zie Recepten.