We're definitely crossing our signals here. What you have been talking about is the UI within the Cubase MIDI editors for indicating which articulation is to be used, where you can orthogonally talk about the directions vs the per note attributes.
I am talking about the expression maps themselves, because that is what gets transferred from VI to DAW via sound variations.
So let's take a single case of something in Synchron Player and how to talk about it in Cubase vs Dorico. Dorico in their 3.5+ maps offers more of what I am talking about.
Let's take a theoretical SP instrument with the artic and directions I described. In all cases there are 24 patches, I am talking about the definition of the control plane.
In SP it looks like this:
Artic (C-0) Vib (CC1) Mute (CC4) - note how the control per dimension is declared
===================================
stac (C0) Senza Norm
spic (C#0) Vib Con sord
det (D0) Molto
long (D#0)
9 entries. Note that e.g. how Vib is controlled is explicit (CC1). To change vib you only need to send CC1 and it 'sticks' until you send something else. This is an independent idea from any DAW/Notation and its editing UI - it's the control plane for the VI.
In Dorico it looks like this
Artic
===========
stac (C0)
spic (C#0)
det (D0)
long (D#0)
Vib (add-on)
==========
Senza (CC1 - 0)
Vib (CC1 - 64)
Molto (CC1 - 127)
Mute (add-on)
=============
Norm (CC4 - 0)
Con sord (CC4 - 127)
again, 9 entries. The add-ons correspond directly to the dimensions. Dorico knows that if Vib changes in the score it needs to send CC1. Whether or not it sends this with every note is its problem, not yours.
In Cubase it looks like this:
Artic Vib Mute - Messages
======================== =======================
stac Senza Norm C0+(CC1 - 0)+(CC4 - 0)
stac Senza Con sord C0+(CC1 - 0)+(CC4 - 127)
stac Vib Norm C0+(CC1 - 64)+(CC4 - 0)
:
20 other entries...
:
long Molto Con sord D#0+(CC1 - 127)+(CC4 - 127)
24 entries. Tons of redundancy. Worst though is that e.g. Vib is not an independent first class idea - there's no indication which of the messages represent Vib. Vib is just something that can participate in a combination, and only then, to generate a ball-of-mud set of messages. But vib was an independent idea in SP, so this is lossy. Dorico add-ons are strictly better.
Cubase's maps are not good because they are only combinatoric. The Cubase MIDI editing UI (I'm not talking about the emap editor) could just as easily be used to control maps that had first-class directions, because that is exactly what Dorico does via notation and add-ons.
@Another User said:
Synchron Player similarly needs to let us specify which dimensions are for per-note articulations and which we want to control independently of the sound variations system.
I don't understand this suggestion either, maybe you can try writing it another way, I am genuinely interested.
What I'm advocating for SP is that it let me tell it to only use, in this case, the Artic dimension for sound variation sync, meaning it will send a map with 4 entries, because I am going to use CCs or automation lanes to control Vib and Muting.
There is no need to have a shared "group" idea in the sound variations API because that will just lead to more copying of Cubase in its current limited state (which Dorico did and then backed away from), and dictates too much to implementations. Sound variations are ok for per-note stuff.
In practice, for most Synchron libs I'd only want the Articulation and Type dimensions to generate a sound variation map. I just did this by hand for Elite Strings and the map has 42 entries (instead of the 400+ it generates automatically) - perfectly great for DPs artic selection menus and editors. I control Vib, Attack, Release etc with CCs - they chase, and fewer messages are sent per note. In Logic it's trivial to make a Scripter UI which gives CC values names.
Still WIP, but I'm happy to share if you have Elite Strings