Key and BPM Finder Accuracy

How often the song key finder and the BPM finder get it right on real music that was labelled by people, and where they go wrong.

Updated . Every number on this page is read from the benchmark files at build time.

Results on real, human-labelled loops

Test set: 429 loops from the Freesound Loop Dataset (Ramires et al. 2020). Loops where at least two human annotators agree; test split by uploader, never used for fitting. This test split has now been scored 2 times. Earlier scores (2026-11-01: tempo 72.9 %, key 69.5 %) were known while the current model was tuned on dev data, so this result is not fully blind. Scored 1 November 2026. Key: the exact key 67 % of the time (141 loops with a key label). Tempo: within 2 % of the label 72 % of the time (351 loops with a tempo label).

MeasureRight95 % CILoops
Key: exact66.7 %58.5–73.9 %141
Key: exact or close (relative / fifth)82.3 %75.1–87.7 %141
Tempo: within 2 %72.4 %67.5–76.8 %351
Tempo: right, or half / double87.2 %83.3–90.3 %351
Tempo within 2 %, loops with drums78.2 %72–83.4 %202
Tempo within 2 %, loops without drums64.4 %56.5–71.7 %149

The 95 % CI is the range the true accuracy most likely sits in, given how many loops were tested (Wilson score interval). Not every loop has both labels, so the key and tempo rows count different loops.

GiantSteps+ Key (Faraldo et al., Zenodo 1095691, CC BY-SA 4.0) + GiantSteps Tempo v2 (Schreiber & Mueller 2018).

Test split, never used for fitting. Scored once, after all tuning was finished. 238 items, scored 1 November 2026.

MeasureRight95 % CILoops
Key: exact72.6 %66.6–78 %234
Key: exact or close (relative / fifth)83.8 %78.5–87.9 %234
Tempo: within 2 %91.3 %73.2–97.6 %23
Tempo: right, or half / double100 %85.7–100 %23
Tempo within 2 %, loops with drums91.3 %73.2–97.6 %23

Upper bound: synthetic test clips

The engine was also scored on 2400 generated clips (chord progressions, bass and drums at known keys and tempos) that it was never tuned on. Real recordings are messier, so read these numbers as the best case, not as what to expect from your song.

MeasureRight95 % CILoops
Key: exact77.7 %76–79.3 %2400
Key: exact or close91.7 %90.5–92.7 %2400
Tempo: within 2 %94.5 %93.5–95.3 %2400
Tempo: right, or half / double98.5 %97.9–98.9 %2400

What the measures mean

  • Tempo within 2 %: |bpm - label| <= 2 % of label.
  • Right, or half / double: within 2 %, or within the same tolerance of half or double the label. The BPM finder shows the half and double values for this reason.
  • Key exact: same tonic and mode.
  • Exact or close: exact, relative major/minor, or a fifth away (Camelot +-1, same letter).

Limitations

Loops, not full songs. The test material is short loops uploaded to Freesound, a lot of it electronic. A full song gives the finder more to work with (a chorus that lands on the home chord), but also more to get confused by: key changes, long intros, spoken parts. A song that changes key gets one answer, usually the key it spends the most time in.

Key confusions are musical, not random. When the key is wrong it is usually a neighbour: the relative major or minor, which uses the same seven notes, or the key a fifth away, which differs by one note. That is why the result shows a second guess when it is not sure. On the synthetic clips the misses split like this:

  • A fifth away (e.g. G major for C major): 43 % of misses
  • Something else: 33 % of misses
  • Relative major / minor (e.g. A minor for C major): 20 % of misses
  • Same tonic, other mode (e.g. C minor for C major): 5 % of misses

Modes and blues. Songs in Dorian or Mixolydian, and blues built on dominant 7th chords, do not fit "major or minor" cleanly; expect the major or minor key that shares the most notes.

Tempo without drums. Loops without drums scored 64 % against 78 % with drums. Rubato, free-time intros and live tempo drift lower the score further; tap the tempo when the result says it is not sure.

Microphone recordings. These tests use clean files. Listening through a phone microphone adds room noise and loses the low end, so results from Listen are less reliable than results from the file itself.

Dataset and licence

Real-music results use the Freesound Loop Dataset (Ramires et al. 2020), licensed under CC BY 4.0. The loops were uploaded to Freesound by their creators; the tempo and key labels come from the dataset's annotators. No audio from the dataset is published on this site, only the aggregate scores above. The analysis code that produced them runs the same way in your browser when you use the finders.

More guitar tools