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
- 1Upload a music file the browser can decode.
- 2Read the estimated BPM, confidence, half-time and double-time.
- 3Tap along if you want a manual comparison.
- 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.
