MIDI Velocity Dynamics Calculator
Transform raw MIDI velocity values using linear, soft, or hard curves to shape how dynamically expressive a performance feels. Ideal for producers and keyboardists tweaking touch response in DAWs or controllers.
About this calculator
MIDI velocity is an integer from 0 to 127 representing how hard a key is struck. A linear curve passes the value through unchanged. A soft curve applies the formula: output = (input / 127)^1.5 × 127, making quiet notes quieter and reducing overall dynamic contrast — useful for gentle pads. A hard curve uses output = (input / 127)^0.7 × 127, boosting mid-range velocities so the instrument feels more responsive. A custom compression mode scales output = input × (dynamicRange / 90) × compressionRatio, letting you narrow or widen the usable velocity window. Understanding these curves helps you match your keyboard's physical response to the virtual instrument's sensitivity, producing a more natural, expressive performance without manual velocity editing on every note.
How to use
Suppose you play a note with an input velocity of 80 and want a soft curve. Step 1: Normalise — 80 / 127 ≈ 0.630. Step 2: Apply the exponent — 0.630^1.5 ≈ 0.500. Step 3: Scale back — 0.500 × 127 ≈ 63.5, rounded to 64. So a moderately hard keystroke (80) becomes a medium-soft note (64), making the performance feel gentler overall. For comparison, the same velocity on a hard curve would give: 0.630^0.7 ≈ 0.736 × 127 ≈ 93 — noticeably louder and more present.
Frequently asked questions
What MIDI velocity curve should I use for realistic piano playing?
For realistic piano emulation, a slightly hard curve (exponent around 0.7) is usually best because acoustic pianos are very sensitive to touch in the mid-velocity range. Most pianists strike keys between velocity 60 and 100 for normal playing, and a hard curve spreads those values out so the virtual instrument responds more expressively. You may also want to experiment with your controller's built-in velocity sensitivity setting alongside the software curve. Always record a short test performance and check the velocity histogram in your DAW before committing to a curve.
How does MIDI velocity compression ratio affect dynamic range?
A compression ratio above 1 effectively amplifies the velocity signal, pushing more notes toward higher dynamic levels and reducing the contrast between soft and loud playing. A ratio below 1 attenuates velocities, making the overall performance quieter and more uniform — similar to a compressor on audio. When combined with the dynamic range parameter, you can tightly control the band of velocities the instrument actually uses, which is helpful for genres like EDM where consistent, punchy hits are preferred over wide dynamic swings.
Why do MIDI velocity curves use a power function instead of simple multiplication?
A power function (exponent applied to the normalised 0–1 value) produces a smooth, continuously variable curve across the full 0–127 range, unlike a linear scaling factor which just shifts the slope uniformly. Exponents greater than 1 compress the upper range while leaving low velocities largely unchanged; exponents less than 1 do the opposite. This mirrors how human perception of loudness is non-linear — we are more sensitive to changes at quiet levels than loud ones. Power curves therefore feel more natural and musical than simple multiplication when remapping touch response.