Methodology
Every result on this site comes from the formulas below, which run in one shared file used by both the server and your browser. They are published here so you can verify any number the tools produce, and see exactly where a value is a definition rather than a convention.
How the calculations run
Every formula below lives in one file, lib/tempo.js. The
server uses it to render the page you receive, and your browser uses the
same file to update values as you type. There is no second implementation,
so the numbers you see cannot drift from the numbers the page was built
with.
Nothing is sent anywhere. All arithmetic happens on your device once the page has loaded.
Tempo to time
milliseconds per beat = 60000 ÷ BPM
seconds per beat = 60 ÷ BPM
A minute contains 60,000 milliseconds, and BPM counts the beats sharing that minute. This is a definition, so the result is exact.
Note divisions
note length = milliseconds per beat × beats in that note
A BPM beat is taken as a quarter note, the standard convention. A whole note is therefore 4 beats, a half note 2, an eighth 0.5, and so on down to 1/64 at 0.0625 beats.
dotted = straight × 1.5
triplet = straight × 2 ÷ 3
A dot adds half the note's value again. A triplet fits three notes in the space of two.
Bar length
bar length = milliseconds per beat × N × (4 ÷ D)
For a time signature of N/D. A bar holds N notes of value 1/D, and since a BPM beat is a quarter note, the bar is N × (4/D) quarter-note beats long. In 4/4 this reduces to four beats; in 6/8 it gives three.
Tempo to frequency
Hz = BPM ÷ 60
Hertz counts cycles per second, BPM counts beats per minute. For any note division, the frequency is the reciprocal of its length in seconds.
Tempo to frames
frames per beat = frame rate × (60 ÷ BPM)
Drift per bar is the difference between the exact frames-per-bar figure and the nearest whole number — the amount by which a bar fails to land on a frame boundary.
Tempo to pitch
semitones = 12 × log₂(new BPM ÷ old BPM)
cents = 1200 × log₂(new BPM ÷ old BPM)
percent = (ratio − 1) × 100
This holds only where speed and pitch are coupled — turntables, varispeed, and samplers in fixed-ratio mode. It does not describe time-stretched audio, which decouples them deliberately.
Tap tempo
BPM = 60000 ÷ mean interval between taps
Intervals longer than three seconds are discarded rather than averaged in, so a pause starts a fresh measurement instead of corrupting the result.
The stability figure shown next to a tapped result is the standard deviation of your tap intervals, in milliseconds. It measures how evenly you tapped. It is not a confidence score and makes no claim about whether the tempo is the one the producer used.
Reverb timings
These are the one set of values on this site that are not derived from a formula, and it is worth being explicit about why.
There is no equation that produces a correct reverb decay. Decay depends on arrangement density, source material and intent. What the tool does is calculate note-division lengths at your tempo — which is exact — and pair them with the division ranges conventionally used for room, plate and hall settings. Those ranges are stated convention, not measurement, and the tool presents them as ranges for that reason.
Rounding
All calculations run at full double precision. Rounding happens only for display, at the point of output. Beat lengths and delay times show two decimal places, frequencies three or four, and pitch values three.
Rounding for display can make two numbers that should be identical appear to differ in the last place. The underlying values are exact.
Worked example at 128 BPM
60000 ÷ 128 = 468.75 ms per beat
| Note | Beats | Straight | Dotted | Triplet |
|---|---|---|---|---|
| Whole note (1/1) | 4 | 1875 | 2812.5 | 1250 |
| Half note (1/2) | 2 | 937.5 | 1406.25 | 625 |
| Quarter note (1/4) | 1 | 468.75 | 703.13 | 312.5 |
| Eighth note (1/8) | 0.5 | 234.38 | 351.56 | 156.25 |
| Sixteenth (1/16) | 0.25 | 117.19 | 175.78 | 78.13 |
| Thirty-second (1/32) | 0.125 | 58.59 | 87.89 | 39.06 |
| Sixty-fourth (1/64) | 0.0625 | 29.3 | 43.95 | 19.53 |
All values in milliseconds.
Limitations
- Tempo input is restricted to 20–400 BPM. Values outside that range are rejected rather than silently clamped.
- Tap tempo accuracy depends entirely on how steadily you tap. The stability figure tells you how steady that was.
- The tools assume a constant tempo. Music with tempo changes has no single correct answer.
- Reverb values are conventions, not measurements, as described above.
Found a wrong number? The formulas are covered by an automated test suite, but if a result looks wrong, tell me and include the tempo you used. I would rather fix it than have it stand.
Need every value at once?
The main BPM calculator shows milliseconds, delay times, reverb ranges, hertz and bar length together, updating from a single tempo.
Related tools and guides
- The BPM to Milliseconds Formula Where 60,000 divided by BPM comes from, how note divisions scale from it, and worked examples at the tempos producers actually use.
- Editorial Policy How content on bpm-calculator.com is researched, written, reviewed and corrected, and what this site will not publish.
- About This Site Who builds and maintains bpm-calculator.com, why it exists, and how the tools are kept accurate.
Last reviewed Formulas published on the methodology page Spotted an error? Tell me