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