On the use of phase and energy for musical onset detection in the complex domain
This is a master thesis report dealing with the subject of synchronizing a sequencer to polyphonic music. The task is divided into three subproblems: onset detection, tempo/meter analysis, and synchronization. An in-depth study of selected methods for solving these problems is presented. Based on this study, a complete system has been designed. Onset detection is performed by dividing the musical signal into several frequency bands, and differentiating their amplitude envelopes. Onsets are discriminated by peakpicking with an adaptive threshold function. The tempo is evaluated continuously, by keeping a leaky histogram of inter onset interval times. The tempo is decided by finding the most frequent time in the histogram. The time signature of the music is found by evaluating the onset autocorrelation at lags corresponding to tempo fractions. The bar length is decided as the tempo fraction where the autocorrelation is the strongest. Synchronization is carried out with a phase-locking loop, where the system clock output is aligned to the detected onsets. The clock output is sent to the sequencer over a MIDI bus. The system has been implemented on a DSP56303 evaluation module (except for time signature identification). The performance of the system depends on the input; music with a strong beat has shown to yield good results, while non-percussive music is very difficult for the system to correctly classify.