3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

LED Dance Room

LED Dance Room
This is a guide for building an Arduino-based LED music visualizer, AKA a totally sweet digital dance room.

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 adsRemove these ads by Signing Up
 

Step 1Parts / Tools

Parts / Tools
Parts:
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 StepDownload PDFView All StepsNext Step »
94 comments
1-40 of 94next »
Apr 14, 2012. 10:16 AMgallactronics says:
Wow! That's one of the coolest things ever made with an Arduino! But I have also found this site which has detailed instructions on how to make a simple Arduino LED music visualizer. Its also pretty cool and dead simple: 

http://gallactronics.blogspot.in/

It can be of great help for amateur Arduino geeks. :P

Feb 10, 2012. 11:55 AMSpio says:
Hi, great jobs. Could you tell me which are the transistors that you used before the leds?
Feb 15, 2012. 5:08 AMSpio says:
tanks a lot :)
Feb 7, 2012. 2:29 PMSplotchyInk says:
I was wondering if it was possible if there was a way to eliminate the computer and have the arduino react to a connected microphone. I kind of plan on making something similar but more portable. I dare say,even wearable.
Jan 20, 2012. 9:55 AMMas52 says:
Is it possible you can upload a higher resolution of your set up on to the site.....ive been trying to get this to work for hours but your description along with the images posted are extremely gauge for beginners like myself. I followed every instruction to the T and my result is the LEDs not lighting up nor responding to the music being played. I have the proper transistors, ground setup, pin setup, and external power source positive lead to the outer positive power rail and the negative lead to the negative rail of negative less. Im really lost at this point.
Aug 29, 2011. 6:46 PMaessam1 says:
really cool
Aug 28, 2011. 9:04 PMdogbots159 says:
Wow this looks amazing! Could anyone point me in the right direction if i wanted to do this of the inside of my pc? any help would be great because i have little experience :)
Aug 21, 2011. 7:49 PMhpfev says:
nice project! i have one question though. how bright were those leds? like in terms of mcd. thx
Aug 14, 2011. 10:39 AMNman120 says:
hey this is a great project but I had to go the long way around to get it to work
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
Jun 19, 2011. 10:20 AMB.F.L.M says:
This Is amazing! It would be a super cool dance floor too. but reinforcing might raise the price smidge.....
Jun 11, 2011. 8:21 PMNman120 says:
(removed by author or community request)
May 17, 2011. 2:52 AMjoshua.bitossi says:
After much re-organising i'm just a couple squares away from finishing my own version of this :) Great instructable and explained well enough for a beginner to figure out. I recommend using music with a very strong beat such as Pendulum, Skrillex or Benny Bennasi, looks great. If anyone has any questions feel free to message me (odds are I had the same problem at one point or another :/ )
Apr 12, 2011. 6:53 PMpinkroxmysox23 says:
I've got everything connected, power is going to the LEDs, but I cannot get them to respond to the music. I've uploaded the standardfirmata to my arduino and your processing sketch and changed the pin values to my own pin values. Help please? I have no idea what could be wrong
Mar 24, 2011. 5:40 PMtvane1225 says:
just to be sure... in order to use this? i would need to have the computer running at the same time? is there a way i could make one without having to use my laptop?
Mar 21, 2011. 4:06 PMxtm49 says:
I got it up and running, but the lights will flash randomly when no audio is being played. when music dose play the visualizer shows the audio wave form but the lights still just blink randomly. do you know what the problem might be?
Feb 6, 2011. 8:33 AMjoshua.bitossi says:
Definitely one of the coolest ibles I've seen thus far!

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?
Feb 6, 2011. 8:02 PMjoshua.bitossi says:
Sorry i just read the comment about different pins responding to different frequencies (0 is the lowest, 25 the highest yeah?). Still curious about volume or if some LED's can be made more sensitive
Jan 11, 2011. 12:25 PMcereeal says:
I know there hasn't been any comments in here for a long while, but I was wondering if there was anyway I could configure this to work with a common anode LED. As of right now my lights are inversed with this program; that is, when there's no sound all LEDs are on.
Thanks.
Jul 20, 2009. 3:38 PMginkin99 says:
Ok, so its been quite a trip, but im almost done putting this all together, haha. And im very impressed so far. Sadly, i just wired my breadboard like the picture shows, and using a test script i found that the transistor is doing the opposite of what i want. When the LED is supposed to be off, it turns on, and vice versa. Any idea why that is?
Nov 7, 2010. 1:45 AMusername299 says:
It is probably way too late for this, but if the transistor is doing the opposite of what you are desiring (which would be the case for a PNP), you could plug in the output to the other side of the transistor (in the picture above move it from the left side to the right side of the transistor). The transistors are set up in a leader-follower stage [the output is on the emitter side (left side)], for a PNP the collector and the emitter are switched. This means that you could just move the output wire over.

Jul 21, 2009. 9:33 AMginkin99 says:
Ugh, yep youre right. Looks like im taking another trip to radio shack, haha. Thanks :)
Aug 13, 2010. 10:57 AMDanNixon says:
I always seem to get errors saying I am missing packages, I actually think this is a problem with me being able to download .zip archives, since I get the same thing when downloading the libraries from the Arduino website for the Mega (library folder empty) but does anyone else need to add the Arduino library before they can run this?
Aug 9, 2010. 7:24 PMxDGx says:
when the processing sketch is running without arduino it works pretty fast, when arduino is up and running there's a delay on the equalizer and on the leds. is there a way to improve this ? any code optimization or hardware (external dedicated soundcard) ? This is what I'm getting: http://www.flickr.com/photos/xdgx/4877732548/ Thanks!
Aug 9, 2010. 4:52 PMxDGx says:
Got it to work, forgot to change the port# @ arduino = new Arduino(this, Arduino.list()[1]);
Aug 9, 2010. 4:08 PMxDGx says:
Hello! I ran the instructable.pde fine, I can see the 2 "lines" moving to the sound, but the LEDs don't light up. I've already uploaded the firmata. Is there something I'm missing ? Thank you in advance!
Jul 11, 2010. 8:49 PMwcmartin says:
Hi, I really like this project and am trying to recreate it but I was wondering what you used to house the LEDs. What are those rounded inset squares you are using? Thanks!
Feb 7, 2010. 9:52 PMberabis says:
i keep getting the error "variable or field 'drawWaveForm' declared void in function 'void setup()': in function 'void draw()': at global scope: bad error line: -3"

any suggestions?
Apr 26, 2010. 9:10 PMsiddhanth says:
 Same here.. did you debug it?
Apr 27, 2010. 12:05 AMberabis says:
i was kind of stupid and didn't realize that Processing was an actual program similar to the Arduino compiler. Arduino is actually based off of Processing. If you download the Processing app and run the program from there it works (as long as you've uploaded the StandardFirmata program to the Arduino from the Arduino compiler)
Apr 27, 2010. 1:17 AMsiddhanth says:
 i too just realized that from arduino forums... thanks anyways :-)
Mar 18, 2010. 5:47 AMsiddhanth says:
 are you sure any transistors can be used? well i dont think so... esp when you are running 40 different LEDS per branch each rating 100mA that'll be around 4AMP per branch.. i dont think using a small 547 is a SAFE choice.. it'll definitely blow up.. any idea on what mosfets do i have to use?
Mar 18, 2010. 2:45 AMsiddhanth says:
 say, i am using 6 different types of LEDs, will they correspond to their frequency?as in they will only flash WITH RESPECT TO FIRST six frequencies that corresponds to the first six pins? or all the frequencies will be redistributed to fit the channels accordingly?

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?

1-40 of 94next »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
6
Followers
1
Author:SecondTwo