Closed jtackaberry closed 6 years ago
By way of implementation, could hijack bit 7 of byte 1 of the output event slot to indicate whether the routing should modified. MIDI event parameters only need 7 bits, so bits 0-6 used for that, and bit 7 to modify the channel as described.
Bit of a kludge, but otherwise would need to switch to 2 slots per output event which is a much more disruptive change.
Used this syntax instead:
o=-note@13:42/note@10:20
Because for this feature you will always specify some output type, but yet may want to leave out the destination channel to use the default source channel. So it made sense to create a modifier for the output event type rather than the dst channel.
I'm sorry, but still can't get how to use it)
//----------------------------------------------------------------------------
//! g="Orchestra tools/Berlin Strings" n="Options"
Bank 16 1 USER OT/BST/Options
//! c=default i=con-sord g=4 o=-cc:16,127
31 OPT 1 ON
//! c=default i=con-sord g=4 o=-cc:16,1
36 OPT 6 OFF
//----------------------------------------------------------------------------
//! g="Orchestra tools/Berlin Strings" n="Core" f=!chase
Bank 16 2 USER OT/BST/Core
//! c=legato i=legato g=1 o=cc@1:84,1
1 ART1 Legato
//! c=legato i=legato-bowed g=1 o=cc@2:84,1
2 ART2 Fingered
//! c=legato i=legato-runs g=1 o=cc@3:84,1
3 ART3 Arpeg
//! c=textured i=tremolo g=1 o=cc@4:84,1
4 ART4 Trem
Sordino, for example, should work on the current channel, depends on chosen by articulations (legato, tremolo). So, I want to be able to go to the tremolo on ch4, then press sord on and sent via it cc16 to channel 4, but not to 1. Where am I wrong?
@Levitanus I think the problem is you've misunderstood the behavior of this change.
The feature added under this issue allows you to emit output events without modifying the current target channels, which applies to future events. It doesn't affect the channel of those output events, where all the same rules apply (if you don't specify @chnum
then it will use the "default channel" -- the one higihlighted in the UI).
I guess you're looking for a different idea of "default channel" -- not the one that's selected in the UI (or by one of the "Set default MIDI channel" actions), but rather you want the ability to send output events based on the target channels setup by previous articulations.
Will give some thought to this.
Thanks! Don't know how to appreciate to Your work!
A rather uncommon use case, but sometimes an articulation needs to emit output events on specific channels while not affecting routing setup by prior articulations (e.g. as modifiers to the previous one).
Proposed syntax: prefix channel numbers with - sign. e.g.
o=note@-13:42/note@10:20
would setup routing to channel 10 but not 13, even though note 42 would be sent on channel 13.