Methodology
How it is measured
Every number on this site comes from an engine you can check. This page documents how each one is measured — including what the tools can't do.
The BPM Index
The ranges in the BPM Index are measured and hand-curated: typical tempo (the median of the genre in practice) plus the real range where productions actually sit. They are not scraped from an API — several popular sites still show data from Spotify's discontinued audio-features API; the dataset is maintained by a producer who works these genres.
- Typical BPM = practical median, not a theoretical average.
- Range = where releases actually land, including regional scenes.
- Each genre page carries production notes and structure written for this site.
- Dataset version: 2026-07-10-slashfix
The audio analyzer
Everything runs client-side in your browser: the audio is decoded and measured on your machine and never uploaded to any server. You can verify this in your browser's network tab.
Integrated loudness per ITU-R BS.1770-4: K-weighting filter, 400 ms blocks, absolute (-70 LUFS) and relative (-10 LU) gating. LRA per EBU R128 (10th–95th percentile of short-term loudness).
True peak (dBTP) with 4× oversampling using a windowed-sinc FIR interpolator, per ITU-R BS.1770-4 Annex 2. It is a real inter-sample peak, not the sample peak relabeled.
Autocorrelation over a spectral-flux novelty curve (50–200 BPM search range) with parabolic peak refinement and half/double-time disambiguation by energy.
12-bin chromagram correlated against Krumhansl-Schmuckler major/minor profiles, with relative-key disambiguation. The Camelot wheel position is derived from that result.
Platform verdicts compare your integrated LUFS against each service's normalization target (Spotify/YouTube -14, Apple -16, Deezer -15). Verdicts are always word + icon + color, with a color-blind-safe palette — color alone never carries the meaning.
What the tools can't do (yet)
- Key detection assumes major/minor in equal temperament: modal music, heavy modulation or microtonal material can fool it.
- BPM assumes one dominant repeating pattern: rubato and polyrhythms have no single honest answer.
- Content-type ("vocal / instrumental") is a spectral estimate, not a recognition model.
When a measurement is an estimate, the UI labels it "estimated" and clarifies what the tool cannot determine.
Who measures
I build and calibrate these tools from the same questions I use in production, recording, mixing and mastering work. When a measurement has a limit, the interface should say so.