How to Find the BPM and Key of a Song — Measured Accuracy
Load an audio file into the BPM and key analyzer and it estimates the tempo and key in your browser. On 14 synthesized test signals with known answers, BPM was within ±1 for 12 and came out at half or double for 2, and the key was correct for 12 of 13 (measured 2026-10-01).
By Chaez · Published · Last updated · Data as of
What steps should you follow?
- Choose an audio file (MP3, WAV, M4A, FLAC and more) in the BPM and key analyzer. The file is analyzed on your device only.
- When analysis finishes, the BPM and key (for example, D minor) are shown.
- If the BPM feels twice as fast or half as slow as the song, tap the beat with the metronome’s Tap Tempo to check.
- For practice, adjust speed and key in the practice player.
How accurate are the results?
We analyzed 14 synthesized signals with known tempo and key, using the same algorithms and settings as the analyzer. BPM matched exactly for 10, was off by 1 for 2, and came out at half or double for 2. Of the 13 signals with a key, 12 were correct including major or minor (measured 2026-10-01).
| Test signal | Actual | Detected | Result |
|---|---|---|---|
| ToneNook demo arpeggio (8 s) | 120 BPM · C major | 120 · C major | Both correct |
| Band loop 60 BPM | 60 · C major | 120 · C major | BPM doubled |
| Band loop 70 BPM | 70 · A minor | 70 · A minor | Both correct |
| Band loop 90 BPM | 90 · G major | 90 · G major | Both correct |
| Natural minor progression (Am–F–G–Am) | 100 · A minor | 100 · A minor | Both correct |
| Band loop 120 BPM | 120 · C major | 120 · C major | Both correct |
| Band loop 128 BPM (30 s) | 128 · D minor | 128 · D minor | Both correct |
| Same loop, first 15 s | 128 · D minor | 128 · D minor | Both correct |
| Same loop, first 8 s | 128 · D minor | 129 · D minor | BPM ±1 |
| Same loop, first 4 s | 128 · D minor | 129 · G minor | BPM ±1 · key wrong |
| Band loop 140 BPM | 140 · E minor | 140 · E minor | Both correct |
| Band loop 174 BPM | 174 · A# major | 87 · Bb major | BPM halved (same key) |
| Chords only, no drums | 96 · G major | 96 · G major | Both correct |
| Drums only, no harmony | 100 · no key | 100 · C major | Key value meaningless |
Synthesized signals have clearer beats and chords than real recordings, so these results show accuracy under favorable conditions. Songs with tempo changes, soft beats or key changes may be misread more often.
Why does BPM come out at half or double?
The 60 BPM signal was detected as 120 and the 174 BPM signal as 87 (measured 2026-10-01). The beat was counted at one level faster or slower, a common tempo-estimation error. Both results are exactly 2× off, so the beat positions are right and only the counting unit differs.
For very slow songs (around 60 BPM) or fast songs (170 BPM and above), compare the result with double and half that value. Whichever is closer to the tempo you tap with the metronome’s Tap Tempo is the real tempo.
When is the key wrong?
Analyzing only the first 4 seconds of a 128 BPM D minor loop returned G minor, while 8, 15 and 30 seconds returned D minor (measured 2026-10-01). The 4-second clip held only the first two chords of the Dm–Gm–A–Dm progression. Analyze a section that covers the full chord progression at least once.
A drums-only signal still returned C major. The analyzer picks the closest key even without harmony, so ignore the key for audio with no tonal content. Also, names like A# and Bb can refer to the same pitch (enharmonic equivalents).
How we measured
- Algorithms: the same Essentia functions and settings as the analyzer — RhythmExtractor2013 (multifeature, 40–208 BPM) for tempo and KeyExtractor (bgate profile) for key. The analyzer runs essentia.js 0.1.3 in the browser; the measurement ran the same package in Node.js.
- Test signals: all synthesized by us. Band loops have a kick on every beat, snare on 2 and 4, eighth-note hi-hats, one chord per bar and a root-note bass line. Major keys use I–V–vi–IV and minor keys i–iv–V–i, each 30 seconds long.
- Scoring: BPM equal to the answer is correct, off by 1 is ±1, exactly 2× or ½ is doubled or halved. A key counts as correct only when both the tonic and major/minor match; enharmonic names such as A# and Bb count as the same key.
- Recorded songs were not tested. Accuracy on real recordings may be lower than these results.
Frequently asked questions
- How many seconds should I analyze?
- In our 2026-10-01 measurement, a 128 BPM loop was correct for both BPM and key at 15 and 30 seconds, but the key was wrong at 4 seconds. Use a section that covers the chord progression at least once.
- The BPM is twice as fast as the song feels. Why?
- The beat was counted one level too fine. In our measurement a 60 BPM signal was detected as 120. Halve the result and compare it with the tempo you tap using the metronome’s Tap Tempo.
- Are A# and Bb different keys?
- No. They are enharmonic names for the same pitch. A 174 BPM A# major signal was shown as Bb major, which is the same key.