First off i am a beginner who can do the basic stuff. My goal is to have a series of led lights flash to the beat of music in my car. I want to have it flash to the beat of the sub i have in my.I have seen where people have done it by hooking leds directrly to the amp output but that doesnt really suit me. I figured it would be better to use RCA splitters to split the audio signal from the head unit to the amp running basically a tap off to the arduino. i have had limited success with small scale testing by running the wires from a 3.5mm jack directly to the analog input on the arduino. here is what i need. i need a circuit that can recieve RCA audio input amplify it to a signal that the arduino can easily detect i also want this system to operate exactly the same way regardless of volume level. and it needs to be able to differentiate between just rummble that is common in most songs and the thud of the actual beat and only flash the led on the beat. anyone out there who can give me Source code or schematics circuit designs suggestions anything would be greatly appreciated.
on a second note what would be the best way to have the arduino rapidly turn led christmas trees on and off.
3rd note my amp has to inputs running to it but i have only 1 sub connected to it in mono would i need both of these signal cables to run to the arduino or would one suffice.
4 th note i know i need this system to revieve the full sound wave to function properly which is difficult to do because the arduino cant detect negative voltage so i need help with that too
My kids have a few toys that flash to the beat of the music. None of them require a connection to work. Some have little speakers that can be plugged in (they are MP3 player accessories that look like various animals), but it is optional. I think they use piezo mics internally. It seems that you don't need high quality audio to discern the beat.
That might work but it says the volume must be relatively high I need this to work independently of volume level also beat detection shouldn't be that hard I mean im already only sending it bass signals so all I should have to do is get some base analog data from the arduino set the light to only turn on when the is louder than a certain number right? This number needs to adjust automatically to the volume level though
You may need to smooth the data, etc or you may end up with something that looks more like a "flicker" than a "boom boom boom".
Also - no matter what you do with volume adjustments - you will most likely not be able to use simple logic such as "goes past a certain spot .. on" unless you are working with pretty much "canned" beat music that goes "boom boom boom" and not much else.
Beat detection is harder than it seems like it should be.
I am interested in how to do on this, or anyone with beat detection. I am still working on it myself but have yet to peg anything I would call "beat detection" outside the boom boom boom music .. which is easy.
you are right about full beat detection being difficult. I mean i have het to see computers do it well and they have the full wave form. my project should work. because i am not really looking fo beat detection as much as just looking for when the bass drum is played. and since its coming off the signal running to my amplifier it is already just bass. now i was thinking maybe i could have the arduino take a .5 sec sample of audio every second get the average analog value of that audio sample and have it adjust the threshold at which the light flashes accordingly. in theory this would allow the arduino to not only detect the louder sounds each time but also to adjust itself to volume. granted its not a perfect solution because ther would be a 1 second delay between volume adjustments and proper functionality but i think it would be good enough for my purposes. Would this work though?
I assume you do not mean sample for half a second every second .. that is 1/2 the time. And when you say "sample", how many samplings would you pull?
I would first try to get a beat detection routine in the best case scenario and then work out most likely manual adjustment and then finally tweaking with auto-adjustment.