Beat Detection Algorithms, Part 1
mziccard.me
mziccard.me
Still interesting though.
And if you have no beat in that range, then you'd probably not use the low-pass strategy described there.
I would add that a song must have percussive elements in order to have a "beat" as described by the article. It can have a tempo without a beat (think organ music), but this is called beat detection, not tempo detection.
"You can think to the beat of a song as the rythm you tap your foot at while listening to it."
By the stated definition, almost all music has a beat, whether or not it has percussive elements.
The article also says it's the "beat" that makes you dance. A barbershop quartet can have a beat with just vocals. I'm not disagreeing with what you wrote, just explaining why I think a kick isn't necessary for beat detection, even though it makes it easier.
The reason this technique is called "beat detection" is it can be used to collect the individual beats from the stream contrasted with knowing the just the tempo doesn't tell you where the beats are exactly (and doesn't help a lick with finding the off-beats.) Tempo detection is only one product of these algorithms, and guesses can be constructed from any of them, though sometimes additional heuristics are needed.
The accuracy of the LPF technique is well worth criticizing. Yes, it's fairly good, but it's not the best one we have and the article says part 2 will describe a better technique. I should note that even organs and vocals can create transients that are often associated with beats. The LPF probably does better simply by eliminating false-positives.
I haven't kept up with the literature, but his work is quite old now, so I wouldn't be surprised if there were better approaches along similar lines.
There's also Beatroot[2] which operates in a similar fashion to the OP described solution, but AIUI more flexible in looking for certain spectral flux signatures in various bands to determine beat onsets.
I'm also intrigued by the cliffhanger in the original article posted here - wavelet or other approaches for accuracy/resilience, and so will be looking forward to when it's released.
Sound energy algorithm is not very good imho.
Low pass is a step in the right direction, but I've found a combo of low pass and band pass to be more accurate.
Here's a vid of Vix in action: