Analyzes the rhythmic pulse of a track and estimates its tempo in beats per minute — works best on material with a clear, fairly steady beat (electronic, pop, rock).
The BPM Detector measures the tempo of a song or beat — in beats per minute to a tenth of a BPM — straight from the audio, with no tags or internet lookup. DJs use it to match tracks, producers to set a project’s tempo, runners to pick music at their cadence and musicians to find the click for a track.
Unlike tools that just give a number, it lets you verify by ear: switch on “Hear the detected beat” and clicks play on the detected grid while the track plays, so you can immediately tell if the tempo and phase are right — or whether the track is really half or double that speed.
The audio is converted to an onset-strength envelope: 24 log-spaced frequency bands are analysed in 1024-sample frames, and the half-wave-rectified increase in log-energy (spectral flux) is summed. After subtracting a 0.4 s moving average, the envelope is autocorrelated. Peaks are weighted by a log-Gaussian prior centred on 120 BPM (σ ≈ 1.1 octaves) because most music sits in that region, the best peak is refined by a comb-filter search in 0.02 BPM steps, and the beat phase is found by testing all offsets. Up to 90 seconds from the middle of the track are analysed.
In tests on synthetic beats the detector is accurate to ±0.1 BPM with the first beat within about 15 ms.
Know a track’s BPM before mixing.
Set the project tempo to match a sample.
Find tracks near your cadence (e.g. 160–180 BPM).
Find the click for a track.
| Accuracy | ≈ ±0.1 BPM on steady rhythms |
|---|---|
| Range | 30–300 BPM (default 60–200) |
| Analysis length | Up to 90 s from the middle |
| Beat grid | First-beat time + constant tempo |
It finds the repeating pulse in the energy changes (onsets) of the audio.
Half-time and double-time feels share the same pulse; the candidates list shows alternatives.
Roughly — live tempo drifts, so a constant grid will not stay aligned.
It's generally accurate to within a beat or two on tracks with a clear, consistent rhythm. Freeform, rubato, or highly syncopated music is harder for any BPM detector, including this one, to lock onto.
This is a known ambiguity in all tempo-detection methods — a track at 160 BPM has a rhythmic pulse that's mathematically identical to 80 BPM felt in half-time. If the number looks off by exactly 2x or 0.5x, that's almost certainly what happened.
This tool runs entirely in your browser using the Web Audio API. Nothing is uploaded, stored or shared — there is no server to send your file to, so it works offline once the page has loaded.
Be the first to share your experience with this tool — your feedback helps others.