BPM Tapper
Tap to detect beats per minute of any song. Set the audio options to generate, record, measure, or process sound in your browser.
Tool guide
About BPM Tapper
Estimate a song's tempo by tapping along, analyzing a short audio file, or listening through a microphone when supported. Beat detection can be uneven, so treat the result as a tempo hint and verify by ear.
How to use this tool
- 1Tap the beat several times at a steady pace, or choose an audio file or microphone mode.
- 2For file analysis, select a supported short audio file; for microphone mode, grant permission and play the sound nearby.
- 3Review the estimated BPM and tap again or adjust the analysis if it does not match the music.
How the tool works
Manual mode averages the time between recent taps and converts intervals to beats per minute as 60,000 divided by milliseconds per beat. Audio analysis looks for repeating energy peaks in decoded sound. Browser input, noise, syncopation, and tempo changes can confuse detection.
Worked real-world example
If taps are about 500 ms apart, the estimated tempo is around 120 BPM.
Common scenarios and use cases
Find a starting tempo for practice, transcription, or setting a metronome.
Important details and limitations
Audio analysis is approximate and file decoding uses device memory; the page limits file size and analysis length. Microphone access requires permission and does not mean audio is uploaded. Complex rhythms may produce half-time or double-time readings.
Check the output unit as well as the number. If the result will be reused in another calculation, retain full precision where possible and round only at the end. For measurements governed by a technical specification, use the standard and tolerance required by that document.
Frequently asked questions
How many taps make a useful estimate?
Several steady beats improve the average.
Why does audio analysis return half the song tempo?
Strong accents can occur every other beat, confusing the detector.
Does microphone mode record or upload audio?
It processes the live input in the browser for the analysis session.