ToolyStation

BPM Detector

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

About this tool

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.

When it comes in handy

Preparing a DJ set

Check the BPM of the tracks you plan to mix so you can group songs with similar tempos and plan the order.

Workout and running playlists

Find songs whose BPM matches your running cadence (steps per minute) by checking your own music files.

Cutting video to the beat

Knowing the BPM and beat positions of your background track makes it easier to time cuts to the music.

How to use it

  1. 1

    Click "Choose file" or drop a music file anywhere on the page.

  2. 2

    After a few seconds you'll see the detected BPM and a confidence level (high, medium or low).

  3. 3

    If the tempo feels half or double what it should be, use ×0.5 or ×2; for small differences, use ±1.

  4. 4

    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.

  5. 5

    Save or share the result with "Save result card" or "Share", and use "Try another file" for the next song.

How it works and how to read the results

Step 1: an energy curve

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.

Step 2: finding the repeating gap

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.

Slow results get a second look

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.

What confidence means

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

How the beat lines are placed

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.

Understanding the output

The BPM value and adjustment range

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

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 result card

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.

Tips for specific situations

Measuring tracks for a DJ mix

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.

Choosing songs for running or workouts

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.

Live and acoustic recordings

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.

Cross-checking by tapping

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.

FAQ

How accurate is it?

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

Why analyze only the beginning of the song?

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.

Why is the result sometimes half or double?

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.

Which files can I use?

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.

Is my music file uploaded?

No. The file is opened and analyzed inside your browser and is never sent or stored anywhere.

Troubleshooting

It says something went wrong during analysis.

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.

Analysis takes a long time or the tab freezes.

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.

"Play with click track" makes no sound.

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.

The clicks drift away from the beat.

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.

Limitations

  • Only up to the first 30 seconds are analyzed, so songs that change tempo later may be misread.
  • The search range is 60–200 BPM. Tempos outside it may show up as half or double.
  • The whole file is loaded into memory, so very long files can be slow or fail.
  • "Play with click track" only plays the first 15 seconds of the song.

Related guides

More in Rhythm & Tempo