A short report about my audio visualisation progress.

A short report about my audio visualisation progress. I´m in the 700 fps range now with the APAs. For every frame i read the MSGEQ7 and every 10 led frames I update the OLED.
I never saw so much detail in a visualisation. But the noise in the MSGEQ7 readings becomes an issue again. So I use a ringbuffer for the last 20 spectrum readings and take the max value only. That keeps the rising time low, but causes a little delay (20/700s) for a falling audio band. I can live with that - it makes the output way more steady. And it makes me happy today.
Next thing to find a solution for: finding the “significant” band which contains the actual groove. It´s easy to feel it if depending on the music the basedrum or the hihat is more important. It´s also easy to look at the spectrum analyzer and say which band rises periodically.
But how to express this in code? I´ve no clue yet. My only idea is, to run some “beat detection” on every single audio band and test, if the predicted next beat (rising band value) matches reality. If so it could be a significant band. But the beat detection alone is anything but trivial. It would need dynamic upper and lower limits to auto adjust the threshold to name just one of the problems I see.
So - brainstorming session please - any ideas how to make the controller understand where (in which audio bands) the groove is hidden?

I have no idea either, but I can’t wait to see the results when you figure it out! :slight_smile:

Well, I´m not sure if I will ever accomplish that but high goals guarantee an interesting journey and this might lead to new insights and findings along the way.

@Stefan_Petrick in the video descriptions are links to the theory and source files. Maybe you can port this into Arduino.

This is an outstanding good idea to model the beat with the physics of a kicked jumping ball! And it´s basically simple - nothing beyond functions we´ve already used with leds. :slight_smile:
I appreciate the link a lot!

Hi @Stefan_Petrick ​ have you tried a good old fashioned envelope detector circuit?

Here are a couple of articles discussing how a “transient designer” can recognize a transient regardless of its amplitude. Perhaps this could help with beat detection?