Expression Maps

GM protocol…CC11 is usually expression volume for doing gradual changes to gain/volume…such as crescendo and sforzando effects and is relative to the main channel volume. Velocity does instrument amp/bus volume (usually relative to expression volume, but some instruments might have the latest event of either expression or velocity over-ride…depends on how an instruments amps/virtual signal busses are designed…some might even be configurable at patch level to work either way). CC7 is the top level, true channel volume, and all dynamics for instruments on the channel ‘scale’ with it.

Not sure about Spitfire, but some libraries do use ‘both’ in ways that aren’t exactly conventional for GM protocol. CC11 for gain level and/or changing or crossfading among sample layers. Example String Instrument: Velocity for changing among layers of samples and/or the first attack time in the amp and/or filter driving envelopes (higher velocity leads to a shorter amount of time ramping up amplitude, and might alter filter resonance/levels/ranges or open/close gates to frequency exciing/damping effects at higher velocities…the time/amplitude/filter envelope variable changed by velocity might also be somewhat impacted relative to the expression controller value), while a continuous controller is used to manage the overall volume of the instrument. Sometimes the effects of the velocity control is pretty subtle (or simply doesn’t kick in unless approaching the full velocity of 127), but still there. Adding a pedal event (CC68 or CC64) might even get rid of the initial attack time all together, while extending the release time (legato effect).

It’s conceivable that some libraries might separate many things on purpose, for total DAW control of many things independently. Maybe expression only scales the overall maximum volume, while velocity changes the sample layer, and yet something else might control attack time, and so forth. So, dive into the manuals with instruments, experiment, and where an instrument allows, even look into the design parameters/patches themselves (some are even quite user configurable).

Some libraries give the user choices. Example: HSO that ships with Dorico has a page in its control macro where one can change the main amp volume between a number of methods, and it also has a user adjustable dynamic curve. If one wanted to play a true GM MIDI/SMF file using HSO, he’d want to change the default HSO instrument’s dynamic control from CC1 to Key Velocity.