Take a look at my [u]World's Simplest Effect[/u]. It's NOT beat detection but it "flickers" the LED/light on when the signal is above average and off when below average. That gives you lots of "lighting action" and it automatically adjusts to volume changes.
Most examples or libraries are to complicated and/or I don't understand them.
I believe it is somewhat complicated but I've never looked-into how they work. And I'd suspect they don't always work perfectly. ;)
They are "to much" or for serial input or not for Arduino (Nano).
I don't think that should be true unless you're filtering the bass with a software filter or FFT... The actual beats are slow for a computer running at MHz speed. (BTW - You're not reading serial input, you are reading the analog input.)
I'm not sure if filtering out everything but the bass is always best for beat detection... For example, sometimes the snare drum or something else "stands out" so it depends on the music.
I lost the code when my computer crashed, but I've made a "crude" beat detector, starting with my "simplest effect" concept but I use the highest value in the array as a threshold instead of using the average.
I didn't use any audio-frequency filtering but I used some timing & logic. There was a time delay of about 200 mS (1/5th of a second) after a beat detection so it doesn't re-trigger too soon. Then it starts looking for another peak. And, the trigger-threshold starts falling, so as time passes after the delay it gets more sensitive, so sooner-or-later it's going to get triggered even if the next beat isn't as strong as the 1st.
My method is imperfect but I'm just trying to make an interesting effect and a perfect 1, 2, 3, 4 flashing-light gets boring after about one song... The effect I made gets boring too, but I randomly switch to other effects with variations of every effect.
A better beat detector would be "smarter" and find the actual beat-timing over a few measures (or more) and try to sync with it, and it wouldn't matter if there is an occasional "weak" beat or a missing-beat or rest... When we tap our foot (or dance) we don't wait for the beat, we anticipate it and we get in-sync with it...