[FIR] Expression Maps Improvements for Dorico 4

Hello Dorico team,
I hope you are all doing well! :slight_smile:
I would like to suggest some Expression Maps related improvements in order to fix one of the most problematic things when it comes to working with Virtual Instrument libraries.
Legato and Double & Triple Stops (chords for Violin, Viola, Cello and Contrabass, and some other bowed folk instruments as well).
Some more info could be found here: Multiple Stops Stringed Instruments
As we all know most of the companies which make VI libraries create a monophonic legato articulations. While I was working on the Template for Cremona Quartet I came to some ideas on how slurred double and triple stops chords could be achieved in Dorico.

  1. Currently the Expression Maps allows single channel routing per expression. If it gives us ability to route the desired expression to a multiple channels it will work.
    Example: *We could load two or three Violin patches (on two or three different channels) with Legato articulation and then create a custom Playing Technique to trigger simultaneously the same KeySwitch for that two or three Violin patches * ( Personally I find this solution the best!)
    For libraries like BBC SO, which load an instrument per player instance we will need Port routing, too.

  2. Option to have more control over the prioritization of the multiple technique expressions.
    Example: Legato+Multiple Stops - I already have Legato assigned to a monophonic legato articulation, so in this two component expression I would like to preserve the slur extension of the notes but at the same time to disable the playback of assigned Legato articulation. Properties > Suppress Playback isn’t an option because it cuts the note extensions and we have to manually extend them back in the Piano Roll, which we would like to skip!
    I know that we have the Mutual Exclusion Groups, but if we remove the tick from the Auto we will need to manually create all possible situations. Would be nice if we are able to add new to the automatic ones

Both ideas will be welcomed because they will make the E.Ms. more flexible. The first one will work better for Double and Triple Stops, but the second will fit better some other situations.

Of course you may come with even far better solutions. :slight_smile:

UPDATE: You could check the following post of mine for additional improvement ideas which came to my mind:
Multi-Channel and Multi-Ports Keyswitches, CCs and PCs

Thank you very much in advance! :slight_smile:

Best wishes,

That’s an interesting idea. EWHO for example allows loading multiple patches per Play instance, like this

Along the right hand side you can see this (silly) example where Crotales Hard is on channel 1 and Brake Drum and Anvils is on 2. So here then it would send the keyswitches to those channels and instruments (AFAIK BBCSO doesn’t support this?)

However unless I’m missing something, the MIDI data coming into the channel via the Play window is still on whatever is set for that instrument Port and Channel. So given that architecture this doesn’t appear to work. Sure you can route different articulations to different channels but that’s just ‘jumping lanes’ as this instrument still only has one channel via the Play window.

I think that particularly in the case of your first example, the job is for the VI creator. For instance, VSL does allow polyphonic legato (as does of course NotePerformer as this instrument is modelled to a much greater degree and relies less on pure samples). The fact that newer libraries like BBC SO, CSS and probably also Cremona leave you high and dry here with an unconvincing sustain substitute doesn’t mean that Dorico can somehow can easily provide a workaround. I mean it may well be possible but it’s not where the responsibility lies in my view. But there have already been threads discussing this sort of thing and we all seem to have different views.

I’d actually like more flexibility with Note Length. There is no reason I can see why the fixed tempo boundaries couldn’t be user defined and an extra one or two wouldn’t harm. On the other hand, the modern tendency to provide actually fewer articulations than before means that with some libraries there will hardly be enough to go round.

@DanMcL and @dko22 hello,

Yes, the Spitfire Audio Player works differently - one instrument per instance. In such cases with players like this we could use Port, or Port + Channel(if VE Pro is involved) routing.
The E.Ms. improvements I’m asking for would allow us to use more complex VI templates in an easier way. I hope the team would think about it, and probably would come up with something even better! :slight_smile:

The VI companies won’t change their way of creating libraries just because of Dorico.
Only a major change to how most DAWs work with all those instruments may force the VI companies to do changes, but I doubt it would happen. Probably only Cubase/Nuendo when integration between them and Dorico become a reality.
After all the request of mine is a “small” improvement which won’t change the structure of the Expression Maps pretty much, but would bring use more possibilities, freedom and flexibility, and will reduce our technical work a lot. :slight_smile:
For example: If we can create single set of Expression Maps which works for more than one library, or for multiple libraries at once, this would save enormous amount of time needed for creating of separate sets.
If we can use articulations from different libraries within single project without the need of jumping from Write mode to Play mode and changing Voices, Ports and Channels, this would be a time saver, too.
The experience I had got with creation of Cremona Quartet Template just gave me some ideas for improvements that would bring many benefits for the users. :slight_smile:

I hope you understand my point! :slight_smile:

Best wishes,

certainly I see your point and it is a good one. My instinct is simply that it would be easier for the VI companies to deal with things like this but if they don’t then perhaps indeed Dorico can help!

Yes, dko22, it would be better if the VI companies deal with this things, but unfortunately nor the DAWs, nor the most libraries are build in the way how the real musicians play, and the notators like Dorico are build. So, the team behind Dorico could bring us these improvements, and probably won’t take too much codding time to add ability for multiple channels and ports per technique and an option to include custom Mutual Exclusions to the Automatic ones. :slight_smile:

Best wishes,

Every time a user posts a phrase along the lines of “it probably won’t take too much coding time”, a developer dies…


Hi Daniel,
Hahaha… having some fun is always nice! :slight_smile:
Well, it will take some time, but most of the things are always there, just few improvements need to made, of course if you would like to make them available for us. Or if you have something even better in mind.

Best regards,

LOL! This has to be the quote of the year, so far!

(But Thurisaz was referring to “codding time”, which may not be quite as fatal…)


1 Like

I think the best solution by now for triple stops (chords) is to use the long patch that every library has. A violinist can’t do legato between chords, but he/she does between double stops.

I would like to suggest another improvement: in many libraries, glissando between two notes in legato patches appears when velocity of second note is near to zero (sometimes near to 127). It would be great if we could set a velocity value in articulations of the expression map, not only cc, pc, keyswitch and channel changes.

Thank you and happy (or at least better) 2021

@Miguel_Prida hello,
I think some triple stops /three voices chords/ could be achieved in legato if the fingers a placed on three adjacent strings, with a little bit more pressure on the bow.

The glissando technique can be assigned in the Expression Maps, but unfortunately it can’t really trigger any keyswitch or CC… There is a workaround in order to make glissando and portamento work.
You could download the template for Cremona Quartet and check both the README and the Expression Maps. Actually the gliss/port depends on the Velocity of first note of the two and this can be set in the Expression maps.
Cremona Quartet Template

Best regards,

Cellist here: don’t count on having legato on triple stops. Either there’s so much pressure (and therefore loudness and risk of ugliness) that the middle string cannot possibly sound well (and you still wouldn’t have a reasonable legato on the outer notes), or you’d have to use a very loose bow (i.e. with loose hair), which would be of no use anywhere else. Triple stops (let alone quadruple) are always more or less ‘broken’, because the player has to change the angle of the bow while playing the chord. It will never be legato in three voices at a time. The louder it is, the more you can fake it with a lot of bowing, but a real legato is not actually possible.

1 Like

In my experience, the same would be true of violin and viola. Depending on the chord, it might be possible to briefly get all three notes of a triple stop to sound, but sustained legato isn’t going to work.

1 Like

@PjotrB and @sspharis hello,
Thank you for joining the conversation! :slight_smile: It is good to have cello and violin players here. :slight_smile:
Then we could exclude the Triple Stops from the “Legato list”, but the Double stops are still there, so we need Expression Maps that could trigger the same technique in two different library patches.
In Overture 5 it could be achieved by routing the two notes to a different Channels, without changing the voicing, but in Dorico if one would like to change the channel routing of certain notes he/she has to change the voicing and then the channel routing. But the string stops/chords are actually multiple notes per single Voice. Here Dorico needs improvements. :slight_smile:

Best wishes,

1 Like

Dear Dorico team, and colleagues, hello,
I would like to as for another small improvement related to the Expression Maps.
Check out the screenshot below:
Thrill at Legato End

(The used library is Spitfire Audio - BBC SO Pro - Oboe including the template created by @John_at_Steinberg)

In situation where we have thrill at the end of legato (slurred) passage, the Legato expression map always preventing the Thrill expression map of being triggered. In this case Dorico uses the internal Thrill playback, which sounds very unnatural and synthetic. If we would like to have Thrill library patch to be triggered, we need to create an additional Expression map entries Legato+Thrill (half) and Legato+Thrill (whole) assigned to the Thrills keyswitches.
Would be nice if Dorico is able to automatically handle such situations with this and other ornamentation.
Would be nice if we only need to assign the existing library articulations, without thinking of any possible combination, and how it would work, Do we need to create combined articulation mappings, or not?!

Thank you very much in advance! :slight_smile:

Best wishes,

Is there any reason why you can’t just put legato and trill into the same mutual exclusion group? Works fine for me.

In situations where the p.t’s are not mutually exclusive, you can put the primary instruction into an add-on switch --for instance in my VSL Dimension Strings, I can write “desk1” without that having any effect on the actual current p.t even though it is technically a combination.

@dko22 hello,

Well, because of two reasons:

  1. Thrill and Legato/Slur are not mutual exclusive techniques. The Thrill could even appear in the middle of a Legato passage.
  2. To add something specific to the Mutual Exclusions I need to turn of the Auto, then I’ll need to manually specify everything, which I don’t want to do.
    Unfortunately it’s not possible to preserve Auto and to add new Mutual Exclusions.

Yes, it is possible to create Add-On, or Combined Techniques entry, and it works, but would be far better if we don’t need to do manual mappings for every possible situation that may occur. This takes so much time…
The Cremona Quartet Template that I created has far more Expression Map entries than the articulation supported by the library, and still I’m sure that some situations are note mapped.
After all we should be more focused on the music creative process, not on “engineering” things like building Expression Map sets. :slight_smile:

I hope you understand my point! :slight_smile:

Best regards,

my point is that trill and legato are indeed mutually exclusive techniques for playback because there is no patch in the BBC library (or most others) which combines the two. Of course in notation you can combine the two. But an expression map is simply there to tell Dorico which patch to play. If you put in a mutual exclusion, you are telling Dorico that when it sees a trill, it should switch from the legato patch to the trill patch and not assume you are looking for a legato+trill combination which doesn’t exist. And that’s exactly what happens when I test it with my BBC Core.

Of course I have no quarrel with your general aspirations – I too would love Dorico to always know exactly how to play something without it all being spelled out :smiley:. But it will inevitably take some time to get there and in the meantime we have at least two methods to get round your immediate problem.

Perhaps you have some specific ideas about how to simplify EM’s. My own EM’s have in general one entry for each playing technique which means they are short and combinations are mostly dealt with by the sort of strategies I discussed although of course on some occasions a separate entry for combinations of two patches is unavoidable.

Well, I have many ideas about the improvement and simplification of the Expression Maps at all. Many of them I had already shared here, but everything is in the hands of the team.
Even one day I hope to see an option which is available in Overture 5.
There you have two available ways of assigning Expression Maps, and both can work together
Global and Per Note basis
For example if your main library is BBS SO, but you don’t like how marcato violins sound in 2nd octave above Middle C, you could make the notes only in this range to use Orchestral Tools Berlin Strings, lets say… without changing voices. It works for single note, or group of selected notes.
This is something not available in Dorico, yet. It is possible one to achieve the same result, but he/she has to do serious workaround.
For me is more logical to create the Expression Map sets on fly, while working on project, directly in “Write Mode”. I don’t want to waste time focusing on Expression Maps window thinking about all possible situations. I know that Dorico is far superior than Overture in many other aspects, and that Overture is very unstable, but there still you could get better playback results with less work on expression maps. I still miss this simple and very intuitive workflow of Overture…

Best wishes,