SCS Undergraduate Thesis Topics
|Mark Tomczak||Roger Dannenberg||BeatLib: A general-purpose beat detection library|
For most modern music, the concept of the beat or rhythm is important to both the understanding and description of the music. For automated music interpretation and analysis, an algorithm for determining the beat of a song is necessary. The "beat" or "tempo" corresponds to a periodic framework around which elements of the music are arranged. It is a perceptual construct recognizable to most people regardless of musical training. From an analytical standpoint, beat can be broken down into two values: the period (length of time from beat to beat) and the phase (location of first beat relative to start time of the music). Several algorithms have been designed to find the beat of music, but they tend to approach the problem from different and incompatible angles. A standardized interface library would allow the best aspects of multiple algorithms to be combined and leveraged against beat detection problems.
BeatLib is a toolkit of interfaces and components allowing for detectors to be constructed in an interchangeable fashion. It serves as a common-ground platform for comparison testing, and the modular design allows for new systems to be built from previously-constructed detectors. The system uses messages that are passed along strongly-typed connections between data sources and data sinks. Using the BeatLib framework, we implement Scheirer's and Goto's algorithms for beat detection and compare the two against beat information assigned by a human listener.