Crosscorrelation search and drum pattern matching beat tracker, as described in:
N Collins. Drum Track: Beat Induction from an Acoustic Drum Kit with Synchronised Scheduling. Proceedings of the International Computer Music Conference (ICMC), Barcelona, Sept 4-9, 2005
(with special reference to the work of Jean Laroche on cross correlation/dynamic programming and Masataka Goto on drum detection and pattern spotting).
This beat tracker was devised for concert applications in tracking an acoustic drum kit, but can also be used on polyphonic audio (for pop signals with drums).
There are four k-rate outputs, being ticks at quarter, eighth and sixteenth level from the determined beat, and the current detected tempo.
Tempi of 90bpm to 190bpm are the allowed options. A tempo weighting prior can be set via a 100 float buffer. The default is a flat profile; the concert allowed for drum and bass speed drumming.
in |
Audio input to track |
lock |
If this argument is greater than 0.5, the tracker will lock at its current periodicity and continue from the current phase. Whilst it updates the model's phase and period, this is not reflected in the output until lock goes back below 0.5. You might want to play around with the following parameters, their meaning is explained in the academic paper. |
dynleak |
Coefficient of leaky integrator in causal dynamic programming routine |
tempowt |
Weighting for tempo transition cost |
phasewt |
Weighting for phase transition cost |
basswt |
Weighting for low frequency evidence |
patternwt |
Weighting for drum pattern evidence |
prior |
If a nonnegative integer, denotes a 100 float Buffer where a weighting curve for tempi resides, from 90 bpm to 189 bpm in steps of 1. |
kicksensitivity |
Multiplier for the kick drum detector's sensitivity. 1.0 is the default, increase for less senstive, decrease for more. |
snaresensitivity |
Multiplier for the snare drum detector's sensitivity. 1.0 is the default, increase for less senstive, decrease for more. |
debugmode |
0 for no debug information; 1 prints information on winning drum pattern matches and transitions to new phases/periods. 2 prints whenever a kick or snare is detected to help with fine tuning the kick and snare sensitivity. |