Audio
Runs in your browser

BPM Detector

Estimates the tempo of a local music file from its onsets and reports BPM, a confidence score, and half-time and double-time candidates. The result is an estimate. Music with swing, rubato or a quiet mix can land on half or double the tempo you expect. The page uses the browser audio decoder and does not load a video engine.

Accepted formats:
MP3WAVM4AOGG

Tempo is estimated from rises in loudness. Half-time and double-time can both fit the same music, so the BPM is an estimate and the confidence is not a guarantee. This page uses the browser audio decoder and does not load a video engine.

Upload music

The file stays in this browser.

What does BPM Detector do?

BPM Detector estimates tempo from the file's loudness changes. It measures energy in short hops, keeps the rises as onsets, and then votes on the gaps between those peaks. An autocorrelation of the same onset envelope is the fallback when there are not enough peaks. The search looks for a tempo between 60 and 180 BPM. Half-time and double-time are still shown, because a kick on every other beat can look like half the tempo you would count, and a bright subdivision can look like double. Confidence describes how clearly one tempo won the vote. It is not a promise that the number is the tempo a musician would write. Silence and audio with no rhythmic rises are rejected instead of given a made-up BPM. Tap tempo is a separate comparison. The beat marks are a regular grid from the estimate, not a list of detected drum hits. This page decodes audio with the browser and does not load a video engine.

How to use BPM Detector

  1. 1Upload a music file the browser can decode.
  2. 2Read the estimated BPM, confidence, half-time and double-time.
  3. 3Tap along if you want a manual comparison.
  4. 4Use another file if the estimate is unstable. Nothing is exported.

Supported inputs and outputs

Inputs

Local audio the browser can decode, such as MP3, WAV, M4A or OGG

Outputs

An estimated BPM, confidence, half-time, double-time, duration and sample rate

Practical uses

  • Getting a starting tempo for a local song
  • Checking whether a count is closer to half-time or double-time
  • Comparing a tap tempo with the estimate

Browser and media limitations

  • BPM is an estimate. Swing, rubato, silence and layered rhythms can move it.
  • Half-time and double-time can both fit the same recording.
  • Beat marks are a regular grid from the estimate, not detected hit times.
  • Files the browser cannot decode are rejected. This page does not load a video engine.

How local processing works

Your media is processed locally in your browser and is not uploaded to Tubelexity for processing. This page does not load a video engine. Page navigation and analytics still use network requests.

Onsets, confidence and octave errors

An onset is a rise in short-term energy. The detector turns those rises into a list of gaps and lets the most common gap vote for a BPM between 60 and 180. Confidence is higher when one tempo collects most of the votes. A noisy or swinging part can split the votes.

Half-time and double-time stay on the page because the same gaps can be counted as one beat or two. The number is an estimate either way.

Frequently asked questions

Is the BPM exact?

No. It is an estimate from onsets. Confidence tells you how clearly one tempo won, not that the number is certain.

Why are half-time and double-time shown?

A beat every other kick, or a fast subdivision, can fit the same audio. Those candidates are left visible so you can choose.

What are the beat marks?

They are evenly spaced from the estimate. They are not a transcription of every onset in the file.

Is the song uploaded?

No. The browser decodes it locally. This page does not load a video engine.

Related creator tools