I was wondering if there was an audio sensor that existed for the raspberry pi that could detect changing levels in frequency. My goal is to get some lights dancing to music using the raspberry pi.
Not that I'm aware of, however you could construct an electronic circuit with band pass filters to detect certain ranges of frequencies, then provide a TTL output (of 3.3v) to the Pi's GPIO pins.
I kindof doubt it, but I also think one would be fairly easy to build. Have a look at stuff from here: http://www.discovercircuits.com/C/color-org.htm - and try to figure out how to interface it with the GPIO...
edit: beaten to the punch!
note: I may or may not know what I'm talking about...
Look at circuits and software to DTMF (Dual Tone Multi Frrequency) how different frequencies are used to pass telephone numbers over analog phone systems to an exchange or similar (push 1 for ....)
That should give you some ideas you expand to different frequencies.
Just another techie on the net - For GPIO boards see http:///www.facebook.com/pcservicesreading
or http://www.pcserviceselectronics.co.uk/pi/
I've got a project where I'm using a USB microphone to detect sound. I then use the "arec" program from ALSA to convert it into a binary stream, and pipe it into a Python program.
I use numpy to get the data in chunks into an array, then use the FFT algorithm to measure the amplitude in various frequency bands. I do this on 250ms chunks of data, so the latency is at least 250ms, although you could use smaller.
The Pi only uses about 15% CPU doing this - completely in software in not-very-optimised python (albeit using numpy for the numerical analysis)