Arduino reading a computers audio stream?

I am pretty sure it's possible to get the arduino to do this, but how could I get an arduino to communicate with a (my) computer and stream the computer's audio into the microcontroller to be used as a variable?

Pondering the concept of a VU meter type program that would light up some LEDs according the volume of music/audio.

So you want to receive audio (not MP3s, not WAVs) into the analog port, sample it at arduino's typical 8-10 KHz capability (prior to any speed up manipulations which be possible, or beyond your skill level), and use that 0-1023 data to drive something else?

Yeah, that's certainly doable. You will have to amplify and offset your audio in some so that its centered at 2.5V and swing from 0-5V. This might be as simple as connecting two 100K resistors in series between +5 & Gnd, and connecting your audio+ thru a 220uF capacitor to the junction and then to an analog pin,with audio- to arduino ground. Audio line out can be as much as 1V, so that might be enough range, if not you will need a simple op-am circuit to provide some gain.

Oh wait, you just want Volume indication. That's even simpler. Run your audio thru a diode to the + of a polarized cap to an arduino analog pin. The cap- goes to ground. Put a resistor in parallel with the cap. As the audio comes in, it will charge the cap which will hold the level while the arduino reads it. The resistor will bleed it off. The responsiveness will vary with the capacitor size and the bleed down time of the resistor. Smaller caps will charge up faster, bigger resistors will bleed down slower. Try 0.1uF and 100K to start, see how it performs. The diode keeps the current flow one way into the cap from your audio source. You may still end up needing op amp in front for some gain to achieve full range at analog input pin. See Figure 1 here. http://www.intersil.com/data/an/an1097.pdf

KEYGKP I believe is referring to something like this. http://www.spiritone.com/~rob_369/audio/Peak%20Ind%20Circ.htm

Saved!