The people at the Open Music Labs have just released a new Arduino library that allows real-time audio frequency analysis via fast-fourier transformations. It can update at a rate of one data group per 7 milliseconds. According to the library site:
The Arduino FFT library is a fast implementation of a standard FFT algorithm. It can give you up to 256 frequency bins at 16b depth, at a minimum of ~7ms update rate. It is adjustable from 16 to 256 bins, and has several output methods to suit various needs. It can be set to 16b linear, 8b linear, 8b logarithmic, or 8b octave output. All of these different modes are detailed in the read_me file (inside the FFT library folder). Since it takes in 16b, fixed point numbers, it has a noise floor of around -72dB in the low frequencies, and -78dB in the high frequencies. When using the onboard ADC, the ADC's noise floor is on the same order as the FFT's noise floor, giving somewhere between a 9b and 10b SNR (-55dB).
If you're interested in capturing audio and working with the data using your Arduino board, consider our MIC: microphone sound response and sound pressure level sensing module:
An integrated dual signal amplifier converts the sound to separate channels for pulse / frequency measurement, and sound volume (pressure) level. Designed to connect straight to an Arduino compatible microcontroller, Analog to Digital converter, or many other circuits. For more information and to order click here.