Deeper into Exp Maps - Sordino + Spiccatto

The .30 update was wonderful, and I’ve now got Dorico playing through a full template of Spitfire samples, correctly working for all the basic articulations. (though in general, volume is very low compared to the default Halion sounds)

My question has to do with functionality which may or may not be enabled within expression maps.

In my strings, I have a working sordino (actually it uses the Muted trigger) which just switches to a legato sordino patch. What if I wanted to trigger a sordino arco, sordino trem, or sordino spiccato? I have those sounds available, I just don’t know if there’s any way to trigger them within Dorico. I feel like the answer (or future answer) might involve the “exclusion groups” feature, but I don’t really understand it’s use.

Any advice on how this can be accomplished, or how it might be later on if it isn’t currently possible?

This is probably not possible as yet. You are correct in that mutual exclusion groups will play a role in this in the future, as will the priority rules (for which there isn’t any UI yet), but there’s still a lot we need to implement to get all this working properly for sophisticated sample libraries such as this.

So you may find that if you create a playing technique combination of sordino + trem in your expression map then it will switch as you expect. The problems I expect you may encounter though is that whenever you have an additional playing technique, such as staccato, legato (slur) or accent, then it may switch to a patch you don’t expect. (in short this is because you now have 3 or more potential playing techniques at that point, and in order to work out which combination of those will ‘win’ you need to have priority rules and exclusion groups).

In the fullness of time we do expect that you’ll be able to get the most out of the big orchestral libraries, but for now your mileage will certainly vary.

Not even the most evolved and sophisticated expression map system will be of any help conveying musical meaning from notation to these sound libraries. They are not designed to work this way. What Dorico should do is prepare the grounds so that Arne Wallander can start porting Noteperformer to Dorico. While the sonic result may be less realistic in terms of timbre (particulary strings) the musicality is way superior.

I appreciate your quick reply! It’s really great to see how much planning has gone into features like this, this gives me great confidence for the longevity of Dorico. I think, for now, I will avoid mucking around with the exclusion groups.

I do think I’ve found a good temporary alternative - though of course this won’t work with default Halion sounds.)

I’ve created my Violins 1 as a Single player holding 2 violins. 2nd one renamed to Violin Sordino. Then the same for Violins 2 + Violin Sordino 2. (and for Viola and Cello). And those “Sordino Violins” will simply use an expression map that routes to my various muted articulations.

Doing this does require I set up the instrument as a single player holding multiple instruments (those instruments just happen to be full string sections), as I couldn’t see a way to have a section holding 2 instruments. But, I assume, as long as I am not using Halion sounds it shouldn’t make a difference.

The same could be done for brass instruments for muted articulations… or for “switching” between solo, and a2, a3, a4, a6 or whatever. (again, just as a temporary solution). Similarly, one could “switch” between different types of legato samples.

Hold ctrl while choosing more than one technique.

I.E. I want a score to interpret arco/staccato notes living under slurs as ‘martele’.

  1. Click the little plus to add a new technique.
  2. When the list pops up, click the first technique (example: legato).
  3. Hold ctrl key and click another (example: staccato).
  4. Click OK.

Now you should see a new technique added (example: legato + staccato), where you can enter the relevant events to make this happen in your plugin. Dorico might rearrange the order of the techniques as it likes and name it accordingly (It might show as staccato + legato instead of legato + staccato, but that’s a good thing when Dorico starts parsing this stuff to do his job).

At this point, I assume Dorico will parse the entire expression map and pick the ‘closest match’. If there are ‘zero matches’ it falls back to your ‘natural’ technique. In this example case, we’re hoping that anytime Dorico encounters a staccato note living under a slur, that it’ll choose my legato + staccato technique.

I’m also guessing at this point that some techniques will hold a node (To use an old SoundWorld term) until ‘dropped somehow’. Example…Pizzicato ‘sticks’ in the score until we counter it with ‘arco’. I’ve no idea which techniques are sticky at this point, and I’d love to get a list of them if possible :slight_smile: Consequently, I hope that someday we get ‘custom nodes’ that we can name anything we like, which can be sticky, or auto-dropped at note’s (or phrases if slurs/ties are used) end.

I do hope that Dorico does NOT decide (like Sibeilus did) to translate staccato.legato into a ‘portato’ node for us. I’d personally rather mix and match the standard nodes with custom ones to interpret and create my own ‘portato’ variants. The same goes for things like martele and sautelli. It’ll be nice to be able to change bowing interpretations on the fly by simply adding and dropping various sticky nodes (as opposed to having to select and tag every individual note we want played martele). I.E. Having all legato.staccato notes play as martele, unless we set in the score to change to -martele +sautellie; where it’d then ‘stick’ to sautillie for legato.staccato until told otherwise.

With GPO5, I’ve found it essential to make many variants of 'natural + ’ to get the best translations, as GPO5 doesn’t use ‘temp’ style key-switches so it’s good to have plenty of logically interpretive fall backs that’ll always send the proper key switch before playing a new note. I.E. natural, natural + staccato, natural + mute, natural + staccato + mute, natural + legato, natural + tenuto + legato, etc.

To get better playback out of the included HSO library, I think the same is true. I’ll gradually be tweaking out some new VSTPresets in Halion 6 and converting them to Sonic SE compatibility, and building up better expression maps to go with it.

For what it’s worth…I’d do some happy Snoopy dances and Woodstock backflips if we just got controller lane editors in play mode where we could just draw this stuff in down to the millisecond :slight_smile:

Yes, the expression map system is critical to telling Dorico how to ‘interpret’ a score and send out the right events to plugins and players. Dorico is already pretty good at this given how new it is (It’s just not well documented for us users yet, and they may be holding back on leaking much developer information until they’ve tested things and had meetings and all to lock in whatever implementation standards might still be in ‘flux’). Some of us have slight edge due to having worked with Cubase (different UI for expression maps and editors, but the engine concepts apply).

For now, HSO just has bad Solo String sounds for many types of score; meanwhile, the tutti sounds, (as well as winds/brass/percussion) are pretty nice. With a few minor adjustments to the default sounds they’ve chosen for the ‘out of the box experience’, and their present implementation, The Dorico team could work wonders in how orchestral playback in Dorico is perceived out in the wild.

So, if a string stave calls for a ‘tutti section’, go to the play tab and change it to use the tutti strings in both the expression map, and in Halion Sonic.

For solo strings…
Try swapping over to the GM solo strings with the ‘Default’ expression map just as an experiment. For now you won’t get Pizzicato/Tremolo swaps on the fly, but if you like what you hear better than HSO, I can make some Halion Preset’s and maps for you that’ll add Pizzicato. I’ve got some working in Beta Versions of Sonic 3 SE, but just haven’t had a chance to see if it works in Version 2 of SE yet (plan to try this weekend).

Internally we have mechanisms for sticky, time-limited and instantaneous technique changes. For instance a technique such as ‘pizz’ is sticky as it stays until countermanded by another in its exclusion group. Pizz/arco form an exclusion group as only one can be active at a time. A time-limited change technique is one such as a slur which effectively applies ‘+legato’ while it’s active. An intantaneous change is one that applies only to the notes at that instant (such as accent, staccato).

The complexities arise in how we define the combinations, priorities, exclusion groups and the fallback mechanisms. Our approach will be quite different here to how it was in Sibelius as we realise that many users found the fallback behaviour hard to get their heads around (that applied to us too…). I don’t think Dorico will do many unexpected fallbacks to different techniques: if you don’t have that technique then it won’t do anything, for the most part, aside from a few basic ones where there is a sensible fallback behaviour (eg staccato shortening note lengths).

In the fullness of time there will be controller lanes and the like.

The first paragraph in this post answers so many questions I had before on the purpose of exclusion groups. Many thanks for laying it out like this.

I can see where the play tab, mixer, tempo handling, groove templates, etc. seems to be headed, and it’s going to be excellent :slight_smile: It’ll ultimately be many heads and shoulders above the live mode and note inspector we get in Sibelius, or the MIDI Tool in Finale. It looks like for those of us who are 99% or more working with Virtual Instruments with printed scores as a goal, we’ll eventually be able to phase out messing with the full Cubase setup (unless we need to track audio and record real performers along with it).

A comprehensive and flexible expression map system is of course great, and Dorico is certainly developing nicely in this respect. What I was hinting at in my previous post above is that in a notation program, utilizing the full potensial of such a system soon becomes unmanageable and clumsy. While we are used to extensive expression maps in Cubase, where they are living in lanes of their own, littering the notation with similar playback related instructions is something completely different.

E,g, in my normal orchestral template (Cubase/VEP) I’m using 4 different string libraries. Berlin strings e.g. provides several attack types for sustains, VSL provides both long and short detache, normal and fast performance legatos etc.etc. I’m sure we eventually will be able to both make up our own Playing techniques in Dorico, and also hide them in the score, but catering for all the nuances available in modern sound libraries this way, is not the future of notation playback.

Almost all sample libraries have immanent deficiencies, most notable in the cheap ones is the lack of round-robins, and the fact that articulations are not level matched within the same instrument, and worse still, not level matched between different instruments. In order to approach even a remote degree of realism in playback, extensive level matching of instruments is a required and time consuming operation. (As both Thomas Bergersen and Arne Wallander (of Noterperformer) have stated in interviews well worth reading.)

Already many years ago, Finale’s Human Playback system introduced a feature where related articulations were governed by HP and didn’t have to be explicitly entered in the score (as long as they are defined in the preferences) Whether to send the Key Switch for sustain or détaché is conrolled (deducted) by the note duration. (And who would want to put “spiccato” in an instrumental part when it’s completely obvious…?) See attachment.

The great thing about NotePerformer is that it takes this approach many steps further. It contains a full (and growing) set of level matched instruments, and it will determine and transmit technique changes based on the musical context. It may not always top dedicated sample libraries timbrewise, but in terms of pure musicality, this is nearly always compensated for by superb phrasing.

As has been stated many times on this forum and elsewhere, Dorico is not yet in a state of playback that will allow a port of Noteperformer. Personally, I hope that Dorico will prioritize development of the audio engine so that this becomes possible soon…

Amen! I’ve found several libraries that require low level edits to ‘fix’ these instruments; and, some players/libraries don’t have a way for the user to dig into patches/presets to make such adjustments. I.E. Sonic SE only lets us tweak what’s given in the macro page, and on the 8 Quick Controls, while Halion 6 lets us dig deep into the patch and alter every single sample and parameter, either hard-set, or via real time automation to our liking. I.E. While ARIA doesn’t give this control for Garritan Instruments, we can at least pull up the sfz files and make tweaks there (even inject new CC controls and such for custom automation, which could then be driven by the expression maps in real time).

No argument on the quality and efficiency of Note Performer. Please don’t take my Halion Hype as an attempt to be condescending about NP. There is little doubt in my mind that they can begin releasing very nice versions of NP for Dorico in a relatively short time-frame if that is a goal. I do not agree that Dorico’s playback engine is ‘not yet’ in a state to work with NP. For dynamics and phrasing, it simply boils down to well designed instruments that get things like interpretation of note velocity, and subtle dynamic and filter changes as notes go higher or lower right, and that part of NP is already done, no matter what sequencer plays it back. To manage the library (call up presets), it’ll use similar, if not the same VST protocols as Halion Sonic. Furthermore, if NP really does live internal analysis of what is coming into the MIDI buffers (up to one second latency for this purpose I understand) to make interpretive decisions (instead of relying on soundsets/filters/maps from the DAW to send the right instructions), then it would not need very complex expression maps from Dorico at all…

From what I can surmise, with the exception of fancy groove engines, the Dorico dynamic interpretation (velocity or CC dynamic control), and expression map system is already very close, if not surpassing that of Sibelius, and NP works in that. What little may be lacking to ‘maximize’ NP’s possibilities, I suspect is merely missing in the current Dorico UI for building/altering expression maps, but not deeper down in the actual playback engine. Case in point, we can already open up a Dorico expressionmap, or an exported library of them in an xml or text editor and see quite a few tags that aren’t yet available in the UI. While I wouldn’t recommend messing with/relying on them in a text editor just yet (they are subject to change since they’re not yet documented and in the UI), the current state of Dorico’s readiness for a good NP experience should not be underestimated given the right information about Dorico from its developers.

Sorry to drone on with the techno babble, and many apologies if my excitement about how far Dorico has come in such a short time comes across as being pushy, disrespectful, or rude-condescending. I’m just excited about the potential I see in Dorico and Halion for a superb polish in future releases, so my real point for the ‘here and now’ is: I’ve just found that there are already some methods to get much better solo strings (at least in my opinion) out of Dorico using only the bits that come with Dorico (no third party plugins/libraries required). It’s not the default setup, and at first there are a number of manual steps to change things around, but it doesn’t have to be this way as future versions of Dorico get released (they can always select a different set of default string sounds from existing content, or even include brand new ones).

I also have a theory that the solo strings in HSO can be improved a bit as well. Right off the bat I find that removing the legato keyswitch from the expression map is better to my ear (Currently Dorico’s default string map calls up a ‘slow legato’ sample with a key-switch on the ‘legato’ technique [all the slurred notes in the score], and it’s not a smooth transition from the faster bowing sample that’s used as the ‘natural’ technique). I think we might can at least make them blend better, and have a nice smooth legato interpretation with some alternative presets (Those of us with H6 can dig in and reshape every detail in the preset, and when SE 3 is released, such presets should be possible to share with fellow Dorico/Sonic SE users).

As part of this ‘user community’, given a little more time to test things (If things I’ve tried so far can load in the current version of SE…right now I’m not in a position to stop projects and run such tests), I hope to offer some alternative Halion presets and expression maps here in the forums that’ll make things easier for someone who doesn’t want to spend a bunch of time making their own. I might just have to wait until Sonic SE 3 is available…not sure yet.

The Steinberg Halion engine is very capable of giving Dorico Users an impressive ‘out of the box’ orchestral playback experience. It just doesn’t seem as high on the priority list for the dev team as getting the scoring and engraving stuff where it needs to be, and getting the core audio engine elements into place (Complete and responsive Mixer, Play Tab options, etc.). It’s also only fair to give the new English guys some time to really learn the foundational audio engine that may have largely been done by German teams some time ago. In time however, I’m confident every detail will get its deserved attention :slight_smile:

Already, right now, Dorico can do this sort of thing to some degree (perhaps not based on note duration or tempo yet [never knew until now Finale could do this], but that should be in the pipeline). Instead of opening “Human Playback” and creating a ‘filter’, we go to the Play Tab, and open the Expression Map to create a ‘technique’. I can let Dorico Know that I want notes with legato(slur).staccato to play back as martele, and legato.tenuto to be portato, etc. In time, I believe we’ll also get access to add ‘custom’ sticky techniques, so it’ll be easy to change the ‘exclusion group’ and thus our default score translations easily, and on the fly (I.E. change that legato.staccato translation into sautille instead of martele right in the middle of a score, simply by dropping in a single technique (and hiding it if we don’t want it to print out).

I know that in Sibelius, it took me more than 1,000 lines of xml just to teach it translate scores for GPO5’s Solo Violin like discussed above (just knowing that dots under slurs should be martele until told otherwise), and it still cannot make decisions based on the tempo or duration of notes, nor can it do simple MIDI channel hops from a soundset, and it’s decades old, and beyond version 8.5. So, I’ve had to rely on custom sticky nodes…uggg…not much hair left. I got sick of having to tag every single note in the score for playback properties, so I just made my Own Soundset with enough booleen logic in the “SwitchType” list to get some auto-interpretation.

I find Dorico’s Expression maps are already a bit easier to create and manipulate than Sibelius’s soundword, and it’s still only on version 1. While Finale gives me easier access to ‘build as I compose’, the documentation on Human Playback is poor to non-existent (Nothing in any of the manuals explains well how the plugin filtering works). In Dorico, it’s already easy and intuitive enough to simply build it up and make adjustments as I compose music (instead of shifting into a programmer’s frame of mind, and having to adjust xml, restart/reload, adjust, restart/reload as with Sibelius), and communicate to the Dorico Dev teams on what I can’t figure out, or think should be added/changed.

It’s pretty exciting to me, how good the core Dorico playback engine already seems to be. We already get more potential dev tools as end users (I.E. We can upgrade Halion to the fully featured version 6, and make our own libraries for Sonic…not so simple with Sibelius Sounds or the Plogue/ARIA Engine [true, we can make sfz instruments for ARIA all day long and load them manually, but if we want Sibelius or Finale to auto-manage them in their score managers as part of a library, we must ‘register’ such libraries with Plogue…fine if you intend to sell the library, but for single or lab/classroom user purposes it puts a hamper on things]).

When we get the UI tools and user documentation to take advantage of it all, and save our favorite setups as the default, and get features similar to styles and manuscript papers in Sibelius…the Dorico/Halion combo is REALLY going to soar :slight_smile:


Interesting to read this thread.

I have some home-made Kontakt instruments of a string instrument performing notes using different techniques (harmonic, tremelo, sul ponticello etc). To access these efffects, I’m ascribing each one to a different instrument, then in setup giving all these instruments to one player. It would be very helpful if I could just write a technique instruction on a single staff then add a midi channel change (or other midi message) so my sampler would pick up the right sound library. If there’s no alternative, I wouldn’t mind putting in this channel number manually (so long as I could avoid this info appearing in the printed layout). Can this be done?



Hi, if I understand you correctly you have made different techniques of the same instrument into separate Kontakt .nki files which you access by giving them different Midi Channels in a Kontakt multi. Currently, from a single staff in Dorico you cannot switch between Midi Channels. But Brian Roland on this forum suggested a workaround for this, which is convenient, unless you need very frequent and rapid switches between the channels. In Dorico you can add several instruments to the same player, and those instruments can be given different Midi Channels. If you add a separate instrument for every technique, you can enter the music on its respective staff in Galley View, but in Page View they will appear on a single staff… again, not practical if you need to switch techniques on a note by note basis, but otherwise a good solution in Dorico (as of now) …

If you have created these yourself in Kontakt, then I think it’s easier in the long run to assemble all the different techniques as layers of the same Kontakt patch, and use keyswitches to switch between them, just as we do for the HALion HSO sounds (and just as most sample libraries do). That will be much easier to use as it means that you only ever need to load one patch and have one expression map, rather than set up many different instruments.

See this tutorial for how to create groups and keyswitches in Kontakt:

Here is a link to the thread fratveno mentioned above about an exiting method for ‘channel bouncing’ within’ a Dorico Project: