Jack Valenti on… p2p networks or ?

“The growing and dangerous intrusion of this new technology,” Jack Valenti said, threatens an entire industry’s “economic vitality and future security.” Mr. Valenti, the president of the Motion Picture Association of America, was testifying before the House Judiciary Committee, and he was ready for a rhetorical rumble. The new technology, he said, “is to the American film producer and the American public as the Boston Strangler is to the woman alone.”

This is not about the internet or file sharing, it was in 1982, and he was talking about videocassette recorders. If Jack Valenti had his way back then (he almost did as the Sony BetaMax case went all the way to the Supreme Court) we wouldn’t have VCRs today, Blockbuster wouldn’t exist and 50% of Hollywoods income wouldn’t exist.

> Hello!


> I visited your computer graphics website and read about your music

> visualisation tools where you use beat detection. I have tried to find

> information about this but all I’ve found is hard-to-understand mathematics

> tutorials…


> If you have any tutorials (C#, VB, C…), links or other information that

> could help me in my beat detection project I would appreciate it a lot!


> Best regards from Sweden

Beat detection the way I did it was quite simple. In fact, I wouldn’t really call it beat detection, it was more like cheating. There is no beat counting or rhythm prediction, it is all done in real-time. But heck, CG is all about cheating… 🙂

From winamp you’re given every “cycle” a buffer that contains the left and right channel spectrograph, or FFT of the current time slice from the music. This is the exact same data that winamp displays in it’s main window.

At first, all I did was write a simple plugin that displays the spectrograph in 3D. I wasted many hours in awe of my silly creation, studying the way the spectrograph behaved with different music.

After a while I noticed that with hip hop and most techno the beat is really apparent in the lower 2-6 bars of the spectrograph from winamp. I guess in hard-to-understand mathematics they would say that a band-pass filter on the FFT from 10Hz-50Hz would isolate the beat frequencies. All I did was snag this from winamp’s buffer.

Now that I had the bass frequencies as regular integers from winamp, I just spent a lot of time experimenting with different methods of averaging their values and incrementing a counter based on this average. When the counter reached a certain point I made the conclusion that I was in a “beat” and told the graphics engine to display… whatever it pleased. Once the average died down I decremented the counter and informed the graphics engine. That’s about all there is to it. The trick is in where you pick the cut off points for “in a beat” and “out of a beat”.

So if you want to do this yourself w/out winamp you’ll need to borrow a discrete FFT algorithm from somewhere. Otherise, winamp does 90% of the hard work for you, you just need to play with the numbers till you get something that looks right. 🙂

Best of luck, show me the results when you’re done! 🙂