PDA

View Full Version : Beat detection


Eric Lindsey
15th September 2003, 20:07
One feature that I would like to see included in future releases of MilkDrop is an advanced beat detection feature similar to the one in AVS. As far as I can tell, MilkDrop just uses the music/bass level to trigger beat effects. One of the things I really liked about AVS was how pretty and coordinated everything looked once it got into the song a bit and got the beat. :)

-Eric Lindsey

Krash
16th September 2003, 03:04
Beat detection is written per-preset, and is therefore far more versatile than AVS in that regard.

Check out almost any preset I wrote in the last year or two, and look in the per-frame section - there you'll see my beat detection code.

Some of Geiss' presets have a simpler detection algorithm, and Unchained uses a completely different system - some people like it, some people don't.

If you run a search in the MD preset forum for 'beat', you'll come up with some old threads in which we had a lengthy debate about various beat detection (it got a little ugly at one point, but hey)

- Krash

Eric Lindsey
16th September 2003, 13:06
Interesting. Would it not be possible to have a standard (read: advanced) beat detection algorithm that MilkDrop passes to the preset with the choice that if the preset author wants to, he/she can write their own as well?

-Eric Lindsey

Rovastar
16th September 2003, 15:23
I think the biggest problem is that there is no 'standard' for beat detection. Everyone has there own 'style'.

I do like you thinking but do not think it will work. For a start we will have to agree on what is the standard 'beat' detection. Personally I find AVS's one shocking and it will at least have to be better than this.

Eric Lindsey
16th September 2003, 15:26
Well I'll agree with you there, but only with the standard beat detection. I've found that if you go into the AVS options and specifically change it to the advanced beat detection mode, it works pretty well. Of course, it's been my experience that depending on the song, it generally takes :30 to a minute to lock onto the beat, but once it finds it it seems to work quite well. Your thoughts?

-Eric Lindsey

Krash
16th September 2003, 15:46
Having an in-built beat detection within mildrop could be feasible, but deciding on a standard technique to use is a great challenge. Personally, I like that any beat detection is user-based. Every so often, someone will try their hand at beat detection, with varying degrees of success. It's interesting to see how other people tackle the problem. I'm of the opinion that if there were a built in beat detection, nobody would bother trying to write their own code, negating a potential outlet for creative and mathematical energy.

Any method of beat detection will always take time to 'lock' onto the beat in a song - humans can pick up a rhythm within about 4 crotchet notes (privided the rhythm isn't obscure - e.g the percussion intro to Tool's "Ticks and Leeches"). For a machine to detect the beat/rhythm, it needs to find enough points in the sound which are identified as 'similar', and which are consistent length of time apart, before it can even begin to guess at a beat. The accuracy of anything determined 'similar', the quality of sound, the 'noise level' of the sound (is it just a bass drum? - no noise. Is it a live recording of Metallica playing with an orchestra? - lots of noise.), and the frequency with which the sound is sampled all affect the outcome of the beat detection. To negate the time it takes to actually work all this out, the program would need to read the entire song (preferably instantly), save key information about the track, it's calculated beatrate, and significant beats to use as guiding points, and use that data when actually playing the song. This is something that winamp cannot do, at least not with any existing plugin.

- Krash

Eric Lindsey
16th September 2003, 15:50
Okay, so where was the Winamp Feature Request forum again? j/k :)

-Eric Lindsey