NØISEFR

Faire des morceaux avec une IA

Les outils

Chaque outil qu'offre le serveur de morceaux NØISE, ce qu'il prend et ce qu'il rend.

Sept outils. song_format d'abord, puis ce que le travail demande.

song_format

Sans argument. Rend tout le format d'un coup : la forme que build_song prend, comment s'écrivent les mesures et les accords, chaque style avec ses grooves, ses kits et son genre de batterie, ce qu'une section peut dire au groupe (la rangée DRUMS avec ses mots de cymbale et de fill et les sept presets, la rangée JAM), comment se servir du groupe comme le ferait un batteur, chaque énergie, couleur et accordage, la notation des doigtés, et les limites.

Aussi disponible comme ressource noise://format/guide, pour qu'un client qui gère les ressources le garde en contexte sans appel d'outil. La moitié lisible par une machine est noise://format/vocabulary.

capabilities

Sans argument. Ce que NØISE peut et ne peut pas faire, et quels champs changent vraiment quelque chose quand un morceau se charge.

check_chords

{ "chords": ["Am", "F", "E7", "Bm7b5"], "key": "Am" }

Par accord : si NØISE sait le lire et où ça casse sinon, la graphie canonique, s'il est diatonic, borrowed ou outside par rapport à la tonalité, et s'il existe un doigté.

Am -> Am (diatonic), grip xxx555
F -> F (diatonic), grip xx3211
E7 -> E7 (borrowed), grip 020100
Bm7b5 -> Bm7b5 (diatonic), no guitar grip

Cette dernière ligne mérite une lecture attentive : l'accord est parfaitement permis, il tient dans la tonalité, et il jouera. Seulement, NØISE n'a aucun doigté de bibliothèque pour un m7b5, donc le manche ne montre rien, sauf si tu indiques un doigté toi-même.

chord_shapes

{ "chords": ["F"], "category": "easy", "limit": 1 }

De vrais doigtés de la bibliothèque de NØISE, dessinés :

F - EASY - xx3211 - F easy (xx3211)
       1  2  3  4
 e  ·  1  ·  ·  ·
 B  ·  1  ·  ·  ·
 G  ·  ·  2  ·  ·
 D  ·  ·  ·  3  ·
 A  x  ·  ·  ·  ·
 E  x  ·  ·  ·  ·

Chacun vient avec un tag que tu peux mettre tel quel dans build_song. Les catégories sont easy, open, barre, power et triads ; passe un tuning et les doigtés sont dérivés pour lui (un accordage ouvert n'en a aucun, et la réponse le dit au lieu de ne rien rendre).

Utilise ça au lieu d'inventer des numéros de case. Un modèle qui devine les cases est le moyen le plus simple de produire un morceau qui a l'air juste et qui est injouable.

build_song

Le principal. Prend un morceau, ou un brouillon partiel plus un mode, ou un morceau existant sur lequel construire :

{
  "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"] }
    ]
  }
}

Rend le lien du fichier .noisesong, la page du morceau, un résumé, le document et les avertissements éventuels ; un lien noise:// seulement avec link: true. fillGrips: true met un doigté de bibliothèque sur chaque accord qui n'en a pas ; ajoute gripCategory pour dire lequel.

Tout ce que le serveur n'a pas pu utiliser revient comme avertissement, avec ce qu'il a utilisé à la place : un groove inconnu, un bpm hors de 20-300, un kit qui n'appartient pas au style, un nom de preset qu'il ne connaît pas, un mot de cymbale que l'app ne joue pas encore. Il ne modifie jamais ton morceau en silence. Une section qui nomme son propre band, jamKit ou genre de drums est refusée, avec le nouvel endroit nommé : un morceau est un seul groupe avec un seul kit, et une section dit comment ce groupe joue (feel, fillIn, fillOut, preset, les boutons, drumsOff).

validate_song

Les mêmes vérifications, sans question et sans lien. Pour itérer jusqu'à ce que le morceau soit bon, sans rien laisser derrière.

load_song

{ "source": "noise://song?d=…" }

Lit un morceau existant, un document .noisesong, un lien noise:// ou un id de la bibliothèque du site, dans la forme que build_song prend. La grille survit à l'aller-retour sans changer : tu peux donc modifier une chose et reconstruire. Voir Recettes.