BPM Live - Realtime BPM Measurement



(c) Werner Van Belle, 2000 - 2006 - All rights reserved

Introduction

Bpm Live is a live BPM counter for unix. It has been developed from 2000 until now udner the form of a hobby project, called BpmDj. BpmDj helps one in analyzing songs for various parameters, one of them being the tempo. The BpmDj analysis however requires the full availability of the songs and the algorithm does not easily map onto a realtime analyzer. To this end the algorithm has been modified in order to be useful realtime.

BpmLive is a demonstration of this algorithm. It works for linux, requires alsa sound drivers and will report both an immediate measuremtn as well as a balanced stable measurement.  The algorithm will also print out *** at the same tempo as the current stable measuremetn. This might allow the construction of midi metronomes and other useful tools.

Download

The program can be downloaded in sourceform from
http://werner.onlinux.be/bpmlive/bpmlive-0.1.source.tar.gz or from
http://werner.yellowcouch.org/bpmlive/bpmlive-0.1.source.tar.gz or from here

After downloading the source, go to the directory where the file bpmlive.pro is located. To compile it enter,
qmake
make
The binary will be located in the bin directory afterwards.
If this seems somewhat complicated, download the binary from

http://werner.onlinux.be/bpmlive/bpmlive or from
http://werner.yellowcouch.org/bpmlive/bpmlive or from here

These are ELF executables, relying on FFTW3 and QT3 for respectively fourier analysis and user interface widgets.

Setup & User Interface

The BpmLive user interface provides the current input volume, the current tempo and the stable/balanced tempo. The first time the player is started it will generate a couple of optimal fourier mappings. This is done using the fftw3 library. This process can take a loooong time (5 minutes on my computer). In other words: be patient the first time you start the application !

Input signal

The program will take input from alsa device hw:0 at a samplerate of 11025 Hz, 8 bit. If your sound card does not support this you might need to change the source to take input from plughw:0. Data is read from the line in device. BpmLife does not provide you with a mixer. This means that you will first need to select the correct capture device and tune the volume. This might turn out to be somewhat more tricky than expected given the large number of possible capture devices and switches offered by current day soundcards. Furthermore your input signal should be plugged in into the right entrance at the back of your computer. Normally the capture parameters can be tuned when BpmLife is running. Good programs to tune the soundcard parameters are the alsa mixer, kmix, rexima, aumix. Please be aware that not all programs allow you to change all parameters. In doubt use the alsamixergui.

Improvements

Linking up the softawre to a midi device to produce clicks, beats and ticks or a clock signal would be very useful. At the moment I don't have time to do this.If you are interested in doing so, please visit the file metronome.cpp.

Acknowledgements

Nancy Gerits for drawing the background image.

Copyright & Licensing

BpmLive and all its components are copyrighted by Werner Van Belle. For licensing/distribution/source modifications and any other thing you might want to do with the program, please contact me.