Analyzes the first 30 seconds of a music file to estimate its tempo in BPM, and marks the detected beats on the waveform. The file is analyzed in your browser and never sent to a server.
Choose a music file to analyze
MP3, WAV, M4A, OGG and other formats your browser can play
Drop in a music file and this tool estimates its tempo in BPM. It also draws the detected beats as vertical lines over the waveform and can play the song with a metronome click on top, so you can check the result by ear.
The analysis uses signal processing, not an AI model. It looks at up to the first 30 seconds of the track, finds the moments where the sound suddenly gets louder (drum hits such as kicks and snares), and uses autocorrelation to work out how often that pattern repeats. It searches between 60 and 200 BPM. This approach sometimes lands on exactly half or double the real tempo, which is why you can correct the result with ×0.5, ×2 and ±1.
Check the BPM of the tracks you plan to mix so you can group songs with similar tempos and plan the order.
Find songs whose BPM matches your running cadence (steps per minute) by checking your own music files.
Knowing the BPM and beat positions of your background track makes it easier to time cuts to the music.
Click "Choose file" or drop a music file anywhere on the page.
After a few seconds you'll see the detected BPM and a confidence level (high, medium or low).
If the tempo feels half or double what it should be, use ×0.5 or ×2; for small differences, use ±1.
Click "Play with click track" to hear the first 15 seconds of the song with a metronome over it. If the clicks line up with the drums, the result is right.
Save or share the result with "Save result card" or "Share", and use "Try another file" for the next song.
The audio is mixed down to one channel, and its loudness is measured in slices of about 5 milliseconds (220 samples). The average over roughly 1.5 seconds is then subtracted, which removes slow swells and fades and leaves only the moments where the sound suddenly gets louder. Drum hits show up as sharp spikes in this curve.
The spiky curve is shifted by different amounts and laid over itself (autocorrelation). When the shift equals the true beat gap, the most spikes line up, so the shift with the strongest overlap among those corresponding to 60–200 BPM is taken as the beat. The neighboring values are then used to refine the gap to a fraction of a slice before converting it to BPM.
If the first tempo found is below 70 BPM, the tool checks whether double or triple that tempo falls within 70–180 BPM with at least 55% of the overlap strength, and if so picks the faster one. This reduces cases where the detector locks onto half the real beat, but it can also make a genuinely slow ballad come out doubled; press ×0.5 when that happens.
Confidence reflects how much the chosen beat gap stands out from the average of all the other gaps. Songs with a steady kick and snare have one gap that clearly dominates, so they tend to get "High confidence". Noisy recordings or irregular rhythms have many similar gaps and come out "Low". Low doesn't necessarily mean wrong; check with "Play with click track".
Once the BPM is set, the tool steps along the curve at that interval, shifting the starting point one slice at a time, and picks the start that catches the most spikes as the first beat. The purple lines on the waveform and the clicks in the preview start from there. Changing the BPM with ×0.5, ×2 or ±1 redraws the lines and clicks at the new spacing.
The result is shown to one decimal place. The adjustment buttons work within 20–400 BPM and stop at those limits. Whatever value you end up with is used on the result card and in the preview.
The waveform summarizes the loudness of the analyzed section (up to the first 30 seconds) as 150 bars. It shows only the part that was analyzed, so even for a long song the picture ends at 30 seconds.
The card is a 1080 × 1350 pixel PNG saved as "bpm-result-card.png", with your final, adjusted BPM in large type. The name of the analyzed music file is printed on the card too, so check that the file name contains nothing you'd rather not share before posting it. The audio itself is not included.
Tracks with long intros or ambient openings have little drum content in the first 30 seconds, which makes results shaky. Trim the file to start where the drums properly kick in, using an audio editor, and the result becomes much more reliable.
If you're matching a running cadence and the result is around half what you want, try ×2. The same song works at double tempo if you step on every half beat.
Human performances drift a little, so the result is closer to a representative tempo for the first 30 seconds. If the preview clicks line up at first but slide off later, the song itself is changing tempo; measuring sections separately works better than nudging with ±1.
When a result feels uncertain, tap along to the same song in the BPM Tapper's Free tap mode. If the two numbers are close you can trust them; if one is exactly half or double the other, decide which beat you want to count.
Songs with a clear drum beat, like most pop, dance and hip-hop, usually come out right. Tracks with changing tempos, loose timing (classical, ambient) or long quiet intros may be off or show low confidence. Always check with "Play with click track".
To keep the analysis down to a few seconds. Most songs establish their beat within the first 30 seconds, but if a track has a long intro or changes tempo later, the result may not represent the whole song.
Because the method looks for repeating patterns, it can struggle to tell two beats per bar from four. When that happens, press ×0.5 or ×2.
Any audio format your browser can play. MP3, WAV, M4A and OGG work in most browsers; FLAC and some others depend on the browser. Copy-protected (DRM) files can't be analyzed.
No. The file is opened and analyzed inside your browser and is never sent or stored anywhere.
Usually the browser couldn't decode that audio file. Common causes are files with a renamed extension, partial downloads and copy-protected files. Re-export the file as MP3 or WAV from a music app and try again.
Only the first 30 seconds are analyzed, but reading the file means decoding the whole song into memory first. Long files such as hour-long mixes or high-resolution WAVs can be slow or fail at that step, so trim the file to the part you need.
Check your device volume, whether the tab is muted, and your phone's silent switch. Playback covers only the first 15 seconds and stops when you press "Stop" or load another file.
If they start in time and gradually slide, the BPM is slightly off; adjust with ±1. If they're half a beat off from the very start, the BPM is right and only the starting point landed on the off-beat, so the number itself can be trusted.
BPM is just the number of beats per minute, yet the same song can read as 70 or 140. Here's how to calculate it, where the confusion comes from, how different fields use it, and how to measure it yourself.
A sense of rhythm becomes much easier to practice once you split it into hearing how fast something is and keeping a tempo steady. Here's how to measure where you are, a 10-minute daily routine, and how to keep a log.