Expression Maps

richhickey,

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.

cheers

This is really good place to start.

https://www.youtube.com/watch?v=gDtnnV4oXHM

That’s useful information, thanks Daniel!

At no point did I complain that Dorico did not have what I want. Did you read what I said before ADMONISHING me with your ALL CAPS? I asked for clarification as to what does and does not work because, in spite of reading all the threads on expression maps here, it’s still unclear.

As to what’s promised - this is from the Dorico_21_Deatiled_Feature_List.pdf (which I read)

§ Playing techniques result in changes of VST Expression Map
§ Built-in editor for creating and editing VST Expression Maps, including import of existing
Cubase Expression Maps

And in the documentation, (which I also read), there are many imprecise caveats:

Although the format of expression maps in Dorico is similar to Cubase, Dorico cannot handle expression maps in exactly the same ways as Cubase. For example, Dorico allows you to use more playing techniques, but Cubase can reproduce more combinations of multiple playing techniques.

During playback, Dorico does not currently support all fields in the Expression Maps dialog. This is planned for future versions.

Although settings are imported into the Technique Controls and Exclusion groups from Cubase, Dorico does not currently implement all the information. This is planned for future versions

.

Asking for clarification is not complaining. It’s trying to develop a shared understanding, in an effort to reduce frustration and manage expectations.

Finally, Daniel has acknowledged the lack of clarity and the resulting frustration, on both sides.

What does your post add? Nothing.

Rich: you’re right, I failed to read your post carefully, and in doing so, misrepresented your position. Apologies.

That’s gracious of you - accepted!

Hi there

has anybody adapted a Cubase expression map for VSL Apassionata Strings?

I have had a quick look at the cubase expression map import from VSL and see there is a lot to do so thought it would be best to ask here first

Thanks

Rob

I’ve found that I’ve needed to use “nat.” to reset keyswitches in other Notation softwares that allow custom “expression maps” (like Notion 6). The ultimate tool for me was moving from Keyswitches to Midi channel and CC patch changes. The issue is that Dorico does not yet allow for CC and Midi Channel changes for individual expressions. Once Midi channel switching and Midi CC triggers are implemented then I can see some of these issues being solved on their own.

As has been mentioned the ability to change midi note length (for slurs, etc.) is also important for triggering different sample patches.
This could be set to

if
set flag: legato/port. etc.
unset flag: …
send midi channel: 2
Midi CC #3, 127
change note length: +50%

Convoluted, but that’s what gets these things functioning properly

Any news on when these abilities might be implemented in expression maps?

I posted a version in this thread in July of last year.

It contains more than just the strings maps. Also, the strings expression maps will work with any of the VSL string libraries except for Dimension Strings.

Thanks for this dbudde, I really appreciate you making that available.

I have imported the expression maps and hooked everything up right I think, but I am having a bit of trouble getting dorico to switch the VSL patches properly, for example, legato is not getting activated by slurs, and pizzicato doesn’t change back once a new articulation is expressed

Is there something I still need to set up? I have imported the Cubase expression maps presets in to the VSL player. Are those the ones which match up to your Dorico expression maps?

The problem seems to be with non special-edition libraries, as those seemed to switch fine. Its the full libraries such as Apassionata Strings I standard that I am having an issue with.

You need to use the presets that VSL provides for each library that are located in your VSL Custom Data folder. So for instance, with the Appassionata extended library, for AS violins, you would use this preset:
VSL Custom Data/Expression maps/VSL_Str._Expressionmaps_v/Strings VI-Presets VST-Expression/Appassionata Strings/AS I+II - extended/AS_Violins_L2+II.fxp.

I have not had problems with Legato using these presets and the Doricolib file I posted.

For pizz. and nat. you may need to add some nat. techniques in judicious places. This is because exclusion rules don’t yet work in Dorico. Also, if you are using VE Pro, there was a bug that articulations on the first note of flow did not get recognized all the time. I think this has been fixed, but since I have worked around this bug, I am not certain this is the case.

Ah brilliant, that has got it, it was the use of ‘Nat.’ that I was missing, and that has solved it.

Thank you very much for making those expression maps dbudde, I really appreciate it and it has saved me a lot of time

Hi there

Does anybody have an expression map for Vienna Synchronised Appassionata Strings? I am guessing this would be the same as any of the other synchronised products in the Vienna range

Thanks

Rob

I’ve done some simple work on the Spitfire strings, which might be a good starting place for a lot of people.
Spitfire Symphonic and Chamber Strings.doricolib.zip (2.33 KB)
It’s rough still, and not fully tested, but I thought it might work to get people going.

This attachment includes Expression maps for both the basic Symphonic and Chamber strings, and Extended Core techniques for the Symphonic strings.

I know not everything is implemented yet, but here are some thoughts, comments to be aware of:

These are using the default settings. If you have your short notes mapped to cc1 instead of velocity for dynamics, you will need to go in and change the expression map to use the controller.

On the Chamber strings, if you want to use the legato keyswitch instead of the long, you should change natural to keyswitch 0.

On all of the bass sounds in Symphonic strings, there is no con sordino, so it is mapped to flautando.

A lot of possible sounds have not been used yet, because I don’t see a way to do the following things:

  1. Doubled expressions - e.g. con sordino staccato
  2. Alternative Short notes
  3. Trills (due to not being able to pick between major and minor 2nd trills) - (I do see this is possible in some of the default sounds… so there must be someway to make this happen…)
  4. Vibrato controls on a cc controller - The vibrato in Spitfire uses CC21 on a continuous crossfade… I don’t see a way to implement something like this (other than just program it in) – Same could be true for using expression cc11 to control volume, since dynamics are mapped to cc1.


    Just one question… what are the exclusion groups? I know they aren’t working, but I don’t understand what the plan is for them.

The idea behind exclusion groups is that they allow you to specify which other playing techniques must be removed when another is added: at its simplest, “pizz.” removes “arco” and vice versa, or “mute” removes “open” and vice versa, but it gets a lot more complicated when you consider that e.g. “col legno” needs to remove “pizz.” which needs to remove “snap pizz.” which needs to remove “left-hand pizz.” which needs to remove “sul pont.” which needs to remove…

Hi Daniel and others,

Re: Programming a Con Sordino effect in the Chris Hein Solo Strings

I have put together an experimental expression map for Chris Hein Solo Strings Extended. Its based on the Cubase Expression Map which comes with the Library but I have extensively modified it to be more comprehensive of the many string techniques and to match it to the techniques that already exist in Dorico. I can say that its a great library if strings are important to you and you want use them all the various possibilities of these instruments. There are many types of short and spiccato/jeté/sautillé sounds and you can program a change in a sound in context by simply altering the attack on the note head using MIDI CC. As well there are many other effects even including a jazz doit and fall. Nice!

However I do not understand what I would to program in the con sordino function of this library. The CH solo strings uses an audio filter instead of samples to create the Con Sordino string mutes (as others have done), which is smart programming and saves a lot of sampling space. It uses CC 48 for Sordino on/off which I presume is a MIDI value of 127 for on and 1 for off. Dorico is using a mute glyph/symbol (looks a bit like an M) instead of the words “Con Sordino” or “Senza Sordino.”

My problem is that I am still not clear on how all this works. I want to program this effect using a CC controller and a value. However there is no sordino glyph to select or match to in the Techniques dialogue box on the Expression Maps page. That also means there is no Technique to select in the Techniques symbol dialogue page. How do I deal with this? Also is it possible to have all the other features of the sound library work along with the Sordino or is there some sort of exclusion principal at work? (Arne Wallander complained about a shortcoming such as this in his introduction to the NotePerformer for Dorico.) There are a lot techniques that you can map to keyswitches in the Chris Hein Solo Strings (and many keyswitches available too) and it would be great if I could just make them all sound as Con Sordino just by putting on the Sordino filter. Its effectively what happens on the instrument too.

I also just wanted to confirm whether basic legato works in Dorico or if notes just always default to 75% of their note value. I have had contradictory information about this.

Can anyone write down in plain English what the technique “Natural” is all about and how it has to be used or can refer me to where it is fully explained in one place? Is is just a stand-in for the basic Arco technique but which can one apply to any instrument?

Warmest regards

Paul Nicholls

HI Daniel,

I deeply respect what has transpired with the development of the Dorico music notation and performance software over the past two years or so. So many great advances! However, I wrote a post with a request a while ago in regards to the need for more documentation on Expression maps. You said in reply that there was no such document ready or one planned at this time and that the Expression maps feature set was not complete yet. You added some explanations on the forum about a few of these matters (which were appreciated) but some of it was a bit confusing for me or presumed some prior knowledge I did not have.

Would it not save time to write a document that clears up some of the more important questions rather than you having to read and reply to all of this stuff on the forum which is also itself partly generated in the first place by the lack of fuller documentation?

Paul

Hello Daniel,

Re: Incomplete programming of Performance and Expression Maps Features in Dorico

I would like to express that it seems to me a bit pointless to add features to the Dorico that presume in the first place that the performance and expression maps features work properly, especially when I am increasingly getting the impression that they don’t. Myself and a colleague would really like to use Dorico to score to film. You have added that feature in a pretty comprehensive way to the program. Yet the performance aspect of Dorico needs to be at a critically high level in order to make use of what could be an excellent new video scoring capability. You have even added professional audio output features such as recording to stems. That is not available on Sibelius. Its impressive that you thought of doing this. And you are about to add transcription of real time keyboard playing. Yet you have admitted that the performance aspects of Dorico are incomplete right now. Why not fix this critical aspect of the program first before adding new features that entirely depend on this key aspect of the program?

I admit that I can not possibly understand the complexities of what you are doing so there may be a deeper programming reason for why you are not completing this area at this time. However, I want to just tell you that it is the performance aspect of Dorico that keeps me from switching fully from Sibelius and fully recommending your program to others at this stage. There are complex reasons for this on my part and I am using Dorico for some publishing and part printing - but I can’t ditch Sibelius yet although I really want to. Working with both programs in frustrating partly because I want to make the switch and fully learn all the many lovely streets and alleyways of your product.

However, if NotePerformer could just sound as good in Dorico as it does in Sibelius that would be all I would need right now. Unfortunately my music sounds choppy in the Dorico version and I think I know why. Arne’s critiques make sense to me and truly I do not fully understand some of your response to them. I am hoping this is all a very temporary situation but your recent replies to similar questions and requests on this part of the forum leaves me feeling discouraged.

I hope I am mistaken in what I assert here and would warmly welcome being corrected in these matters.

Sincerely

Paul Nicholls