Try the BPM Detector now
Upload any audio file — instant tempo analysis, no signup.
What is BPM and why does it matter?
BPM stands for Beats Per Minute — the number of rhythmic pulses in sixty seconds of music. A song at 120 BPM has two beats every second; a ballad at 60 BPM has one. BPM is the universal language of tempo: DJs use it to match tracks, runners use it to pace their stride, and musicians use it to practice at the right speed.
Knowing a song’s BPM helps you:
- Build playlists by energy level — group tracks by tempo for workouts, study sessions, or DJ sets.
- Practice at the right speed — set your metronome to the song’s tempo and play along.
- Sync visuals to music — match video cuts or animation frames to the beat.
- Classify your library — tag every track with its tempo for faster searching.
How the ToolKnit BPM Detector works
The BPM Detector analyzes audio locally in your browser. The Web Audio API decodes the file, then the current algorithm examines up to the first 30 seconds. It applies 100–150 Hz filtering, selects strong amplitude peaks and groups their intervals to estimate tempo. This is a peak-interval estimate, not a transcription of every musical beat.
Here’s the process step by step:
- Decode — the browser reads your MP3, WAV, OGG, FLAC, or M4A file into a floating-point audio buffer.
- Filter an excerpt — process up to the first 30 seconds at the decoded sample rate, through a 150 Hz low-pass and 100 Hz high-pass filter.
- Find local peaks — take the strongest absolute sample in each 0.5-second segment. The current implementation does not compare FFT frames.
- Keep stronger peaks — retain the loudest 50% of segment peaks, then sort them back into time order.
- Group intervals — compare each retained peak with up to the next 10 peaks, convert intervals to integer BPM groups, and select the most frequent group.
- Normalize candidates — double or halve candidates into the 60–200 BPM range. This does not resolve every half-time or double-time interpretation.
Waveform visualization and beat markers
The tool draws the audio waveform and overlays a tempo grid spaced at 60 ÷ estimated BPM seconds, starting at time zero. These lines are not individually detected beat locations and do not track tempo changes or the first musical downbeat. Listen and compare with Tap Tempo before using them as a timing reference.
If the markers look off, you can use Tap Tempo to verify: play the audio and tap along with the beat. The tap counter shows your manual BPM, which you can compare against the algorithm’s result.
Once you've found the BPM, pair it with our lyric visualizer to create synced typography.
Which genres work best?
Onset-detection algorithms work best on music with clear, steady rhythmic accents:
- Electronic / EDM — steady kick drums can make an estimate easier to check, but no genre guarantees an accurate result.
- Pop / Rock — snare and hi-hat patterns are easy to detect.
- Hip-hop — drum machine beats provide strong onsets.
- Metal — double-bass patterns may read as double-time; halve the result.
Music with rubato or free tempo, such as some classical, jazz or ambient passages, may not have one stable BPM. An estimate from the opening excerpt cannot describe every later section. Tap along to a specific passage and treat both measurements as approximate.
Illustrative BPM ranges by genre, not fixed definitions
- Dub / Reggae: 60–90 BPM
- Hip-hop: 80–115 BPM
- House: 120–130 BPM
- Techno: 125–150 BPM
- Drum & Bass: 160–180 BPM
- Pop: 100–130 BPM
- R&B: 60–100 BPM
Double-time and half-time: when BPM seems wrong
Sometimes the detector returns double or half the expected BPM. This happens because the algorithm may lock onto eighth notes (double) or half notes (half) instead of the quarter-note pulse. The fix is simple:
- If the BPM seems too high, divide by 2.
- If it seems too low, multiply by 2.
Music can legitimately fall outside a typical listening range, and the tool itself normalizes candidates into 60–200 BPM. A doubled or halved value is only a candidate interpretation; compare it with the audible pulse rather than assuming it is correct.
BPM for DJs: harmonic mixing and tempo matching
DJs use BPM to compare track speeds, but a small numeric difference alone does not guarantee a smooth mix. Phrase structure, beat alignment, tempo changes and key also matter. This tool's grid is an estimate, so confirm cue points by listening or using dedicated DJ software.
For harmonic mixing, pair BPM detection with key detection (not yet available in ToolKnit) to find tracks that are both tempo- and key-compatible.
BPM for runners and cyclists
The following are illustrative playlist tempos, not exercise targets or evidence of improved performance. Choose music and activity intensity that suit you; musical BPM is not a prescribed step rate, cycling cadence or heart-rate target:
- Walking: 100–120 BPM
- Jogging: 120–140 BPM
- Running: 140–180 BPM
- Sprinting: 180+ BPM
Use the BPM Detector to tag your playlist, then sort by tempo to build workout-specific sets.
Tempo isn't just for music — our breathing relaxation tool uses rhythmic pacing to help you find calm.
Privacy: why browser-based BPM detection matters
A service that analyzes audio remotely must receive the audio it needs. Before choosing one, check its actual upload and retention policy, especially for an unreleased or personal recording. ToolKnit's detector performs its audio analysis locally.
The detector decodes and analyzes selected audio locally in your browser; it does not upload the recording for analysis. Ordinary page resources and site analytics are separate. You can use this local workflow for recordings you are authorized to handle, including:
- Copyrighted music you own but don’t want to upload.
- Unreleased demos and original compositions.
- Personal voice memos or field recordings.
Frequently asked questions
How do I find the BPM of a song?
Upload the audio file (MP3, WAV, OGG, FLAC, or M4A) to the ToolKnit BPM Detector. The tool analyzes the waveform in your browser and displays the detected BPM, along with a waveform visualization and beat markers.
Is the BPM detector accurate?
It is an estimate, not a measured accuracy guarantee. The current algorithm uses strong low-frequency peaks from up to the first 30 seconds. Quiet intros, irregular rhythms and tempo changes can mislead it. Listen and compare with the built-in Tap Tempo.
Does the BPM detector upload my audio to a server?
No. All processing happens locally in your browser using the Web Audio API. Your audio file never leaves your device.
What audio formats work with the BPM detector?
MP3, WAV, OGG, FLAC, M4A, AAC, and any format your browser can decode through the Web Audio API.
Can I verify the detected BPM?
Yes. Play the audio back and use the Tap Tempo feature to manually tap along. Compare your tap BPM against the algorithm’s result.
What if the BPM seems double or half what I expect?
The peak intervals may correspond to a different pulse subdivision. Try halving or doubling the value and compare by listening; that adjustment is not guaranteed to recover the intended musical beat.
Detect the BPM of any song
Upload audio → instant tempo → waveform + beat markers. Free, private, no signup.