Light Spectrum Analyser for WS2811 Hey guys,

Light Spectrum Analyser for WS2811
Hey guys, I made this spectrum analyser that sends information to a connected arduino with FastLED and changes the lights. Includes a few handy things like smoothing color between pixels if you send less, very WIP. Any recommendations would be great.
https://github.com/edeetee/light-spectrum

What is sending the data to the serial port? Is the like a MSEGQ7?

@Justin_Eastman It looks like he has a C# program on the PC which does FFT type spectrum analysis, and sends data to the Arduino over the serial port in packed RGBRGBRGB… order as binary bytes. (No MSGWQ7 used).

The Arduino then displays it via fastLED.

One feature is that the number of “slots” of data sent over serial can be less than the number of LEDs (tho currently both counts have to be set at Arduino compile tme); the Arduino code will linearly interpolate between the values it receives.

Each serial data “packet” begins with a short text header, which is used to synchronize sender and receiver.

Edward may wish to elaborate on this.

Oh hey! I have no idea what MSEGQ7 is, but Zeph is right. In more recent versions I’m just sending across a list of values and am letting the arduino FastLED library do the HSV conversion for me. I’ll probably implement a header that allows me to use strength values or RGB interchangeably.

Just FYI, the MSGEQ7 is a chip which analyzes an input audio signal into 7 bands using internal tuned filters; you tell it to take a sample, then read out 7 values using your ADC. Easy to use, and the bands are more or less exponentially spaced which is good. FFT can analyze sound into many more frequency slots - tho they are linearly spaced.

Oh cool, so it’s just a hardware based FFT? Do you know how much they are, or if you can get ones with more bands? Could be interesting getting one if I want to set one up for live gigs etc where I can’t have a PC calculating spectrums.

It’s cool because it’s easy to use with any uC with an ADC. Internally it uses 7 tuned filters rather than an FFT, No choice of more bands.

I will note however that even an Arduino can do fixed point FFT, or FHT, surprisingly well.