Audio BPM Detector
Estimate the tempo (BPM, beats per minute) of an audio file using energy analysis combined with autocorrelation. Accepts formats your browser can decode natively (WAV, MP3, OGG, M4A depending on the browser).
How it works
The tool decodes the audio, converts it to a single mono channel, then computes an energy envelope (RMS) over small windows of about 20 milliseconds throughout the track. An onset detection function is then derived from this envelope by keeping only energy rises. Autocorrelation is applied to this function to find the time lag that repeats most regularly—this lag, converted to beats per minute, gives the estimated tempo.
Is this estimate 100% reliable?
No, it's a simplified algorithmic estimate, not a studio-quality detector like those used in professional music production. Accuracy varies greatly by musical style: it's generally good on music with strong, regular percussion (electronic, pop, rock), and less reliable on a track without a clear beat (classical, ambient, a cappella vocals).
Why does the result sometimes seem twice too fast or too slow?
This is a classic tempo detection phenomenon: the algorithm can lock onto double or half the actually perceived tempo (for example, detecting 140 BPM when the track feels like 70 BPM), because rhythmic energy is often just as strong on subdivisions of the beat. That's why secondary candidates (double/half) are shown next to the main result.
Why only the first 60 seconds analyzed?
To stay fast and avoid freezing your browser on long files, the analysis is limited to the first minute of the recording, which is more than enough to estimate a globally stable tempo.
100% local processing: decoding (Web Audio API) and tempo calculation happen entirely in your browser—your audio file is never sent to a server.