Expression Maps

So if I want a stacc. con sord. (and there is a playing technique in my sample library I want to trigger) I have to combine them as “Staccato + Muted” but I must avoid to have them in the same mutual exclusion group.

Hi,

Paul or Daniel, would it be possible for some detailed guidance for the use of exclusion groups and sample libraries? For example, if a library is able to handle ‘Pizzicato+Accent’, how do we differentiate that from just ‘Accent’ or ‘Pizzicato’ using exclusion groups? I have a brass library (Modern Scoring Brass) which could be able to handle legato (keyswitch) and accent (CC4) at the same time, and am looking for a way for this to work, or at least so I can understand a way of doing this.

Hoping you can help us to unlock wider features in our libraries.

Dorico is great software - thank you!

Chris

This will all change somewhat in future versions of Dorico, in which we will continue to expand and refine the capabilities of expression maps, but with the features you have today, you will need to define switches for all of the valid combinations your library provides. So you should provide e.g. accent, pizzicato, and pizzicato+accent as entries in the ‘Switches’ section of the expression maps editor, and then define a mutual exclusion group that includes all three of these switches.

If you write to John Baron at discoverDorico <at> steinberg <dot> de he might be able to run through this during one of his end-of-month Discover Dorico hangouts on YouTube, which would then be archived on YouTube for later viewing.

The first thing to be clear about is that playing techniques apply until cancelled by either ord/nat or a new playing technique which is in the same exclusion group, and articulations apply only to the note they written over and then automatically self-cancel. It’s not quite that simple and Paul or Daniel might prefer a different definition but is a starting point anyway.

If a library directly supports pizz or legato+accent with a unique patch which you think does the job, to take your example, you can create a new pt. for it and give it a specific name, and then this name can be used in the exclusion group to distinguish it from plain Jane pizz or accent. If there isn’t, you can use Dorico’s inbuilt support for accent which you set to your liking in Playback Options. Or you can use an articulation which is in your library for more than one thing such as marcato for accent as well as marcato itself. Remember that marcato or accent among others can either be used as an articulation or as a playing technique depending on whether it applies to the individual note or a whole passage.

As with everything, it’s easier to follow on video if one exists but eventually you’ll probably need to learn the hard way by trying things out.

Daniel is correct about needing to add switches for all the combinations that you have sounds for, but a slight clarification: you don’t need to add these to the same exclusion group. I’d suggest as a guide looking at the preset HSO expression maps to give an idea of what you need. In practice you only need to define exclusion groups for things that can’t happen together, so our default set contains:

  • Primary string: arco, pizz, col legno, spiccato
  • Primary brass: open, muted, harmonic mute, cup mute, bucket mute, half-mute, plunger mute, straight mute, bell mute
  • Legato: legato, non-legato
  • Snares: snares on, snares off

In the vast majority of cases, this list should be enough. The general rule of thumb is: if I see a marking in the score, which of the previous markings does this replace? Hence ‘straight mute’ would replace a previous ‘cup mute’ but wouldn’t replace ‘legato’.

One other case would be if you had custom playing techniques, eg one customer had a banjo library with 5 different types of plucking. A ‘Pluck 2’ in the score would replace the previous ‘Pluck 3’ marking, not add to it, so all the Plucks go in their own mutual exclusion group.

As Daniel has pointed out, we have plans to simplify this in the future.

Thank you all so much for the advice.

It is super software, and I’m really enjoying the switch-over from Sibelius as my go-to. Good use has been made of the lockdown time!

I tried getting some clarity on something and haven’t quite got it yet, so I’ll ask here and apologies if it’s been covered.

Q: Within Dorico, can you create a new playing technique, and map that to an event on an expression map? I’m thinking of of expressive text like “agitato, cantabile, espress.” Etc. I have learned how to map existing playing techniques to patches within expression maps, but not how to create and define new techniques.

Here’s the use case. Creating really good mock ups from a score. I have EW composer cloud, which has EWSO as well as EW Hollywood. These contain a huge number of patches, especially for section strings. One issue is that the legato patches work well at some tempos and not others (in other words, one patches’ vibrato and expressiveness will sound perfect at a particular tempo, but fake and electronic at other tempi). I notice this a lot with solos; the vibrato of a patch sometimes has a certain tempo in mind, and if it fits the music, it’s very convincing, and if not, it’s very fake-sounding. The EWSO section strings are even organized this way, with patches for legato expressive fast, legato expressive slow, etc.

Being able to think in terms of using a patch for a particular phrase would unlock a ton of power for making professional level mockups, right out of Dorico.

Sample libraries, especially top tier ones, already have all the samples needed to play a wide variety of tempi and styles to make a single part sound convincing. We just need a way to go through a part and notate/program that.

Does this make sense to others? Any clarification needed on my part?

Yes, you can create your own playing techniques. You can define playing techniques that appear in the score in Engrave > Playing Techniques, and then create what we call playback playing techniques that you can map in an expression map from a sub-dialog of the Playing Techniques dialog. In the operation manual you can read about all this starting here.

Thank you Daniel! This is a very exciting feature – it’s the final link in the chain needed for me to make really fine tuned mockups. Woohoo!

I’d say it’s the final chain if you happen to have a VSTi that provides this specific new playing technique. Otherwise, you’ll have to create your own samples!

Hey Marc. Yes, I have the EW SO gold library (thru the composer cloud subscription), and it has lots and lots of violin section patches, which seem to be organized around playing styles and tempos as much as specific techniques (pizz etc). For example, expressive vibrato long (slow) and expressive vibrato long (fast). Vibrato in particular seems to really depend on the tempo, if it REALLY works at one tempo, it sounds pretty fake at a much different tempo. I’m just fiddling with this library because it’s what I have, but if I ever get a really top tier sample library, this functionality is a big deal for making a good mockup.

So the process would be,

  1. Load a default endpoint configuration for the section.
  2. Add in my selected expressive samples for maybe 2-3 different tempo ranges or playing styles.
  3. Create a playing technique for each new sample to serve as the midi trigger.
  4. Put the playing technique in the score, then hide them from the printed materials, since they are just midi triggers (alternatively, I could keep them printed if the sample NAILS something context independent like espress. or cantabile, etc).

This way I can use defaults as much as possible, but if there’s a particular passage that a specific sample just fits perfectly, I can trigger into and out of it as needed. I’m not a DAW guy, so the more I can get good playback from the notation side, the more natural that is for me. I’ll admit it’s pretty power-user-ish, but it’s better than becoming a power user in a totally new format I’m not used to (DAWs).

I think everything you have said will work, and hiding the custom techniques is what I do personally, as they are just midi triggers and have no visual value. What is not correct about your process is the element about loading an endpoint configuration. I would very much like Dorico to allow users to load individual endpoint configurations that have been carefully created by us users for a specific library. Dorico, however, does this sort of backwards. You can only load your saved endpoint configurations after you have saved them and then added them into a Playback Template. Then you load the custom template and it should load your endpoint configs. Dorico uses the Endpoint Configs as building blocks for a template. I have found this system to be a bit confusing - Dorico is attempting to intelligently load appropriate sounds for which ever instruments you happen to have in your project. I would like to be able to load an endpoint config with instruments assigned to the various midi channels, without having to have the specific instruments already in my project. Then, if I want a trumpet I can add the instrument in SETUP Mode and simply select the midi channel that I already have waiting in my custom endpoint config along with the appropriate Expression Map. I understand the reasons for Dorico dealing with endpoint configs in the way that it does - It always wants to be able to load a sound for a player/instrument. However, for advanced users, this system is limiting and the ability to have more freedom with loading specific endpoint configs would be most welcomed. I believe you could have both the present system and a more flexible setup, and I imagine and am hoping that this is somewhere in the pipeline.

I’m kind of seeing the problem, and I’m kind of not. Templates work sequentially from manual to automatic, so you can definitely make a template that has a specific endpoint config for each instrument, or a set of instruments, then default to some other library after that. And if you add a new instrument after starting the project, and there’s an endpoint config in the template, just reload the template. So the way things are now, it sounds like you can do what you’re wanting Dorico to do.

Is your meaning you’d like to easily switch between templates for specific instruments, without changing the rest of your setup? To audition them out? That would be nice, maybe they can do it. I’m trying to figure out how much of your issue is just the workflow being different, versus a functionality that’s actually not possible, but I’m probably not understanding it completely.

I just purchased Spitfire’s BBC Symphony Orchestra, so I thought I’d ask in this thread if anyone has completed expression maps or general bits of advice for using that library in Dorico. I’ve found a few promising threads, but thought I’d just ask the thread here since it’s been a few months.

I’m assuming I’ll need to spend at least 1-2 weeks configuring this to get it working in Dorico, and there’s still some stuff I gotta just learn on my own (like how UACC effects this process, and how to configure exclusion groups properly). If I end up making an expression map that works great with BBCSO, I’ll post it here in the thread.

Legato had me pulling my hair out…
The problem with alot of the libraries out there, is they were designed with tracking daws in mind, where it’s easy to spread tracks out all over the place, and force smooth transistions in cases involving things like key-switches and whatnot. It takes a good bit of EXTRA WORK to make use of legato patches in ways that make sense musically.

The better approach for a score translator in my opinion, is to use CC Pedaling, and have instruments that cross fade in a sensible and musical way between legato, and non-legato articulations. Some of the true monophonic instruments out there can also just sense if notes on the same MIDI channel overlap, and do these things legato and portamento effects automatically. Ployphonic ones need a little help to tell them specifically what to do and when, using your legato and portamento pedeals.

The problem is that we usually want some sort of attack phase on the first note of a legato/slurred passage (trumpets tounge the first note, strings tend to start the phase with a little more bite in the bow, etc.), but then we want that attack to go away on subsequent notes (no more, or less tongue, the bow is already up to speed and the transition is silky-smooth). We might even want crossfading (Dorcio can do it, or we can set Dorcio to shorter or no overlap between legato notes, and let our instrument do it) and portamento effects (essential for a realistic expressive trombone or bowed instrument in many types of music) applied across the rest of the phrase as well, and the way things are currently implemented by Dorico, we can’t get that to act right carrying into the last note of the phrase.

What is happening, is the key-switch/program-change/whatever event changes your sound is happening on the same tick as the first note of the passage. So, you get stuck with that non-attacked legato patch on the first note of the phrase. To make matters worse, the legato event is lifted for the last note of the phrase, instead of carrying over a tick…so you get an unwanted attack on the last note of a slurred/legato passage.

Also note, if you use the channel-bounce method to change sounds for legato passages, you’re asking for trouble. Try to keep transitions between things legato in the same plugin instance, and use a method like CC pedaling (the best, if it’s all done within the same instrument patch), key-switching, or program-changes. ESPECIALLY if you also intend to implement crossfading and/or portamento effects as well. Reason being, with channel bounces, your stuck with on-tick transitions as Dorico forces it…you can’t use tricks in the instrument like I’ll describe later. When they do get around to implementing tick-shifting abilities for expression-map techniques, you could end up with stuck note issues as well, unless the programmers anticipate this and remember to send the next note-off to the old channel at the appropriate time.

Easiest solution…for when you’re in a hurry.
Pretend your instrument can’t do this…treat it like an old General MIDI instrument…
Don’t attach anything to legato at all in your expression maps! DELETE it from the map.
In Dorcio’s playback settings, set a little overlap for legato phrases.

Next easiest, though sloppy
Make a copy of the stave, point it to the same endpoint. Mute the copy you want to show and print. Draw your slurs/legatos differently in the playback copy that you can later hide from page and engrave mode. You’ll need to shift them to the right a note…so that the slur mark doesn’t start until the second note of the phrase, and carries over a note too far outside the phrase.

Solution using nothing but native Dorico expression maps is…
Create two unique playing techniques for the first and last notes of slurred/legato passages that will over-ride and force the proper events. You can attach an invisible glyph to them so they don’t show up visually, or…attach something visible and hide it later.
I.E.
FNleg+legato (applied to the first note of the passage to force a sound with some bow attack)
legato (your normal legato sound, that has little or no bow attack applied)
LNleg (applied to the last note, so the legato sound with less or no attack phase plays)

Unfortunately, using this method, one needs to go in and drop the FNleg and LNleg events into the score manually, for every single slurred/legato phrase in the piece. Or maybe a LUA script can be done to insert them and hide them?

My Solution:
With HALion6, I’m able to drop a LUA script into my instrument that steals the legato event, and delays it a few milliseconds before sending it on down the pipeline.

Now the event (in my case I use a CC68 legato pedal event) isn’t applied until a tick AFTER the first note-on of the passage begins, then it holds through the rest of the passage, and it doesn’t let go until a tick or two after the last note in the passage has started playing (just after the note-on event).

With instruments that I can’t do custom scripting for…I host them in Bidule, and build a set of logic that steals the CC68 event, and delays it before sending it onto the hosted plugin.

As for wanting to use different things for different tempos…
Currently Dorico doesn’t send the bpm or time signature information to plugins, so even if your instrument could use that to make decisions, no go.

You CAN however create playing techniques that you can drop into the score to emulate the effect.
I.E. You could make something like:
allegro+legato
andante+legato
presto+legato

Each tagged to go with specific key-switches (or whatever your instrument needs to choose).

You could treat the tempo hinting playing techniques as sticky style ‘directions’ if you wanted…rather than momentary ‘attributes’.
Note that then you’d want full slates of expression map entries for all your tempos. As well as a fallback set that don’t have have them (or in the least, be mindful to insert nat or ord in your score when done with them).

Because using these methods, an expression map can get insanely long if you try to predict every scenario in a ready made map…save yourself a lot of headaches and just start with a very simple base map, and only add these things as you need them on a score by score, stave by stave basis.

Another solution:
If you have a plugin that can make choices based on tempo (I’ve done it with HALion and LUA, as well as with any plugin I like hosted in Bidule), you might be able to send the click track into it, and calculate the tempo. While this might not work well for all situations seeing as the calculation would be a beat behind, it still might be helpful.

The 3.5 expression map enhancements look substantive and useful - thanks!

Downloading 3.5 now. Hopefully it’ll address everything I complained about a couple of posts back :slight_smile:

There’s no changes to the legato mode as yet, but that’s something we’ll continue to think about. I did try some experiments yesterday with VSL Synchron Strings and BBC SO and there was no discernable difference to triggering the legato for the first note or the second note of the slur. Which libraries produce an appreciably different sound?

Hi Paul,
The 3.5 update is excellent. I love the fact that the dynamics lane in PLAY mode is represented in the particular CC lane that controls the dynamics, in my case CC11. The biggest and most useful thing on top of all the present features is one that will allow users to calibrate the velocity curve for individual libraries. I know you have mentioned this in the past, but I just want to say that this is super important. The curve should allow for different levels of velocity at both ends, in other words you could adjust the sensitivity of the lower velocities without changing the ‘s’ shape at the top of the curve. I have found with my VSL libraries, that a velocity curve setting of 4.5 works for mf, f and ff. However, with that setting, mp, p and pp etc have to be adjusted manually in the dynamics (or now directly in the CC lane) because they are too soft. Being able to calibrate the dynamics to individual libraries will be a huge time saver. I’m guessing it could be part of the expression map even, where the said expression map applies to just that one library…
I know you guys will find a wonderful solution to this, but I’m begging that this comes in the next major version as it is one of the final elements required in the quest to get natural dynamic playback more quickly, without so much tweaking.

Thank you for listening, as always.

PS I have tried many different velocity curve settings and I’ve also tried adjusting the velocity curve of the samples, but I ended up going down a rabbit hole!, so I reverted back to tweaking the dynamics in Dorico that don’t automatically trigger the required velocity level for these libraries.