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, realtimeSé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 :
dropExemples
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.nsSimulateur
Utilisez le Simulateur Neuroscript pour tester un événement unique avec le moteur WASM Rust.
