Dynamics Values In Dorico


As we are unable to define our own dynamics playback values in Dorico, I am curious as to the rationale for the assigned values.

I find the present values to be rather erratic, not terribly effective and do not use the full dynamic availability. I feel that an even spread of values would offer more realistic and convincing results. I am aware of the ‘Dynamic Curve’ in ‘Playback options’ but this has minimal, if any, effect on playback and no change at all on the values shown in exported MIDI files whatever value I enter there.

I realise this can all be reworked in a DAW but it is quite a lot of work especially when humanizing. Here are the values shown in the Dorico MIDI file and an example of an even spread of values.


It appears that there is a bug, and you are the first person to spot it… It turns out that the value of the Dynamic Curve in the playback options isn’t respected when calculating note velocities (however it was used when calculating the CC for sustaining instruments that use mod wheel for dynamics). I’ve fixed this and it will be in the next update.

The rationale behind the calculation of values is that there are a number of conflicting requirements:

  • scores may have dynamics that can range between 8f and 8p
    – most scores probably use ff to pp
    – a smaller number will use ffff to pppp
    – a very small number would use the whole 8f - 8p range
  • in any given score, when there’s a change of dynamic you want the new value to result in a different velocity (or CC)
  • some instruments are over-sensitive and ppp can be too quiet or fff too loud
  • some instruments are under-sensitive and there isn’t much variation over the range

If you use a linear range as you have then you can’t represent the whole of this range. So instead we use a dynamic curve (technically an ‘Easing In/Out Curve’) which is roughly linear in the middle, but saturates at each end. This means that you get a reasonable variation between p and f, but at the expense of less variation between fff and ffff, and even less between ffff and fffff. However, because those are rare, that’s usually a good trade-off.

For dynamics pppp and ffff, here are the velocities you get (after my fixes and with beat emphasis and humanisation turned off):
Curve power of 1, range: 26-103 (this is linear)
Curve power of 2, range: 10-118
Curve power of 2.5, range: 7-121
Curve power of 3, range: 4-124
Curve power of 4, range: 2-126
Curve power of 6, range: 1-126

In the Dorico playback model that you can have a separate dynamic for each instrument as that can be set in the expression map (although there isn’t yet any UI to set this). This can be used to balance out variations between different patches. You will find that there is an enormous variation between patches, even often within the same library. The results you get will depend on the VST instruments you use and the range of dynamics in the score.

As a rough rule of thumb a curve of 2-3 is reasonable default for scores that have dynamics between pppp and ffff. For scores that only have dynamics between pp and ff then you might find a curve of 4 to give you more variation.

So there should be, if the library is supposed to simulate real orchestral instruments. For example the dynamic range of a real oboe is tiny compared with a French horn.

Of course people who don’t have much experience of real instruments often don’t care about such things - not until a real orchestra tries to play their music and they discover than a tune written for alto flute accompanied by three trombones just doesn’t work in real life!

Hello Paul,

Thank you for your detailed reply; it’s very much appreciated.

It also explains the lack of variation when changing the Dynamic Curve value; I’m impressed you’ve fixed this bug so promptly and am looking forward to the next update.

Best wishes,