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:
- preliminary alignment by hidden Markov models (HMMs)
- performance error detection
- post-processing realignment by merged-output HMMs
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:
- Eita Nakamura, Kazuyoshi Yoshii, Haruhiro Katayose
Performance Error Detection and Post-Processing for Fast and Accurate Symbolic Music Alignment
In Proc. ISMIR, pp. 347-353, 2017.
Source code and application tools
Alignment tool (C++)
AlignmentTool_v240109.zip (339KB)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)
AlignmentUI_v1.zip (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
Contact
Eita Nakamurae-mail: eita.nakamura[at]i.kyoto-u.ac[dot]jp