Published misses

BPM detection is not exact.

Thermal's number is a measurement with a method. Here is where that method loses, on this engine, today.

Run the finder on a file and read the confidence bracket under each value.

Where it loses

The failure modes that matter.

Octave error on tempo. A 70 BPM ballad can print 140. A 160 BPM drum pattern can print 80. The detector folds every estimate into 70 to 180, which is a design choice, not a discovery.

Integer rounding. 96.4 and 95.6 both print 96. There is no tenth on purpose.

Rubato and half-time. If the onset train is uneven, autocorrelation picks the strongest repeating gap. That is often the snare, not the pulse you count.

Long files. Analysis is capped at 90 seconds of audio, either the whole file or nine spaced chunks. A hidden half-time bridge after minute four is not in the estimate.

Key: relative major and minor. A D minor bed can print F major when the third is weak. If correlation stays at or below 0.55, Thermal prints unclear instead of guessing.

Level is dBFS from RMS, not LUFS. Anyone selling this as a loudness meter is lying. We will not.

A 200-track labelled set is not published yet. Until it is, treat the brackets as the honesty, not a leaderboard. Tap what you hear when the machine number feels wrong.