Music Engraving Options

Or

Javascript Solutions to Render MusicXML

April 2019

  • ABC2SVG
    • Based off 2014 C project abcm2ps
    • Written in Javascript
    • 7 contributors
  • XML2ABC
    • Created 2014
    • Written in Python, manually converted to Javascript
    • 2 contributors
  • ABC Notation
    • Created 1993
    • Human-writable, readable
    • Last release 2.1 in 2011
    • Draft 2.2 developed 2013-2015
  • Verovio
    • Created in 2014
    • Named after Simone Verovio
    • Written in C++, compiled with Emscripten
    • Uses MEI as backend format
    • 22 contributors
  • Music Encoding Initiative
    • XML-based
    • Created in 2010
    • Actively developed

Releases

Essential features
Notes, rests, ties, accidentals
lyrics
Desired Features
key signatures, time signatures, tempo, slurs, brackets
lyrics in a round
fermata symbol (other articulations)
grace notes
repeats
dynamics

MusicXML file MuseScore Lilypond

ABC1 ABC2 OSMD verovio

MusicXML file MuseScore

MuseScore Lilypond

ABC OSMD verovio

Features XML2ABC2SVG OSMD Verovio
Notes, rests, ties, accidentals
lyrics ⚠️ ⚠️
key/time signatures, tempo, slurs, brackets ⚠️
lyrics in a round ⚠️ ⚠️
fermata symbol
grace notes ⚠️
repeats
dynamics ⚠️

SMuFL

  • ABC2SVG: Embeds 1 font, outputs SMuFL characters, easy to switch font
  • VexFlow: WIP since 2014
  • Verovio: Compiles 4 SMuFL fonts for glyphs

Bravura

Daniel Spreadbury, Steinberg, 2013

bravura

Leipzig

Etienne Darbellay, Jean-Francois Marti and Laurent Pugin, Verovio, 2014

leipzig

Gootville

Grzegorz Pruchniakowski, MuseScore, 2014

gootville

Petaluma

Laurent Pugin, Steinberg, 2018

petaluma

Hackability

  • XML2ABC2SVG
    1. XML2ABC: Email patch file to maintainer
    2. ABC: Propose changes in mailing list
    3. ABC2SVG: Propose changes to Fossil repo "Cathedral-style development"
  • OSMD
    1. OSMD: open pull request on Github
    2. Vexflow: open pull request on Github
  • Verovio
    1. Verovio: open pull request on Github

Honorable Mention