Audio → MIDI

Audio to MIDI Converter

BPM Finder

Max 50 MB · up to 10 minutes · analysed in your browser

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:

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:

"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.

Steady synthetic pulse trains, 10 seconds, run through this page's own tempo function
Pulse trainReadingConfidence
50 BPM50.17 BPM99%
60 BPM60.09 BPM100%
90 BPM90.67 BPM100%
120 BPM120.18 BPM100%
140 BPM139.67 BPM100%
180 BPM89.10 BPM100%
200 BPM99.38 BPM100%
240 BPM117.45 BPM100%
40 BPM (below the search floor)49.69 BPM0%
Flat envelope, no onsets at all206.72 BPM0%

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:

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.

Related