Audio spectrum analyzer powered by a Teensy 3.1 and an MSGEQ7.

Still, that’s just an intuition, if you give it a go I’d be really interested to see how it goes.

There are plenty of examples of folks using the MSGEQ7 to both read. process, and drive LED strings, at a mere 16MHz. Though if you want to include a second processor and offload some work, that’ll work too.

Yes, we were talking about FFTs as an alternative for beefier micros.

There’s an implementation for the Arduino for that as well: - up to 256 bins @ minimum 7ms refresh rate. Or try their FHT implementation, up to 256 bins @ 3ms refresh rate:

Turns out there’s quite a lot of fft discussion on the teensy forums too.

Those were both written for the Uno, which runs at 16MHz.

Personally, I would run FFT on at least a Teensy or faster. But, that someone wrote an implementation for the (slower) Arduino is pretty cool in my book.

It’s very cool yeah. Particularly the Hartley transform.

Silly performance hackers.

Wait who? What? Speak English Mark!

I mean… who in their right mind would try to realtime signal processing transforms on a 16MHz ATmega32X – or worse yet, an 8MHz ATtiny!

(Just feeling punchy. Though, in fact, I have great respect for folks who can make that kind of analysis work that fast!)

Right so annnyyywayyyys, from this discussion I’ve decided to try implement an alternative visualisation on the Funky Plank. Displaying an instantaneous spectrum with 42 frequency bins of 7 LEDs to indicate intensity. I think ill try use the hue to illustrate velocity and bar height the instantaneous intensity. Should be straight forward, just need to connect my opamp output to another adc input so I can switch back and forth at will. Fun coding times ahead.

(“Funky plank” is a great project name btw :slight_smile:

can’t wait to see it!

@Mark_Kriegsman I’d argue those folks bumped their heads a time or two as a child. :slight_smile:

Woohoo, I pulled it off. Video uploading of the Funky Plank upgraded to a 42-band spectrum analyzer.

Can you share which library/code you went with? Are you using a mic or line in?

This is microphone based. My circuit is pretty noisy and picks up a lot of mains hum which you can see in the bass of the video (in a fresh post). Turns out there’s an FFT guide on Adafruit based on the Teensy 3.0 which uses the proper ARM math libraries. All I did was switch out the Adafruit Neopixel library for FastLED, which I prefer, and then reworked the visualisation to give a bar-based spectro display with velocity hue. Incredibly, I’d say it was maybe 30 minutes of coding.

So here’s an interesting thing. I was scratching my head for ages trying to get decent performance out of microphone amps, even going to far as to try an external kit pcb. In the end it was one particular electret. I just got bugger all signal-to-noise out of it. Replaced it and everything was golden.

“All I did was switch out the Adafruit Neopixel library for FastLED, which I prefer” … could you share the code?? that would be amazing. I´m a newbie hier and my english is not the best, but anyway… I got an idea…what about using Processing and the FFT function of the Minim library and then send the data to Arduino? Regards