As you all probably know, MIDI velocity data is part of each MIDI note message that's played and recorded. It corresponds to how hard (technically, how fast) the note was played, and it almost always has a significant effect on the sound. Most virtual instruments are programmed to mimic the behavior of real acoustic instruments in this regard. When a note is played harder, corresponding to a higher velocity, the sound of the virtual instrument changes in the same way a real one would'"it's louder, brighter, and, often has a sharper attack. Of course, this is a critical aspect of a dynamic musical performance, and that's where problems can crop up.
When a patch for a virtual instrument is created, the programmer or sound designer has to set the velocity response of that instrument, so a performer playing on his/her keyboard will hear the changes in level and tone he expects to hear, as he varies his musical dynamics in performance. The first problem is that everyone has a different model of MIDI keyboard/controller, and they all have very different velocity responses! With some (unweighted) keyboards, even a fairly light touch will generate high MIDI velocities, making it very hard for players with a slightly heavier touch to play quieter passages expressively and convincingly. Other (weighted) keyboards might have to be really pounded to achieve the highest velocities, making it difficult for players with a softer touch to generate the loud, bright, sharp notes needed when the music really kicks.
Fig. 1 MIDI velocity curves (from an E-MU keyboard).
Some physical keyboard controllers have onboard velocity curve settings to help match controller response to instrument response, and this often does the trick for live performance, but there's another situation where velocity issues frequently come up. Let's say a musician brings his Logic project to another studio, where they have some third-party instruments that he prefers to the ones he used when he recorded the MIDI performances. He wants to re-direct his MIDI sequence tracks to some of these instruments, taking advantage of their superior sound and realism, but when he does, he finds they don't respond the same way to the velocities in the recorded MIDI performance. So the sound of the new instrument is great, but the mismatched velocity response makes the performance sound clunky and amateurish. Obviously, a controller's velocity curves won't be of any help here, but fortunately, Logic itself has several ways to adjust velocities, either for live playing, or for pre-recorded MIDI tracks, as in this last scenario. One method involves a trip to the Environment, so I'll skip over that one for now, and cover two approaches which are much more straightforward to implement.
Velocity levels can be remapped in the MIDI Region Inspector pane, to the left of the Main (Arrange) area.
Fig. 2 The MIDI Region Inspector in Logic: Velocity & Dynamics settings.
To change the velocity response of a MIDI region to match a different instrument's response, you can use the Velocity and Dynamics settings. Velocity simply adds or subtracts overall velocity to the values in the recorded MIDI Region. But Dynamics is kind of a velocity compressor/expander. Since MIDI velocity values range from 0'"127, this control pivots around the halfway point'"64. Dynamics settings below 100% will lower the loudest velocities and raise the lowest ones, in effect making the performances sound more tightly controlled. Values above 100% do the opposite'"raise the highest velocities further, and lower the lower ones, for a more dynamic performance. The velocity setting can offset the modified performance, until all the velocities are well matched to the expected response from the instrument. This velocity re-mapping can even be applied to live incoming MIDI performances, by deselecting all MIDI regions, until the Inspector title, at the top, says 'Region: MIDI Thru'.
The second approach utilizes the new Velocity Processor MIDI plug-in. One would be inserted in an instrument track, and when you open it, you'll see three options for velocity re-mapping, via the 'Mode' popup, in the middle.
Fig. 3 The Velocity Processor MIDI plug-in.
'Comp./Exp.' is the most flexible. It lets you visually dial up any velocity response curve, which, as you can see, re-maps the velocities just as most keyboard controllers with that option do. But the velocity mapping in this MIDI plug-in will also be applied to any pre-recorded MIDI Regions on that track, as well as to live incoming MIDI performance data.
Fig. 4 The Velocity Processor: Comp./Exp. Mode: Dial up a custom velocity curve.
The second option, 'Value/Range', lets you compress, reverse, or fix the velocity response, when necessary.
Fig. 5 The Velocity Processor: Value/Range Mode: Fix, reverse, or compress the velocity range.
The third option, 'Add/Scale', works exactly like the Velocity and Dynamics settings in the MIDI region Inspector pane: Scale = Dynamics, and Add = Velocity.
Fig. 6 The Velocity Processor: Add/Scale Mode: Compress/Expand & offset the velocity range.
The nice thing about the MIDI plug-in is that it can be saved with an instrument patch, so if most of your virtual instruments respond properly to your keyboard's velocity, but you have one or two that don't, you can re-map the velocities just for those instruments, or patches, and re-save the mapped version, which will then respond as it should, every time you recall the new mapped patch, in any project.
So, with these various ways to tweak and re-map MIDI velocities, Logic really does have all the bases covered, when it comes to getting the most out of virtual instruments'"one of these methods should surely do the trick, any time a MIDI velocity issue rears its head!