Strategies for variations via add-ons


I’m building my custom expression map for VSL Elite Strings. This library has an incredible amount of techniques. Some of them have a similar internal structure, and I wonder if I can replace entering each individual articulation with the use of add-ons.

Several of the tree have the same keyswitches for choosing vibrato types (regular, strong, nv, xfade), attack type (normal, slow, fast), and release (normal, slow).

I’m thinking of leaving these variations to add-ons. So, I will not create an entry for

  • Legato > normal > vib > normal attack > normal release

and another one for

  • Legato > normal > nv > slow attack > normal release

but will only create a base entry for

  • Legato > normal

and add-ons for

  • vib, molto vib, nv, xfade vib
  • normal, slow, fast attack
  • normal, slow release

The Natural articulation will include everything needed to reset all choices in all trees of the preset. For example, I made choosing between regular and slurred legato via A#8 and B8. Natural will include A#8 to reset the legato, even if it would not be needed in the Long articulation corresponding to the Natural entry.

Would it work?


It sounds to me as if it would work, yes, but I’m certainly not the expert in such matters.

1 Like

I would say that it is working, when adding the right techniques in the mutual exclusion groups.

Something I’m not totally sure, as of now: when a Base technique contains an action, will the same action contained in an Add-On technique override?

Take, for example, the following case:

  1. A Base technique contains data to choose a Normal Attack.

  2. An Add-On technique contains data to choose a Slow Attack.

  3. The Add-On technique is recalled at the same position, or while the Base technique is still extending.

Will the corresponding note play with the Normal or Slow Attack?


My experience with add-on is that they work very well when they have no relations with base techniques. The minute you start sharing playing techniques between both, even if it seems to make sense, everything goes to hell.
In your example, I would keep the different attacks in add-on switches so they can perform the same function in the different branches. I know it can get quite complicated and you can end up needing the normal attack call in a base switch and having a headache and wondering why in hell do we buy new libraries…


As far as Base and Add-On techniques work well together, I should be fine with leaving all the “variation” techniques to Add-Ons. They may greatly clean-up an expression map.

I’ve tested my new Elite Strings maps quite extensively, now, even if it is probably not enough to cover all the situations. At the moment, it seems that it is working. There is no way to rely on the Auto exclusion groups, but it is not all that difficult to create a few groups for vibrato styles, attacks and releases.

ADDED: Attribute and Direction options for playback techniques have to be carefully checked, since they work together with the mutual exclusion groups.


After some more testing, I think I can say that Add-Ons override Base techniques. This is really great, since one can create a basic way of playing in the Base technique (a normal attack), and then introduce a variation with an Add-On (a slower attack).

This is really powerful, and very versatile.


Interesting Paolo!
Daniel, could you please confirm if it’s the intended behaviour?

I am very new to expression maps but I am in the process of creating a complete and extensive set for the Embertone Intimate Solo Strings library. According to this manual page Add-on switches do not override all the properties of a base switch but apply effects in addition to the current base.

“Add-on switches do not remove or change base switches”

So for violin you would have base switches for say natural playing and an add for adding a mute, or playing sul ponticello or sul tasto. Exactly the same way a real violinist would put on a mute as an addition to the style and bowing they are currently using.

If your add-on switches are fully overriding base switches, I find that strange, That certainly does not happen for me and seems to contradict the current manual. Perhaps what youa re doing is actually using add-on swicthes to make a new base attack, in which case they would appear to be a full override.

The attack setup in Embertone is very complex and lilkely to be different to your library. But speaking as a violinist myself, I would think that a change of attack is a new base switch as it is a fundamental technique change, whereas con sordino and so on are extra on top - exactly what I understand the point of add-on switches to be, I only chip in here because I have been presently involved in deep learning about expression maps so I can get a superb rendition of the string quartets I am engraving, from Haydn to New Complexity School.

But I suppose the exact design of expression maps is a very personal thing.

I’d be interested to learn whether your experiments have solved the problem of getting the first note of a slurred phrase to have a different attack from the later notes under the slur. (I don’t have Embertone, but is this possible?)

Well, all I know is that I have (for example) these Base and Add-On techniques:

When playing this score, all the written actions are correctly executed. So, while the (comprehensive) base Natural technique resets everything to its values, the subsequent add-ons modify the matching parameters also included in the Natural technique:

I would be happy if this is the intended behavior.


1 Like

I would appreciate some more detailed rundown on how your programmed these, if it at all possible.

In my own experience, the Add-On techniques and Base Switches do not interact consistently in all situations. You mentioned Attributes/Directions distinction and I am now wondering if this is the method (along with mutual exclusion groups) with which you are able to get the combination to work - by shifting some potentially conflicting parameters onto the per-note basis there is no contradictory information in the MIDI stream once an Add-On switch command is inserted. I experimented with mutually exclusive groups, on-events and off-events, but was not successful.

There’s certainly a need to have ironclad logic in place when doing these and perhaps you’ve found a way to create logical groupings for Base and Add-On switches that never even occurred to me. I’d really love to learn more. Cheers!

I confirm that “Vibrato”, “Non Vibrato” and “Molto Vibrato” are all Directions, and are under the same mutual exclusion group. The same for “Natural”.

The “Attack soft” and “Release soft” techniques are Attributes. So, when I invoke a different attack or release, there is an attribute (changing some of the parameters in the underlying technique) overlapping a direction.


1 Like

Thanks. I am speculating here the most recent key switch in the MIDI stream will force the override because of the mutually exclusive group. But I am not at all sure this is in fact Dorico’s logic here.

Here, I was first assuming the MIDI stream is conflict free because this is a per note attribute. But if your “Normal Release” is a direction and only “Soft Release” is an attribute, then maybe I was wrong and the underlying logic is the same as in the first case?

Sorry - too many questions, but I’d love to understand as fully as possible.

The Natural technique (direction) includes values for the attack and release. Therefore, when applying the Natural technique, attack and release are reset to its values.

When applying the ‘soft’ attack and/or release add-on techniques (attributes), the values contained in the Natural technique are changed, to follow the values contained in the add-ons.


Would you mind also clarifying - what happens when you do NOT re-apply “Natural” technique after every attribute-based technique? Which release plays then?


Natural is the default/fallback technique, so – after a note with an attribute add-on applied – all parameters return to the values in the Natural technique.

Take this example:

  • A: ‘nat.’ resets all values.
  • G: ‘atk.soft’ changes the attack value.
  • F: no technique applied; if the attribute add-on ‘atk.soft’ on the G-note is not extended, it returns to the values contained in ‘nat.’; if it is extended to the next F, the ‘atk.soft’ value remain also on the F-note.

The same for all the following techniques, both as single add-ons or multiple ones (like the ‘atk.soft’ and ‘rel.soft’ on the last G).


1 Like

Many thanks for taking the time clarifying all this, it’s really helpful. I really like the logic here: use Add-Ons to temporarily “inject” attribute type techniques and then use “Natural” to reset. I’ll think of how I can leverage this in my case. Thanks again!

1 Like