Skip to content

Guide Neuroscript

Neuroscript est le DSL Rust orienté ligne pour les transformations MIDI. Chaque ligne est évaluée dans l'ordre et l'événement courant est passé tel quel sauf si vous le supprimez explicitement.

Bases

  • Une instruction par ligne.
  • Exécution du haut vers le bas.
  • Si rien ne supprime l'événement, il est émis tel quel.

Exemple :

keep note
when vel > 100: event(vel=100)

Sélecteurs (Filtres)

Les sélecteurs décrivent quels types d'événements un keep ou un drop cible. Vous pouvez les combiner avec des virgules.

keep note, cc
drop clock, realtime

Sélecteurs pris en charge :

  • Types d’événements : note, cc, pc, bend, aftertouch, clock, start, stop, continue, realtime, all

Conditions (where / when)

Utilisez where pour ajouter une condition à un keep ou un drop :

keep note where vel >= 80
drop cc where cc in [1, 7, 10]

Utilisez when pour appliquer une action conditionnelle :

when note in C3..C4: event(note=note + 12)

Opérateurs :

  • Comparateurs : ==, !=, <, <=, >, >=
  • Booléens : and, or, not
  • Listes : in [a, b, c]

Champs :

  • type, ch, note, vel, cc, value, prog, bend

Transformer des événements

Utilisez event(...) pour modifier l'événement courant :

event(note=clamp(note + 12, 0, 127))
event(vel=clamp(vel + 10, 1, 127))
event(ch=2)

Émettre des événements supplémentaires

Utilisez emit.* pour créer de nouveaux événements :

emit.cc(74, value)
emit.noteOn(note, vel)
emit.noteOff(note)

Supprimer des événements

Utilisez un drop seul pour supprimer l'événement courant :

drop

Exemples

Batteries lo-fi

keep note where ch == 10
event(vel=clamp(vel, 35, 95))
when vel > 95: event(vel=85)

Pads ambiant

keep note where ch == 2
event(note=clamp(note + 12, 0, 127))
event(vel=clamp(vel, 40, 100))

Glue utilitaire

drop clock, start, stop, continue, realtime
when type == cc and cc == 1: emit.cc(74, value)

CLI

Vous pouvez analyser des scripts via la CLI Rust :

cargo run -p neuroscript-cli -- parse Sources/NeurodeMIDITransforms/Resources/Scripts/Neuroscript/Examples/01_drop_system_spam.ns
cargo run -p neuroscript-cli -- tokens Sources/NeurodeMIDITransforms/Resources/Scripts/Neuroscript/Examples/01_drop_system_spam.ns

Simulateur

Utilisez le Simulateur Neuroscript pour tester un événement unique avec le moteur WASM Rust.

Créé avec ❤️ pour les musiciens