ReadScoreLib – Optical Score Recognition

ReadScoreLib – Optical Score Recognition 2018-02-12T21:20:05+00:00

Optical Score Recognition (OMR)
ReadScoreLib SDK for developers


ReadScoreLib is a binary C library for conversion of printed musical score images to MIDI and MusicXML, as seen in the PlayScore App. ReadScoreLib is ideal for mobile apps as well as Mac and PC applications as it can compensate for the lighting and geometric distortions produced by device cameras. ReadScoreLib is available on OS X, iOS, Android and Windows.

ReadScoreLib generates MusicXML following the format of the original music, including cross-staff beaming and other refinements. Slurs, ties, articulations, hairpins and dynamics are supported and ReadScoreLib is the only OMR product to support tremolo/tremolando notation. Grace and cue sized notes are also supported.

ReadScoreLib can correct inconsistencies and missing information found in many scores. Printed music is often an incomplete description of the intended performance, leaving much to the intuition of the human reader. A typical page of printed music may lack a time signature and rests in some of the parts. It may contain triplets and duplets not marked as such and notes misaligned with their intended beat. As a result traditional MR output can render poorly as MusicXML and sound jerky and unmusical. ReadScoreLib makes up for these deficiencies and generates a MIDI file which sounds continuous and musical.

ReadScoreLib processes a typical page of music in a few seconds on the iPad and considerably less on a modern Mac or PC.  See detailed information HERE

ReadScoreLib evaluation and licensing

The PlayScore app allows ReadScoreLib to be evaluated.  PlayScore is available for iOS and Android devices. PlayScore is based on ReadScoreLib and PlayScore can generate MusicXML from a photograph using the device camera or from a scanned image.  Please contact us at if you would like to discuss licensing

Optional extended features

The extended features below can be licensed as part of the API and are invoked through extended ReadScoreLib API calls.

This includes the notations including:

1) stem strokes plays_1
2) joined and separated alternating  plays_2
3) alternative notations  plays_3


Bounding box and ID
This feature provides the developer with the exact locations and bounding rectangles on the page for every recognised object. This is provided in the form of a separate file listing coordinates and IDs for each object and referencing the generated MusicXML by linenumber. Comments in the XML provide the same information . default-x and default-y are also supported.

Lens feature
This allows the developer to access the pre-processed image generated internally by ReadScoreLib in preparation for analysis. This is a thresholded image with photographic distortions removed. This image is easier for a human to read than a photograph and will be useful in certain kinds of application.

Text OCR (coming soon)
This allows lyrics, directions, instrument names, tempo indications etc. to be recognised and incorporated into the MusicXML.  Please note that dynamics are recognised independently and are part of the core API.

The SeeScore SDK for MusicXML rendering

The SeeScore SDK is a compatible MusicXML rendering library also available for licensing.  A free evaluation download is available at