Dorico: Humanize & Infinite Woodwinds


In a few minutes, I’ll be buying the Dorico 3.5 update. :slight_smile:

Dorico’s playback defaults (sans CC1 mapping) wield the Infinite library like magic. Articulations and techniques come out of Dorico brilliantly so far. The two were destined to be paired, with 2 exceptions: Note lengths are critical for Infinite. Constant movement of CC1 is critical for sustains.

Question / Feature Request:
Can I edit CC behaviors in expression maps the way SFZ has in place?

What I’d do with this feature:
Whole notes at mp: <>
Whole notes at ff: >f
Quarter notes: curve down (stronger attack)
etc, etc, etc.

CC1 stays stagnant on sustained notes, which no human would ever do. Dorico seems 95% matching of what people do in DAWs with breath controllers and a keyboard, aside from this being the most noticeable difference.


Sean, glad to hear you’re also loving IW. Did you see my recent threads on this?

Yeah, I just wanted to post about CC1 separately from note timing as my post was becoming a novel on two different points… and where this point specifically affects other libraries. VSL users are accustomed to a more dynamically flat library, unlike Spitfire where they basically recorded most notes as crescendos. They’ve said as much, and you can look at the raw recordings in Kontakt to see it in many cases. And yes, Infinite is genius and Infinite and Dorico could be a fairly competitive pairing.

A friend of mine is bent on having the two work together and asked me to help him set it up. I own Infinite too, so I’m curious to see how much Dorico can impress perform. A lot of it does already. At very least, Infinite is probably the best library to test the playback engine to its fullest.

Oh hey… I think you replied to my post on VI. Thanks, and sorry I never got back to you.

Yes, you can edit CC values! I’ve never done it myself, but my little Studiologic fader just arrived in the mail, so I’m hoping to try it out this weekend. I’m hopeful about Infinite.

np, but I don’t mean with a fader or even a single point value.

When you mark SFZ, the CC lane populates with a drawn SFZ performance. I want to be able to have drawn performances added for every half note, whole note, etc. I want Dorico to constantly change the CC data, so it’s not just a flat inhuman sound. This is what I’m trying to figure out.

Dorico doesn’t currently automatically ride the CC1 controller during playback, but I agree that this is something we should add. If you have any specific thoughts about useful defaults for this kind of automation, please let us know.

I wonder if as a long term solution, machine learning could be the way to go here. I know NP does this, but other sample libraries don’t. I don’t know to be honest if this is best left to the sample libraries to introduce, or for host programs like Dorico. I can see advantages to doing it in Dorico as Dorico has full access to all the information required. This really could take interpretation to a new level.

A super basic but useful default could just be to crescendo when ascending and diminuendo when descending. The ability to apply the reverse of this would be benficial too. At least for flute playing, in the Baroque period the high register was supposed to be light, and the bottom heavy, but this default had switched by the Romantic period where the upper register typically was for the dynamic climax of the phrase. The ability to reflect these basic settings would at least give the user a start on some more convincing playback.

If using the cresc when ascending - dim when descending simple default, another basic setting like not increasing the volume for the last note of a descending line, even if it jumps up, would also be useful. For instruments that have the ability to crescendo a held note, a setting to allow a little poco fp and then poco cresc for notes over a certain length would be nice. Likewise, some sort of similar setting for repeated notes.

When teaching phrasing for woodwind students, I often use “Tone Development Through Interpretation” by Marcel Moyse and “Interpretation: How to Shape a Melodic Line” by Peter-Lukas Graf. Settings to automate dynamic expression based on some of their principles and dynamic markings could be helpful.

Sibelius used to do that back in the “Daniel era”. (Maybe it still does, I don’t know…)

But usually, the results were a mess, because it was contradicting the basic idea that bars start with a downbeat.

I don’t even have a version of Sib installed anymore. Did it do this with CC#1? What sort of user controls did it provide? Dorico of course has a beat stress control setting, so it would have to somehow interpolate the existing settings into any automated CC#1 dynamics.

I honestly cant remember, but it probably used note velocity or an equivalent controller, not a CC that controlled timbre.

IIRC the only user control was a few preset levels (including “off”).

One big problem was that if a melodic line jumped by an octave (either up or down) the dynamic level did the same, regardless of the rhythm, so you often got a huge false accent. It also put “back beats” on every tonic-dominant bass line where the 5th was a higher pitch than the root of the chords.

If you have a part like the attachment you probably want the accent on the second top E, not on the first one which is where the Sib implemenation put it.
octave jump.png

This sort of CC automation could be helpful - however, there is a secondary issue. Looking at CC1 values, not all instruments would place mezzo-forte at the same point - is it CC1 64? Maybe, maybe not. There may be different CC curves between instruments. Also, CC1 may not always connect with amplitude in a predictable way, and the behaviour of the instrument in different registers (ex. the flute quiet in low register and loud in high register) is not always properly addressed due to sample normalization.

Typically, these sorts of issues can be addressed when someone plays notes into a DAW with these libraries, because they would just shape the CC’s in a way that balances the different instruments approximately. However, Dorico would not know this - to get really good results, you would almost need to be able to define curves for the CC’s, a curved registral response (ex. in this register, the minimum amplitude is X and the maximum amplitude is Y), and even different articulations (ex. if artificial harmonics are normalized in strings, they may be too loud). Arguments can be made regarding whether it makes sense to do this sort of thing in Dorico or whether it makes more sense to do it in the sample player (ex. Kontakt) but it really should be done somewhere, otherwise you are still stuck inputting CC’s manually to get things to balance in a proper way. I haven’t found any good scripts or solutions for doing this sort of thing before - it seems people haven’t bothered with this in the past because since the CC curves have been entered manually in a DAW it just wasn’t seen as that important.

1 Like


Thanks for listening! I’ve bolded 4 main points:

Default Values via Dynamic Context:

The fp< on the last note does two things: 1) players often emphasize the end of a note, so this does that, but not at the very end when release samples add more to this (especially w/ very wet libraries like Spitfire) 2) at a ff dynamic marking, players tend to get subtractive to keep the dynamics fluid instead of aiming for ffff to sweeten the music. The Tuba really breathes here and comes to life. If this started at a lower dynamic, it would just need a cresc-dim on it. I’d suggest that the default settings for longer notes morph from <> to fp< as the marked dynamics is raised.

For shorter notes, I’d have the curve turn into a simple diminuendo, subtler at lower dynamics.

How to make such a feature even better, if not right away:


Peter & the Wolf (at the end, though each example and screenshot above benefits from this point as well)

The legato passage is essentially one long crescendo, even though only the end has a hairpin. Being able control this in relation to a slur, articulation, technique… there’s more to think about here than just note length. Perhaps this doesn’t have to be as involved as reading musical context the way noteperformer does… or rather, perhaps this could allow users to essentially craft their own noteperformer-esque settings into Dorico. Most importantly, where every sample library is different, I’d have a master setting and an override setting in the expression map to allow for how exaggerated this feature should be. Infinite, Spitfire, VSL, OT, EW, 8dio, and many more all behave so very differently.

I’m not sure if this is the most helpful way to address this up front, but it’s a start to thinking about decent defaults for most libraries to take advantage of this. And, IMHO this would actually help make more non-notation-friendly libraries behave more consistently for notation. That’s a massive plus for out-of-box realism.

I see your point, but that’s more sample dev related as inconsistent sampling is best fixed inside the VI. Exp. maps can mitigate to a point already at least, and you can override the dynamic weight. weight per the range isn’t a bad idea, but it’s also global and not polyphony friendly for most vst’s. Where within the instrument, all of this is adjusted with more ease. Most devs support it already too. Spitfire, VSL, OT, EW all support this currently, if it helps to know.

Yes, I do this in VSL, but I haven’t found this control in Spitfire Chamber Strings, which is my main strings library. It is a shame, because I would like to be able to adjust this. Since it is Kontakt-based however, I could probably adjust it manually or with the help of an external Kontakt script. This also doesn’t take care of the behavior of the different registers, since there could be a few different problems - the difference in amplitude between registers may not be properly represented or be too wide or narrow, the difference in timbre between registers may occur in different places, and fixing those things by rebalancing the samples would take forever and you would have to redo all the work each time a new version of the library comes out.

Ok, I’m running into another problem. When I play IW into the score, I get this, which sounds as I want it:

I want it to look like this:

But when I change the notes to 8ths and add staccatos, the performance isn’t preserved as I had played it in… it’s uneven.

EDIT: I see that “Reset Playback Overrides” doesn’t ruin the “realistic” performance, and CC values are preserved. So that’s fixed.