Max 50 MB · up to 10 minutes · analysed in your browser
0 taps · tap at least four steady beats, then pause to lock it in
Point your microphone at the music. Nothing is recorded or uploaded.
- Key
- —
- Camelot
- —
- Confidence
- —
- Notes
- —
What this BPM finder gives you that a tempo number doesn't
Most tempo tools stop at a number: you learn the track is 124 BPM, and that is the end of it. This one keeps going. Once the beat is found, the same detector that powers the audio to MIDI converter reads the notes too, so you get the BPM, the half and double readings, the key and its Camelot code, a confidence figure, and — the part the number alone can never give you — a one-click .mid and .csv of the actual notes. Open the .mid in any DAW, change the instrument, edit a note, or drop it into a new arrangement.
Everything runs on your own device. There is no upload, no account, and no queue: the file is decoded in your browser, measured there, and the download is the only thing that leaves.
Supported formats, size and length limits
If your browser can decode it, this page can read it. The formats tested here are MP3, WAV, FLAC, M4A and OGG. The limits are deliberately plain:
- Formats: MP3, WAV, FLAC, M4A, OGG (and generally any audio your browser plays).
- File size: up to 50 MB.
- Length: up to 10 minutes.
- Nothing is uploaded. The analysis happens in the tab you are looking at.
If a file will not open, it is almost always a codec your browser lacks rather than a fault in the tool — converting it to WAV first solves that.
How the tempo and key are worked out
No black box, and no invented number. The page reuses the site's existing in-browser detector and adds two small measurements on top of it:
- The analysis grid is the converter's own: a 22 050 Hz working rate, a 2048-sample window stepped 256 samples at a time, which is one frame every 11.610 ms (about 86 frames a second).
- Tempo comes from the frame loudness the detector already computes. We take the positive jumps in loudness (the onsets), autocorrelate them across the lag range that covers roughly 50–200 BPM, and pick the strongest lag — with a mild preference around 120 BPM to settle the octave. That octave ambiguity is why the page shows the half and double readings next to the main one: a groove can honestly be counted two ways, and you choose.
- Key comes from the notes the detector found: each pitch class is weighted by how long and how loudly it sounded, then matched against major and minor key profiles. The winning key is turned into its Camelot code for harmonic mixing.
- Confidence is the normalised height of the tempo autocorrelation peak — a real measured value, not a promise. A steady four-on-the-floor scores high; a rubato ballad scores low, and the page says so.
"Find BPM of song" and "tempo finder": what the number is measured from
Short answer: this page really does measure a tempo from your audio — unlike the main converter, which only writes the BPM you type into a tempo event. The reading here comes from autocorrelation of the frame-loudness envelope, searched across a 50–200 BPM window with a mild preference near 120 BPM. That is why the result can legitimately be half or double the beat you counted: the page prints both, plus a confidence figure so you can tell a solid peak from a guess.
The formula is in this page's own code, not a black box. On the 11.610 ms grid (256/22050), each frame contributes only the positive jump in log loudness, max(0, log(rms[i]) − log(rms[i−1])), with the mean subtracted. The autocorrelation is taken over lags from (60/200)/frameT to (60/50)/frameT, the winning peak is refined by parabolic interpolation across its two neighbours, and the final score is the peak times exp(−log(bpm/120)² / (2 × 0.5²)). Confidence is the peak height normalised by zero-lag energy and clamped to 0–100.
| Pulse train | Reading | Confidence |
|---|---|---|
| 50 BPM | 50.17 BPM | 99% |
| 60 BPM | 60.09 BPM | 100% |
| 90 BPM | 90.67 BPM | 100% |
| 120 BPM | 120.18 BPM | 100% |
| 140 BPM | 139.67 BPM | 100% |
| 180 BPM | 89.10 BPM | 100% |
| 200 BPM | 99.38 BPM | 100% |
| 240 BPM | 117.45 BPM | 100% |
| 40 BPM (below the search floor) | 49.69 BPM | 0% |
| Flat envelope, no onsets at all | 206.72 BPM | 0% |
Read the last two rows before you trust any number. Above 200 BPM the search window cannot reach the true period, so these pulse trains came back at roughly half their rate — the exact ambiguity the half/double readouts are shown for. A featureless envelope still produces a number, but confidence falls to 0%. Confidence measures how peaked the autocorrelation is, not how musical the result is.
Three ways to decide where to go:
- Use this page for a whole file you can upload: up to 50 MB / 10 minutes, decoded locally, with the notes exported as a
.midand.csvalongside the tempo and key. The analysis grid is the converter's own 22050 Hz / 2048-sample / 256-hop config. - Use Tap tempo or Microphone when there is no file: tap at least four steady beats (a gap over 2 seconds resets the taps), or let the mic work on a rolling 6-second window. Neither mode stores or uploads audio.
- Use the main converter's Tempo field when what you need is a BPM written into a MIDI file: its writer sets one
FF 51tempo event fromround(60000000/bpm), accurate to within 0.001 BPM of your input, and detects nothing — see how accurate the written tempo is.
Where those note timings come from is in where the note boundaries land; the measured accuracy of the detector behind all of this is on the audio to MIDI converter page.
What a dedicated beat-tracking workflow may add
Tools that build a full beat grid can follow tempo changes across a track and place bar lines; the reading on this page is a single autocorrelation peak over one whole file, which assumes one steady tempo. For a rubato or tempo-shifting recording, the confidence figure and the half/double pair are the honest signals to watch — and the CSV gives you the note list to check against your DAW's grid.
Questions
What is tap BPM?
Tap BPM (also called tap tempo) means you tap a button in time with the music and the page averages the gaps between your taps to get the tempo. It is the fastest way to read a beat you can hear but cannot upload — a live band, a record player, a video. Tap at least four steady beats; eight or more is steadier. The Tap tempo tab here does exactly that, and Space works as the tap key.
Does it really export MIDI?
Yes. When you convert a file, the Download .mid button writes a Standard MIDI file (format 1) containing the notes the detector found, and Download .csv writes the same note list with start time, end time, pitch, name and velocity. The .mid opens in any DAW or notation app.
Why are there half and double readings?
Because tempo is ambiguous by nature: a 70 BPM groove can be counted at 140 BPM and both are musically defensible. Rather than hide that, the page shows the main reading plus its half and double so you can pick the one that matches your project's grid.
Is my audio uploaded?
No. There is no upload endpoint. The file is decoded and analysed inside your browser, and nothing is sent anywhere.
Can I use the microphone instead of a file?
Yes — the Microphone tab listens through your device's mic and shows a live tempo. It does not record or store audio. For notes and a .mid export, use a file, because the note list needs the whole take to be analysed.
What is a Camelot code?
Camelot is a numbering of musical keys (1–12, A for minor, B for major) used by DJs for harmonic mixing. Two tracks with the same number or a neighbour are easy to blend. The page shows the code next to the key name.