Volume spike when using expression map

Hi there,
i wanted to setup a bbc spitfire expression map, but ran into a problem right at the start.
i want to control the volume for let’s say an arco articulation by both velocity and cc1. when writing a line with a sudden dynamik change from p to f, the dynamik will jump to the forte a slight moment BEFORE the note plays back which the forte is assigned to.
So, the cc seems to change in advance.
How can i avoid this?

At the present time, Sebastian, I don’t think you can: Dorico sends the actions associated with a change of playing technique or dynamic a tick or two before the note with which they are supposed to coincide so that the player definitely gets a chance to process them in the right order. We anticipate adding some options to control this behaviour in future.

In VSL, I largely set the main dynamic controller to VelXF (CC2 or 7 – irrelevant) but I want main volume to be controlled by velocity for the simple reason that you can then easily adjust individual note dynamics. Whether they should linked as primary and secondary controllers is still open.

Using VSL VI Pro, the slight spike here doesn’t unduly worry me though it would be useful to know if the default velocity level is actually 100 as appears to be the case. You should surely be able to adjust this as in the Sibelius soundset but I can’t find a way. The question is not irrelevant as there is a much more serious problem with the VSL Synchron player. In this case, Dorico frequently sends brief velocity spikes of 127 without any change in written dynamic making this control method completely unusable. I thought this was perhaps a Synchron bug but Sibelius deals with an identical setup fine. Any ideas?

Dorico doesn’t randomly send notes with extreme velocity without notated dynamics. If you are already at a high dynamic level (ff or fff or above) then you may be near the top of the range, but even then the dynamic curve is such that only values of ffff or higher should ever produce velocities above 120 or so. You’ll need to provide a project that reproduces this problem in order for us to look into it any further.

No, I couldn’t see any reason why Dorico would appear to be sending these dynamics either. If you use any controller other than velocity for main volume then there is no problem. The only reason for desiring to use velocity is ease of editing – Sib.maps the CC value to velocity from what I can see so you make individual note dynamic changes fairly easily but of course Dorico’s piano roll is already a good deal better. If the velocity bars for individual notes could instead be assigned to a CC lane, then I wouldn’t bother. Perhaps there is even a way of doing that I’m not aware of?

Anyway, I’ll take another look as this is certainly an odd one and if still stuck will take you up on your kind offer to send a score.

here is an example of what I mean (obviously you’ll need the VSL Synchron SE vol1 to test). I have exported only the first violin line for clarity. Dynamics are controlled by CC7. When Master Volume is set to Velocity as here (default value 64) , every time there is an articulation change, the velocity goes wild. If it’s set to anything else – e.g CC2 – the playback is as I’d expect. This happens only in Dorico and only with the Vienna Synchron player. It’s irrelevant whether the Player is standalone or within Vienna Ensemble. The behaviour can easily be heard right from the beginning of the score

It could in theory be something in the Expression Map which is somewhat a work in progress but is fine with all the main articulations and anyway, it makes no difference whether velocity is active as a Secondary Dynamic or not. I’m at a loss!
Im Abendrot Synchron - 01_Violin I - Flow 1.zip (712 KB)

Please try this test case using the vst2 version of the Synchron player. You’ll need to delete the vst3 version first and then whitelist the vst2 version.

I did this on my machine. I don’t own these samples, but I do have the Epic orchestra and the Appassionata strings also exhibit the problem. You can also see the issue loading the preset but without loading the samples by observing the velocity histogram to the top left of the plugin screen. With the vst3 version you see a bunch of hits in the histogram that limit at the top of the scale (velocity = 127). With the vst2 version this does not happen.

Great idea but unfortunately it doesn’t make any difference on my system. (Renamed the VST3 version and checked that it no longer loaded and then whitelisted the VST2 one which did then load to make sure I’d done it properly). Are you using the latest version of the synchron player – if not it’s possible this has crept in though again, it is Dorico-specific.

I am using the latest version (1.1.1838)

Perhaps it would be simplest to get back to basics as I cannot find a solution to spiking problem. Basically, the whole point of the Dorico PLAY window is to be able to make easy adjustments to the playback, obviously in terms of note durations/positions but particularly in terms of dynamics. The Dynamics Lane is an excellent addition with v3.1 which enables you to adjust general dynamic levels against the score markings and this works pretty well. However, it is sometimes also the case that individual notes or groups have the wrong level and the obvious way to adjust these is through the velocity editor. If no controller is mapped to velocity, then this feature is useless as seems to be the case with the Halion orchestra.

The ideal is either to duplicate a primary CC dynamic controller to Velocity which is what NotePerformer, for instance, does. Alternatively a fixed velocity could be used. Dorico seems to default to 100 whereas about 80 (the Sib default for VSL Synchron) would be better in my view. I cannot see a way in the Expression Map to set this.

The other possibility would be to allow the Velocity editor to instead be remapped to a CC, thus making it unnecessary to control through velocity at all Obviously the dynamics of individual notes can be controlled through the Automation Lane but it’s a tedious process and not, I’m quite sure, what Dorico has in mind.

Any thoughts, ideas and indeed criticisms of my reasoning would be very welcome here.

If you make velocity the secondary dynamic controller in the expression map, then changes you make in the dynamics lane will be reflected in the velocities Dorico outputs.

yes, Daniel – that is my whole point and why I want to do it! But you surely need to also set Velocity in the VST interface as well, otherwise adjustments in the velocity editor have no effect. The problem is that doing this causes clear volume spikes with the VSL Synchron library in Dorico as can be heard in the previously attached project. is it possible I’m still missing something here?

Decided that I’m better off simply forgetting the idea of velocity. After all, it’s hardly the end of the world having to use the Draw tool in the automation lane and the musical results are clearly smoother doing things the way it seems the Synchron library has intended which is main volume to CC7. For VSL users using the VI interface, the main volume default is actually velocity which is perhaps why it works fine this way. There is a technical issue here but I apologise for making too much of it!

I’ve had a look at this project while I was investigating some problems with expression maps, and I can see a few things that might explain what’s happening in your case. I don’t have the same library as you, but I got similar results with the Synchon STrings 1st Violins. In m.12-13 there’s a big change in the level when you switch from legato to tenuto. The Tenuto entry in your expression map is set to CC7, but it’s in the ‘Shorts’ category of VSL, and these all use velocity for dynamics, so it’s not playing back with the correct dynamic level. I tried changing the expression map to use velocity as a secondary dynamic, but it was still loud. Then I noticed that the keyswitch it’s triggering is ‘Articulation: Short, Vel: Range: Loud’. The D#2 keyswitch is using the loud variant, so that means the ‘p’ isn’t having the desired effect. If you change this to C2 ‘Vel. Range: Full’ then it produces a better result.

So the general rule I suggest is:

  • Longs use CC11 for dynamics (CC7 is intended for master volume, CC11 for dynamics/expression)
  • Shorts use velocity for dynamics (optionally use CC11 for secondary dynamic - sometimes the effect can be too much)
  • Use the ‘Vel range: full’ articulation for shorts