TSM

TSM (Tree Score Model) is a library implementing an abstract tree-structured model of music notation, used as an Intermediate Representation in applications related to the processing of written music. in particular Automated Music Transcription (see qparse).

TSM offers a structured model of written musical data, whose temporal dimension is in an intermediate representation between the real values used in acoustics and the symbolic representations of conventional Western musical notation. More precisely, temporal information is represented in the form of DAGs (shared node trees), whose branches correspond to divisions of time intervals. Such tree-like representations are common in the fields of musicological analysis and musical composition assistance tools. In the case of TSM, they allow the use of formal tools such as rewriting or formal languages for processing and reasoning on digital musical scores.

Available as a C++ library and a Python module, TSM allows the construction of musical score models, their transformation and export to XML encodings. It also offers facilities for evaluating musical notation complexity and similarity measures. Several export formats are possible, including MEI and Lilypond.

The TSM C++ code is currently integrated into the git repository of the qparse transcription tool for which it was originally designed, but it is standalone and shall be migrated to an independent repository.