Expression Maps

First thing to check:

Since some instruments use sticky key-switches (the last one tapped sticks until a different one is tapped), it’s a good idea to always have a ‘Natural’ technique included in the expression map. Notes with no technique(s) attached get a ‘natural’ node.

Here’s an example for a Garritan (GPO5) Sound I’ve been using. In this case I want to send all this stuff as the ‘default’ or ‘natural’ state (a plain arco bowing style).

  1. It makes sure the Legato pedal (CC68) is off.
  2. I make adjustments to the start time in the sample with CC119.
  3. I’ve got more events to adjust a tonal filter, make sure the ‘mute’ is off, and adjust the ADSR settings.
  4. I send the proper key-switch for a regular arco bowing sound.

For this particular instrument, I send this entire slate of events (with different values) for pretty much every different technique Dorico offers, as well as various combinations of techniques such as legato+tenuto, and so forth. I add them and tweak as needed to a score…things can be quite different from score to score depending on style/tempo/etc. I.E. A downbow can change CC119 to play the sample a little earlier (where the bow starts grabbing), and changes ADSR somewhat for a more downbow effect. Because so many parameters get moved about when playing different articulations/styles, I just send the entire slate every time something needs to change.

So, if the expressionmap that causes you trouble already has a “Natural” technique, make sure it sends the right key-switch (or program change, etc.), and double check that the range and velocity limits, or length/duration percentages haven’t perhaps been clamped off by accident. If the expressionmap does not have a Natural technique, make one that will at least send the default key-switch.

If your expressionmap/plugin combo makes a lot of live dynamic changes to an assortment of parameters, be sure to reset them ‘all’ exactly how you’d like them for the default/natural sound.

Next thing to check

Sometimes a note can have more than one technique associated with it. I.E. It might have a slur over it, as well as a dot over it, thus it could trigger a “legato+staccato” expressionmap technique. So, double check in the score, that it’s not trying to trigger some sort of multi-node technique that is missing, or isn’t set up properly.

To build such a ‘combo technique’, hold the ctrl key while selecting more than one node when assigning nodes to a new technique. I.E. legato+marcato

If one unfolds things in Play View, and the instruments/players are properly pointing to a valid expressionmap, one can see a status bar with the piano scroll roll that shows any valid playing techniques, which also happen to have matching techniques in the expressionmap. Notes with cominbations of techniques will show an astrix (*), and hovering over that with a mouse will show all the active nodes. This status bar can really come in handy when trying to troubleshoot an expressionmap!

Sometimes I get odd combinations of techniques on my score, and there’s nothing even remotely close to the way I want it to sound assigned in my expressionmap. Or maybe it is falling back to something close, but not really what I have in mind. So, I find it’s not unusual at all for me to make a lot of combo techniques in the expressionmap on an ‘as need’ basis for each project. Sometimes I even find myself borrowing techniques meant for other instruments an hiding them from view in order to produce a ‘combi’ that will trigger the specific sound I need. I.E. I could make some wild combo like “legato+accent+staccato+mute+snares on” to force a certian set of ‘one off’ instrument parameters for a given piece. I’d simply hide the snares off technique in the score by setting it to full transparent.

Hi Brian

I added a ‘Natural’ playing technique to my expression map with the key switches in it to activate the sustain patch in Vienna, and that sorted everything. Thanks for all of the screen grabs and detailed explanation, it made the process a breeze.

Having the ability to add crescendos to multiple parts which drive velocity crossfades, and expression maps which are activated by playing techniques on the score is brilliant. I am actually finding it quicker to compose in Dorico now than in Cubase, even if the purpose is solely just for Virtual Instrument programming. In Cubase I had to draw each rise and fall in volume manually, but in Dorico I can very quickly get what I want just by notating crescendos and them tweaking in play mode.

One feature which I am missing a bit is for the ‘Volume Dynamic’ data of crescendos and other dynamics changes to be displayed within the graph in play mode. In my expression maps, I made it so that all of my volume dynamic data is sent to CC11, but in play mode, none of this data is displayed currently on the graph for CC11. This means that when I want to tweak the playback of a crescendo, I have to guess where it is on the graph and hope that the two don’t conflict.

I certainly hope this is a feature which is easy enough to add

CC7 is typically used for ‘channel volume’ in the general MIDI specification. It is possible to use this method of dynamic control in your expression maps too, though I personally do not advise it unless you know you will be exporting a MIDI file that will be played by an instrument that does not support CC11 expression volume.

If you want to MIX via MIDI events (I.E. to control the built in mixer of a plugin or MIDI Device), as opposed to adjusting the levels of the actual audio matrix, you can do this through Dorico’s Mixer by engaging the “MIDI” tab in the upper left hand corner.

When active, the vertical volume slider(s) should send CC7. The pan slider(s) should send CC10.

So, if I activate the MIDI tab in Dorico:

Instead of working with the internal audio stream for the channel directly at the host level, it will automate the built in mixer of ARIA at client level.

I’m not aware of the Dorcio mixer sending chorus and reverb adjustment events (CC91-94). But you can do that in the Play tab via CC lanes form Dorico 2 forward.

If you have Dorico 2 or later, One can also draw CC7 events into CC lanes from Dorico’s “Play” tab/mode.

I have not yet exported a Dorico project to MIDI to see if these Mixer CC7 values get inserted into such a MIDI rendering, but they do stick with the Dorico project itself, and they do transmit into whatever plugin, or external MIDI port/instrument a mixer channel is directed.

As for inserting hair-pin dynamics in Cubase. I agree that out of the box, Dorico is much better set up to work with traditional scoring/notation; however, Cubase Pro can be taught to be one heck of a nice composer station that is fast/easy to use. It’s not so obvious though, and it does need to be ‘learned’ and ultimately ‘personalized’ into a workflow you like.

If you have Cubase Pro… Its score mode should have a way to build in automatic translation for terraced, as well as gradual (hair pin) dynamic changes, plus for making interpretive settings for articulations and other marks. I’m not sure about Artist, and I doubt Elements or AI can do it at all, but Pro and Nuendo do have the ability to create expressionmaps that are somewhat similar to the ones Dorico uses. Fire me a PM, or start up a thread over in the CuBase Pro forum if you’d like to discuss those possibilities further.


Oops, I misread your last comment a bit and went off on a long tangent about CC7 and Dorico’s mixer. I’ll leave it since it might be helpful to someone…

I agree, it would be nice if one could see the CC11 events generated via Dorico’s interpretive engine in the lane. I think it is missing for a reason though…as Dorico ‘interprets’ the stuff on the score, and all that can change depending on a variety of ‘other settings’ throughout the program and score. Perhaps at some point we’ll get an option to ‘freeze’ it into the lanes…kind of like Sibelius has a couple of modes…one that includes any frozen in MIDI events, and another that ‘only’ passes through stuff generated by its own interpretive engine.

I’m not sure how it would behave if you ‘also’ drew things manually into the CC11 lane of the play tab. In Cubase, one has flags to choose between ‘averaging’ multiple lanes that want to do the ‘same thing’; just dumping it exactly as is (even if it conflicts), or picking ‘one over the other’, etc.

I suppose one could try it to see. My first ‘guess’ is that it probably ‘averages’. So a CC send via expression map on the same tick as one sent in a CC lane would be averaged somehow?

Thanks Brian

I have done a little experimentation and it is not completely clear to me how the CC controllers lane data, and performance directions for volume interact, but it seems to me that the graph takes charge whenever it is programmed, taking all volume dynamics directions. I will have to experiment a bit more and get back to you.

In the mean time I have put in a feature request.

Is there anywhere in the forum or the documentation where I can find a detailed explanation of the difference between a Cubase Expression Map and a Dorico Expression Map and how to effectively convert from one to the other? I have a Cubase Expression map for Chris Hein Solo Strings Complete and just wish to know the details of what I do to get it working properly in Dorico and what its limitations might be.



There’s no detailed documentation on the differences, I’m afraid. You can import your Cubase expression map into Dorico via Play > Expression Maps (see the buttons at the bottom), and you should find that the basic things like key switches and MIDI controllers plus the type of MIDI message required for dynamics work, but things like modifying velocity, note duration, etc. are currently inoperable.

Hello Daniel,

When can we expect those ?



I can’t provide any specific timetable. All I can say for sure is that they will not be implemented in the update we are currently working on.

I can’t provide any specific timetable. All I can say for sure is that they will not be implemented in the update we are currently working on.

:cry: :cry: :cry:

Would it be possible to get a precise statement about what does and doesn’t currently work re: expression maps? These statements to the effect that ‘not everything works yet’, e.g. ‘etc’ above leaves it to every user to waste time discovering the current status when I presume you developers know exactly. I understand it’s not finished but you put in UI that doesn’t work so please help us out by being precise. Thanks!

Steinberg with Dorico is doing the same as Apple with Logic, doing a great job but not listening to users needs.
Notes Head editor was less important than Expression Maps
Daniel, why dont you provide a list of futur features so we can vote ?

Dear Cyril,
Do you think that ALL users read this forum on a daily basis? Do you REALLY believe that your needs are the same than other people’s need? If I may, I find your last post quite inappropriate, for Dorico’s team has proven enough that they DO listen to our needs.
I’m no developer myself (but with an engineer level, I think I’m not mistaken), but I’m quite confident that implementing the notehead editor and fulfilling your dreams about expression maps are two very different tasks. No pun intended. But please keep a respectful tone in this forum :wink:

Oh come on.

Not only do they listen, they take the time and trouble to comment on almost every thread here. When have you ever known the Apple development Team to do that?

Marc’s post nails it but I’d like to add one thing, While Daniel and the team are very open in this forum, it’s all too easy to forget that there’s a competitive market out there for notation software. Showing your competitors your hand by publishing a list of future features isn’t the smartest move and, worse still, it will build up expectations among users to the point where dealing with those expectations becomes an issue and takes valuable time away from development.

Have faith. What they’ve done so far is excellent and there’s a lot more to come.

This has been discussed to death elsewhere on this forum. READ THE FEATURE LIST BEFORE YOU BUY. If you can point to a feature that was claimed to be present in a certain build but wasn’t actually there, then you have cause to complain. If the current feature list doesn’t match your needs, you’ll need to explore other options for your projects.

Proof that no matter how superior a product is to other options, someone will complain that it doesn’t have what they want.

I do respect developers ; I have been one !

I did say “Daniel, why dont you provide a list of futur features so we can vote ?”

What is un-respectful ?

I found

Steinberg with Dorico is doing the same as Apple with Logic, doing a great job but not listening to users needs.

quite inadequate, but you’re right, it was not un-respectful :wink:


I’m excited about the workflow that Dorico’s playback engine will bring once it’s developed a little more. I too am anxious to have more control over score interpretation as a user, to be able to fashion my own techniques, have fall-back sounds, fully control libraries that use players other than HSSE, etc.

The Dorico Team does listen to users. We asked for a status lane to help test and trouble shoot our expressionmaps, and they gave it to us. We asked for controller lanes as an option we can use NOW for more easily and intuitively entering expressive data (it was pragmatic and simple…until we get a more advanced technique maker, and fully implemented expressionmaps), and they gave it to us. The people who are actually putting scores in front of publishers and world renowned orchestras/bands/vocalists DID ask for custom note-heads…and they NEED them more than they need a simulated audio mock-up.

There are long lists of things users are still ‘asking for’…and most of it will certainly come in due course. It’s on the giant white board of ‘stuff to do’.

The thing is, I also use Finale, Sibelius, MuseScore, and CuBase Pro (Score Module) pretty regularly. I make fairly deep playback expression templates for them where possible, it’s NOT EASY (putting information in is, but getting it sound good in a score is a different story), nor are any of them ‘complete’. They’ve been around for decades, and they all have some issues with setting up and implementing interpretive play back as well. There are simple things (some even constitute true bug fixes) we’ve been asking for in Sibelius Soundworld, and Finale Human PlayBack for more than 10 years that simply go ignored.

Third parties have stepped in to help those who don’t care to make their own interpretive maps by offering pretty expensive supplemental libraries and plugin kits, but those did not happen over-night. Dorico will eventually get some third party love at a price as well.

I’d rather Steinberg take their time to a reasonable degree, and do it RIGHT this time. I’m glad they have the place-holders for exclusion groups, velocity and transposition modifers, and range limits in the UI expression-maps (even if they all aren’t yet functional). It just makes sense to we CuBase users. If things are done right, it’ll be fairly easy to port maps between Dorico and CuBase. Over time…we’ll begin to see the full implementation of the expressionmap system. The ‘foundation’ for the playback engine seems to be in place, but it’s critical that the Dorico team really does their homework and deep testing on how to best take advantage of it before releasing stuff to the public.

The note-head editor can actually be considered a prerequisite to much of what the expressionmap system is capable of doing for us. A different shape showing up on a score typically means you’ll be using some alternate technique or style to play the instrument or sing. These may well be prime candidates for making deep and extensive use of an expressionmap.

There will be other types of editors and markings that’ll need to be tied somehow into the interpretive engine as well. So it makes sense if the team wants to get much of it in place on the visual score, well mapped out and understood, before they tie it all to the expressive playback engine.

They’ll need to map out and document some standards, or best practices for how to best build such expression maps (what takes precedence, and how to fall back to the next most reasonable sound if something is missing, etc.), and all that is rather difficult to do until you actually have the stuff showing up on a Dorico Score where you can reason things out and run the tests.

Sure, they probably have flow charts as big as my house explaining the ‘theory’ of how it should all tie together as a finished product…but implementing it all takes time, and has to come in stages. Sometimes the real-world forces adaptations to the theory and the ‘get it done’ schedule (where programmers are given specific projects).

Consider that they need to first:

  1. Build input and engraving features, for both the score writing and play tab modes.
  2. Make sure those features are solid, predictable, and consistent (usable).
  3. Optimize them to be efficient/fast across multiple platforms and hardware setups.

It makes sense that the playback features will come in cycles that are a few stages behind the score making stuff. Since the scoring side of this product is a brand new app from the ground up, and it is massive in scale of what all it is trying to do in such a short amount of time, I believe this dev team needs, and deserves a little wiggle room on the expressionmaps.

Again, I’d rather them take a little longer making the hooks into the playback engine and DO IT RIGHT, than just rush something out here that goes on for decades full of bugs, and a lot of dead-ends for library developers.

If they get this right…it will be very flexible and powerful. Users and library developers will have plenty of options to come up with just about anything imaginable. If they get it right…98% of the things we’d typically ask for in ‘feature requests’, we users will be able to build and share with each other ourselves! It will also be the leading Scoring Engine setting the standard for things VST3 and beyond.

I am sympathetic to the request for clarity on what works and what doesn’t in the Expression Maps dialog.

The options in the group that contains the ‘Transpose’ option are all as yet non-functional, except for ‘Transpose’, which is functional. The ‘Has exclusion group’ controls are non-functional. Otherwise, all of the controls in the dialog are functional: however, this is not in itself massively helpful information, as the real complexity comes in the way that the various playing techniques are actually generated and played back in the score. You cannot, for example, create expression maps for dynamics as you can in Cubase. The options for whether an expression should apply only to the current note or ongoing until a countermanding expression aren’t yet implemented. Dorico can’t currently make the connection between a playing technique you enter in the score, like a harmonic, and the durations of the notes underneath it in order to create the appropriate playback region. And so on.

I know this is very frustrating, because it’s hard to tell what works and what doesn’t. We are just as frustrated as you are about it: we are giving work on the playback side of the program a very high priority, but there is still a limit to what we can achieve. We have added so much useful functionality on the playback side of the application recently (NotePerformer support, video, MIDI automation, swing, etc. etc. etc.) and there is more to come, but at the moment, for example, I can tell you that working on real-time input from a MIDI keyboard has a higher priority than working on the expression maps side of the program. It’s easy for me to ask for patience, and I understand that you are paying customers who want and need functionality that doesn’t yet exist, but I hope you can see that we are at least not sitting around twiddling our thumbs, and even if you may not agree with every one of our prioritisation decisions, we are working hard to add features as quickly as we can while still doing a good job.

Regarding a list of features to vote on, here is a simple and short answer: no.

I know I’m a little late to this party, but as a user mentioned earlier in the thread, I am also an owner of large amount of spitfire’s libraries and would be over-the-moon happy to be able to write in Dorico with my spitfire libraries.
I know what expression maps are, but I have absolutely zero idea about the workings under-the-hood.

What often seems to happen in discussions like these is that the conversation jumps to an advanced level very quickly, and leaves us unlearned folks out.
I would be very willing to make expression maps for Dorico, and share them on the forum, of many Spitfire products, but I would need a nice, concise primer on the subject.

If anyone can point me to a good resource, or spend the time to write one, I’ll get down to spitfire libraries.