jtackaberry / reaticulate

An articulation management system for REAPER
Other
101 stars 46 forks source link

(very future) new type of rule: condition #32

Closed Levitanus closed 6 years ago

Levitanus commented 6 years ago

there're many options of instruments, better to be called not articulations, but options or conditions: For example: con sordino, mute(stopped) or playing mode. And they are not only output rules, but they change the output rules for the same articulations. So, i would like to see some sort of synntax:

//! `g=group condition="condition" {o=type:arg}
Nr name
//! g=group o=type@channel:arg/condition"condition"type@channel:arg
Nr name

or

//! `g=group condition="condition" {o=type:arg}
//! o:2=type@channel:arg
1 name
//! g=group o=type@channel:arg
2 name

This syntax allow to use, for example, berlin brass library with switch "stopped", reroutes whole channel map to different channels or buses or switch between single short patches and TM patches of berlin and spitfire libraries or use CC, but not KS mapping of CSS, because of unrelible behaviour of the last.

jtackaberry commented 6 years ago

Based on the use-cases here, do we really need a separate concept of a condition? Isn't it enough that you want output events to be filtered based on the current program number selected in another group?

The syntax isn't too important (eventually the clicky-pointy bank builder GUI will abstract all that away from the user), but suppose we augmented the existing output event syntax by adding an optional %<program> at the end. If specified, the output event would only be emitted if the program number specified by <program> was currently active in some other group.

Then with your muted versus unmuted example in Berlin Brass, we might have something like this, where your normal multi is on channel 1, your straight mute multi from Exp B is on channel 2, and your harmon mute multi is on channel 3:

//! c=long i=note-whole g=2
120 unmuted
//! c=long-light i=stopped g=2
121 straight mute
//! c=long-light i=stopped g=2
122 harmon mute 

//! c=long i=note-whole o=note:24@1%120/note:24@2%121/note:24@3%122
1 long
//! c=short i=staccato o=note:27@1%120/note:27@2%121/note:27@3%122
40 staccato
//! c=short i=marcato-quarter o=note:28@1%120/note:28@2%121/note:28@3%122
52 marcato

Syntax is definitely getting a bit unwieldy. But again, eventually the UI will hide that ugliness.

Thoughts?

Levitanus commented 6 years ago

I thought whole the night, and, You're probably right)