I'm attempting to make a spectrum equaliser, but having some problems and wondered if I've done something wrong.

I'm using this (https://www.sparkfun.com/products/9964) which is a microphone and opamp combined. It's connected to vcc, gnd and analog0. I've tried 5v and 3.3v from the arduino, and connected 3.3v to AREF but nothing seems to make any difference. The output is almost just random. I increases slightly when I clap, but only by maybe 20% or so.

Following the instructions in the thread on sparkfun, I've tried samping fast for 50ms, and then using the difference between the max and min, but this value seems pretty random. I'm also trying a FFT library (http://www.openmusiclabs.com/2012/08/arduino-fft-get-your-freq-on/), which has a Puredata patch so you can see the output. I've attached a screenshot of the output when there is silence. The FFT shape changes slightly when I clap, but it's not a significant change.

Have I missed something, or could this microphone just not be any good? It's really frustrating!

If you're using an external reference on the AREF pin, you must set the analog reference to EXTERNAL before calling analogRead(). Otherwise, you will short together the active reference voltage (internally generated) and the AREF pin, possibly damaging the microcontroller on your Arduino board.

With only a X100 gain it looks like it is not enough. I would couple it in like in this page:-http://interface.khm.de/index.php/labor/experimente/arduino-realtime-audio-processing/