Symbolic Music Alignment Tool

Picture Symbolic music alignment (or score-to-performance matching) is a technique to automatically match a note in a music performance to the corresponding note in the score. This tool includes an accurate alignment algorithm and is provided with a user interface to visualise the alignment result so that one can examine and correct it. The main alignment algorithm consists of three parts: By detecting performance errors in the preliminary alignment result, the algorithm automatically finds regions in the performance that can potentially contain alignment errors and corrects them by the realignment process.

The following source code is published under the MIT licence. Upon the use of this work, we kindly ask to explicitly cite/mention the following paper:

Source code and application tools


Alignment tool (C++) (344KB)
Manual (PDF)

Alignment data visualizer and editor on the web

This tool enables to check and edit alignment data. See the manual for data formats. (The tool does not perform alignment.)

User interface (Qt code, old version) (83KB)
Manual (PDF)

Demonstrating examples

Alignment results by HMM are compared with results after realignment by the merged-output HMM. As in examples above, the upper staffs represent the score information and the lower staffs represent the performance information, and missing notes (extra notes; pitch errors) are indicated with pink (cyan; red) bold boxes.

Example 1 from Chopin: Fantaisie Impromptu


Example 2 from Chopin: Scherzo No. 2


Example 3 from Brahms: Paganini Variations Book 2 Variation 9


Example 4 from Beethoven: Piano Sonata No. 23 'Appasionata' 1st Movement



Eita Nakamura
e-mail: eita.nakamura[at][dot]jp