A fast, portable library for engraving MEI, MusicXML, and Humdrum music scores into SVG images.
Verovio is an open-source music notation engraving library that converts digital music scores from formats like MEI, MusicXML, and Humdrum into SVG images. It provides a fast, portable rendering engine for applications requiring high-quality music notation display. The library supports multiple programming language bindings and can be used as a command-line tool or integrated into software projects.
Developers building music notation software, digital musicology researchers, and educators creating interactive music applications. It is particularly useful for projects needing to render or convert between various music encoding formats.
Verovio offers a lightweight, performant alternative to proprietary music engraving engines, with broad format support and cross-platform compatibility. Its open-source nature and extensive language bindings make it highly adaptable for both web and native applications.
🎵 Music notation engraving library for MEI with MusicXML and Humdrum support and various toolkits (JavaScript, Python)
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Verovio supports MEI, MusicXML, Humdrum, and multiple other notation formats, enabling seamless conversion and rendering across diverse digital score types as listed in the README.
Available as a C++ library with bindings for JavaScript, Python, Java, Swift, and Go, allowing integration into web, desktop, and mobile applications, evidenced by the minimal sample apps for Qt, Android, and iOS.
Uses the Standard Music Font Layout specification, so developers can change fonts to personalize the appearance of rendered scores, as mentioned in the README for output personalization.
Written in standard C++20 and optimized for speed, making it lightweight and efficient for rendering complex scores, highlighted in the philosophy as prioritizing speed and portability.
Verovio is a rendering library; creating a full-featured notation editor requires building the user interface and interaction logic from scratch, which is not provided despite the interactive toolkits.
Renders scores exclusively to SVG format, so additional tools or conversions are needed for exports to PDF or other vector/raster formats, limiting out-of-the-box flexibility.
Compiling the C++ library or using certain bindings may involve managing dependencies and build tools, as indicated by the detailed building instructions and embedded libraries like humlib and pugixml.