What's new

Does it annoy anyone else that there is no standard for keyswitching between libraries?

Yes. And as I said the articulation selection itself works flawlessly. But modwheel, expression and other CCs don’t send properly—only the instrument assigned to channel 1 receives them, and I can only get instruments on other channels to work by manually assigning modwheel and expression to the proper channel.
Ah, cool. But sure, the mod wheel data etc should still get sent to the correct midi channel depending on the active articulation. I wonder if we’re setting things up differently or cross purposes?
:)
 
Yes. And as I said the articulation selection itself works flawlessly. But modwheel, expression and other CCs don’t send properly—only the instrument assigned to channel 1 receives them, and I can only get instruments on other channels to work by manually assigning modwheel and expression to the proper channel.
I should add that it works fine and records automation to the correct channel if I play it in. But if I want to add automation after the fact, say shape a phrase across articulations on multiple channels, using expression, I don't see an alternative to having a script propogate the CCs across all channels. And of course I have to manually select the midi channel for editing automation since the automation view doesn't automatically shift to the channel for the currently selected articulation.
 
A script would be pretty easy though:

JavaScript:
function HandleMIDI(event) {
        if (event instanceof ControlChange) {
            for(chann=1;chann<=16;chann++) {
                    event.channel = chann;
                    event.send();
                }
      }
else {
event.send();
}
}

That just copies out all your CC's to all 16 midi channels. if you need SPECIFIC CC's to ONLY go to specific channels based on what the most recent NoteOn ArticulationID was, that's possible too but it becomes more complicated.
Thanks so much for the script, which I hadn't gotten around to creating—and this is exactly what I was looking to create. And yes it's easy if you know how to script in Logic (I haven't yet gotten into developing scripts for Logic, though I do write scripts for Kontakt, and so would have to learn that first to be able to write even a simple script).

My main point is that using multiple midi channels is not as straightforward as something like the UACC Keyswitch protocol that SF uses for its Kontakt instruments. UACC Keyswitch allows multiple instruments in a Kontakt multi to all use the same midi channels, meaning you don't have to add this separate layer of a script.

I use the SF UACC numbering as a starting point for my articulation ID set. Its main deficiency in my view is that there are not enough numbers, and they didn't leave space in the inventory for user defined longs. But you can redefine the velocity for the UACC keyswitch in the SF instrument, and so set each articulation triggering velocity to match whatever articulation ID number (below 128) that you want. Unlike UACC CC, you can also layer articulations triggered by UACC keyswitch.
 
A script would be pretty easy though:

JavaScript:
function HandleMIDI(event) {
        if (event instanceof ControlChange) {
            for(chann=1;chann<=16;chann++) {
                    event.channel = chann;
                    event.send();
                }
      }
else {
event.send();
}
}

That just copies out all your CC's to all 16 midi channels. if you need SPECIFIC CC's to ONLY go to specific channels based on what the most recent NoteOn ArticulationID was, that's possible too but it becomes more complicated.
Works like a charm! Thanks so much!
 
I have the IDs set up. But when I assign them to separate midi channels, Logic makes the articulation assignment correctly but it only sends CCs to channel 1 even if I select all channels in the automation drop down. All channels is still only heard by the Kontakt instrument in midi channel 1. I have to assign automation to midi channel 2 if I want the Kontakt instrument in midi channel 2 to get the CCs. I would love to hear how to get the CCs to go to the channel of the selected articulation, short of having a script.


Yes, you need a script for that, and Dewdman42 has a free one.
 
Yes, in that script you can set "16" to the highest number of MIDI channels you're using. For example if you have four horns on channels 1-2-3-4, you can change 16 to 4.
 
This is not true if you use the UACC keyswitch. You can layer as many articulations as you want.

Can you explain how you set up capsule so that you can have all the articulations for Berlin Strings as a multi in the same Kontakt instance and be able to select and layer articulations on the same channel via keyswitches or CCs? The only way I could figure out how to do this was by assigning each Capsule instance to a separate midi channel. But then I have to make sure the CCs get sent to the right midi channel.
using capsule like uacc exactly would too silly to setup, but having capsule multis with the 1st and last slot empty and then using the CC curve to stagger them.

how do you trigger 2 articulations at once with uacc? you cant send 2 cc values at the same time
 
using capsule like uacc exactly would too silly to setup, but having capsule multis with the 1st and last slot empty and then using the CC curve to stagger them.

how do you trigger 2 articulations at once with uacc? you cant send 2 cc values at the same time
UACC has two settings, one triggered by CC32, the other by velocity. The second is listed as "Locked to UACC KS." Instead of responding to CC32 values, it responds to velocities on the keyswitch, usually C-2 but on some instruments it's set to C-1, though you can move it wherever you want. That way if you send the same note with different articulations, it sends the corresponding velocity for each articulation to that keyswitch, allowing you to trigger multiple keyswitches at the same time. You can also easily redefine the velocity that each articulation responds to if you want to remap the set.
 
UACC has two settings, one triggered by CC32, the other by velocity. The second is listed as "Locked to UACC KS." Instead of responding to CC32 values, it responds to velocities on the keyswitch, usually C-2 but on some instruments it's set to C-1, though you can move it wherever you want. That way if you send the same note with different articulations, it sends the corresponding velocity for each articulation to that keyswitch, allowing you to trigger multiple keyswitches at the same time. You can also easily redefine the velocity that each articulation responds to if you want to remap the set.
keyswitch UACC doesnt make any sense, its just keyswitches realistically - they just turn off if it's not the exact keyswitch needed.

the weird part is that it requires an established keyswitch range anyways which would change based on instrument so it's not universal and it's not cc.

rant aside though, that's were flex router is king - it's the solution to controlling any kontakt library the way you want, including UACC.
 
keyswitch UACC doesnt make any sense, its just keyswitches realistically - they just turn off if it's not the exact keyswitch needed.

the weird part is that it requires an established keyswitch range anyways which would change based on instrument so it's not universal and it's not cc.

rant aside though, that's were flex router is king - it's the solution to controlling any kontakt library the way you want, including UACC.
I’m not sure what doesn’t make sense. You send one note. Its articulation is sent as the keyswitch at the velocity defined by the articulation set or expression map. If you want another articulation layered you send a second note at the same pitch with the second articulation. That note also sends its articulation trigger velocity to the keyswitch. The Kontakt instrument receives two keyswitches triggering both articulations and the note to trigger each articulation at the pitch. At least that’s how it works in Logic. Of course I have a system to trigger the articulations that doesn’t require any precision from me to get the correct velocity to the keyswitch.
 
I’m not sure what doesn’t make sense. You send one note. Its articulation is sent as the keyswitch at the velocity defined by the articulation set or expression map. If you want another articulation layered you send a second note at the same pitch with the second articulation. That note also sends its articulation trigger velocity to the keyswitch. The Kontakt instrument receives two keyswitches triggering both articulations and the note to trigger each articulation at the pitch. At least that’s how it works in Logic. Of course I have a system to trigger the articulations that doesn’t require any precision from me to get the correct velocity to the keyswitch.
the term UACC keyswitch is meaningless, it's not universal, it's not CC. it's more or less just "strict keyswitch".

with Actual UACC cc32 you cant trigger multiple articulations at once, so UACC doesnt, and keyswitches(with the word UACC pointlessly duct taped onto the word keyswitch) does.

flex router bypasses all of that, and if using keyswitches can also use as many articulations as you need.

other awesome thing I've found is that it can be a great hybrid between keyswitch and midi channels simultaneously. I can use keyswitches, but also select individual notes and change their channel(i.e. if I want just 1 or 2 notes to be staccato I can adjust change the midi channel... or if I want to layer a spiccato on the start of a trem I can just copy paste the note and change the channel instead of changing keyswitches twice.

this also allows me to record CC data separately on channels if needed, or use standard channel 1 with keyswitches. A good example was creating swell at the end of a marcato by layering a sustain quietly and then changing the CC only for that channel.
 
the term UACC keyswitch is meaningless, it's not universal, it's not CC. it's more or less just "strict keyswitch".

with Actual UACC cc32 you cant trigger multiple articulations at once, so UACC doesnt, and keyswitches(with the word UACC pointlessly duct taped onto the word keyswitch) does.

flex router bypasses all of that, and if using keyswitches can also use as many articulations as you need.

other awesome thing I've found is that it can be a great hybrid between keyswitch and midi channels simultaneously. I can use keyswitches, but also select individual notes and change their channel(i.e. if I want just 1 or 2 notes to be staccato I can adjust change the midi channel... or if I want to layer a spiccato on the start of a trem I can just copy paste the note and change the channel instead of changing keyswitches twice.

this also allows me to record CC data separately on channels if needed, or use standard channel 1 with keyswitches. A good example was creating swell at the end of a marcato by layering a sustain quietly and then changing the CC only for that channel.

How do you set up CC-based routing in FlexRouter?

For instance, say I have an instrument whose factory default is keyswitch-based, with
C-2 = Longs
D-2 = Shorts

I want to set up FlexRouter so that
Any playable note on midi channel 1 = long
Any playable note on midi channel 2 = short

How do I do that?
 
Top Bottom