The beat detection algorithm was implemented by changing existing Matlab code that was created based on a research paper (both referenced in Sources tab). The code was optimized by changing the frequency bands in the frequency filterbank and adjusting the time comb filters to enable the algorithm to detect lower tempos.
The table above displays our results of the Matlab code compared to the tempos we obtained by manually taking the tempo of the song. The algorithm was fairly accurate for the songs highlighted in green, but for the songs highlighted in red the algorithm predicted a tempo either double or half the human-detected tempo. These results are explored in more detail below.
The figure to the left shows the result of the time comb filter function for the song "Infiltrator", where the algorithm outputted the correct tempo.
The figure to the left shows the result of the time comb filter function for the song "River", where the algorithm outputted the incorrect tempo. The peak circled by the green circle is the human-detected tempo and the peak circled by the red circle was the tempo that the code picked, which is about double the human-detected tempo. This represents a limitation of the algorithm for in detecting harmonic multiples or fractions of the song.