Graphic Spectrum Analyzer

A project log for 12bit Sound Reactive Neo-Ring

Programmable Sound Reactive Neopixel Ring

manuel-alfonsoManuel Alfonso 03/11/2021 at 00:030 Comments

Testing how well performs the board with a more complex operations. 

I've implemented a spectrum analyzer to display the different frequencies on a 0.96" OLED display connected to the Neo-Ring I2C port. Also, LEDs react to that frequencies.

The MCU limitation in terms of memory and power (no FPU) do not allow to use DFT or FFT transformations, even less DSP libraries. Fortunately I found a routine that implements FFT transformations with fixed-point short integers. Also I've used an integer square root implementation from here.

I choose to focus on the most common frequency range with piano music, up to 2kHz, so the audio sampling rate is configured at 4kHz (Nyquist's theorem).

I have to make some adjustments in the source code to integrate it correctly with the rest of the Neo-Ring display modes. When done, I'll update the source code repository.

Comments and suggestions are welcome!