I needed to read a track's BPM and musical key in seconds, offline, on a

phone. No ML black box, no server. Here's the signal-processing pipeline I ended

up with — hand-rolled, since the usual packages weren't an option.

Tempo

Tempo is periodicity in the track's energy. The steps: