BPM Detector
Drop a track in and read the number.
or paste one from your clipboard
| Reading | BPM | When to count it this way |
|---|---|---|
| Half-time | · | Count this way for drum and bass, jungle, and anything you would tap on every other beat. |
| Detected | · | The spacing that correlated most strongly, folded into the 70–180 range. |
| Double-time | · | Count this way for slow hip-hop and ballads, where the pulse you feel is half the programmed grid. |
How to use it
- Drop the track onto the page. Analysis starts as soon as it has decoded. There is no button to press and nothing to download afterwards.
- Read the tempo. The figure underneath it tells you in plain words how clear the beat was, which matters more than the number itself.
- If the reading looks wrong, drag a selection across a section with a steady, drum-led beat and switch on "Measure the selection only". Intros, breakdowns and applause all confuse the measurement.
- Check the half-time and double-time rows before you trust the answer. Autocorrelation cannot tell 87 BPM from 174 BPM, so pick whichever matches how you count the track.
How a computer finds a beat
A beat is not a thing in an audio file. There is no marker in the data saying "kick drum here". There is only a long list of sample values. Tempo detection has to infer the pulse from how the energy in those samples changes over time.
The first step is an onset envelope. The file is chopped into 10-millisecond frames, the energy of each is measured, and the difference between consecutive frames is kept only when it is positive. That last detail is what makes the method work: a drum hit is a sudden rise in energy, while the decay afterwards is a fall, so keeping only the rises turns a continuous waveform into something close to a list of attacks.
The second step is autocorrelation. The onset signal is compared against a copy of itself shifted forward in time, once for every plausible beat spacing. When the shift happens to match the real beat period, peaks land on peaks and the correlation score jumps. The best- scoring shift is the beat period, and 60 divided by it gives beats per minute. How far that best score stands above the average of all the others is what the confidence line reports.
Octave errors, and why 87 and 174 are the same answer
Autocorrelation has one structural weakness. If onsets repeat every half second, they also repeat every quarter second and every full second, so those shifts correlate strongly too. The algorithm has no musical opinion about which one you would call the tempo, all three describe the same grid. This is known as an octave error, and every tempo detector has it, including the ones inside professional DAWs.
The usual mitigation, used here, is to fold the answer into the range most music occupies, roughly 70 to 180 BPM. That is right far more often than it is wrong, and wrong in predictable places: drum and bass genuinely runs at 174, not 87, and a slow hip-hop track written at 140 is normally counted at 70. That is exactly why the half-time and double-time rows are shown next to the main figure rather than hidden. Pick the one that matches how you would tap your foot.
When the number is meaningless
Some material has no measurable tempo, and a detector that returns a confident figure anyway is lying to you. Solo piano with pedal, orchestral strings, ambient pads, spoken word and unaccompanied vocals all lack the sharp attacks the envelope depends on. So does anything with heavy applause or crowd noise, which fills the envelope with rises that have nothing to do with the beat.
Live recordings are a softer version of the same problem. A human drummer drifts by a percent or two across a song, so the correlation peak spreads out and the answer becomes an average rather than a value. If you need to match a tempo to a live recording, measure a short, steady section with the selection switch and treat the result as a starting point for thetempo changer rather than a fact.