Yesterday, I looked at some preliminary steps in the analysis of “The Jellicle Ball” from Cats. Today we look at the automated extraction of beat information from the same music recording.
Using the default settings of the Bar and Beat Tracker and BeatRoot VAMP plugin, I extract estimated beat times from the sound recording through Sonic Visualiser. I also tap 887 times through the piece as it plays (using the key “;” to make each mark on an annotation layer). I export the annotations as text files, load each in MATLAB, filter the times of beats through a 4th-order moving average, and then compute the first order differences to get smoothed beat durations. I finally convert these to tempo by multiplying the reciprocal of each beat duration by 60 s/m. The figure below shows the results.
Beatroot is having some problems it seems with its default settings. Parameters to this algorithm include: “Pre-Margin Factor” and “Post-Margin Factor” and window size, window increment, and window shape. These parameters are not discussed in any of the papers here. When google searching for “Beatroot margin” I find that Starter (base fertiliser) costs $630.00 — which is less than the $800 “Bin Hire”, but still!
Anyhow, it seems Matthew Davies’ Bar and Beat tracker is working quite well, with the exception of the times 20-40s, and minutes 3-4 (which might be an octave error).
Added later: I now see there are two other parameters to BeatRoot, which were hidden by the interface: “Maximum change”, “Expiry change”.