How browser BPM detection works
BPM detection estimates a repeating pulse from audio. It does not read tempo metadata or recognize a song title; it measures timing patterns in the signal supplied by the browser.
Updated 2026-08-01
1. The browser provides an audio signal
For live mode, the MediaDevices API supplies a microphone stream after the user grants permission. For URL mode, the browser fetches the file and the Web Audio API decodes it into audio samples.
The two modes use different analysis libraries, but both operate in the browser. The feedback endpoint receives only the result metadata you choose to submit.
2. Rhythmic events are identified
Tempo algorithms look for changes that may represent musical onsets: the beginning of a kick, snare, clap, note, or other transient. The exact implementation differs by library, but the objective is to build a timeline of likely rhythmic events.
Compression, reverb, sustained pads, and noisy recordings can blur those event boundaries. That is why a clean drum section is easier than an ambient passage.
3. Intervals become tempo candidates
The analyzer compares distances between events and looks for intervals that repeat. An interval of 500 ms corresponds to 120 quarter-note beats per minute because 60,000 divided by 500 equals 120.
Real music contains subdivisions and accents, so several candidates can be mathematically plausible. The algorithm ranks candidates based on their repeated support in the sample.
4. More audio improves stability
A short sample can support an accidental pattern. As additional bars arrive, persistent intervals gain evidence and unstable candidates lose influence. The real-time analyzer therefore exposes interim estimates before reporting a stable BPM.
Stability does not guarantee that the selected metrical level matches a human label. Half-time and double-time remain common because both describe genuine repetition in the signal.
Privacy boundaries
BPM Techno does not need to record or upload live microphone audio. Audio processing occurs in the browser tab. The browser still displays a permission prompt and may show a microphone indicator while the stream is active.
Remote audio URLs are requested by the browser from the hosting server, so that server can receive the normal request information such as IP address and user agent.