bpm-tools: Tempo analysis

The bpm-tools software is the result of some experiments I did into automatically calculating and tagging the tempo (in beats-per-minute) of music files.

Right now the code serves as the best explanation of the algorithm — a relatively simple application of an autocorrelation by statistical sampling. As yet, there is no scientific comparison of the algorithm with others software.

But, in general I have found this incredibly useful and flexible. It reliably detects the tempo of the vast majority of popular music I have used it with, and is a useful tool for DJs and use with xwax on Linux, and scripting on the command-line.

Source code

The most recent release is bpm-tools 0.3 (21st May 2013)

There is a Git repository available:

$ git clone http://www.pogo.org.uk/~mark/bpm-tools.git

This software is licensed under the GPLv2. This open source license comes with certain obligations; specifically, it does not permit copying into proprietary software. Contact me for commercial options for adding tempo detection to your proprietary DJ or other software.


I’m the developer of the xwax DJ software. For xwax and Linux DJ discussion, including bpm-tools, try the xwax community.

Mark Hills
December 2021