BeatDL

All-in-one beat downloader and analyzer

YouTube URLURL YouTube PlaylistPLAYLIST
🎧
Drop an audio file here or click to browse
MP3, WAV, FLAC, M4A, OGG… - analyzed locally, never uploaded
1
Decoding audio
2
Analyzing BPM & Key
Tempo
- BPM
Key
-
BPM candidates
Key candidates (relative pairs)
💡 BPM feels too slow/fast? The correct tempo is usually at exactly half or double in the list. Key rows are relative pairs - same notes, different root.

What the analyzer reads

Drop in any audio file and the tool reports three things: tempo in BPM, musical key, and how far the recording sits from concert pitch. Nothing is uploaded - the file is decoded and analysed by your own browser through the Web Audio API, so large WAV and FLAC files work fine and the audio never leaves your device.

Tempo comes from a spectral flux curve across 40 logarithmic frequency bands. Beat energy is pooled across the first four harmonics of each candidate tempo, which is what separates a 170 BPM track from its half-tempo twin at 85 - the two look identical to a detector that reads a single peak.

Key detection runs Essentia's KeyExtractor compiled to WebAssembly, with a chroma and Krumhansl-Schmuckler profile as a fallback. Both estimate the recording's reference pitch first, so a beat that was pitched or tape-slowed still resolves to the right root rather than landing a semitone off.

Detune, and why it matters

Plenty of beats are not at A=440. A sample pitched down, a tape emulation, or a producer nudging the master tuning leaves the whole track sitting between semitones - and any vocal you record on top will fight it. The analyzer reports that offset in cents and, more usefully, as the reference pitch in hertz: the number you type straight into Auto-Tune, Melodyne or Kontakt.

Questions

Why are two detune figures shown sometimes?

Past about 30 cents, the same pitch can be named against either neighbouring semitone - say 427.7 Hz or 453.2 Hz. They describe one sound, a semitone apart, and only your ear or the arrangement decides which is the root. Do not average them: the midpoint lands on 440 Hz, which reads as "not detuned" and is the one answer that is certainly wrong.

How accurate is the tempo?

Measured against 254 finished tracks whose real tempo was read out of the original project files rather than guessed by ear: the exact BPM in 78% of cases, and within 1 BPM in 88%. Music without a steady grid - rubato, ambient, live drums with heavy swing - is genuinely harder, and the candidate list exists for those.

The BPM looks like half or double what I expected.

A 75 BPM beat and a 150 BPM beat can produce the same pulse pattern, so this ambiguity is built into every tempo detector there is. The candidate list underneath the result almost always holds the reading you wanted, at exactly half or double.

The key is wrong. Anything I can do?

Use the "Key didn't work?" button under the result - it re-runs the file through the second, independent engine, which sometimes disagrees usefully. Key rows are shown as relative pairs (B minor / D major): identical notes, different root, and context decides.

Which formats can I analyse?

Whatever your browser decodes: MP3, WAV, FLAC, OGG, M4A/AAC, AIFF and others.

Is my file uploaded anywhere?

No. Decoding and analysis happen locally in your browser. The file is never sent to a server and nothing is stored.

Analysing something you pulled off YouTube? The beat downloader tags BPM and key onto the filename as it saves, and the BPM finder and key finder each do one job on its own.