VU meter, with FFT libary using microphone and programmable led stripes

Disclaimer - I've never used the FFT library, but I know quite a bit about digital audio.

What's your major?

FFT is advanced math & programming, but you don't have to full understand the details to use the existing library. Technically, it's DFT (Digital Fourier Transform) for sampled-digitized data and there is also something called FHT which is supposed to be "easier" (and be able to process faster).

That's not a VU meter, it's a spectrum analyzer. :wink:

[quote]using microphone[/quote]The Arduino's analog input isn't sensitive enough for a direct microphone connection and the Arduino can't read negative voltages so you need a preamp and a biased output. The easiest solution is a microphone board. That's just an example. There are several compatible boards.

[quote] Frequency ranges is in the spectrum from 50Hz to 16kHz per column(per stripe).[/quote]The ADC in the standard Arduino looses resolution above a sample rate of abut 17kHz so that means your audio can only go up to around 8.5kHz (Nyquist sampling theory). I don't know how fast the FFT can run, but in this application it should be OK to loose resolution.

You'll also get aliasing (false frequencies) if you go over the Nyquist limit so you're supposed to have an analog low-pass ("anti-aliasing") filter in front of the ADC. But again, in this application the high frequencies are generally weak so the aliasing is will be "weak" and probably acceptable.

Addressable LEDs ("NeoPixels" etc. ) are processor intensive and they require quiet a bit of memory (and FFT is software intensive). Serial "shift register" addressed LEDs require less software (but more hardware).

From what I understand, FFT samples a short-bit of audio and then stops sampling while it analyzes. Then you'll have to update the LED display before sampling the audio again. It can still give a very good visual effect (and you can find examples on YouTube) but some audio is being skipped-over and you should be aware of that.

If you're not required to use FFT and if you can live with 7 frequency bands there is the nifty little MSGEQ7 chip. It takes care of the frequency filtering so you don't need FFT. That frees-up the processor to focus on the display.