beat sync copy.jpg
Beat Sync is a single frequency audio spectrum volume meter.  It can isolate around a certain frequency ( I choose the bass ) and display it on a creative 8 segment LED bar graph.  This is meant to be quite simple, yet allowing room for more difficult upgrades.  It is built around the Arduino Open Source Environment. The circuitry is also quite simple.

So if you want to show off at your next house party or just make something cool to add some visualization to music, lets go!

 
Remove these adsRemove these ads by Signing Up

Step 1: Parts List

IMG_6810.JPG

Basic
- Arduino UNO (or similar)
- 8 Super Bright LEDs
- 8 Resistors
- Wire/Ribbon Cable
- 3.5 mm Female Connector
- Soldiering Equipment 
- Poster Board
- X-acto Knife
- Audio Equipment
- Mini Breadboard
- Mini Blank Circuit Board
- Heat Shrink

Additional
- 10 k Potentiometer
- Potentiometer Knob
- Colored PVC/Arcylic Film
- Diffuser

Ghild.Zero says: Dec 13, 2012. 6:48 AM
why the sketch not working on me ???
Ghild.Zero says: Dec 13, 2012. 6:55 AM
it said,"fix_fft was not declarated" , I already add the fix_fft.h . I have no Idea why this happen
BobThAK says: May 10, 2013. 9:49 PM
having same problem. did you ever figure it out?
abhijeet de says: Oct 30, 2012. 5:35 AM
Awesome project !!!
sable.07 says: Aug 14, 2012. 10:59 AM
what if I wanna change the channel, instead of using the bass frecuency, what line of the code should I change?, It's a great project btw.
akcarl (author) says: Aug 14, 2012. 12:09 PM
int value = data_avgs[0]; //0 for bass
The data_avgs[ ] array becomes 14 different frequencies ranging from about 80Hz (the bass) to 12000Hz (the highest treble). So if you change the "0" to a "7" or so, you will get the higher frequencies.  Thanks! 
sable.07 says: Aug 14, 2012. 2:31 PM
thanks!... las doubt jaja, If i connected a microphone instead of the 2.5 plug, do you think it'd work as fine as it does now?
akcarl (author) says: Aug 14, 2012. 3:48 PM
You really need an amplifier circuit for the mircophone, i've been working on a code and a circuit to make it possible. This is one option i've been trying https://www.sparkfun.com/products/9964? please vote for this project on the LED contest! and rate it! :)
mintzrya says: Aug 11, 2012. 5:47 PM
Nice project, I did a similar thing using a band-pass filter instead of a FFT (hardware instead of software)

Just a tip for the code, you should be able to write:

void ledArray (int input) {

for (int i = 0; i < input; i++)
{
digitalWrite(led[i], HIGH);
}

for (int i = input; i <8; i++)
{
digitalWrite(led[i], LOW);
}
}

and save yourself some if statements!
akcarl (author) says: Aug 12, 2012. 2:15 PM
That's a good idea. In my latest code I used a switch statement which made it much simpler too! Thanks for your comment.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!