BPM-TOOLS
Easy to install and use, but not a very accurate algorithm, the detected BPM is too low.
Included in Ubuntu as bpm-tools package.
git clone http://www.pogo.org.uk/~mark/bpm-tools.git
Detect:
sox feels.mp3 -t raw -r 48000 -e float -c 1 - | ./bpm
Result:
92.772 (Linux)
92.814 (MS Windows)
Detect:
sox pump-up-the-jam.mp3 -t raw -r 48000 -e float -c 1 - | ./bpm
Result:
114.608 (Linux)
114.544 (MS Windows)
114.673 (MS Windows, .wav file)
Plot:
sox feels.mp3 -t raw -r 48000 -e float -c 1 - | ./bpm -g feels.dat
gnuplot
gnuplot> plot "feels.dat"
sox pump-up-the-jam.mp3 -t raw -r 48000 -e float -c 1 - | ./bpm -g pump-up-the-jam.dat
gnuplot
gnuplot> plot "pump-up-the-jam.dat"
Empiric tests suggest using a multiplying factor of 1.09
Average detected values:
(92.772 + 92.814) / 2 = 92,793
(114.608 + 114.544 + 114.673) / 3 = 114,608333333
Expected values:
101
125
101 / 92,793 = 1,088444171
125 / 114,608333333 = 1,090671126
Average multiplying factor = (1,088444171 + 1,090671126) / 2 = 1,089557649