MIDI velocity on piano
Velocity is the number that records how hard each key was struck. It is the difference between a transcription that sounds like a performance and one that sounds like a player piano with a stuck volume knob.
What the number means
Every Note-On message in a MIDI file carries a velocity from 1 to 127. The name is literal: it was originally the speed of the key travelling down, which on a real piano is exactly what decides how hard the hammer hits the string. Velocity 0 is special — it means the note stops, and is an old way of writing a Note-Off.
On a sampled piano the number usually does two things at once, which is why it matters more than a volume control would. A hard strike is not just louder; it is brighter, with more upper harmonics, because a real hammer hitting harder excites the string differently. Good piano libraries switch between separately recorded samples as velocity rises. This is why a MIDI file with correct dynamics sounds like a piano, and the same notes at a uniform velocity sound synthetic no matter how good the instrument is.
What flat velocity looks like
Some transcription tools do not attempt velocity at all. They write every note at the same value — often 64, 80 or 100 — and the result is instantly recognisable.
You will hear it as a performance with no phrasing: no melody standing above the accompaniment, no accents, no shape in a crescendo. You will see it in the piano roll as notes drawn in a single uniform colour, where a DAW normally shades them by velocity.
This is not a small cosmetic problem. A melody in the right hand is audible above the left hand largely because it is played harder. Flatten the velocities and the tune sinks into the accompaniment, and no amount of mixing fully rescues it.
How to check your own file
- Look at the colours. Most DAWs shade piano-roll notes by velocity. A block of one flat colour means one flat velocity.
- Open the velocity lane. Under the piano roll there is a bar for each note. In a real performance the bars vary constantly, and melody notes stand taller than the accompaniment beneath them.
- Count distinct values. Any MIDI library will list them. A genuine piano performance of a couple of minutes normally uses dozens of different velocity values. A handful of values means they were assigned, not measured.
What a realistic spread looks like
There is no single correct range, because it depends on the music. A quiet nocturne may live almost entirely between 30 and 70; a loud passage may push most notes above 90. What matters is not where the range sits but that a range exists, and that the loud notes are the ones a listener would call loud.
Be sceptical of the opposite failure too. Velocities that swing wildly from note to note within a single chord usually mean the tool measured noise rather than playing — the notes of one chord struck together should land close to each other.
Where velocity comes from in Damper
Damper measures the strike of each note from the recording and maps it onto a curve calibrated against hundreds of hand-corrected notes, so the file plays musically as soon as it opens rather than needing a pass of manual editing first. High notes get a small attenuation, because on most recordings the top of the keyboard reads louder than it was played.
Two honest limits. A recording with heavy compression has had much of its dynamic range removed before Damper ever sees it, and no transcription can put back what the compressor took out. And velocity is inferred from sound, not from a sensor under the key: it is a good reading of the performance, not the performance's own data.
Transcribe a recording