# Xpressmapp - Expressionmap Generator for Cubase (and OSC)



## Nils_L (Apr 1, 2021)

I wrote a little web application for creating expressionmaps for Cubase more easily with some useful features which in my opinion are missing in the Cubase expressionmap editor:


xpressmapp



In the video below you can see a little walkthrough of me creating an expressionmap for the 8Dio Claire Alto Flute:


Let me know what you think and what could be improved.

EDIT:
- It's not possible to assign multiple commands to one control (e.g. assigning for CSS the sustains with legato and/or sordino toggles at the same time).


----------



## wsimpson (Apr 1, 2021)

Looking forward to checking this out!


----------



## victor_nf (Apr 1, 2021)

Hello Nils, nice app, thanks for sharing. Let me gove you quick feedback just after watching the video.

The atrribute/direction feature sometimes is to be set at articulation level rather than at EM level, dont you think?
Then, how would it be used for a standard keyboard instead of a pad?
When you want to trigger two articulations with one hit?
And how to trigger 2 parameters within one articulation? E.g. CSS legato on/off or sordino on/off
Thanks for the post. Many believe Steinberg could easily improve this powerful tool. I. fact the top key thing for me is to be able to trigger delays/pregain adjustments per articulation from EMs.

Thanks and kind regards
Victor


----------



## Nils_L (Apr 2, 2021)

victor_nf said:


> Hello Nils, nice app, thanks for sharing. Let me gove you quick feedback just after watching the video.
> 
> The atrribute/direction feature sometimes is to be set at articulation level rather than at EM level, dont you think?
> Then, how would it be used for a standard keyboard instead of a pad?
> ...


Hi Victor,
1.) I myself use the attribute/direction feature only for a whole expressionmap rather than changing it per articulation. I could make a more advanced version at some point, where all options from the Cubase expressionmap editor could be implemented.
2.) Expressionmaps are always made for both Program Change messages and Keyswitch hits. When clicking on the PC/KS switch on the top left you'll see the "Remote" numbers now in Keyswitch values. This however is just a viewing option. Program Change 1 = Keyswitch C-2 and so on. As long as you have set the Remote Settings in the Cubase expressionmap editor to Keyswitch you can change the articulations with your keyboard (you can change the settings in the dropdown below the Load/Save buttons).
3.) You can't hit two articulations with one hit except if they are in different instances as far as I know. In the video I showed 2 Kontakt instances and switched between them by selecting channel numbers in the expressionmap.
4.) I mentioned the "Velocity" column in my video. It's also in the CSS manual, that some articulations work with that. You can try and set an expressionmap with KS: B0, Vel: 10 and KS:B0, Vel: 90. This will turn Legato On and Off in your CSS instrument.


----------



## ALittleNightMusic (Apr 3, 2021)

Thank you for creating this - such a time saver! One thing I noticed is even if I have the keyswitch field blank, it fills it in with C0. This causes hanging notes sometimes in Kontakt so it'd be nice if it always just respected what was in the field (Empty if empty).


----------



## Nils_L (Apr 3, 2021)

ALittleNightMusic said:


> Thank you for creating this - such a time saver! One thing I noticed is even if I have the keyswitch field blank, it fills it in with C0. This causes hanging notes sometimes in Kontakt so it'd be nice if it always just respected what was in the field (Empty if empty).


It's a normal behavior from Cubase that the first articulation from the expressionmap (in your case C0) is being set as articulation if you don't assign some of the notes in the key editor. This also happens when you create the expressionmap in Cubase.
The hanging note in Cubase is happening when assigning a keyswitch to where a note is on (e.g. if you assign C0 on a double bass, the low C0 note is being played constantly when the assigned articulation is active (it behaves like the note is pressed down).
Let me know if this solves your problem.


----------



## ALittleNightMusic (Apr 3, 2021)

Nils_L said:


> It's a normal behavior from Cubase that the first articulation from the expressionmap (in your case C0) is being set as articulation if you don't assign some of the notes in the key editor. This also happens when you create the expressionmap in Cubase.
> The hanging note in Cubase is happening when assigning a keyswitch to where a note is on (e.g. if you assign C0 on a double bass, the low C0 note is being played constantly when the assigned articulation is active (it behaves like the note is pressed down).
> Let me know if this solves your problem.


Interesting - I was getting a hanging note for a C0 with a piccolo so it wasn't overlapping the instrument. Either way, an easy fix - I just deleted the note from the expression map.


----------



## victor_nf (Apr 4, 2021)

Nils_L said:


> 1.) I myself use the attribute/direction feature only for a whole expressionmap rather than changing it per articulation. I could make a more advanced version at some point, where all options from the Cubase expressionmap editor could be implemented.


Hi Nils, thanks a lot for your comprehensive answer. I will go step by step. On this feature, my experience is that when not playing from start, or playing from a point where the XMap was having a "direction" type of articulation triggered before, occasionally (and randomly for me) it looses the articulation. E.g. a stacatto articulation sounds all the sudden sustained. Then I have noticed that if you stick to what Cubase proposes you at the creation point of the XMap, it works better. Perhaps this is because an internal scripting thing of Cubase? Or maybe it is due to my hardware? I am not sure, but certainly in my experience it works better if you sticked to the Cubase "default" proposal per articulation, be it direction or attribute, rather than switching all of them to e.g. direction (actually, what I used to do).

For me a great improvement to your tool would be to incorporate a 3rd option on the top. I mean: Attribute/Direction/Cubase default. This third option would require you to hardcopy the Cubase default proposal in your script, however it is to be done once and unlikely to change over time. Do I make myself clear?

Let's comment further on the other points

Thanks again and best regards
Victor


----------



## Nils_L (Apr 4, 2021)

victor_nf said:


> Hi Nils, thanks a lot for your comprehensive answer. I will go step by step. On this feature, my experience is that when not playing from start, or playing from a point where the XMap was having a "direction" type of articulation triggered before, occasionally (and randomly for me) it looses the articulation. E.g. a stacatto articulation sounds all the sudden sustained. Then I have noticed that if you stick to what Cubase proposes you at the creation point of the XMap, it works better. Perhaps this is because an internal scripting thing of Cubase? Or maybe it is due to my hardware? I am not sure, but certainly in my experience it works better if you sticked to the Cubase "default" proposal per articulation, be it direction or attribute, rather than switching all of them to e.g. direction (actually, what I used to do).
> 
> For me a great improvement to your tool would be to incorporate a 3rd option on the top. I mean: Attribute/Direction/Cubase default. This third option would require you to hardcopy the Cubase default proposal in your script, however it is to be done once and unlikely to change over time. Do I make myself clear?
> 
> ...


Hi Victor, the Attribute/Direction type is basically just a value for each articulation set to 0 or 1 in the expressionmap file. The toggle switch I created just sets the articulation type value for all articulations to either 0 or 1. By default Cubase is setting an articulation type to 0 (=attribute) when adding a new articulation.
What I can do is adding a more detailed view of the app where you can also change the articulation type for each articulation. This can be rather easily implemented. What would take some more time to implement would be the option to assign multiple parameters to one expression that you mentioned earlier (e.g. selecting in CSS a sustained articulation and the legato toggle on/off a the same time). I'll let you know when I'm finished with the advanced view.
I also experience the issue you described when starting at a point in the key editor where the direction articulation already was initiated but I also experienced the issue before creating the expressionmaps with my editor. Unfortunately I can't take action on that since my editor isn't doing anything else than creating the expressionmap files pretty much the same way Cubase does it.


----------



## victor_nf (Apr 4, 2021)

Nils_L said:


> By default Cubase is setting an articulation type to 0 (=attribute) when adding a new articulation.


Hi NIls, not sure about that. In my Cubase 10.5 Pro, it is not happening like this. Cubase proposes "attribute" for "short-type" of articulations and "direction" for "long-type" of articulations, very vaguely speaking. In my experience, when one sticks to the proposed mode, the issue we have both dealt with occurs way less often (obviously, "attribute" messages happen more often and then chances to re-sync as well). 


Nils_L said:


> I'll let you know when I'm finished with the advanced view.


Come'on and write music instead  with your time!



Nils_L said:


> Unfortunately I can't take action on that since my editor isn't doing anything else than creating the expressionmap


For sure Nils, I am more than grateful to you about your tool, and you cannot fix Cubase bugs (lol). Just providing feedback to get it better, it is quite powerful.


----------



## Nils_L (Apr 4, 2021)

That's why I almost only use the attribute type 

I'm working in IT and I had fun and learned a lot creating this app so I'll definitely add a more detailed version of this app at some point.

I'm glad this tool is working for you even though it has it's limits for now


----------



## ALittleNightMusic (Apr 4, 2021)

Does Cubase have a way of layering multiple articulations? For example, say you have a standard articulation (legato or sustain) but then also have ornaments that can be triggered even mid-note (like decrescendo short), can you layer a key switch for the ornament? Studio One allows this which makes working with something like Emotional Cello very easy.


----------



## victor_nf (Apr 4, 2021)

ALittleNightMusic said:


> Studio One allows this which makes working with something like Emotional Cello very easy


In my case, it depends on the library. With CSS as Nils commented one uses two XMaps articulations, with the CineSamples family it is more flexible as the library allows you to adapt it all the way to your own method. I have heard with OT Berlin it is more complex (don't own any, yet) because of the kind of 2D smooth transition between articulations...

At the end of the day, it is the MIDI architecture which sets the rules eventually, isn't it? The rest (DAW, VSTi...) are "just" interfaces to make the programming more user-friendly and/or fast...


----------

