I can’t remember exactly where, but recently someone commented that they were doing music reactivity using FFT on the ESP chips (either 8266 or ESP32)
When I was looking into using FFT last year I was using nanos and they simply didn’t have the oomph to do anything reasonably fast while also carrying the load of driving LEDs. (or perhaps I was just doing it wrong)
With a little help from the community I finally got some MSGEQ7 chips wired up and working… and I LOVE getting my LEDs to pulse to the bass beat of a good track. But the implementation is pretty big and bulky and requires lots of wires and components… and the frequency bands that the MSGEQ7 uses aren’t necessarily optimized for music. (Edit: I just did some research and the bands ARE actually pretty good for music… I prob just need to do some tuning)
So I’m wondering if any of the experts here have dabbled back into the FFT libraries with any success to add music reactivity to projects using the newer MCUs
Thanks!
@Yves_BAZIN Thanks Yves! You’re always so on top of everything 
For as cheap as the controllers are… I’d probably do FFT on 1 and pass the desired band information into a 2nd controller for FastLED. 
I only experimented a little with Nano’s and FHT using 60 APA102 LED’s, but did manage to get this running (starting at 1:38):
@chad_steinglass ahah thank you. I was also looking to do this 'cause for my current build i will use 16 pins for the leds and i want the SPI pins free to use and SD card and I want to do this also. You topic was right within my current search 
@John_Sullivan Not a bad idea… or I bet if I get really fancy I can potentially segregate the FFT analysis and the LED control onto separate cores of the ESP32…
But you’re totally right… at about $3 each, I could prob even do the aduio analysis and beat detection on an 8266, and send digital pulses to another controller for each of a high, mid, and low frequency beat. Only issue with the 8266’s is that they only have one analog pin. But at like $7, its not like the ESP32s are budget busters
I’ll have to see - I don’t have a good intuition about how heavy the FFT analysis will be and if it will be too much for a single MCU to do both that and LED control.
@Yves_BAZIN BTW- I am expecting a couple of these in the mail any day… I haven’t tried them but I’m excited about them - They (should be) ESP32 Dev boards with an SD card slot already mounted on the board. I assume that you can’t also use the pins that would normally go to an SD card shield, but I’m not sure.
Regardless, its cheap and saves both money and soldering compared to buying a separate controller and SD card reader
@chad_steinglass thank you for the tip !! maybe a nice review once you have them would be great 
I’ve got FFT working reasonably well on the ESP32. I’ve been porting @Jason_Coon 's webserver with audio code. It should be good enough to share soon…
There’s plenty of processing power, I’m also running an MPU9250 accelerometer at the same time and 296 SK9822s.
@Jeremy_Spencer Nice - that’s a pretty good report
excited to check it out when you’re ready to share! I still haven’t even waded into any networking connectivity, but that will be another thing that will help me slim down and simplify my builds: being able to control via smart phone means I won’t need the extra physical knobs and buttons for brightness and pattern control 
@chad_steinglass , I often incorporate a rotary encoder as well as WiFi to give the choice of how to control the patterns. I’ll be adding that code in to the ESP32 project as well soon.
I make all FFT processing on the PC ( if you music come from PC ) and then just send udp packet containing array of spectrumBytes to ESPxxxx . Also didn’t like wiring all place with audio cables and this analougus noisy inputs … On other hand you can still use MSGEQ7 on separate ESP which broadcast/multicast to others ( which drives leds ) For now have succeded with tiny python script running on Ubuntu/Pulseaudio - working for the Windows version and as trying to understand FFT logic - Want to have an option to select which frequency ranges are set to specific spectrubBytes … etc
Another great idea was to use wonderfull webkit - webaudio and disappointment came when realize that it is available only for SSL sites … 
@Nikolay_Hristov Thanks Nikolay. I think once I get this working the next thing I want to tackle is your idea of multicasting from a server ESP to several clients in order to synch up several projects. Unfortunately doing anything on a PC isn’t a great option for me because I’m making all wearable/mobile things… so I think dealing with a microphone and the associated noise is just going to be a fact of life. I’ll have to also work on some auto scaling/gain logic so that the audio analysis continues to function as the music gets louder or softer
I’ve done it already multicasting from separated esp it’s really very simple :https://gist.github.com/headphones81/14196461d47fabd7f496ddb280a5130b
Been doing FFT on Teensy 3.2 and 3.6. Very minimal circuit, just a mic plugged into a pin. Very simple to wire and good results.
@Franck_Marcotte Nice. For a mic, do you use the MAX9814 (autogain) or the MAX4466? Or something totally different?
@chad_steinglass I use the MAX9814
@Jeremy_Spencer Cool - that’s what I have and I’ve always left the gain pin floating but I just realized now that I can use a digital output pin for gain control and use code to automatically tune it down when my peaks are all high and tune it up when the peaks are all low
Can’t believe I didn’t think of that earlier