Wednesday, February 28, 2007

Beatmatching in GDAM


At the end of the last century, as we developed GDAM, we got a lot of questions about automatic beatmatching. Non-DJ's wanted a solution to let them string songs together without error. And there was a growing body of academic work on automated pitch and rhythm tracking.

However, by that time I was listening to music complex enough that auto detection is, even today, far from sufficient to track it. Also, I wanted to have complete control over the music, and was willing to spend a bit of prep time on the music I was going to play. So I decided that regardless of any automated beatmatching, my software needed an ironclad solution for defining the rhythm of music which was too complex to rely on automatic beat detection.



The solution I came up with was the Beat Calculator a tool which assisted the user in
manually mapping out the beat for each song once, and a Song Database which stores and retrieves the beatmatching data for each file. Once you know tempo and phase of music, you have the ability to make perfect loops, synchronize effects, and even jump around in the song without dropping the beat. In fact, I'm shocked that I've still not seen another piece of DJ software which allows the user complete freedom to reorganize the song in real-time without ever dropping the beat. I get a lot of dropped jaws when I show this feature, but it is the simplest little bit of math and logic, which we've employed for over a decade.

We did at one point also support a bit of automated beat-tracking software, if i recall correctly it was called pitchtrack and was part of some grad student's paper. However by this point I had a huge library of perfectly-beatmapped files, and it was clear that automated beatmatching may be a good bullet point for selling an app to non-DJ's, but my simple assisted manual solution offered far better results.

No comments: