Overview of Beat Matching in GDAM

This document is an explanation of beat matching in GDAM. See gdam.org for more information.

In addition to complete control over position and speed, GDAM can make use of meta-information about the song. This data must be entered manually by the user once, and resides in a database which GDAM references (~/.gdam/song.database is a common location.)

Currently, two values are used to describe the beat information of a song - the tempo (beats per minute) and phase (location of the first beat.) Knowledge of the tempo allows the user to automatically resample songs so that they will play in time, seek around within a song by even beats, and coordinate many effects to fit with the song. Knowledge of both the location of the first beat and the bpm allows GDAM to extrapolate the location of every single beat. This can then be used to force songs to play in time with eachother, ensuring that the beats overlap nicely.

Several tools exist to help one build their song database. The Database Builder is accessible from the song selector, and uses find and/or locate to add mp3 files to the database. The Beat Calculator graphically displays the waveform of a song, and draws lines where beats are predicted. The user can then stretch and move the beats until (if possible) they accurately describe the position of every beats. Chunks of the song can be highlighted and played back for orientation. In addition, a click track is played in time with song. One can hear the effect of adjusting the beat information instantly, and audibly verify the accuracy of a song's beat information. The volume of the click track can be adjusted. Once satisfied, the user can update the database with the song's info, and then save the database.

Collecting beat information takes a little practice, but will soon become easy. The impact of a beat is percieved when the waveform jumps from low amplitude to high amplitude, where the slope is the greatest. Percussion often stands out from the surrounding music as a strong nearly-vertical boundary between a looser, lower-frequency waveform and a more dense clump representing the high frequencies of, say, a snare hit.

Some songs will drift or change tempo over time. A more descriptive system of describing beat information will be introduced in the future to account for these cases. For now, use beat info as a guidline if you wish. Note that a song may display small local drift when zoomed in upon which is not apparent when listened to.

Related Links