Audio analysis · No upload

Count a song’s BPM on your device

Drop a song to measure its tempo in BPM, with any half or double reading that fits nearly as well.

Tempo estimate

    
    

    

The strip draws the chosen beat grid over the measured onset envelope, so you can see whether the grid lines land on the hits. The list gives that grid in seconds: one constant period, with its phase placed where it collects the most onset energy. A strong off-beat hit can pull the grid off the musical beat, and each time lags by about one 6 ms analysis frame. The confidence label (strong, fair or weak) comes from the two numbers printed after it.

Statusidle Files— File— Duration— Sample rate— Analysed— Tempo— Also consistent with— Confidence— Network since file read—

One tempo for up to two minutes from the middle, resampled to mono at 11,025 Hz; Analysed shows the span. Tempo changes are not tracked. Silence, fewer than 16 onsets, low scores or a strongest period outside 40–220 BPM can yield “no steady tempo found”; over ten minutes is refused by name. Takes .wav, .wave, .mp3, .m4a, .aac, .ogg, .oga, .opus, .flac, .aif, .aiff and .weba.

Tap tempo yourself

Press Tap, or focus it and press Space or Enter, in time with whatever you are listening to. The tap counter measures only your tapping and has its own readout, so nothing you tap changes the file’s estimate above. It uses your last eight intervals and shows their spread beside the tempo: the wider the spread, the less even your taps were. A pause of more than three seconds starts a new count, and the note under the buttons says so. The counter makes no sound, and nothing on this page flashes.

Tapped tempo— Taps0 Your spread—

How this counter works

Your browser reads the file and decodes its audio. The browser’s resampler mixes the samples to mono at 11,025 samples per second, and the Sample rate row shows that analysis rate. The tool analyses up to two minutes from the middle of the recording, to reduce the influence of intros, count-ins and fade-outs, and prints the exact span beside the estimate. Files longer than ten minutes are refused by name, because the whole recording must first fit in memory as decoded samples. Six bandpass filters, centred on 70, 175, 400, 900, 2100 and 4000 Hz, separate rhythmic activity at different frequencies, so a strong kick drum does not mask every higher-frequency onset. Each band is rectified, smoothed with a 25 millisecond time constant, compressed logarithmically and differenced, and the rises add up to one onset-strength signal. Autocorrelating that signal gives a peak at each interval that repeats. A fixed preference near 120 BPM selects a reference peak. That preference is an assumption about music built into the tool; nothing in your file sets it. The tool then chooses the shortest eligible period between 40 and 220 BPM with a peak at least 85% as high as that reference, which is not necessarily the absolute strongest. Parabolic interpolation and later repeating peaks refine the period, a phase search places the beat grid where it collects the most onset energy, and the grid ends where the onsets end.

The readout compares the chosen peak with the band mean and reports the fraction of selected strongest onsets near the grid. Neither number shows whether the chosen beat level is right: accents on every other beat can make a tempo and its half fit about equally well. Half, double, 3:2 or 2:3 readings no more than 15% below the chosen peak are listed, with out-of-band readings labelled. A strongest out-of-band peak can cause a refusal if it qualifies and the in-band candidate is less than a tenth as high; otherwise an in-band half or double reading can still be reported. This page reports one tempo for the analysed span. A changing tempo can lower the scores or cause a refusal, but it is not tracked and can go unflagged. The tool does not measure key, genre, time signature or mood.

BPM on this page is the tempo of a music recording. Heart rate uses the same unit, but this tool measures nothing about a person.

Frequently asked questions

Is my music uploaded anywhere?
No. The browser reads and decodes the recording, and the filterbank, onset signal and autocorrelation run as JavaScript in this tab. Loading the page and its code takes requests, but there is no analysis library to download. The meter counts resource-timing entries after the first file read; it does not see earlier loads or every connection type. The methodology page describes the network-panel and offline checks.
How does it decide on a tempo?
From the spacing between hits. The tool turns the audio into an onset-strength signal and autocorrelates it to find the intervals that repeat. A preference for tempos near 120 BPM picks a reference peak, and the tool reports the fastest tempo in the 40–220 BPM band whose peak reaches 85% of that reference. Half and double readings can be faster or slower and can fall outside the band; any outside it are labelled.
Why does it say “no steady tempo found”?
Because the recording failed one of the checks a tempo has to pass, and the text after it names which one. A result needs an autocorrelation peak at least 1.5 times the band mean and at least 45% of selected strongest onsets within one-eighth of a period of the grid. That selection takes no more onsets than there are grid lines, so it need not include all detected onsets. If either floor is missed, the reason given is “the beat spacing keeps changing”, which is where a rubato passage can land. Silent recordings, recordings with too few onsets and those whose strongest period lies outside the 40–220 BPM band get reasons of their own.
Does this page measure heart rate?
No. BPM also means heartbeats per minute, and this page does not measure that. It reads the beat spacing in a music recording and nothing about a person. It is not a heart rate monitor, a pulse reader or any kind of health instrument, and no part of it should be used as one.
Which audio formats work here?
WAV, MP3, FLAC, AIFF, M4A and AAC, OGG and Opus, and WebM audio, as long as your browser’s audio engine can decode the file; the page downloads no extra decoder. Other extensions, and files the browser cannot decode, are refused by name. Video files are not accepted here, so extract their audio before using the tempo counter.

Related tools