A BPM delay calculator built for musicians, producers, mixing engineers and sound designers who need tempo-accurate delay times — and more. It covers four workflows in one tool: converting a tempo to a full table of note-length delay times, reversing that calculation to find the BPM that matches a hardware delay setting, detecting tempo by tapping along to a track, and modelling exactly how many echoes a feedback percentage produces before silence.
How it works
Converting BPM to delay time
Everything starts from the length of one quarter-note beat:
beat (ms) = 60,000 / BPM
Every other note value is a multiple of that beat. A whole note lasts four beats (x4); a half note lasts two beats (x2); an eighth note is half a beat (x0.5); a sixteenth is a quarter of a beat (x0.25). Dotted notes extend the straight value by 50% (x1.5). Triplet notes compress three notes into the space of two, giving a multiplier of 2/3.
The tool computes twelve note values — whole, half, dotted quarter, quarter, quarter triplet, eighth, dotted eighth, eighth triplet, sixteenth, dotted sixteenth, sixteenth triplet and thirty-second — and shows each one in milliseconds and in Hz. A copy button next to each value lets you paste the number directly into a plug-in.
Reverse mode: delay time to BPM
If you already have a delay time — perhaps from a vintage hardware unit, a sample or a field recording — you can work backwards:
BPM = (60,000 / delay in ms) x note multiplier
Select the note value that delay is meant to represent and the tool returns the matching BPM. Once you know the tempo you can set your DAW session to match and put everything on the grid.
Tap tempo detection
The tap-tempo panel uses the browser performance.now() timer for sub-millisecond
accuracy. Tap at least twice; the tool averages the last eight intervals to smooth out
inconsistent taps. A gap larger than three seconds resets the session automatically.
After four or more taps the average is stable enough for professional use. The detected
BPM feeds straight into the delay table below it.
Feedback decay modelling
Every delay unit has a feedback control that recycles the output back to the input. After n echoes the amplitude is:
amplitude(n) = feedback_fraction ^ n
where feedback_fraction is the percentage divided by 100. The tool counts repeats until the amplitude drops below the threshold you specify (e.g. -60 dB) and builds a table showing the time-stamp and level of every echo. This is useful for setting decay times on convolution reverbs, designing rhythmic gates and understanding how long a long reverb tail really is.
Worked example
Suppose you are working at 95 BPM and want to add a delay that feels wide and syncopated without cluttering the mix. The classic approach is a dotted-eighth delay:
- Enter 95 in the BPM field.
- Read the dotted-eighth row: 473.68 ms.
- Paste that value into your delay plug-in.
- Set feedback to 35% and switch to the Feedback decay panel. At that setting with a -60 dB threshold you will see 7 echoes spread over about 3.3 seconds — plenty of texture without washing out the next bar.
| BPM | Note value | Delay |
|---|---|---|
| 120 | Quarter (1/4) | 500 ms |
| 120 | Dotted eighth (1/8.) | 375 ms |
| 120 | Eighth triplet (1/8T) | 166.67 ms |
| 95 | Dotted eighth (1/8.) | 473.68 ms |
| 140 | Eighth (1/8) | 214.29 ms |
Formula notes
The core relationship is simply: frequency (Hz) and tempo (BPM) are both rates, so the bridge between them is the fixed constant 60,000 (the number of milliseconds in a minute). All note-value multipliers cascade from that single calculation. The Hz column uses 1000 / ms because there are 1,000 milliseconds in a second.
The feedback decay formula is pure geometric-series mathematics: if each repeat is a fraction f of the previous, after n repeats the amplitude is f to the power n. Converting to decibels uses 20 log10(f^n) = 20n log10(f). All calculations run entirely in your browser — nothing is uploaded or stored.