NØISEIT

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:

  1. song_format e capabilities, così il modello conosce la forma e i limiti.
  2. 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.
  3. check_chords sugli accordi, contro la tonalità.
  4. chord_shapes per le forme.
  5. 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 used

Costruire 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.