Finding a song's BPM and key: what the numbers mean and when to trust them
BPM — beats per minute — is the one number that follows a song everywhere: it sets your delay times, your loop lengths, your set order, and whether two tracks can share a blend. At 120 BPM a beat lands every 500 ms; at 87, every 690 ms. Everything rhythmic in production is arithmetic on that period.
The key is the other half of the question. Two songs can share a tempo and still clash, because their notes disagree. So this page reads both from the file, in your browser, in about a second: the BPM, the key with its Camelot code and relative key, and a separate confidence for each. How much to trust a reading matters more than the reading itself.
§How to find the BPM and key of a song
- Drop the fileDrag any WAV, MP3, M4A, OGG, or FLAC onto the detector. Nothing uploads; decoding and analysis happen on your device.
- Read the estimateThe left number is the detected tempo, the right one the key with its Camelot code and relative key. The label under each says how far to trust it, and what to check.
- Check half- and double-timeThe two smaller readouts show the same groove counted twice as fast or twice as slow. If one of those matches your foot, that's your working tempo.
- Verify by tappingPress any letter key on the beat while you listen. Your taps and the detector agreeing is the strongest answer this page can give.
- Take the numbers with youCopy the BPM and key together, or open the Result card mode and download the reading as a PNG. Have a whole folder? Drop it into the crate section for a sortable table and a CSV.
01How autocorrelation hears tempo
The detector never listens to notes. It first reduces the song to an onset envelope: the audio is sliced into 1,024-sample frames, each frame's energy is measured, and only the moments where energy jumps upward survive — a kick drum becomes a spike, a sustained pad becomes almost nothing.
Then comes the trick: autocorrelation. The envelope is slid against a copy of itself, one lag at a time, and scored on how well the spikes line up. If the song pulses every 500 ms, the copy shifted by exactly 500 ms lines up almost perfectly — that lag wins, and 60 ÷ 0.5 s gives 120 BPM. A parabolic fit around the winning lag then refines the answer to a fraction of a beat, which is why you see 120.3 rather than a rounded guess.
02Reading the labels: what steady does and does not mean
The detector listens to the start, middle and end of the song separately. If all three land on the same tempo, and that tempo clearly beats every unrelated rival, the label reads steady pulse. If two of three agree it reads pulse is uneven, and below that it is a guess.
Even steady is not certain. On our test tracks every wrong answer that carried a steady pulse was exactly half or double the real tempo, because a pulse that repeats every beat also repeats every two beats. Nothing in the audio settles that; a person's foot does. So the page always lists the half and double readings next to the answer and asks you to tap along. A label that said 'solid' would be a promise the method cannot keep.
03The half-time trap every detector falls into
Alignment at 500 ms implies alignment at 1,000 ms — if the envelope lines up with itself every beat, it also lines up every two beats. That's the octave ambiguity, and it's baked into the math, not a bug in any one tool. A boom-bap instrumental that feels like 87 BPM scores nearly as well at 174; a drum & bass roller at 174 scores at 87.
The detector breaks ties by preferring the 70–180 BPM range where most music lives, but the real tiebreaker is you: the half-time and double-time readouts are always shown, and the Grid check mode lets you audition a click at either interpretation until one obviously rides the groove.
04Where one global number fails — and why that's physics
This tool produces one tempo for the whole file. A live drummer who breathes between 96 and 102 BPM, a track with a half-time bridge, a DJ mix that moves between songs — none of these have one true BPM, so any single number is a summary at best. The autocorrelation smears those sections together and reports the strongest average pulse with lower confidence.
The Tempo curve mode exists for exactly this case: it re-runs the detector on overlapping windows and plots BPM over time, with a drift percentage. A flat line at 128 means trust the number. A line that wanders 4% means quantize to nothing — play with the performance instead.
05What to do with the number
The period is the useful part: 60,000 ÷ BPM gives the beat in milliseconds. At 87 BPM that's 690 ms — set a delay to 345 ms for eighth-note echoes that breathe with the track, or 460 ms for dotted-eighth bounce. Four bars is 16 beats: 11.03 seconds, which is your loop length if you're sampling this groove. Planning a set, stay within roughly ±6% of a playing track's tempo and the blend won't audibly warp — from 87 that's 82 to 92 BPM, or anything near 174 ridden half-time.
06Reading the key: Camelot code and the relative-key trap
The key comes from a chromagram: how much energy lands on each of the twelve pitch classes, matched against the standard major and minor profiles. The best match is the key, and the margin over second place is the confidence. The Camelot code is the same answer relabeled for mixing: 8B is C major, 8A is A minor, and neighbours on the wheel blend harmonically.
The classic mistake is the relative key. C major and A minor share every note, so the chromagram barely tells them apart. That is why the relative key sits next to the answer: if the reading says C major but the song feels sad, try A minor. They share a Camelot number, so either mixes with the same neighbours.
07Doing a whole crate
The crate section analyzes up to 50 songs one after another, so the tab keeps responding and a phone does not run out of memory. Each row gets a BPM, a key, a Camelot code and a label for each. Click a column to sort; Camelot sorts around the wheel (1A, 2A, 2B ... 12B), which is the order you actually mix in. Rows where the tempo is contested also list the half or double reading. Export CSV drops the table into a spreadsheet or a DJ prep sheet. Nothing is uploaded; each file is decoded and read on your device.
08When you need the grid, not a guess
Everything on this page is a well-tuned estimate of one number, computed from a single listen in your browser tab — and it evaporates when the tab closes. The studio's BPMandKey runs on its own engine, hears every song in your library once, and remembers: BPM, musical key with its Camelot code, and a confidence per track, cached against the file's fingerprint so a re-upload costs nothing. That grid is what the suite's samplers and loop cutters cut against — the difference between a number you read and a grid you build on.
Take it further in the studio — start free with 3 full packs, no card needed.