BPM Detector
Drop in any MP3/WAV/FLAC — get the BPM (tempo) instantly with a confidence score. Includes manual tap-tempo. No upload, runs in your browser. Free.
About BPM Detector
This online BPM detector automatically analyzes your audio files to find the tempo in beats per minute (BPM). Perfect for DJs, musicians, dancers, and music producers who need to know the exact tempo of their tracks. The tool also includes a manual tap tempo feature for quick BPM counting.
How do I detect the BPM (beats per minute) of a song with this tool?
Upload your audio file (MP3, WAV, FLAC, OGG, M4A, etc.) by dragging it onto the upload area or clicking to browse, then press Analyze BPM. The tool analyzes the whole track in your browser using onset detection and autocorrelation — nothing is uploaded to a server. After a few seconds you see the estimated BPM, a 0-100% confidence score with a High/Medium/Low verdict, the tempo category, and a beat grid you can play back against a click metronome. Most modern songs return a result in 3 to 10 seconds. For variable-tempo tracks (live recordings, classical music with rubato) the auto value is an average, so the confidence will read lower — fall back to the manual tap-tempo to confirm it.
Why does my detected BPM differ from what Spotify or Beatport shows?
Three reasons. First, BPM is genre-dependent and ambiguous — a song at 70 BPM and one at 140 BPM can have the same pulse perception (octave error), and different services report different choices. Spotify often picks the higher harmonic for dance tracks; this tool snaps to the most likely musical tempo but lets you halve or double it with one click. Second, songs with prominent off-beat percussion can confuse beat trackers, and Spotify's algorithm uses commercial metadata and editorial overrides while this tool runs purely on signal analysis. Third, live performances drift in tempo, so the average shown depends on which section the analyzer weighted most. If you disagree with the result, listen and tap it manually as a tiebreaker.
What audio formats can I analyze for BPM detection?
Any format the browser can decode: MP3, WAV, FLAC, OGG Vorbis, AAC, M4A, Opus, WebM audio, and AIFF. The analysis is performed on the decoded PCM samples, so codec choice does not affect BPM accuracy — a 128 kbps MP3 yields the same tempo estimate as the lossless source. What does matter is signal quality: badly clipped or distorted audio, very quiet recordings, and tracks with heavy reverb or strong sidechain compression can throw off the onset detector and lower the confidence score. To improve detection on tracks with long silent intros or outros, trim them in an audio editor first so the analysis focuses on the actual groove.
What is a good BPM range for different music genres?
Typical ranges: ambient and downtempo 60 to 90, ballads and slow R&B 60 to 80, hip-hop 70 to 100 (or 140 to 200 double-time), classic rock 100 to 130, pop 95 to 130, house 118 to 130, techno 120 to 150, drum and bass 165 to 180, hardcore and gabber 180 to 250, trap 140 to 160 (often felt as 70 to 80 half-time). Use these only as rough guides — many songs sit between genres or shift tempo. DJs commonly mix tracks within plus or minus 6 percent of each other for natural-feeling transitions, which is why beat-matching software offers pitch sliders covering this range; this tool reports an exact value so you know how much pitch adjustment a mix will need.

What is the difference between BPM, tempo, and time signature?
BPM (beats per minute) is a count of beats per 60 seconds — a pure rate. Tempo is the broader musical concept that includes BPM plus stylistic feel (rubato, swing, accelerando) and is often described qualitatively (allegro, andante). Time signature defines how beats group into bars: 4/4 means four quarter-note beats per bar, 3/4 means three (waltz), 7/8 means seven eighth-notes (Take Five). BPM measures rate, not grouping — a 120 BPM song can be in 4/4, 3/4, or 6/8 without changing its BPM. This tool reports BPM and detects the most likely downbeat (bar start); time-signature detection is harder and is a separate, optional output.
How does the tool actually detect tempo — what algorithm runs under the hood?
The pipeline has three stages. First, an onset-detection function transforms the audio into a 1-D signal that spikes at percussive events. The most common method is the spectral flux: take the short-time Fourier transform (typically 1024-sample windows, 50 percent overlap, Hann window) and sum positive frame-to-frame magnitude differences across bins. Second, the onset signal is fed through autocorrelation or a comb filterbank to find the period that best aligns with regularly spaced peaks. Third, the candidate period is converted to BPM (60 / period in seconds) and verified by phase-aligning a click track. Robust implementations also use multi-band onset detection (separate low, mid, high bands) and apply tempo priors (genre-typical 60 to 200 BPM ranges) to break octave ambiguity.
Why does the BPM I get half or double what I expected? How do I fix it?
This is the classic octave error in beat tracking. The autocorrelation step finds a periodicity in the onsets, but a stable pulse at 80 BPM is also stable at 40 and 160 BPM — the algorithm has no purely mathematical way to choose. To resolve, trackers apply heuristics: songs with strong subdivisions (sixteenth-note hi-hats) get pushed to higher BPM, songs with long sustained notes get pushed lower, and a prior centered around 120 BPM (the global most common tempo in popular music) breaks ties. If you disagree, click the halve or double button — the underlying pulse is correct, only the chosen octave needs adjustment. For DJ work, always check the half-time/double-time interpretation matches the dance floor feel.
Can the tool handle songs with changing tempo or live performances?
It estimates a single global BPM, which works well for steady electronic and pop tracks. For live recordings, classical music, ballads with rubato, or songs that accelerate, a single number is only an average — the underlying tempo drifts by 1 to 5 BPM in most pop ballads and 10 to 30 BPM in romantic-era classical music, so no fixed value is fully correct. In these cases the confidence score will read Medium or Low to warn you. The practical workflow is: run the auto detection to get a ballpark, watch the confidence verdict, then use the manual tap-tempo over the section you actually care about (for example the chorus or the drop) to lock in the value before committing it to a mix or DAW project.
What is the detection confidence score and when should I trust it?
The confidence score is a 0-100% rating with a High/Medium/Low badge that tells you how much to trust the auto-detected BPM. It combines two signals: first, how steady the detected beat grid is — the tool measures the variation between consecutive beat intervals, so a metronomic 4/4 dance track scores high while a rubato or loosely-played piece scores low; second, whether the two analysis passes agree — the tool detects BPM on the full file and again on a sustained middle section, and when both land on the same value confidence rises. High (75%+) means the auto value is safe to drop straight into your library or mix. Medium suggests double-checking the half-time/double-time alternative badges. Low means the track is rubato, ambient, or rhythmically ambiguous — fall back to the manual tap-tempo and tap the section you care about rather than trusting the auto number.
