There are various guides around instructables about pure circuit visualizers, but those are generally some kind of amplifier to make the lights pulse and change intensity in response to the power conveyed in the audio signal. I wanted something more along the line of multiple strobes responding to different frequencies of music. The end result is the mutant stepchild of this and this and a little of this, but it is totally worthwhile.
The actual audio signal gets read in from the microphone jack on the computer, so it can either accept its own sound fed back or the sound from an iPod / Rock Band / karaoke / whatever you crazy kids can dream up.
Yay new music! Courtesy of DoKashiteru and the Creative Commons, I bring you an uncensored video of the system in action:
Remove these ads by
Signing UpStep 1Parts / Tools
LEDs - Obviously. I bought really bright 10mm ones in varying colors in bulk from eBay, but you can find them on Digikey or Mouser. Higher millicandela ratings are better, especially if you want these to illuminate anything and not just be a spot of color. Shop around to find a good deal.
Resistors - One for each LED. Mine required 470 ohms, but make sure you check the ratings on your LEDs so that you get as much light as possible without burning them out.
Solderless breadboad - For all the circuitry.
Arduino - The computer/circuit interface. An awesome little board. Buy it online.
Wire - Lots of solid-core wire. I needed a lot, fast, so I ended up cleaning out my local RadioShack of this stuff, but you should be able to find it a lot cheaper. Having two strands held together like this is extremely useful, as you'll see later.
Computer - Where the actual computation takes place. Yes, this may be slightly overkill to flash a few lights, but as we inevitably end up playing our dance music from a laptop anyway it worked out just fine.
Power supply - The LEDs will likely draw more power than the arduino can provide, so we're going to be powering them externally and switching them with transistors. You should have a bunch of these lying around from old electronics, or you can find them at thrift stores. See the planning page for what voltage / amperage you need.
NPN transistors - We're using these as current amplifiers / switches. A little current drawn from the arduino controls a lot of current drawn from the power supply that runs through the LEDs. Find them online or at RadioShack.
Soldering iron - Pretty self-explanatory.
Speakers / audio splitter / male-male audio cable - Speakers for sound, splitter and cable to feed the signal from the headphone output to the speakers and microphone jack.
Software:
Arduino - Download the arduino software environment from here.
Processing - Processing talks well with arduino, and has some awesome libraries built in. Download it from here. Make sure you have the latest version of the Minim audio processing library from here. You may also need to get the 'arduino' library to get them to communicate - get it from here and stick it in your Processing/libraries folder.
| « Previous Step | Download PDFView All Steps | Next Step » |










































http://gallactronics.blogspot.in/
It can be of great help for amateur Arduino geeks. :P
If you want to experiment with fading the LEDs or doing any kind of PWM you'll need to use something more heavy-duty - transistors and MOSFETs dissipate a lot of power while switching, and it's easy to burn up little signal-level transistors like the 2n222.
Alternatively, if you're good with microcontroller programming, you could set up the FFT to run only on the Arduino (or some other controller).
If you want to go the analog route, having an oscilloscope handy is VERY useful for identifying the pass-frequencies of your filters and figuring out the necessary gain on the amplifiers.
Let me know the results and we can continue debugging from there.
1. had to make processing libraries folder(this was hard to find a good answer to to fix the lost cc.arduino library)
2.update the java TX/RX file
3.change the com port in your processing file
but all in all its pretty cool
How would you set the frequency for each specific LED? I want to build something like this mainly to learn a bit about arduino and electronics in general but with more of an equalizer feel. Saying that is there anyway to have LED's respond to volume as well. For example if they were in a stack the bottom one would almost always be on and the top would only light when the music is clipping?
However, you can go digging around in the Minim library files to figure out exactly what they're doing. I've moved on to a new laptop since writing the Instructable and don't have the library handy, but I do remember finding the declaration of 26 FFT bins and where the variance was calculated. It's possible that there are just undocumented commands to read the bin levels, or it should be easy enough to write your own.
Essentially: it's all in the library code! Once you're able to read the volume level, the display gets a bit trickier - you're essentially talking about a 2-dimensional LED display, which can require a lot of output pins. There are tons of instructables floating around about controlling displays (like http://www.instructables.com/id/LED-matrix-using-shift-registers/) so I'd say look around, mess around, and see what you can come up with.
Thanks.
If you have a common cathode LED bank, you should be able to substitute PNP transistors and rearrange the circuit - connect the transistors between +5V and the LEDs, with the common cathode connected to ground. You may run in to trouble if you try to use +9 or +12 volts - I haven't used PNP transistors in a while but I think you can run into problems if your emitter voltage is much higher than your control signal. Then again, I may be getting confused with MOSFETs, so you may as well try.
Let me know if this helped (or if you've given up in the month I took to reply).
any suggestions?
its like the range of detection is 1000-1800MHZ
so in 8 pin setup, it shoud be like each led corresponds to a range of 100MHz sucessively.
if i use 6 pin setup, will the range broaden?and will each correspond to 166Mhz?