If @dspreadbury or Paul are reading this, perhaps an example can illustrate the issue more clearly:
Here is the number of dynamic layers available in Berlin Percussion snare (seen in Kontakt version):
Since this is a lot of layers, it’s relatively easier to get them to match to Dorico’s dynamic curve. Very helpfully, Berlin libraries also provide additional tools - a way to compress the range (Vol. Range at bottom left) and an option to remap incoming controller velocities with either freehand drawing or applying common presets:
For velocity based instruments like that snare, the remapped curve might end up looking something like this, with very specific cut-off points that move from one dynamic to the next:
But another library from Orchestral Tools (Berlin Woodwinds) has a totally different range of dynamic layers recorded. Here is the flute:
Given the physical construction of a flute, it makes sense to have exactly these layers as the most characteristic representation. But in order for this flute to respond properly to Dorico’s written dynamics, the expression curve might have to look something like this:
Of course this is not possible to achieve in Dorico - it seems to have a fixed center point and a single curve type.
Other libraries, such as Sample Modeling, suggest that the mapped range should not extend beyond CC11 value 95 for common (nat.) articulations and values above should be used for special purpose/articulations:
Perhaps a curve like this might be more appropriate here, limiting output at 95 for specific articulations:
This is obviously also not possible in Dorico. The most I believe it can do is apply a high curve power value (perhaps 4?) but from my experiments it appears to simply stop bending above a certain point even while accepting higher and higher curve number.
Even more frustratingly, Dorico is obviously making and applying calculations for the basic curve it uses, but they are not visible to the user. The only way I’ve found to match these is by manually trying various combinations of curve power index and the restriction/reduction of the controller range.
The problem with this mismatch is the volume balance in the mockup. The wrong dynamics are triggered too often, forcing the user to adjust via volume gain and drawing automation to balance volume instead of building expression.
But many instruments have specific and characteristic sound color at the given dynamic levels (especially woodwinds, brass and a lot of percussion) and they end up sounding out of place regardless of the volume gain applied.
If I’m having a major misconception about this topic, I would really appreciate a clarification and correction. If not, perhaps it’s possible to consider user adjustable dynamic curves for Dorico 5? Many thanks!