I've been messing with Arduino for sometime now, but Im still a noob never the less. Im also a former DJ and I'm pretty fond with LEDs and I understand how to program arrays.
My latest project comes straight from this device... ADJ Micro Star Laser Effect Light with Remote | American Musical Supply (A laser machine)
It detects the beat [1-2-3-4-] from the music that your playing (using a mic on the back side), blinks the red LED on the front signifying its process doing so, and controls the lights accordingly. This is what I want to make!
I want to be able to detect the beat of (preferable Electronic) Music using a sound sensor, and process that through the arduino to control pre-made array sequences ON BEAT! 8). Also, I need this whole configuration to be as small as the Arduino Nano (plus the Arduino Nano itself) and it needs to be powered by a rechargeable battery power supply .
I've looked EVERYWHERE for something that could do this. None in which took in the factor of sound sensitivity, and beat detection of the sort.
The Arduino is not good at all for sound processing.
Suppose you can make a good audio signal, it is possible to run FFT on the Arduino. Perhaps with that it is possible to detect the beat.
This is about beat detection: FFT algorithm for beat detection? - Audio - Arduino Forum
The phase locked loop concept is appropriate. Limit the frequency to a range near two hertz.
A metronome is one goal.
A second goal is not a metronome, but a hierarchy of metronomes with triplets available with binary subdivisions. Quantize the results to mute some beats that are not in a quantization window in time.
There is automatic software to write scores that you can research.
A small transistor preamp from the mic into an Arduino...
But! This would only give you access to Volume, eg how quiet/noisey it is, in order to detect bpm or look for any real waveform patterns you need to build an equalizer circuit and then on specific frequencies from the music look for what you need and act accordingly...