Velocity vs. Dynamics

Dear Steinberg team, just a question to understand this properly: Dynamics is determing how the player plays e.g. with low/high pressure on the bow on a violin and velocity just the decibel/loudness of the played back sample? I encounter this strange phenomenon that Noteperformer and Halion Sonic act exactly opposite:

With Noteperformer, the velocity in the beginning of the picture gets ignored (same sound/loudness for all four notes) but the different dynamics get played back differently.
With Halion Sonic, the velocity in the beginning gets played back differently and the dynamics in the second half get ignored. So can you “trash” one of the lanes depending which one your sample library is “using” or is there a case where editing both lanes at the same time makes sense?

Best regards

Note velocity is not used to control dynamics for sustaining instruments like violin, because the player can change the dynamic level during a sustained note. The dynamics are controlled by a MIDI continuous controller, often CC1 or CC11. The Expression Map tells Dorico which controller to use.

For instruments where there is no control over the dynamics after the note has been played (e.g. piano, harp, percussion, etc) note velocity is used to control dynamics.

Some sample libraries that use a CC for dynamics also use note velocity to control some other aspect of the sound, for example its timbre. In any case, every MIDI node always has a velocity, and even if it is ignored Dorico displays it and you can edit it (but editing it may have no effect on playback).

The idea of the dynamics lane is to show the same representation of dynamics for all VST instruments, independent of how they are actually controlled. But if you edit the MIDI data directly (e.g. the note velocity, or a particular MIDI controller) then the displays in play mode may be confusing, because you are telling Dorico to do different things at the same time.

What seems clear is that the dynamic lane refers directly to the approximate dynamics (excluding of course the humanisation aspect) of what is shown in the velocity lane, even if this may be actually controlled by a CC. In the automation lanes, it remains that only manually added data as opposed to recorded/notated data is shown. As Rob says, every library has its own implementation of dynamics with the crucial difference being that a sustained note cannot change dynamics after the initial note on when controlled by velocity so if dynamics use velocity as primary then there must be an additional controller entry. Putting this in the dynamics lane has no effect if dynamics is mapped to velocity.

Noteperformer duplicates the volume dynamic to velocity in the Expression Map making it clearer and easier to use the dynamic lane than with some other libraries – I still find VSL somewhat confusing with the combination of velocity, CC and optional VelX controllers for instance.

Dorico expression maps can duplicate the volume data, because in NotePerformer some instruments respond to a CC and others to note velocity. The creators of NotePerformer decided to create one (very large) expresssion map that controls every instrument in NP, rather than separate expression maps for different instruments like the Halion sound library.

In fact, the earlier versions of NP used CC data to control everything including piano etc, but it was then impossible to have different notes played simultaneously with different dynamics, which is an unrealistic limitation. CC data works well to control the dynamics of monophonic instruments, but not polyphonic ones. (A violin would count as “monophonic” for dynamics, because even though in real life you can play two sustained notes on adjacent strings, you don’t have much independent control over the dynamics of each note).

Still something that’s puzzling me here. If you take both NP and the built-in Halion, you can control the volume over a single note of a violin using a CC as primary dynamics controller. With VSL in Sibelius you can do the same. With VSL in Dorico however, any hairpins or other dynamics within the note and showing up in the dynamics lane are ignored, irrespective of what the primary dynamic is set to. You need to insert in the appropriate CC a specific dynamic indication. This should not be necessary. This means as far as I can see that either a) Dorico behaves in a different way from my understanding b) there is a fundamental fault in the dynamics control in the Cubase Expression map I based my own ones on though I can’t see how c) there is actually a bug in the way things are implemented in Dorico though that would also seem rather unlikely.

VSL (Vienna Instruments Pro) users, are any of you having the same issue? If not what are your settings in VI and Dorico for basic dynamic control?


Surely the problem is that you aren’t specifying the appropriate controllers for volume in the expression map you’re using for VSL. You need to take a careful look at it to make sure you understand what controllers are being sent, and whether that matches what your sounds actually require.

I’ve just realised I’ve done something completely daft. The Cubase Expression map for strings requires manual dynamic controller adjustment for every single articulation, not just a global setting and I forgot to do this while correcting the Cubase articulation assignments which are useless in Dorico if you use the standard VI Pro presets. As it defaults to Vel for dynamics (which is curiously what VSL recommend for notation software despite the obvious drawbacks), that means changing all used techniques. Up till 3.1, I’d just been sticking with velocity but in now trying to get a better understanding of how things work with the new dynamics lane – a very nice addition I must say – I missed something obvious. Apologies for time-wasting!

VSL are being pestered on their forum for maps which are designed for Dorico but in the meantime, I just have to soldier on.

If I understand it right, the drawback of using a CC for volume dynamics in the expression map is that you only change the volume of the instrument.
While this is convenient with regard to the dynamics lane in Dorico (what you see is what you get etc.), VSL users are likely wanting to hear a pp sample in soft passages and a ff sample in loud passages. This is only possible with velocity. Gradual dynamics can only trigger different samples when using a controller to change the Vel.XF fader in VSL. This is not always what you want, because velocity’s are then kind of mixed on the crossings, and it puts more load on system.
So, I don’t see an ideal solution. Maybe it’s possible in the future to mirror dynamics into velocity values? But then again the dynamics become to extreme…