Creating Expression maps for instruments with 30+ articulations?

Hey all,

I am interested in how you manage to set up expression maps for instruments with more than 30+ articulations since its unavoidable that Keyswitches and the actual key range of the instrument get in each other's way.
Do you split them up into several Expression maps?
What I like about the idea of expression maps is that I can "merge" all the seperate "instrument-per-patch"-Kontakt-instances into one instrument (as in real live).
But I didn't find a good solution for this yet.


Senior Member
I do a two-tier system, like how the Synchron player art management.

So say 4-7 main arts (long, short, legato, etc.) then the subsets of those all get activated by a range on a dedicated CC fader.


Senior Member
it depends.

I was mulling over this recently with VSL Synchronized Solo Strings. What I finally came to is that its not practical to have one all-encompassing expression map that covers all articulations of the instrument. you can make one like that but then the piano roll will use more space for the expression map lanes then it does for the notes. I think what is practical is to create maybe one huge master expression map, and then when you're ready to work, remove all the slots from the expression map that you know you won't use on that project.

or... Just create each expressionmap ad-hoc as you go on each project. If you're composing along and decide you need a certain articulation for the work, instead of adding the needed keyswitches to the track, add a slot in the expression map and add then use the expression map that in each project, you will be using a customized expression map that fits the needs of that particular most likely will not need all 30 articulations in any one given project...might be a dozen or so...

The other thing you can do to consolidate your articulations a bit, is as jamwerks said, you can combine expression maps with normal CC automation lanes. The goal is to keep keyswitches out of your actual piano roll... So some instrument controls actually make more sense to just use a CC automation lane to control them. If you think about it, expression map lines are kind of like CC automation lanes...but they are just capable of sending NoteOn events instead of CC events. So if some aspects of your instrument are controllable via might make sense to use CC automation..particularly if its not an instrument feature that needs to be note-by-note.

The ExpressionMap groups feature (the four columns in the expressionmap editor), can also be used to consolidate your 30 articulations into less lanes. But this only really works out well if you have isolated groups of mutually exclusive keyswitches in the instrument.. and programming an expression map with multiple groups can be a PITA because of the lame editor Steinberg provided until now. This can be complicated to understand and setup, but can sometimes reduce complicated combinations of articulation modes into a much smaller set of expression map lanes that are easier to use while composing. But its a lot of work to setup and not always even applicable for many instruments.
  • Like
Reactions: Rob
Hey, @jamwerks and @Dewdman42, thak you very much for your input! Yes, I thought rather about a "Master Expression Map" which I can costumize but setting things up like this also gives me a good idea about all the articulation of a library and how they sound.
I will experiment with "Note-on-and-CC-information" as well as check out the group feature.


Senior Member
I went to the two-tier system because as @Dewdman42 says, they can take up two much space in the piano roll.

Mine look like this in the piano roll:

SHT (5)
LNG (6)
LEG (3)
PIZ (3)
TRL (5)

The number tells me how many different variants of that art are available on my dedicated Fader.
I've done that across all my libraries...


Senior Member
I've been trying out something a bit different lately. The problem is exactly what you're pointing out - there's too many articulations on a lot of libraries to just keyswitch between articulations. It's also a chore to post-edit those articulations to get them programmed nicely.

I'm beginning to think that keyswitching between "playable combo patches" might be better in all ways: it reduces the number of keyswitches to feel burdened with, but it also helps to get more performance nuances done decently well enough while doing some midi recording takes, instead of during post editing.

So for example, lately I'm trying to make all my performance combi patches rely on only 3 dimensions: note velocity to switch between related articulations, CC1 for dynamics, and CC2 for some additional control (e.g. vibrato).

With this approach, I'm able to use about 35 articulations (almost all of them) on Berlin Strings violin 1 with only 21 keyswitches, and I've only mapped 12 of those to my keyboard, the rest I'd use when post-editing.

I can't really say how well this approach will work, I've barely just started to try it out.


Senior Member
Example of the performance combi I'm talking about in Berlin Strings.

portato short / martele fff --> switched by note velocity after around 80
portato long / sus accent --> ditto
espressivo long / espressivo short / sus accent --> ditto
trem sfz (note velocity) + trem sustain (CC1)
trill sfz (note velocity) + trill sustain (CC1)
sustain nonvib / romantic / strong --> CC1 dynamics, CC2 vibrato xfade
Thanks all for your input! I decided to programm the articulations completely, thus giving me the opportunity to concentrate on the live playing. I would mark the most important articulation manually in the instrument in VEPro (legato, pizzicato, harmonics, etc.), than play with that articulation and fiddle with all the nuances afterwards. For me it's way quicker and more precise than rehearsing all the live-switching. So now I just finished my Expression maps for Violin I ("normal", con sordino, divisi) for the Spitfire Studio Strings, just putting every slot on C0 and using the "controller information", split up all the articulations between CC 1-122 with just two "values" for every articulation on CC64:

So portato is CC1-2
Legato: CC 3-4
Long: 5-6
Long (sul g): 7-8


The articulation list in the track editor is not too small so happily everything works - if it weren't for the damn stuck notes! But that's another problem...


Senior Member
My guess is that the stuck notes are most likely due to sending key switches to your instrument that aren't actual keyswitches. The instrument interprets them as notes that need to be played and tries to play them. The way expression maps work, they send a keyswitch NoteOn and it doesn't send the matching NoteOff until the next Keyswitch is needed...which can end up being like a note hold open... If the keyswitch actually exists in the instrument then the open NoteOn won't matter because its not making any sound for it. But if you accidentally assign a keyswitch in your expression map which isn't an actual keyswitch in the instrument, then it can end up behaving like stuck notes.
That's a good thought. But with the Spitfire Studio Strings I set up only four notes in the lowest range (C0 - "normal", C#0: "con sordino", D0: "divisi A", D#0: "divisi B"). The rest is only controlled by CC 64. So there is no way that the Keyswitches can interfere with the note range of the violas. Exatcly those notes get stuck which I played and there is no correlation with the keyswitches. It's quite annoying since this makes several sections of the Studio Strings unusable at the moment.


Senior Member
The only thing I can think of then is that the SSS instrument is doing it when you switch articulations while holding the sounding keys at the same time.

Try changing them to ATTRIBUTE style expression maps instead of DIRECTION, or the other way...just try it and see.
Thank you very much for your reply. Sadly this problem occours when everything is loaded and I am not recording or doing anything. Just pressing a note and it gets stuck... Didn't happen in any other library I was setting up so far.


New Member
Forgive me if you're already aware (or if this is intentional) but CC64 is by default the sustain pedal command, and many virtual instruments are programmed by default to react to it as if you're holding down the pedal. Using it for articulation-switching is possible, but you need to ensure that your VI isn't reacting to CC64 as it "normally" would or you will indeed get stuck notes on high values.
Thank you very much! I guess this is the reason why I got these problems. I just went on setting up all the other libraries but I will go back to the Spitfire Studio Strings as soon as possible.


New Member
Thank you very much! I guess this is the reason why I got these problems. I just went on setting up all the other libraries but I will go back to the Spitfire Studio Strings as soon as possible.
Most likely. You can hop into Kontakt/VSL/[insert plug-in here] settings and disable the default CC64 "behavior," but the easiest solution is to just not use CC64 for this purpose at all, or other CC's that are traditionally "hard-wired" to a specific parameter (such as CC10).