Optical music recognition

From MusiCAD

Optical Music Recognition or OMR or also known as Music OCR (Optical Character Recognition) is the conversion of paper sheet music by scanning (or read from PDF) and then save in a format readable by music notation software using midi or MusicXML. MusiCAD does not have its own OMR facility built-in, but it can import MIDI and MusicXML.

The resolution (number of dots per inch, dpi) is important when scanning music. A resolution that is too coarse (less than 300dpi) makes translating the scan into notes difficult/unreliable.

The OMR software must then recognize the staffs, find barlines, detect the vertical position of note heads on/between staff lines/leger lines, detect sharps and flats, stems, flags, beaming, slurs and ties, clefs, time signatures, ornaments and recognize text. Once all that has been done, usable music must be made from it in the OMR program.

It is easily possible to write down something on paper sheet music that is not correct in terms of notation (too many or too few notes in a measure) or is even nonsense. If you scan that and then try to import it, it will probably cause a lot of problems... With the original music included and the notation bar of MusiCAD insert turned on, you can probably make corrections quickly.


In the case of saving as midi, time signatures, number of sharps and flats (key) and all beginnings and endings of all notes are written into the midi file. However, midi, for example, knows nothing about sharps, flats and keys. These cannot be saved in the midi file and when importing a midi file the music notation software used will have to make a decision about the notation to be used...

If a part contains (only) low notes, a bass clef will be the result, otherwise the treble clef is chosen. You will have to adjust other keys (alto, tenor) yourself afterwards.


If MusicXML is written, more information (clef, sharps, flats, arcs, text, barlines, etc.) can be retained. When importing from MusicXML, not all information present in MusicXML is interpreted by MusiCAD.