Crea brani con l'IA
Ricette
Fare una cover, costruire su un brano che esiste già, e chiedere forme che puoi davvero suonare.
Fare una cover
Il prompt make_song lo fa in un passo solo: la maggior parte dei client lo mostra come comando con la barra. A mano:
song_formatecapabilities, così il modello conosce la forma e i limiti.- Trova la tonalità, il tempo e le sezioni: da quello che il modello sa del disco o da uno schema di accordi, mai dai testi. Lo dice anche il prompt: una pagina di testi non dice niente che uno schema di accordi non dica, e un brano NØISE non ne porta.
check_chordssugli accordi, contro la tonalità.chord_shapesper le forme.build_song.
Chiedi al modello di dire quanto è sicuro. Il prompt glielo dice, perché un'ipotesi dichiarata è utile e un accordo sbagliato detto con sicurezza no.
Cambiare una cosa sola di un brano esistente
Manda il brano come base e solo la modifica come changes. Così il modello non deve mai ripetere tutto lo schema, che è il punto dove le cose si perdono in silenzio.
{
"base": "noise://song?d=…",
"mode": "direct",
"changes": [
{ "op": "setSection", "index": 1, "patch": { "fillIn": "crash", "preset": "TIGHT", "energy": "lift" } }
]
}Le operazioni sono setSong, setSection, addSection, removeSection, setBar e transpose. Una patch di setSection può impostare un campo solo di una corsia e lasciare il resto; setSong prende lo stile, il kit e le corsie del brano. Tutto quello che punta a una sezione o a una battuta che non esiste viene rifiutato per nome, non indovinato.
Dai forma al brano
La band suona già un buon arrangiamento da sola; le corsie servono per quello che rende questo brano riconoscibile. Leggi il brano come farebbe un batterista e tocca il meno possibile:
"style": "rock", "kit": "rock.clean", "preset": "LAID BACK",
"sections": [
{ "name": "INTRO", "energy": "hold", "bars": ["G", "B", "C", "Cm"] },
{ "name": "VERSE", "repeats": 2, "bars": ["G", "B", "C", "Cm"] },
{ "name": "CHORUS", "energy": "lift", "fillIn": "crash", "preset": "DRIVING", "colorLayer": true, "bars": ["G", "B", "C", "Cm"] },
{ "name": "VERSE", "fillIn": "splash", "fillOut": "fill", "bars": ["G", "B", "C", "Cm"] },
{ "name": "CHORUS", "energy": "lift", "fillIn": "crash", "preset": "DRIVING", "colorLayer": true, "bars": ["G", "B", "C", "Cm"] },
{ "name": "BRIDGE", "energy": "groove", "preset": "TIGHT", "fillOut": "none", "bars": ["G", "B", "C", "Cm"] },
{ "name": "OUTRO", "energy": "hold", "drumsOff": true, "bars": ["G", "B", "C", "Cm"] }
]Sette sezioni, le corsie toccate in quattro punti: i ritornelli arrivano su un crash e suonano DRIVING, la seconda strofa atterra piano e rientra con un fill, il bridge si stringe e va dritto nell'ultimo ritornello, l'outro è la chitarra sola. Tutto il resto segue. La guida song_format ha le regole dietro a questo — prima l'energia, lascia che la strofa segua, segna gli arrivi, il fill è la via d'uscita, un preset per tipo di sezione, i cambi di feel sono rari, la batteria spenta è un silenzio vero.
Il brano ricostruito tiene un sourceId che punta all'originale, così la discendenza sopravvive.
Trasportare
{ "base": "…", "changes": [{ "op": "transpose", "semitones": -2 }] }La tonalità si sposta, gli accordi assoluti si spostano con lei e vengono riscritti come vuole la nuova tonalità. I gradi relativi alla tonalità non hanno bisogno di cambiare: seguono la tonalità da soli.
Le forme si spostano su o giù per il manico con il loro accordo, tranne dove è impossibile: una forma con una corda a vuoto non può spostarsi (non c'è nessun tasto sotto il capotasto) e nemmeno una che uscirebbe dalla fine del manico. Quelle tornano alla forma di NØISE, e la risposta dice quali.
Chiedere forme che puoi davvero suonare
{ "song": { … }, "fillGrips": true, "gripCategory": "open" }Ogni accordo senza forma ne riceve una. Dove la categoria non ha niente per un accordo (Bm non ha una forma open: è un barré), torna a quella predefinita di NØISE e te lo dice:
no open grip exists for Bm (easy), so the app's own default was usedCostruire su un brano della libreria della community
Passa l'id pubblico di un brano come base:
{ "base": "d_OxIkOTen", "changes": [{ "op": "setSong", "patch": { "bpm": 96 } }] }Solo i brani pubblicati si possono leggere così.
Scrivilo come un musicista
Dalla 0.71 tre notazioni del testo dello schema funzionano dentro le battute di build_song, e la band le suona tutte e tre:
- Una linea di basso discendente:
["C", "C/B", "Am", "Am/G"], oppure, per restare trasportabile,{"degree": 1},{"degree": 1, "bass": "7"},{"degree": 6},{"degree": 6, "bass": "5"}. Il basso è un grado della tonalità; va bene anche un nome di nota ("bass": "E"). - Un ritornello che entra in anticipo:
"^G"sul suo primo accordo; la band lo attacca un ottavo prima della battuta e lo tiene."^^G"è un sedicesimo prima. - Un cambio sul quarto movimento:
["C(3)", "G(1)"]in una battuta.
Un brano suonato con il capotasto prende "capo": 2 sul brano e i suoi accordi come li suonano le mani: Wonderwall sono forme di Em con capotasto al 2, e la band di NØISE lo fa suonare in fa♯ minore.