Expression maps Tremolo trills etc

Hi everyone,

Just want to check something :
The options for trills and tremolo for using a sample instead of Dorico’s own simulation do kick in only if you assign Base switches for these and won’t work with Complementary switches, right?
If so, it will be great to make it possible, since it can easily save thousand of lines when programming maps.

I haven’t tried it, but I don’t think there’s any technical reason why it won’t work with add-on switches.

Hi Paul,
Would it be possible to check it out? In my maps, tremolos and trills won’t trigger my soundbanks when mapped to an add-on switch, but it works fine with a base switch.

Could you attach a minimal example that shows the problem, along with the MIDI notes or CCs that are needed to trigger a trill/tremolo in your library?

Be aware that if you have a trill, then the switches for the base switch and the addon switch are played

Hi Paul,
Here’s an example. I’m using VSL, both VI and Synchron.

Natural and Tremolo are in two different slots at KS C0. CC 20 at 1 should trigger Natural and CC 20 at 127, tremolo.

In the map, I’ve put two switches to activate tremolo:

  1. ADD-ON switch that only sends CC 20 to 127 (126);
  2. BASE switch that specifies the KS and CC 20 to 127.

If you activate the ADD-ON switch, it does send CC 20 to 127 and plays the tremolo patch but with Dorico’s tremolo simulation on top of it.
If you activate the BASE switch, tremolo patch is activated without Dorico’s simulation.

QuébecTest Trem Dorico.dorico (392.9 KB)

I’ve looked at this project, and I think the problem is that this isn’t a case that add-on switches were designed for. The intention for add-on switches is for plugins that use different CCs to control different articulations. For example, CC14 controls con sord on/off, CC15 controls vibrato on/off, CC16 controls marcato attack, CC17 controls arco/pizz. Before we had add-on techniques, you would have to define 16 different entries in the expression map for every combination of con sord/vibrato/marco/pizz . Because these CCs are independent, we can create them as add-ons, and Dorico will generate the correct values for CC14-CC17.

In your case, you have CC20 in the base and in the add-on. When the tremolo is played back, you get both of the CCs at the same position, and so only one of them will be used by the plugin (and I don’t think it’s defined which one will ‘win’).

So if you want to give a different value of a CC that is used in the base switch then you can’t use that CC in an add-on switch.

Hi Paul,
Yes I know for which purpose were the add-ons created for and use them as planned with other libraries. But what I’m trying to do with VSL is based on the same idea. The thing is that it actually works fine except for the articulations that trigger a built-in behavior by Dorico. I also use a similar CC setup to access or cross-fade from ord. to ponticello or tasto, or from vib. to non vib. with no problem at all.

In the case I have submitted to you, the cc20 to 127 command of the tremolo add-on switch does overrule the cc20 to 0 command of the natural base switch and trigger the tremolo sound. The problem is with the build-in tremolo simulation that Dorico generates. It only complies with the command to '“stop the simulation when an external sound is assigned” when it’s done through a base switch. So when the add-on tremolo switch is activated, I get my tremolo sound with Dorico’s simulation.

So to get my tremolo sounds, my two options are:

  1. use base switches, meaning I have to program every possible combinations where a tremolo is possible, which amounts to hundreds of entries;
  2. use a fake technique that will not trigger Dorico’s build-in simulation. The problem with this comes from the fact that tremolos can only be excluded from playback by deactivating the notes they’re attached to. So to trigger a tremolo sound, I have to create a second staff, enter the notes with the fake technique, hide the extra staff… well, a pain.

That could all be avoided if Dorico’s built-in simulations (for tremolos and also for trills, harmonics…) could react to add-on switches the same way they react to base switches or at least, if there was a local on/off toggle to override them. I have no idea if it’s a big programming job for the team, but it sure would be appreciated.

Ok, I understand now. Firstly I would advise some caution when using base + addon with the same CC, as I found that both of the CC values were inserted in the stream, and there is currently no guarantee of how these are ordered. So it may work in some cases, but randomly not work in others. I will make a note in our database of the issue to suppress the generated tremolo notes when using an add-on.

1 Like

You’ll forgive me for jumping in here, but can I ask Paul if Add-ons always need an … “Add-off”?

E.g. if I have Legato on CC68, do I need to create a “Non-Legato” with CC68=0…? Or does the Add-on switch itself off when the condition ends? I’m getting variable results with different techniques/CCs.

The add-on switch has an ‘on’ action and and ‘off’ action, so you’ll need to add the CC68=0 to the off action.

Hi Paul,
Yes, I think it would be a good idea to have an easy way to override any simulation build-in Dorico. I think all the libraries I know actually need both modes to work properly. For example, you might have a tremolo or trill sample for normal playing, both none for things like on the bridge or muted… So it would be great to be able to decide when to use the samples or Dorico’s simulations, as it would reduce the number of necessary fake techniques.
I’m very happily surprise to read that off actions work. Is it new from 3,5? Because I never got any results from them. If they do work as expected it would indeed remove all reasons to set contradictory cc data in base and add-on switches. I’ll check it out later this week.
Thanks for your answers,

We do want to have more control over generated playback techniques in the future, but I’m not sure yet how this would work.
I haven’t specifically tried the case with off actions and add-on switches, but try it and let me know if it works.

Hi Paul, note off actions work with CC but not with KS in both base and add-ons. I didn’t test PC

Apologies if I’ve missed something obvious, but…

How should I trigger an add-on switch to go ‘off’ (other than selecting the notes to which it should apply before creating it)?

I’m trying to set up templates for GPO5 strings and I’m struggling with con sord/senza sord (for which GPO5 uses a CC71 switch).

How can I get senza sord to undo the con sord instruction as an add-on? If I create a separate add-on for senza I just end up with both add-ons applied. I cannot get rid of either, and no subsequent instructions work!

As I understand, Base switches replace each other and Add-on switches are additive. OK, got that. But how do I tell an add-on switch to go away?! (other than pre-selecting the notes to which it should apply, which incidentally makes a senza sord instruction redundant)?

Are you applying sord and senza to the same exclusion group?

1 Like

Not at all obvious to me either, so I’m watching this thread. I have a similar problem with vibrato on/off which does not work with addon1=Vibrato and addon2=nonVibrato via a value change on the same CC

My other thought was that the base switch or init switch needs to indicate the state (e.g. vibrato=on, sordino=on) which can then be cancelled temporarily by an add-on switch but I can’t make that work either.

They should cancel each other… But you could try to put both ‘muted’ and 'open1" in the same mutual exclusion group

I would say you MUST put the two switches in mutual exclusion maps. At any rate I’ve never had problems with add-ons doing that. The add-ons are the same as the base switches in that regard. However an “ord” reset will not necessarily work for add-ons as the whole point of add-ons is that they can always be present in addition to base patches. In other words in this example there is always a vibrato status which is not affected by the state of the base switches and there should be a specific exclusion group for all vibrato states depending what the library offers.

1 Like

Sorry for mixing up con sord and con vibr above, and I agree with dko22 :wink:

Thanks all.

I was forgetting the mutual exclusion group bit.