Passing digital values directly to FFT rather than DAC -> ADC -> FFT

Hi -
So, I'm 90% done with the obligatory LED strip spectrum analyzer project... When Radio Shack went tits up, I was able to pick up a handful of RGB Strips for peanuts. Because you can only control the LEDs in groups of three, they are fairly useless for motion graphics. But mounted sideways, those groups of three make great vertical bars for visualizing FFT bins.

There are numerous examples of using the Arduino's ADC to sample audio and pass that to an FFT. But there also exist a few audio shields that are able to decode audio files internal to the Arduino. Why would I perform the DAC to ADC if its possible to simply pass the digital samples straight to the FFT?

Does anyone know of a product that exposes an API making this scenario possible?

Thanks ~ Jason

Why would I perform the DAC to ADC if its possible to simply pass the digital samples straight to the FFT?

For the reason that you can not do an FFT at the same rate as you generate samples. Sure you can directky move the file samples into the FFT's buffer but then what? Think how long it takes to perform an FFT, typically you don't update the display faster than about ten times a second where as the audio sample is more like 22 thousand times a second.

I find it hard to believe that the only way to analyze the frequency content of digital audio stored on an SD card connected to an Arduino is to first convert it to Analog and then resample it back into the digital domain so that an FFT may be performed.

Is that what you're saying?

Regards ~ Jason

No it is not what I am saying. I am saying that you can do this but not produce a sound at the same time. And if you just want to do it with the file and not produce a sound then it will not be in real time unless you time things accurately and miss out a whole bunch of samples between each FFT.