Skip to content

🎡 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING
Notifications You must be signed in to change notification settings

rism-digital/verovio

Repository files navigation

License: LGPL v3 PyPI PyPI - Wheel AppVeyor status GH Actions status PyPI - Downlaods NPM - Downlaods DOI

Verovio is a fast, portable and lightweight library for engraving Music Encoding Initiative (MEI) digital scores into SVG images. Verovio also contains on-the-fly converters to render Plaine & Easie Code, Humdrum, Musedata, MusicXML, EsAC, and ABC digital scores.

Verovio is written in standard 2020 C++ and can be compiled as a standalone command-line tool, used as a compiled music-rendering library for applications (Qt, python), or compiled into Javascript using the Emscripten LLVM-to-JavaScript compiler. Check out the JavaScript toolkit version of verovio running in the MEI Viewer as well as the app or tutorials for web integration and user interaction.

Choice interaction

Verovio uses the Standard Music Font Layout (SMuFL) specification and the font can be changed for personalizing the output.

The project page is https://www.verovio.org. Verovio is available under the LGPL license (see COPYING and COPYING.LESSER).

Building and use instructions by environment

See the Reference book

LibMEI

The code for the attribute classes of Verovio are generated from the MEI schema using a modified version of LibMEI available here. The code generated is included in the Verovio repository and the LibMEI repository does not need to be cloned for building Verovio.

Versioning

As of 2025, major release cycles are increased once per year, with version 5.x.x for 2025. Verovio will independently switch to development versions of MEI, whenever appropriate. This will always correspond to a minor release and will be properly documented.

Previous releases of Verovio were aligned with MEI versions as follows:

  • Verovio 1.x.x ⇔ MEI 3.0
  • Verovio 2.x.x ⇔ MEI 4.0
  • Verovio 3.x.x ⇔ Development of MEI since 4.0
  • Verovio 4.x.x ⇔ MEI 5.0

Other libraries

The following libraries are embedded in Verovio:

library purpose
humlib Humdrum file import/export
JSON++ JSON data parser
MidiFile Standard MIDI file export
pugixml XML data parser
MINIZ-CPP ZIP files reading/writing

Contributing

See the Reference book

Example output

The sample page of music shown below was generated with version 2.4.0-dev-2748fed

Example page