This week, I looked into various methods of implementing the beat tracker algorithm. I looked at the fft’s from a basic example of a simple beat as well as the fft of a more complicated, multi instrument song. I attached both here. It can be seen that the complicated song has more noise. A majority of algorithms do not depend on filtering out higher frequencies. Instead, they suggest looking at consistency. A popular method is to determine the spikes in frequency and consider that the beat. For this game, this should hopefully be sufficient.
I put this in lower quality for the post, so it’s difficult to see. This is the basic fft for about three minutes. As it can be seen, there is very little noise and the spikes are relatively clean.
Here, we can see the fft for a complicated song (“Drive By” by Train). Again, because of the low quality of the post, the noise levels are difficult to see, but this is significantly noisier than the previous graph, something that will have to be considered in the future.
There are several challenges that can be considered when looking at this. The examples up above show the majority of the song. Although the noise is not as apparent in the full sections of the songs, the complicated example is far noisier. Taking out this noise would take too long and be too complex to consider. However, one idea I have is to have an input (user-generated) beat pulse and use that to detect the specific beat of the current song. This is hopefully only for the beginning stages, and should be gone later as the algorithm advances. This week, I worked on looking at the implementation with this on numpy. Even processing the data is very slow on my personal device, so I’m looking at using other processing tools that would work better with our user requirements.