MIDI Velocity & Dynamics Calculator
Convert classical dynamic markings (pp, mp, ff, etc.) into MIDI velocity values (1–127) while adding accent weighting and subtle randomisation to mimic human performance nuance.
Last updated: May 2026
About this calculator
MIDI velocity is an integer from 1 to 127 representing how hard a note is played. Musical dynamics map roughly to velocity ranges: pp ≈ 20, p ≈ 40, mp ≈ 60, mf ≈ 80, f ≈ 100, ff ≈ 115. The formula here is: velocity = clamp(1, 127, round(dynamicMarking × accentMultiplier × (1 + (rand − 0.5) × humanization / 100) × (1 + notePosition × 0.01))), where rand is a random value between 0 and 1. The humanization term introduces ±(humanization/2)% random variation, simulating the natural inconsistency of a live performer. The accentMultiplier boosts stressed beats (e.g., beat 1 in 4/4). notePosition provides a slight crescendo effect across longer note runs. The clamp ensures output stays within MIDI's valid range.
How to use
Set dynamicMarking = 80 (mf), accentMultiplier = 1.2 (accented note), humanization = 10%, notePosition = 5. Step 1: Base = 80 × 1.2 = 96. Step 2: Humanization factor — assume rand = 0.6: (1 + (0.6 − 0.5) × 10/100) = 1 + 0.01 = 1.01. Step 3: Position factor = 1 + 5 × 0.01 = 1.05. Step 4: velocity = round(96 × 1.01 × 1.05) = round(101.8) = 102. Clamped to range: 102 (valid). This produces a slightly accented, humanised mf note — exactly what a skilled pianist might play on a downbeat.
Frequently asked questions
What MIDI velocity values correspond to standard musical dynamic markings?
There is no single universal standard, but widely used mappings are: ppp ≈ 10–15, pp ≈ 20–30, p ≈ 35–45, mp ≈ 50–65, mf ≈ 70–85, f ≈ 90–105, ff ≈ 110–120, fff ≈ 120–127. DAWs like Logic Pro and Sibelius use slightly different internal scales. What matters most is the relative difference between dynamics rather than absolute values. Programming a gradual crescendo means incrementally raising velocity across a phrase, not jumping between fixed numbers.
Why should I add humanization to MIDI velocity in music production?
Perfectly uniform MIDI velocities sound mechanical and lifeless because real musicians never strike every note with identical force. Subtle random variation of ±5–15% on velocity (and also timing) is the key to making programmed performances feel natural. Most DAWs have a built-in humanise function, but this calculator lets you preview and control the exact amount of variation before committing. Even classical piano pieces benefit from humanization — the ear is extremely sensitive to robotic regularity in velocity.
How does the accent multiplier work when programming drum patterns in MIDI?
In a standard 4/4 drum groove, beat 1 and beat 3 are typically the strongest hits, beat 2 and beat 4 (the backbeat) are accented differently, and off-beats are softer. Applying an accent multiplier greater than 1.0 (e.g., 1.3) to downbeats and 0.9 to weaker beats creates the push-and-pull feel of a live drummer. In this calculator, setting accentMultiplier = 1.3 for snare backbeats and 0.85 for ghost notes dramatically improves groove. Professional MIDI drum libraries layer velocity-switching samples, so getting velocity right also triggers more realistic sample layers.