Need help detecting sound levels

TL;DR
I need a sensor/microphone that outputs current volume levels in real time as a single value (i.e. 0-1023)
Will this do that? http://www.robotshop.com/en/inex-sound-detector.html

More specifically:

I'm designing a lighting system using my Arduino Uno and Processing. At the moment, pretty much everything is controlled via a GUI I've made in Processing and the Arduino is simply there to receive RGB values over serial which it uses to power an RGB LED strip. The next step I plan to take is to make the lights respond to sound levels in the room (music ideally). I worked out the math last night and I think I have a pretty cool way of adjusting the brightness of the strip by mapping it to a variable frequency sine wave. (slowly pulsates for quiet sounds and has a faster, strobe-like effect for loud sounds)

Anyways, the problem is that when I was working this all out I assumed I had a simple way of measuring loudness using a sensor that it turns out I don't actually have. I've been looking around some forums and I can't seem to find a definitive answer for what I'm looking for. Basically, I need a sensor/microphone to measure loudness/decibel level. I thought this would be simpler but I've seen a lot of talk about having to measure samples over a period of a few seconds and take averages, etc. This method won't really work for me though because the lights have to respond very quickly to changes in volume, especially since the algorithm for mapping to the waveform probably won't be too speedy itself.

I don't really care what the output of the sensor is (linear, logarithmic, etc.) just as long as it is directly proportional to volume and is at least fairly accurate.

It seems like the ZX-sound module/sensor thing that I've linked above should do the trick but I'm not entirely convinced. Any insight would be greatly appreciated.

Also, if there is some more direct way to measure this like having a splitter send sound output to both the speakers and straight into the arduino, that would be cool too. For some reason that seems like it would be much more difficult though.

One last idea:
I do currently have a cheap piezo sensor that came with the Uno starter kit. Would it be possible to get the effect I'm looking for by strapping this to subwoofer or something like that? I've never worked with piezos so I'm not really sure how stupid that sounds...

What you're trying to do is classically called a 'color organ'. The sound spectrum is broken up into bands (typically bass, midrange and treble and each band is rectified and filtered. A few diodes, resistors and caps can do this easily, and typically some of the resistors are variable so you can 'tune it'. Outputs might fire SCRs or Triacs for instance to light lamps with filters. All your really good light shows have them.

No reason you can't play as well. A couple of high pass filters (C first, feeding R to ground) with a peak detector (diode and cap across the resistor) to be read by analog input(s) should do it. You'll want to put a bleed resistor across that last cap (the one across the analog input) to get the stored charge to delay in a reasonable time (say 100mS??).

Fun idea.

RG

Does anyone have any experience with this sensor or know what sort of output it has?

(deleted)

RetiredGuy:
What you're trying to do is classically called a 'color organ'. The sound spectrum is broken up into bands (typically bass, midrange and treble and each band is rectified and filtered. A few diodes, resistors and caps can do this easily, and typically some of the resistors are variable so you can 'tune it'. Outputs might fire SCRs or Triacs for instance to light lamps with filters. All your really good light shows have them.

No reason you can't play as well. A couple of high pass filters (C first, feeding R to ground) with a peak detector (diode and cap across the resistor) to be read by analog input(s) should do it. You'll want to put a bleed resistor across that last cap (the one across the analog input) to get the stored charge to delay in a reasonable time (say 100mS??).

Fun idea.

RG

I think we might be talking about different projects here. The color organ isn't really what I'm going for, it does sound pretty cool though. What I'm trying to do is integrate ambient sound detection into an existing computer controlled lighting system. I've already made a "Manual" mode for the lights where you can set the color of the lights using Hue,Saturation, and luminosity values read from sliders on-screen in a Processing application. I also plan to add back in a mode I had made in a previous version where the lights slowly (well, variable speed actually so fast if you want) fade between different colors.

So basically what I'm looking to do now is hook up a sensor to the Arduino that can send volume levels to Processing over serial and then have the Processing side interpret the data and send back RGB values which the Arduino then uses to control the strip using analogWrite()

So I guess what I really want to know is what measurement is returned when you do an analogRead() (can't remember if thats the function) for the pin the sensor is connected to

spycatcher2k:
This sensor provides an output voltage from 0 to +5 Vdc which is proportional to the intensity of noise detected

Ok thank you spycatcher I think this is exactly what I'm looking for if that's the case