Drum Timing Accuracy in Milliseconds: How Close Is Close Enough?
Reference · Milliseconds · Updated 2026-08-16
Ask how many milliseconds off is noticeable in drumming and the answers run from single digits to a hundred. A millisecond figure means nothing on its own. Twenty milliseconds is a nudge inside a slow sixteenth note and a lurch inside a fast one, because what matters is the error relative to the gap between strokes.
Below is that gap at every common tempo and subdivision, what a tolerance window is worth as a share of it, and how to read the two numbers that describe your timing: your mean offset and your spread.
Why one millisecond figure cannot answer the question
Timing error is proportional, not absolute. At 60 BPM sixteenth notes are 250 ms apart; at 200 BPM they are 75 ms apart. The same 20 ms deviation is 8 percent of the gap in the first case and 27 percent in the second: a shade of feel, then an audible displacement. Any millisecond figure quoted without a tempo and subdivision is unfinished.
Perception is not a fixed threshold either. What a listener notices depends on the sharpness of the attack, note density, and whether a steady reference such as a click is present. Quoted thresholds vary widely with how the test was run, so distrust any single number.
How far apart your strokes actually are
Three lines cover everything. One beat lasts 60000 / BPM milliseconds. Consecutive strokes fall 60000 / (BPM x notes per beat) milliseconds apart, where eighth notes are 2 per beat, triplets 3, sixteenths 4, sextuplets 6 and thirty-second notes 8. Strokes per minute is BPM times notes per beat. Repeating decimals are rounded to one place.
| BPM | Beat (ms) | 8ths (ms) | Triplets (ms) | 16ths (ms) | Sextuplets (ms) | 32nds (ms) |
|---|---|---|---|---|---|---|
| 60 | 1000 | 500 | 333.3 | 250 | 166.7 | 125 |
| 80 | 750 | 375 | 250 | 187.5 | 125 | 93.75 |
| 100 | 600 | 300 | 200 | 150 | 100 | 75 |
| 120 | 500 | 250 | 166.7 | 125 | 83.3 | 62.5 |
| 140 | 428.6 | 214.3 | 142.9 | 107.1 | 71.4 | 53.6 |
| 160 | 375 | 187.5 | 125 | 93.75 | 62.5 | 46.875 |
| 180 | 333.3 | 166.7 | 111.1 | 83.3 | 55.6 | 41.7 |
| 200 | 300 | 150 | 100 | 75 | 50 | 37.5 |
Two anchors are worth memorizing. Sixteenths at 120 BPM sit 125 ms apart, which is 8 strokes per second and 480 per minute. Sixteenths at 160 BPM sit 93.75 ms apart, the same spacing as thirty-second notes at 80 BPM, so the hands do identical work and only the counting changes. The rudiment tempo chart maps those spacings onto rudiments.
What a tolerance window is worth
Anything that listens judges a stroke by drawing a window around each grid point. A 25 ms window normally means 25 ms on either side of the target, a band 50 ms wide in total. That is the convention used here, but it is not universal, so check whether a tool means 25 ms either side or 25 ms total before you compare two scores.
| BPM | 16ths gap (ms) | Strokes per minute | 25 ms as % of gap | 50 ms band as % of gap |
|---|---|---|---|---|
| 60 | 250 | 240 | 10.0% | 20.0% |
| 80 | 187.5 | 320 | 13.3% | 26.7% |
| 100 | 150 | 400 | 16.7% | 33.3% |
| 120 | 125 | 480 | 20.0% | 40.0% |
| 140 | 107.1 | 560 | 23.3% | 46.7% |
| 160 | 93.75 | 640 | 26.7% | 53.3% |
| 180 | 83.3 | 720 | 30.0% | 60.0% |
| 200 | 75 | 800 | 33.3% | 66.7% |
At 60 BPM a 25 ms tolerance accepts strokes across a fifth of the available space. At 200 BPM it accepts two thirds, so a stroke a third of the way toward the next grid point still counts. The precision demanded never changes, yet the musical displacement a fixed window permits grows with tempo, so a ladder holding one window all the way up measures less at the top than at the bottom.
Only strokes per minute matters, so changing subdivision does the same job as changing tempo. Sixteenths at 100 BPM and eighth notes at 200 BPM are both 400 strokes per minute and 150 ms apart.
| Subdivision | Notes per beat | Gap (ms) | Strokes per minute | 25 ms as % of gap |
|---|---|---|---|---|
| 8th notes | 2 | 300 | 200 | 8.3% |
| Triplets | 3 | 200 | 300 | 12.5% |
| 16th notes | 4 | 150 | 400 | 16.7% |
| Sextuplets | 6 | 100 | 600 | 25.0% |
| 32nd notes | 8 | 75 | 800 | 33.3% |
So what is a good drum timing accuracy score?
A percentage with no window attached is not a score, it is a mood. Ninety-five percent at 80 BPM eighth notes with a 30 ms window and 96 percent at 160 BPM sixteenths with a 15 ms window hide a gulf of skill. Five things must match before any comparison means anything.
- The window. Widening 25 ms to 35 ms lifts almost anybody's score without a stroke changing.
- Tempo and subdivision, or better, strokes per minute, which folds both into one number.
- The stroke count. A percentage over 16 strokes is noise; over several hundred it means something.
- What counts as a miss. Ask whether a stroke the tool cannot classify is counted against you or quietly dropped, because dropping it flatters the result.
- Whether output latency was calibrated. An uncorrected delay shifts every stroke, often by more than the whole window.
Then use the percentage as a gate, not a grade. A gate asks one yes-or-no question: can I hold this tempo at this window twice in a row? That is the logic of an accuracy-gated tempo ladder: the tempo rises only after you earn it, not after a timer expires. Ninety percent at a stated window is a reasonable bar.
Two numbers beat one: mean offset and spread
A percentage collapses a whole performance into one figure. The two numbers underneath answer different questions and have different fixes.
- Mean offset answers whether you are early or late: the average of your signed errors, negative for early and positive for late. A large mean is a systematic lean.
- Spread, the standard deviation of those errors, answers whether you are consistent. It ignores direction and measures scatter. A large spread is instability.
They are independent. A large mean with a tiny spread means you are metronomically even in the wrong place. A mean of zero with a huge spread means your errors cancel on paper while every stroke misses. Two eight-stroke reps show it.
| Stroke | Player A | Player B |
|---|---|---|
| 1 | +18 | -29 |
| 2 | +22 | +28 |
| 3 | +19 | -22 |
| 4 | +21 | +31 |
| 5 | +23 | +2 |
| 6 | +17 | -4 |
| 7 | +22 | +26 |
| 8 | +18 | -32 |
| Mean offset | +20.0 ms | 0.0 ms |
| Spread (SD) | 2.1 ms | 24.5 ms |
| On time at 25 ms | 8 of 8 (100%) | 3 of 8 (37.5%) |
Player A scores a flawless 100 percent while landing about 20 ms late on every stroke. Player B posts a textbook mean of zero and scores 37.5 percent. A has a bias, and a consistent 20 ms lean is often uncalibrated output latency rather than the player. B has a control problem no average can fix. The fix for A is to move; the fix for B is to slow down.
| Mean offset | Spread | What it means | What to do next |
|---|---|---|---|
| Near zero | Small | Locked in at this tempo and window | Tighten the window or move up a rung of tempo |
| Clearly late (positive) | Small | Even, but sitting behind the grid | Recheck latency calibration, then place strokes fractionally earlier |
| Clearly early (negative) | Small | Even, but anticipating the click | Subdivide out loud and let the click arrive instead of chasing it |
| Near zero | Large | Errors cancel out while strokes scatter | Drop the tempo until spread collapses, then climb again |
| Late (positive) | Large | Behind and unstable, often tension or oversized strokes | Lower stick height, release grip pressure, drop 20 BPM |
| Drifts through the rep | Moderate to large | Tempo drift rather than placement error | Plot offsets in stroke order and read the trend, not the average |
That last row is why a per-stroke histogram beats any summary. A rep that begins 20 ms early and ends 20 ms late has a mean near zero and a spread that reads as instability, but the fault is steady acceleration. Stroke order carries information no average can, as rushing versus dragging works through in full.
The same playing, five different scores
The window is a choice, so the percentage is too. Here are the same two reps scored against five windows.
| Window either side | Total band | Player A on time | Player B on time |
|---|---|---|---|
| 10 ms | 20 ms | 0 of 8 (0%) | 2 of 8 (25%) |
| 20 ms | 40 ms | 4 of 8 (50%) | 2 of 8 (25%) |
| 25 ms | 50 ms | 8 of 8 (100%) | 3 of 8 (37.5%) |
| 30 ms | 60 ms | 8 of 8 (100%) | 6 of 8 (75%) |
| 35 ms | 70 ms | 8 of 8 (100%) | 8 of 8 (100%) |
Player A travels from zero to one hundred across a 15 ms change in one arbitrary setting. That is arithmetic, not a criticism of any app. Ask what a tool's window is before asking what it scores, as the roundup of apps that listen to your playing covers.
Why singles score well and doubles score near zero
Run single strokes at 120 BPM sixteenths and score in the nineties. Run a clean double stroke roll at the same tempo and the app reports something dismal. Your hands did not fail. The detector did.
Anything listening through a microphone must turn audio into discrete stroke times. Onset detection finds sharp rises in energy, then refuses to report two onsets closer together than a minimum spacing. Doubles break both rules: the rebound is quieter, so it can fall under the threshold, and it arrives sooner, so it can be merged into the first. Undetected strokes score as missed; stick rattle scores as extra.
This worsens as tempo rises and as strokes get quieter. Buzz and multiple bounce rolls are the extreme case, with no per-stroke grid at all. It is a limit of the category, not of one product. Judge doubles by evenness between the hands instead, as checking whether your double strokes are even explains.
- Play doubles louder than feels natural while testing. A rebound at half the primary's volume is the hardest thing for a detector to see.
- Use a pad with a clear attack and keep the microphone close. Soft rubber, reflections and background noise all cost you strokes.
- Check singles at the same tempo first. If singles score well and doubles do not, suspect detection before your hands.
A protocol for measuring your own timing
- Calibrate output latency first: The delay between a click sounding and your ears receiving it varies by output route and is largest on wireless headphones. An uncalibrated route adds a constant offset that looks exactly like dragging.
- Fix your settings and write them down: Tempo, subdivision, window, rep length. Later measurements compare only at the same four values. Ninety seconds at 120 BPM sixteenths is 720 strokes, enough for a stable mean and spread. Baseline on single strokes, the cleanest thing a detector can see.
- Fix the mean before the spread: A bias is a one-session problem and it contaminates every other number. Once the mean sits near zero across two reps, what remains is genuinely spread.
- Attack spread by dropping tempo, not by trying harder: Effort makes control problems worse. Drop 20 BPM until the spread collapses, then climb in small increments. A 10, 20 or 30 minute practice pad routine builds a session around this.
Measure it instead of guessing. Drum Coach₊ by Panda Taps listens through the microphone and scores every individual stroke against the grid, classifying each as on-time, rushed, dragged, missed or extra, with a default on-time window of 25 ms. Per-stroke timing histograms show the distribution behind the percentage, so you read your mean offset and your spread rather than one opaque figure. First-run latency calibration stores a per-output-route offset and re-runs when the audio route changes. All 40 PAS rudiments are included with notation, sticking and audio demos, and everything is processed on device: audio is never recorded, saved or uploaded. Coming soon for iPhone. Learn more about Drum Coach₊.
Frequently asked questions
How many milliseconds off is noticeable in drumming?
There is no single threshold, because what matters is the error relative to the gap between strokes. At 60 BPM sixteenth notes sit 250 ms apart, so a 20 ms error is 8 percent of the gap. At 200 BPM they sit 75 ms apart and the same error is 27 percent. Perception also depends on attack sharpness and note density, so name a tempo and subdivision before quoting any millisecond figure.
What is a good drum timing accuracy score?
A percentage is only meaningful next to the window it was measured against, the tempo, the subdivision and the stroke count. With a window of 25 ms either side, holding 90 percent or better twice in a row at the same tempo is a sensible bar for moving up, because it works as a gate rather than a grade. Widening the window to 35 ms can lift the same performance to 100 percent without a stroke changing.
Is a 25 ms on-time window strict or loose?
It depends on the tempo. At 60 BPM sixteenth notes, 25 ms is 10 percent of the 250 ms gap, which is strict. At 200 BPM it is 33 percent of the 75 ms gap, which is loose in musical terms even though the precision demanded is identical. At 300 BPM sixteenth notes the gap is exactly 50 ms, so a band of 25 ms either side covers the whole grid and stops discriminating.
Why did my double stroke roll score far lower than my single strokes at the same tempo?
Most likely the onset detector could not resolve every hit. The second stroke of a double is quieter and arrives closer in time than any single stroke, so it can fall below the amplitude threshold or be merged with the first by a minimum spacing rule, and an undetected stroke is recorded as missed. This is a limitation of onset detection itself rather than of any one app. Play doubles louder while testing, use a pad with a clear attack, and judge doubles by hand-to-hand evenness rather than a global percentage.