Can add-on playing techiques overlap?

I’m trying to figure out Dorico playing techniques for a research project and I think I have the wrong conception. Maybe you could all correct me?

The way that I’m conceptualizing it is that playing technique add-ons can be overlaid on top of a base technique, though I’m confused by the results. Here is my experiment.

I have two PlayING Techniques:

  • foo
  • bar

All use CC 110 to communicate.

Foo emits CC 110(30) for note-on and CC 110(120) for note-off.

Bar emits CC 110(60) for note-on and CC 110(90) for note-off.

When I add them to my expression map as add-on techniques, I’d expect them to both emit their note-on CC when they take effect and their note-off CC when they stop taking effect. Here’s the music that I have input:

And here’s what I get in Logic:

Here’s what I expected to get:

Why did I get the original MIDI output and is there a way that I can “layer” articulations so they work the way I was expecting in the imagined Logic output above?

I’d really appreciate any suggestions you have!

_ michael

Screenshots.zip (3.5 MB)

FooBar Articulation Test.dorico.zip (1.3 MB)

FooBar Articulation Test - Full score - Flow 1.mid (146 Bytes)

I can’t open the project right now, but I would definitely check the mutual exclusion section of the expression map. Foo definitely stops (off event=120) as Bar starts.

Also note that the 2 overlapping Cs have a combined technique of bar + foo. That would probably trigger Foo to end as well.

Thank you for the response. I seem to get the same result no matter if the mutual exclusion is turned on or off :frowning:

By your suggestion, do you mean that Dorico isn’t going to naturally overlay the techniques? What exactly is the difference between add-on and base?

If I have 4 techniques that I want to layer: A,B,C, and D, do I then need to make 16 entries in my expression map for every combination of those? Is there a way to make it more easily scale?

Thanks again for your thoughts!

1 Like

No, because each combination is its own “technique”. In the above example

Beat 1:C Foo starts (110=30)
Beat 2:C Bar + Foo starts, triggering Foo off event (110=120)
Beat 3:C Bar + Foo ends (unhandled, 110 remains 120)
Beat 4:C Foo starts and ends (110=30 → 110=120)

If they’ll always be ascending (or descending), can’t you make:
A=30, B=60, C=90, D=120 (probably need an E=0 to reset) – making sure they are attributes and not directions and that there are no off-events. Then you can drop them like ‘pizz’ and ‘arco’.

1 Like

Ok, I think I’m getting it now. So add-on just means “this technique can be combined with another within notation”, but Dorico needs to be taught how to play that technique and separately needs to be taught how to play the technique when the other is also present.

So, add-ons allow me to specify numerous combinations of a technique, but for playback purposes, each combination is unique.

How would the “attribute” and “direction” properties of the Playback Techniques factor into this? :thinking:

Kind of. The thing you should realize though as well is that even with a base technique, they can be (and often are) linked to more than one Playback Technique.

An example would be if a library has a staccato note played sul ponticello, you might have a base technique linked to both the “Sul Ponticello” and “Staccato” base techniques so that when you have a note with both applying, it will use that keyswitch.

Add-on techniques specifically are for the case of where the library has global on-off settings for certain features that affect all articulations. An example would be the simulated con sordino in Cinematic Studio Strings - in the interface it is a global on-off switch and impacts all articulations. That’s what add-on techniques are generally for.

Because of this, you should not make things add-on techniques unless they are true global settings. If for instance a certain controller controls vibrato with longs and release time with shorts (as a double duty), you probably don’t want to make that an add-on linked to vibrato because otherwise you will be unintentionally changing the release time for shorts (VSL’s Dorico maps sometimes have glitches around these lines due to inappropriate use of addons). Instead you should be making duplicates of the base techniques for the different vibrato options, that are linked to both the original technique and the vibrato option. (ex. Vibrato, Non Vibrato, Molto Vibrato, Legato + Non Vibrato, Legato + Vibrato, Legato + Molto Vibrato, Muted + Non Vibrato, Muted + Vibrato, Muted + Molto Vibrato, Legato + Muted + Non Vibrato, Legato + Muted + Vibrato, Legato + Muted + Molto Vibrato etc etc all as base techniques for all longs/legatos where this applies).

If it is a true global setting, the Add-on option saves you from having to define all possible combinations of all techniques that include this, so it can substantially cut down on the number of base switches needed in a map. That’s the reason why people are tempted to use it for things that are not true global settings. I did a feature request before for add-on techniques to be enhanced with the ability to optionally define what base techniques they applied to, and this would expand their use cases outside of true global settings to include things that applied to a subset of articulations (ex. libraries with sampled con sord. where not every single articulation is recorded both normal and con sord.).

1 Like

“attribute” vs “direction” controls how long it lasts, in the absence of a manually set duration for a technique.

"Attribute” lasts only for that note and then switches off. “Direction” keeps going until cancelled by another direction.

However, with either one you can give them a set duration by extending the technique with shift-alt-right arrow, and in that situation they behave the same (ending after their configured duration).

In terms of what appears on the score, symbols like staccato dots, accents, harmonic circles, stopped/open symbols, etc are generally attributes because if you put a staccato dot on a note it doesn’t mean the next note is also staccato without a dot. But typically text is a direction (ex. placing “con sord.” over a note doesn’t mean that you go back to senza sord automatically on the next note). There are exceptions of course - sometimes there is a symbol written in string parts that is basically a pictogram of a mute to show the mute state, and this would be a direction.

For things you are going to be hiding anyway (hidden things that control playback only where you don’t want the text to show up in the printed score) you can choose between attribute and direction depending on whether you are likely to want to use a specific device multiple times in a row or not. For something like a prerecorded crescendo from p to ff over 2 seconds, you’re probably only likely to want to have one of those at a time, so it is more convenient to use an attribute where you don’t need to do something to make it stop doing the crescendo on subsequent notes. If, on the other hand, it is a technique that you are likely to want to continue with subsequent notes, a direction is more convenient.

1 Like

Add-on techniques specifically are for the case of where the library has global on-off settings for certain features that affect all articulations. An example would be the simulated con sordino in Cinematic Studio Strings - in the interface it is a global on-off switch and impacts all articulations. That’s what add-on techniques are generally for.

This is what I thought, but I’m a little confused by it because during playback, Dorico doesn’t seem to be able to use two simultaneous add-ons without me defining a specific playback technique for both. Kind of like I can pat my head and rub my tummy, but if I try to do both, I almost have to learn a new thing.

Does the behavior of add-ons change after you start using more than one simultaneously?

Not necessarily more than one add-on simultaneously, but there are a few limitations around CC’s whenever you have multiple switches that are setting different values of the same CC (ex. a base switch and an add on, or multiple addons).

When Dorico is processing base techniques and add-on techniques, it basically combines the list of on-events and off-events from the base switch with the lists of on-events and off-events from the add-on switches.

In event of a conflict with CC values (ex. the exact same CC number is being set to conflicting values between one add-on switch and the other), one of the values will win.

So if you have two add-ons, keyswitches for both will be sent properly, and if both have different CC’s they will be sent properly, but if both try to simultaneously set the same CC, one will “win” and the other will “lose” and only the winner CC will be sent.

This is a problem with libraries like Cinematic Studio Strings where you can use CC58 to switch articulations but also use CC58 to enable or disable mutes. But if you have an articulation change simultaneous with a mute change, it won’t work properly because CC58 can’t have two simultaneous values, so only one of those events will happen. The workaround is to use CC58 for articulation changes and use the keyswitch for mute on/off.

1 Like

This part I don’t understand. Under what circumstances would you ever want two add-ons both set to the exact same Playback Technique? If the two add-ons are linked to the exact same playback technique (or combination of playback techniques), there’s no reason not to have them in a single add-on.

If you send your map along, I might be able to take a look at it and see what you’re talking about (or an example project is even better).

1 Like

Your answer here is enormously helpful to me and got me on the right path. Thank you!

This part I don’t understand. Under what circumstances would you ever want two add-ons both set to the exact same Playback Technique? If the two add-ons are linked to the exact same playback technique (or combination of playback techniques), there’s no reason not to have them in a single add-on.

I’m using these to communicate with downstream software. The CC values are used to encode data. So it’s a little unorthodox. The Dorico system is limited for what I would like to do, but given your other answers, I’ve found a workaround.

Thank you for your followup!

1 Like