More often than not, the MIDI velocity value serves its namesake purpose, directly controlling the amplitude of a sound to simulate the fluctuating dynamics of striking an acoustic instrument at different "velocity". That same variable-strike effect is sometimes better achieved by controlling less obvious parameters, like modulating the frequency of a filter or the release time of an envelope for dampening on "softer" hits.
These specific cases really only hint at the possibilities of what MIDI note velocity can control - indeed, it might be better to eschew the name "velocity" entirely and think about it in its more generally applicable way. After all, velocity is just an arbitrary number from 0-127 tied to each MIDI note, and with a little bit of experimentation and setup you can apply it to all sorts of interesting functions that have nothing to do with velocity in the traditional sense. In this article, we'll explore velocity as an versatile modulation source.
Velocity adds an extra dimension to every MIDI note we play or write into the piano roll, lending a more exciting human feel to digital instruments. To expand its expressive potential even further, we need to make MIDI velocity information control other parameters, much like translating one language into another.
Live's instrument devices - and indeed many external VSTs as well - are already setup with dedicated controls for the amount velocity modulates specific parameters. For example, Operator is pre-routed to let velocity influence an oscillator’s frequency.
Wavetable takes this principle much further with its MIDI modulation matrix, allowing you to quickly route velocity information to almost any parameter in the flexible synth.
These means of translating velocity into instrument controls are straightforward, but limited to just a select few instruments and parameters. In most cases, there’s no dedicated "velocity to..." knob to be found. So if we want to break out of the mold and let any parameter in on the velocity-sensitive goodness, we have to find a general solution - a way to translate the language of velocity into all other languages.
To do so, we can use a free Max for Live device you probably already have but never use. It’s called Expression Control, and it’ll be our Rosetta Stone. It comes in Live 10’s Core Library, so you can find it already installed in the Max MIDI Effect folder if you have Live 10 Suite. If you're using an earlier version of Live or simply can’t find it elsewhere, it’s also included in the free Max for Live Essentials pack.
The basics of velocity in the Expression Control device are simple - just press the Map button in the velocity row and then click any parameter you want to modulate with it.
Expression Control can also map other MIDI control values besides velocity, such as pitch bend and aftertouch, but for this article we’re just going to focus on some ideas for mapping velocity.
Simple Velocity Mappings
Let’s begin with a few basic mappings and get a sense of the possibilities. Suppose I’m starting with a clean sounding instrument with few harmonics but I want it to sound dirtier the harder I play a note, similar to how a guitar or Rhodes might dynamically overdrive a tube amplifier when played more aggressively. I can simulate this effect with a distortion effect that responds to velocity.
First, I’ll add a Pedal device set to OD for subtle grit and use Expression Control to map MIDI velocity to Pedal’s Dry/Wet amount. I’ll tame the amount of distortion by pulling back the Max modulation amount on Expression Control (here representing the maximum Pedal Dry/Wet percentage) to 30%.
As it's set up so far, there will be unnatural, immediate changes to the distortion amount whenever velocity changes. To prevent such jerkiness, I'll adjust Expression Control's Fall value to around 100ms, smoothing the shape of the velocity signal and essentially creating a release contour for the distortion amount.
Now when I want softer, sweeter chords for a verse I can play more lightly on the keyboard and then really dig into the chords in the chorus section for a more powerful and aggressive sound.
This kind of expressiveness is great for accomplished keyboardists or pad bangers, but if you're used to inputting notes with your mouse you may wonder if it’s even worth the trouble. If this is you, perhaps it’s more helpful to consider velocity as a way to modulate parameters on a per-step basis without having to draw complex automation curves. For example, I have a shortened metallic sound from our upcoming Brew sample pack that i played by hand and quantized to straight 16th notes, then brought down all the velocity values to 1. The resulting loop (unmute the gif below) ends up sounding pretty repetitive and boring.
After mapping velocity to Corpus’s Decay and Dry/Wet and drawing a pattern of note velocities to the clip, the static 16th note repetition transforms into a groove that feels much more alive.
Working this way allows me to alter the qualities of each step in a sequence independently. Note that I’ve turned the "velocity to volume" parameter on Simpler down all the way so that the volume stays constant regardless of velocity. All the variation you hear is coming from modulating Corpus.
I've grouped these two simple examples of velocity modulated effects into racks and you can download them all (along with 24 other instrument and effect racks based on what we cover throughout this article) by clicking the link below. For the instrument racks, simply drag any instrument onto the gap in the rack and you're ready to go.
Expressive Instrument Layering
Adding Ableton’s rack-specific features into the equation never fail to up the possibilities and velocity modulation is no exception. All instrument racks have Velocity Zones - filters that let MIDI notes pass through a chain based on their velocity.
Using these velocity zones, you can set up discreet events that only happen when a note's velocity falls within a certain range. In the examples below, for instance, I’ve augmented a regular Rhodes sound with a ride cymbal and trumpet stab, but these extra layers are only triggered by high velocity notes. This first clip is just the Rhodes alone.
The second is the velocity-layered rack. The layered result sounds like a full jazz ensemble intro, but it’s all just a single instrument rack on a single track triggered by a single MIDI clip. Setups like this can add a lot of dimension to a live set without having to resort to backing tracks or growing new limbs.
Velocity zones can also be used for smoother, continuous layering of velocity-based instruments by fading overlapping velocity zones. These fades add more dynamics to the ride and trumpet parts, giving them a more human feel.
However, for this to sound good each instrument will need to be velocity sensitive to begin with because the velocity zone fades are attenuating MIDI note velocity rather than the resulting audio. If your instruments aren't velocity sensitive, you can find a workaround by using Expression Control to map velocity to the rack chain selector.
Here I’m using velocity to continuously cross-fade between two chains, each containing different instruments. A soft, pad-like instrument is heard at lower velocities while a more aggressive, transient-heavy instrument is heard at higher velocities.
You could also set this up to add a velocity-dependent instrument layer over an unchanging, foundation instrument. In the example below, the foundation instrument lacks any defined transient and is always at full volume regardless of the velocity. A transient-heavy instrument is added to that top layer as the note velocity increases.
Not only does the keyboard feel more alive and dynamic with this setup, it also gives me more direct control for conveying emotion in the track. I just increase the note velocity on sections or individual notes that I want to be more unstable, tense, or dramatic.
Expressive Effect Layering
Modulating chain selectors with velocity isn’t limited to instrument racks; it also works wonders in audio effect racks and drum racks.
In this example, I used velocity to control how much reverb is added to the snare hit on a per-note basis. The harder I hit the pad, the closer I am to living in the 80’s. This configuration lets us think about Expression Control’s Fall value as a pseudo-decay on the verb tail. We can shorten it to a tight, stacatto gated reverb sound or lengthen it for a contoured, semi-natural reverb tail, or anywhere in-between.
For a more experimental take, try delays with ever changing parameters. Here I’ve made a rack with a dry/wet chain selector and a Simple Delay on the wet chain. Velocity influences multiple factors - the Dry/Wet chain selector, Delay Feedback, and R+L Delay Times. The sound can get out of hand quickly with so many things controlled by velocity, so I’ve added a volume control for the wet delay chain and Rise/Fall controls for everything. Scaling the delay time by lowering the Expression Control's Max parameter was also added as a rack macro to be able to set low delay time values for dynamic chorusing/flanging effects.
With a rack like this, you can drop in any number of different instruments to quickly add some wackiness to them - play softer and the sounds approach their normal timbre, play hard and crazier things will happen. Or set a higher Min than Max value to invert this relationship. In this particular case, a high-velocity held chord will extend in a high-feedback, long delay time loop until the notes are released, creating a cool sci-fi effect.
The effect racks we've explored so far lower the volume of the velocity-dependent effect chain either immediately or gradually based on the Fall value, essentially cutting off any lingering effect tails. This configuration worked in our favor for gating the snare reverb, but what if we wanted a velocity-dependent reverb or delay tail to decay more naturally?
To do this, we’ll need to use velocity to control how much audio is sent into the effect, rather than controlling volume of the post-effect signal. The solution involves first setting up two chains in a rack like we've previously done, but this time we won’t fade between chain zones or even use the chain selector at all. Rather, we’ll use velocity to modulate a Utility's Gain at the beginning of one of the chains, causing audio to flow into the wet chain when velocity is high. Like most effects on return tracks, it often makes sense to set effects on the wet chain to 100% wet and control how much effect is applied by using send amounts.
The difference of sends compared to the previous examples in this article is that audio volume is controlled via velocity pre-effect rather than post-effect. This way, if a time-based effect is added to the wet chain, all of those delicious verb or delay tails are able to ring out unimpeded, even when the signal is cut off from those effects as velocity is lowered.
I found that modulating gain both pre- and post-effect had some of the most sonically pleasing and musical results because it incorporates natural decay while mitigating the messiness of several overlapping effect tails. Experiment with these to find the right balance for your particular sound.
You can accomplish the same thing by using velocity to modulate a send into an entirely separate return track with a reverb or delay, but I prefer to have the whole sound on a single track, neatly tucked into a rack. Luckily, Drum Racks come internally wired with send and return channels that can be used for just this.
To add some spice to a Drum Rack, try adding a delay to a Drum Rack's effect return channel. Then, map velocity to a Utility's gain at the start of the effect return chain and simply raise the send value for whichever specific drum hits/samples in the rack you want to have a delay. Setting it up this way saves you from having to tediously map each send value individually to Expression Control..
Return track effect chains don't have to be as simple as a single delay device - they can be as complex and intricate as you'd like. Whether you create saturated multi-tap dub delays or wobbly reverbs is up to you, but incorporating velocity sensitivity into these can add that extra bit of dynamics to your sound.
Velocity By Chance
For all of the previous examples, we were talking about controlling velocity (and thus modulation) directly in a straightforward, deterministic sense. You intentionally play each key harder or softer on the keyboard or you use your mouse to alter each note’s velocity on the piano roll. But there are many ways you can process MIDI velocities after they exit your keyboard or MIDI clip but before they’ve hit any of the instrument racks or effect racks.
Processing velocities in this way can accomplish two goals. First, using a MIDI velocity compressor reigns in an undesirably large range of velocities. Second (and conversely), velocity processing can add fluctuation and randomness to the velocities. When velocity is used as a modulator, randomizing it adds some random variation to any parameter you choose.
For example, lets take another look at the 16th note clip from earlier where velocity modulates a few Corpus parameters. Adding the Velocity MIDI device with increased Random creates a pattern where every 16th note sounds slightly different and the pattern never repeats. When cranked, Random totally destroys the original groove. Dial it back to 9 o’clock and the result is straight 16th notes with enough sonic variation to keep the listener engaged but with subtle enough variation as to not hinder the groove.
This setup of randomized velocities controlling multiple parameters turns a boring MIDI clip practically devoid of information into a seed that grows more interesting results. You end up with wild sonic variation when velocities are highly randomized or tasteful and subtle humanization when velocities are slightly randomized.
You can find out more about adding variation to MIDI note velocities in our previous article on the subject. While you’re there, think about ways you can combine the velocity-mapping discussed here to the velocity processing techniques in the other article.