A viewer and lightweight editor for MEI score encodings.

apm install mei-friend@0.2.10


mei-friend package for Atom

This package for the Atom editor will grow into a friendly companion that helps you edit and improve digital score encodings in MEI format. It makes extensive use of the fantastic engraving engine Verovio. This package started on the code of the mei-tools-atom package by Sienna M. Wood and the nCoda team.

This package is currently under development.

Current Features


  • As-you-type rendering of MEI into music notation with Verovio.
  • Scale notation (zoom in or out) for ease of viewing.
  • Update notation to current cursor position in MEI encoding.
  • Breaks options (automatic system breaks, encoded system breaks, encoded system and page breaks, none).
  • Element under cursor in MEI code is highlighted in notation window
    • this feature works by matching xml:ids, so if you have no xml:ids on your elements you will have no highlighting in your notation.
    • if the current element has no xml:id, the parent <staff> and then <measure> will be checked for an xml:id and will be highlighted if one is found.
  • Click on a note or other rendered notation element to take the cursor to the associated place in the MEI code
    • also relies on xml:ids, so elements without xml:ids do not provide this feature.
  • Refactor the MEI encoding by running it through Verovio, adding xml:ids to elements without ids.

Editing functionality

  • Navigation within the notation window by arrow keys (combined with CMD and CTRL for measure-wise and page-wise stepping).
  • Select one or more elements in the Verovio panel (SHIFT + click for multiple notes).
  • Insert slur, tie (above by default or below with CTRL).
  • Insert crescendo hairpin or diminuendo hairpin to two selected notes.
  • Insert glissando, arpeggio elements at selected notes.
  • Insert fermata to selected note (above by default or below and inverted with CTRL).
  • Insert directives, dynamics, tempo indications to selected notes (above by default or below with CTRL).
  • Insert pedal up/down.
  • Insert turn, mordent (non-default forms with SHIFT)
  • Insert trill (with extender, if two notes selected)


This package is published to the official Atom registry and can be installed by following their general instructions. If prompted to install dependencies, click 'yes' and allow installation to complete.

Once installed, use the package by following these steps:

  1. Launch Atom and open an MEI file (menu item File > Open...).
  2. To display the notation, use the menu item Packages > MEI Friend > Show/Hide Notation, or simply press Alt Cmd M on a Mac, or Alt Win M for Windows.

Validating your MEI encoding

Only valid MEI can be rendered into notation with Verovio. To ensure your MEI is valid, an XML validation package is recommended.
linter-autocomplete-jing was designed for use with TEI and MEI, so I recommend starting there.
Please note that linter-autocomplete-jing requires Java Runtime Environment (JRE) v1.6 or above. Visit the package repository for details.


This package started on the code of the mei-tools-atom package by Sienna M. Wood and the nCoda team. Thanks to Laurent Pugin and the MEI community for all their work on Verovio. Thanks also to Laurent for making Verovio available as a Node package and for constant basic support on Verovio.