How to use Groups in Expression Maps?

I just got a VSTi that uses 3 sets of keyswitches to set articulations and I’m trying to figure out how to best manage this in an Expression Map.

The first set of switches selects the basic articulation & works just like most KS Instruments. Let’s call this the main articulation.

The second set of switches selects between ending articulations. When a note-on from one of these switches occurs any currently playing notes stop playing using the end articulation and then the active articulation immediately reverts to whatever the main articulation was.

The third set is like the second except for beginning articulations. These stay in effect while the KS is held down. When the KS is released the articulation returns to the main articulation.

Changed Subject line to reflect focus on Groups.

Not sure if it helps, but with more complex instruments with multiple KS and controllers I’ll often create “macro” expression maps that trigger a bunch of parameters tied to a single key switch. Like, here’s my legato Strings and molts vibrato key, and here’s my legato string non-vibrato key, etc. Might work for you?

I get what you are saying but that doesn’t help in this situation because the 2nd & 3rd KS sets need to be triggered at different times than the 1st set. For example a release KS needs to be triggered when you want an already playing note to stop playing.

FYI, I generally am only working with the Key Switches/Articulations in the Key Editor, not manually triggered.

I have figured out (I think) that using Groups is key to a solution (RTFM isn’t just a slogan, it’s a good idea).

Each Group lets you draw in Articulations that are independent of the Articulations in a different group.

Like this:

This is how the Expression Map is setup:

In theory this looks like it should let me control one set of Key Switches (123) independent of a second set (ABCD). But I can’t get it to really work. In the VSTi’s interface I can see when a KS has been triggered. If I play the above MIDI Part all of the blue (Group 1) articulations trigger the VSTi but none of the green (Group 2) ones do. However if I delete all of the blue articulations then the green ones will trigger the VSTi.

If I delete the Expression Map & trigger the switches from a hardware keyboard all works as expected, so the VSTi seems OK.

Anyone knowledgeable on setting up Expression Map Groups???

1 Like

Hi Raino,

So it’s very hard to find how to do this but a year or so ago I found an old SOS article that taught me. Basically in order to get this to work you have to do a crap-ton of work. But it’s worth it. I don’t really know how to explain it properly but I’ve uploaded an expression map that I made with groups and you should be able to reverse engineer it from there. Hope this helps!


Thinking about this more. You basically have to make a slot for every possible variation. So if you’ve got 3 articulations in Group 1 and 3 in Group 2 that means a total of 9 slots. The example I uploaded has 12 in group 1 and 6 in group 2 so a total of 72 slots. Thus the time consuming work. But once you get it going it’s great!
Spit Harp Gliss (8.93 KB)

I think this is the article that explains it.

Thanks for uploading a functional map - being able to use it was real helpful in understanding how it works. The attached pic is from the Key Editor the bottom showing the articulations change & the top shows the MIDI notes generated by those changes. I was surprised to discover that even though only one group has an articulation change occurring both groups will generate a new KS trigger (ex. the multiple D1 notes in bar 14).

This made me realize I had a conceptual misunderstanding about how Expression Maps work. I’d always thought that the Articulations listed in the lower right were actually bound to the appropriate KS. But the KS turns out to be associated with the slot & not the Articulation name.

I think this method will work for the VSTi - although I need to test to see if the extra KS triggers cause problems. Assuming it functions, this method is probably too unwieldy for actual use. The instrument has 28 notes allocated for key switches. These can be divided between the 3 different sets of switches. Split evenly that would require about 800 slots in the map - yikes!!!

Even worse there are 68 total articulations available so most of them still couldn’t be accessed.

After messing with this awhile I found a way to get around the need to have a slot for each combination of articulations. It’s a bit clunky, but less work than building a huge table of Slots.

  1. Build a map (Map1) that only has the ‘Group 1’ articulations.
  2. Build a second map (Map2) that only has the ‘Group 2’ articulations, except now put them in Group 1.
  3. Add an Instrument Track with the intended VSTi and assign Map1 to it.
  4. Add a MIDI Track, set its output to the Instrument Track and assign Map2 to it.

Now in the Key Editor, Parts from the Instrument or MIDI Tracks will show different articulation Lanes. This does mean you can’t see all the articulations at once.

In jcbfoos example instead of having one map with 72 (6*12) slots you’d have 2 maps one with 6 slots and the other with 12.


I’m just starting with Expression Maps, so this may not be correct at all. There are attribute and direction switches and I’m wondering if the Start/End articulations would be best set to Attribute and the remainder of the part set to Direction? Again, I’m a total newbie on this subject and just now getting started with Expression Maps. Great stuff, tho.