Technique Add-On Switches not sending CC data?

Hi everyone,

I’m very happy with Dorico and the effect it’s having on my workflow and I’m currently working hard on creating expression maps for all my libraries.

Is it me or if I add an add-on switch with a channel change, the underlying CC stops working (dynamics)?

For example, I create an add-on switch for switching between different libraries, when it switches to the other library (different midi channel) the CC doesn’t work.

Now, if I create non-vibrato add-on for the same library (same midi channel) the CC does work.

Could it be an issue with the midi channel switching?

it’s all going to depend on exactly how things are set up. MIDI channel switching in itself can work if it’s the right approach for what you’re trying to do. Are you trying to switch between different libraries for the same player but a different instrument? Is it a completely different VST? A more detailed explanation or better still posting a relevant section of the project should help.

As a general rule, if you’re mixing and matching a lot between different libraries, it’s often best to host the whole project in Vienna Ensemble Pro if you’re not already

Thanks for answering!

I’m hosting everything on Reaper, using LoopMIDI to route all midi from Dorico to Reaper. The workflow has been very stable so far and channel switching works everywhere.

Since last night what I’ve been doing is using the base switches instead, and it’s working well that way. It seems like Dorico stops sending cc data for an add-on switch if there’s a channel change involved in the expression. Maybe it’s just something on my end.

Do the two VST’s/instruments use the same CC address for the non-vibrato technique?

Thanks Derrek! I’m not completely sure about what you mean by CC address.

For vibrato, non-vibrato scenarios (which are working correctly on my end), the midi channel is the same. Meaning that the routing goes to the same channel, what’s edited is a CC, for example, CC 21 in the case of BBCSO.

Now, what’s not working on my end is a scenario where I’m trying to use add-on switches for something that requires a midi channel change. For example, a new legato that by using a playing technique switches from espressivo to something different. For that, I need to switch libraries using different midi channels.

I wonder if it’s an issue on my end, a bug or an intended feature.

Have you set the expression map for the channel you’re switching to?


@fratveno alludes to the concern I have. Once you switch MIDI channel, your new instrument may use completely different codes for expression than your original instrument; but your expression map is no long the one for your new MIDI channel instrument (in your VST) but rather for the original instrument in the “track slot” now pointing to the new instrument in Dorico.

It occurs to me (and, I think, to fratveno) that this could present problems.

Thank you @fratveno and @Derrek!

I haven’t done it, but I just did. The issue persists, meaning that the cc 11 and cc1 data isn’t being sent for add-on switches after a channel switch. Again, it works perfectly well with base switches.

On the experiment I just did it doesn’t look like a channel switch in an expression map for a given instrument (channel 1) recognizes another expression map in another channel (channel 2). As soon as I trigger another expression that corresponds to the original instrument (channel 1) it switches back to that original instrument.

Could you give me an example of how you’re configuring it in your end? I’m probably missing something.

Sounds like a conflict somewhere in the expression map. Since it’s two different legatos, maybe check for mismatch in playing technique definitions and exclusion groups?

I’ll check that out, thank you!

Just tested this now. You are right. Add-On switches ignores dynamics… ( I’m not in a position to check, but could this have been working in an earlier version…? )

Especifically when you make a channel switch, right? Otherwise, they work on my end, at least for the limited amount of tests I ran.

Yes, sorry, using channel switching :wink:

Yep, thanks for checking it out @fratveno!

I suspect it might be a bug because it doesn’t have the same behavior unless you do a channel switch.

But not sure.

Sorry that it’s taken me so long to come back around to this thread. I’ve finally had time to look into this and @ivanduch’s diagnosis was quite right: Dorico does not render dynamics via MIDI CCs to channels that are switched to via add-on switches. I’ve now fixed this, so this will work reliably in the next Dorico 4 update, when it arrives (not too long to wait now).


Thanks a lot Daniel!

Does this mean that an absolute or relative channel change also sends the right keyswitch information, or do I understand something wrong here?

So far as I know there’s no problem with the handling of key switches etc. when using channel switches, but if you know otherwise, please provide the details so I can look into it.

Hi Daniel,

My apologies, my bad: it does work as you say. I forgot to add an extra parameter so Dorico can distinguish between open and muted Trumpet f.e.

Speaking of which: this brings me to a problem I haven’t been able to solve in the last few hours.
I use VSL’s C Trumpet from the VI libraries as example: when switching from open to muted and back this works okay, using the relative channel change. Unfortunately, the ‘natural’ playback technique isn’t recognized, so all notes that should use this (f.e. sustains in my setup), don’t play the right sample, but are stuck on the last on used. I checked and double checked, but I can’t make it work. Legato, staccato, trills and everything are working as expected, so settings are okay, one would think.
In the midi editor window (under Play), the notes that are under ‘natural’ are shown in a pale version of the used colour for that track (pale pink in a further red track), indicating Dorico doesn’t recognize the right keyswitch, I think. They do play back, but as I said, with the last used keyswitch.
I’m doing something wrong, but what…

Perhaps you could prepare a simple project with just your trumpet instrument and its associated expression map, and attach it here? I’m happy to take a look but these problems tend to be a bit too abstract to be able to solve without being able to look at what’s actually going on.