How do you turn a BPM into milliseconds for a delay, and how exact does the BPM have to be?
Short answer: one beat lasts 60000 ÷ BPM milliseconds. At 120 BPM that is 500 ms; an eighth note is half of it (250 ms), a dotted eighth one and a half times an eighth (375 ms), an eighth-note triplet a third of a beat (166.67 ms). The table below has every value from 60 to 200 BPM.
- Get the BPM first. Drop the song into this site's BPM finder, or tap along, or let it listen through the microphone. It prints the tempo to 0.1 BPM.
- Half and double readings still land on the grid. On 15 drum tracks we made at known tempos, 11 read exactly; a 60 BPM track read 120, a 200 track read 100, and a 174 track read 116. The delay you get from 120 instead of 60 is 500 ms: an eighth note at 60, still in time. From 116 instead of 174 you get 517.24 ms, a dotted quarter at 174.
- How exact the number has to be: at 120 BPM, 1 BPM moves the beat by 4.13 ms and 0.1 BPM by 0.42 ms. A 0.3 BPM error at 128 put our delay 1.1 ms off per beat, 4.4 ms per bar.
The page's Play with clicks spacing matched 60000 ÷ the printed BPM to within 0.043 ms on every track, and tap tempo read back within 0.052 BPM of the spacing it received.
The formula and the note values
BPM counts beats per minute, and a minute is 60,000 milliseconds, so one beat is 60000 ÷ BPM milliseconds. In 4/4 the beat is a quarter note and a bar is four beats. Everything else is a multiple of the beat:
| Note value | Times the beat | At 120 BPM | At 128 BPM | At 140 BPM |
|---|---|---|---|---|
| Whole (one bar of 4/4) | 4 | 2000 | 1875 | 1714.29 |
| Half | 2 | 1000 | 937.5 | 857.14 |
| Dotted quarter | 1.5 | 750 | 703.12 | 642.86 |
| Quarter (the beat) | 1 | 500 | 468.75 | 428.57 |
| Quarter triplet | 2/3 | 333.33 | 312.5 | 285.71 |
| Dotted eighth | 3/4 | 375 | 351.56 | 321.43 |
| Eighth | 1/2 | 250 | 234.38 | 214.29 |
| Eighth triplet | 1/3 | 166.67 | 156.25 | 142.86 |
| Dotted sixteenth | 3/8 | 187.5 | 175.78 | 160.71 |
| Sixteenth | 1/4 | 125 | 117.19 | 107.14 |
| Sixteenth triplet | 1/6 | 83.33 | 78.12 | 71.43 |
| Thirty-second | 1/8 | 62.5 | 58.59 | 53.57 |
For an LFO or tremolo that asks for a rate in Hz instead of a time, divide 1000 by the milliseconds: a beat at 120 BPM is 2 Hz, a bar 0.5 Hz, an eighth 4 Hz.
BPM to ms table, 60 to 200 BPM
Every 5 BPM, with 128 and 174 added. For a tempo in between, use 60000 ÷ BPM for the beat and the multipliers above.
| BPM | 1 beat | 1 bar | half | dotted quarter | quarter triplet | dotted eighth | eighth | eighth triplet | dotted 16th | 16th | 16th triplet |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 60 | 1000 | 4000 | 2000 | 1500 | 666.67 | 750 | 500 | 333.33 | 375 | 250 | 166.67 |
| 65 | 923.08 | 3692.31 | 1846.15 | 1384.62 | 615.38 | 692.31 | 461.54 | 307.69 | 346.15 | 230.77 | 153.85 |
| 70 | 857.14 | 3428.57 | 1714.29 | 1285.71 | 571.43 | 642.86 | 428.57 | 285.71 | 321.43 | 214.29 | 142.86 |
| 75 | 800 | 3200 | 1600 | 1200 | 533.33 | 600 | 400 | 266.67 | 300 | 200 | 133.33 |
| 80 | 750 | 3000 | 1500 | 1125 | 500 | 562.5 | 375 | 250 | 281.25 | 187.5 | 125 |
| 85 | 705.88 | 2823.53 | 1411.76 | 1058.82 | 470.59 | 529.41 | 352.94 | 235.29 | 264.71 | 176.47 | 117.65 |
| 90 | 666.67 | 2666.67 | 1333.33 | 1000 | 444.44 | 500 | 333.33 | 222.22 | 250 | 166.67 | 111.11 |
| 95 | 631.58 | 2526.32 | 1263.16 | 947.37 | 421.05 | 473.68 | 315.79 | 210.53 | 236.84 | 157.89 | 105.26 |
| 100 | 600 | 2400 | 1200 | 900 | 400 | 450 | 300 | 200 | 225 | 150 | 100 |
| 105 | 571.43 | 2285.71 | 1142.86 | 857.14 | 380.95 | 428.57 | 285.71 | 190.48 | 214.29 | 142.86 | 95.24 |
| 110 | 545.45 | 2181.82 | 1090.91 | 818.18 | 363.64 | 409.09 | 272.73 | 181.82 | 204.55 | 136.36 | 90.91 |
| 115 | 521.74 | 2086.96 | 1043.48 | 782.61 | 347.83 | 391.3 | 260.87 | 173.91 | 195.65 | 130.43 | 86.96 |
| 120 | 500 | 2000 | 1000 | 750 | 333.33 | 375 | 250 | 166.67 | 187.5 | 125 | 83.33 |
| 125 | 480 | 1920 | 960 | 720 | 320 | 360 | 240 | 160 | 180 | 120 | 80 |
| 128 | 468.75 | 1875 | 937.5 | 703.12 | 312.5 | 351.56 | 234.38 | 156.25 | 175.78 | 117.19 | 78.12 |
| 130 | 461.54 | 1846.15 | 923.08 | 692.31 | 307.69 | 346.15 | 230.77 | 153.85 | 173.08 | 115.38 | 76.92 |
| 135 | 444.44 | 1777.78 | 888.89 | 666.67 | 296.3 | 333.33 | 222.22 | 148.15 | 166.67 | 111.11 | 74.07 |
| 140 | 428.57 | 1714.29 | 857.14 | 642.86 | 285.71 | 321.43 | 214.29 | 142.86 | 160.71 | 107.14 | 71.43 |
| 145 | 413.79 | 1655.17 | 827.59 | 620.69 | 275.86 | 310.34 | 206.9 | 137.93 | 155.17 | 103.45 | 68.97 |
| 150 | 400 | 1600 | 800 | 600 | 266.67 | 300 | 200 | 133.33 | 150 | 100 | 66.67 |
| 155 | 387.1 | 1548.39 | 774.19 | 580.65 | 258.06 | 290.32 | 193.55 | 129.03 | 145.16 | 96.77 | 64.52 |
| 160 | 375 | 1500 | 750 | 562.5 | 250 | 281.25 | 187.5 | 125 | 140.62 | 93.75 | 62.5 |
| 165 | 363.64 | 1454.55 | 727.27 | 545.45 | 242.42 | 272.73 | 181.82 | 121.21 | 136.36 | 90.91 | 60.61 |
| 170 | 352.94 | 1411.76 | 705.88 | 529.41 | 235.29 | 264.71 | 176.47 | 117.65 | 132.35 | 88.24 | 58.82 |
| 174 | 344.83 | 1379.31 | 689.66 | 517.24 | 229.89 | 258.62 | 172.41 | 114.94 | 129.31 | 86.21 | 57.47 |
| 175 | 342.86 | 1371.43 | 685.71 | 514.29 | 228.57 | 257.14 | 171.43 | 114.29 | 128.57 | 85.71 | 57.14 |
| 180 | 333.33 | 1333.33 | 666.67 | 500 | 222.22 | 250 | 166.67 | 111.11 | 125 | 83.33 | 55.56 |
| 185 | 324.32 | 1297.3 | 648.65 | 486.49 | 216.22 | 243.24 | 162.16 | 108.11 | 121.62 | 81.08 | 54.05 |
| 190 | 315.79 | 1263.16 | 631.58 | 473.68 | 210.53 | 236.84 | 157.89 | 105.26 | 118.42 | 78.95 | 52.63 |
| 195 | 307.69 | 1230.77 | 615.38 | 461.54 | 205.13 | 230.77 | 153.85 | 102.56 | 115.38 | 76.92 | 51.28 |
| 200 | 300 | 1200 | 600 | 450 | 200 | 225 | 150 | 100 | 112.5 | 75 | 50 |
How exact does the BPM have to be?
A delay set from a slightly wrong tempo does not sound wrong on the first repeat; the error adds up across repeats and across bars. The table shows how far one step of BPM moves the beat. Faster tempos are more forgiving in ms, because the beat is shorter.
| BPM | 1 beat | 1 BPM higher moves the beat by | 0.1 BPM moves it by |
|---|---|---|---|
| 60 | 1000 | 16.39 | 1.66 |
| 80 | 750 | 9.26 | 0.94 |
| 100 | 600 | 5.94 | 0.60 |
| 120 | 500 | 4.13 | 0.42 |
| 140 | 428.57 | 3.04 | 0.31 |
| 160 | 375 | 2.33 | 0.23 |
| 180 | 333.33 | 1.84 | 0.19 |
| 200 | 300 | 1.49 | 0.15 |
So a reading to 0.1 BPM, which is what this site's finder prints, pins a delay to within about half a millisecond per beat anywhere above 100 BPM. Whether the song itself holds its tempo that steadily is a separate question: a live recording that drifts by a few BPM moves the grid by far more than the reading's rounding.
How we tested
- Tool: this site's BPM finder, the real page run on a local copy in Chromium 153 through Playwright 1.63 (headless), on 2026-10-21.
- 15 drum tracks we made (30 s, 44.1 kHz, 16-bit mono WAV): a kick on every beat and a hi-hat every half beat, placed at exactly 60000 ÷ BPM ms, at 60, 72.5, 90, 100, 117.3, 120, 123.4, 127.5, 128, 133.3, 140, 150, 160, 174 and 200 BPM. We copied the main reading, the half or double reading and the "other tempos" line for each.
- Click spacing: before pressing Play with clicks we wrapped the browser's oscillator start call so our script saw the exact time the page scheduled each click, then compared the gaps with 60000 ÷ the printed BPM.
- Tap tempo: our script pressed the T key 17 times at a target spacing (1000 down to 300 ms) and recorded, inside the page, the moment each key arrived, so we could compare the page's reading with the spacing it really received rather than the one we asked for.
What the finder read, and what that does to the delay
Each row is one test track. "Beat from reading" is 60000 ÷ the printed BPM, the number you would type into a delay.
| True BPM | Reading | Second reading | True beat, ms | Beat from reading, ms | Which note that is at the true tempo |
|---|---|---|---|---|---|
| 60 | 120.0 | 60.0 half time | 1000 | 500 | eighth |
| 72.5 | 145.0 | 72.5 half time | 827.59 | 413.79 | eighth |
| 90 | 90.0 | 180.0 double time | 666.67 | 666.67 | the beat |
| 100 | 100.0 | 200.0 double time | 600 | 600 | the beat |
| 117.3 | 117.3 | 234.6 double time | 511.51 | 511.51 | the beat |
| 120 | 120.0 | 60.0 half time | 500 | 500 | the beat |
| 123.4 | 123.4 | 61.7 half time | 486.22 | 486.22 | the beat |
| 127.5 | 127.5 | 63.7 half time | 470.59 | 470.59 | the beat |
| 128 | 128.0 | 64.0 half time | 468.75 | 468.75 | the beat |
| 133.3 | 133.3 | 66.7 half time | 450.11 | 450.11 | the beat |
| 140 | 140.0 | 70.0 half time | 428.57 | 428.57 | the beat |
| 150 | 150.0 | 75.0 half time | 400 | 400 | the beat |
| 160 | 160.0 | 80.0 half time | 375 | 375 | the beat |
| 174 | 116.0 | 232.0 double time | 344.83 | 517.24 | dotted quarter |
| 200 | 100.0 | 200.0 double time | 300 | 600 | half note |
Eleven of the fifteen printed the tempo we built in, to the decimal, including 117.3, 123.4, 127.5 and 133.3. The four that did not were the half, double and two-thirds readings described in why the same song shows different BPMs, and in each case the true tempo was on the page too, as the second reading or in the "other tempos" line.
What matters for a delay is that none of those four gave a time that fights the song. Half or double the tempo gives a delay of twice or half the beat, which is still a note value: a half note or an eighth. The two-thirds reading (116.0 for 174) gives 517.24 ms, which is a dotted quarter at 174 BPM, a common delay choice in its own right. It only becomes a problem if you then pick an eighth or a triplet from the wrong row of the table, so check which reading you are on with Play with clicks before you multiply.
Play with clicks: does the page keep to the formula?
Yes. On all 15 tracks the clicks were scheduled at a constant spacing, and that spacing was within 0.043 ms of 60000 ÷ the printed BPM. The small differences come from the page keeping more decimals of the tempo than it prints: for the 120 BPM track the clicks were 499.968 ms apart, which is 60000 ÷ 120.0078, and the page printed 120.0. If the clicks sit on your song's beat, the printed number is the one to use.
Tap tempo: from a spacing in ms to a BPM
Tap tempo is the formula run backwards: the page divides the time from the first tap to the last by the number of gaps. Our script could not press a key at exactly the moment it meant to, and the page recorded when each press really arrived, so the fair comparison is the reading against the spacing it got.
| Target spacing, ms | Target BPM | Spacing received, mean (min to max) | BPM from what it received | Page printed | Beat from the printed BPM, ms |
|---|---|---|---|---|---|
| 1000 | 60 | 999.91 (996.0 to 1002.9) | 60.005 | 60.0 | 1000 |
| 750 | 80 | 750.04 (748.6 to 751.8) | 79.996 | 80.0 | 750 |
| 600 | 100 | 600.03 (572.6 to 625.1) | 99.995 | 100.0 | 600 |
| 500 | 120 | 500.05 (493.2 to 505.2) | 119.988 | 120.0 | 500 |
| 468.75 | 128 | 467.49 (447.5 to 469.9) | 128.344 | 128.3 | 467.65 |
| 400 | 150 | 399.86 (384.8 to 414.8) | 150.052 | 150.0 | 400 |
| 352.94 | 170 | 353.02 (351.8 to 354.2) | 169.963 | 170.0 | 352.94 |
| 300 | 200 | 299.88 (294.9 to 306.4) | 200.079 | 200.1 | 299.85 |
In every run the printed BPM was within 0.052 of the BPM worked out from the taps the page actually received, which is the 0.1 rounding of the display. Single taps that landed up to 27 ms early or late did not move the result, because the page only uses the first and last tap and the count. The one run that missed its target, 128.3 for 128, missed because our presses arrived 1.26 ms too close on average, not because of the page; even so, the delay from 128.3 is 467.65 ms against 468.75, 1.1 ms per beat and 4.4 ms per bar.
Steps
- Open the BPM finder and drop in the song, or press Tap and tap along, or Start listening with the song playing out loud.
- Press Play with clicks. If the clicks fall on every other beat or twice per beat, switch to the second reading. Keep the one that matches how you count the song.
- Divide 60000 by that BPM for the beat in ms, or read the row from the table above, and multiply by the note value you want: ½ for an eighth, ¾ for a dotted eighth, ⅓ for an eighth triplet.
- For a rate in Hz, divide 1000 by the milliseconds.
Questions
The finder shows two readings. Which one do I use for the delay?
Either keeps you on the grid, because one is exactly twice the other: an eighth note at the lower reading is the same time as a quarter at the higher one. Use the reading whose clicks match how you count the song, so that the note names in the table mean what you expect.
My delay drifts out of time after a few bars. Is the reading wrong?
Possibly, but check the song first. A reading to 0.1 BPM is worth under half a millisecond per beat above 100 BPM, which takes many bars to hear. A song that was not recorded to a click can move by a few BPM between sections; the finder says "The tempo seems to change" when its sections disagree, and then no single delay time will stay locked.
Does the formula change in 3/4 or 6/8?
60000 ÷ BPM always gives the length of whatever the BPM counts. If the tempo marking counts quarter notes, the table applies as is and a bar of 3/4 is three beats, not four. If it counts dotted quarters, as 6/8 is often written, the "beat" column is the dotted quarter and an eighth is a third of it.