Verovio Humdrum Viewer is an online digital music editor and interactive notation rendering interface for Humdrum files, located at https://verovio.humdrum.org. See the Getting started page for a tutorial on using the VHV interface, or browse through pages on this website by clicking on the headings in the sidebar menu to the left (or above), which is organized by topic:

User interface
A description of the VHV web interface and the basics of how to use it. Topics include how to load MusicXML files, how to save MEI files, musical text colorizing, and the visual syntax of data validation.
A list of computer keyboard commands for interacting with the VHV interface. For example, alt-shift-T downloads a PDF of the music notation, alt-t downloads a PDF of the currently viewed music notation, and alt-l colors the notes differently in each layer of music for proofreading.
Graphic editing
A description of editing commands for altering the music notation graphically. Musical features that can be edited graphically include pitch, slurs, and beams. More complicated editing requires manipulation of the musical encoding in the VHV text editor.
Music encoding
Topics about representing musical features in the Humdrum syntax, particularly advanced topics related to VHV features. See the getting started page for an interactive tutorial on encoding music in the Humdrum format. More complete documentation can be found at Humdrum documentation website. The most common use of VHV is to edit music imported via MusicXML from a more full-featured graphical music editor, but Humdrum data can also be typed in manually.
A description of online musical repertories available for display in VHV. Most repertories are linked to from Github, such as the Bach chorale repertory and the Mozart piano sonata repertory. Other repertories are listed in the repertory introduction.
Filters are embedded commands within the musical data that modify the data. These are Humdrum data-processing tools that are part of humlib. Most of the currently available tools are for data processing, such as extract, which is useful for extracting part; transpose, which is useful for transposing scores, and myank, which is useful for extracting measures from a full score. The dissonant filter is used to analyze the functions of dissonant notes in Renaissance-era music, and is used as a tool in the Josquin Research Project.
Embedded options
This section of the documentation describes how to embed verovio typesetting options into the Humdrum data to control graphical aspects of the music notation. Here is a full list of the verovio parameters that can be set from within the musical data. Some aspects are controllable from keyboard commands in the VHV interface, such as alt-w to widen the spacing of the music (by increasing the spacingLinear verovio option), and alt-shift-W to narrow the spacing of the music.
Instructions and demos for using Verovio and Humdrum for your own projects. In particular, after editing a Humdrum score in VHV, you can use the Humdrum notation plugin to display the score on your own website.
Topics related to creating pages and maintaining this website.
Lists of pages by tag category.


Craig Stuart Sapp
Alex Morgan
  • dissonance labeling algorithms in the dissonant filter
  • cadential suspension definitions in the cint filter
Piotr Szyngiera

Non-programmers can participate by submitting bug reports and feature requests for the VHV web interface. If you place your own Humdrum file repertory onto Github, it can be added to the repertory list and linked up to VHV. Reports for filters should preferably be submitted to humlib issues, and reports for graphical notation should be submitted to verovio issues (when in doubt about where to submit but reports, post them to the VHV issues list). Most pages on this website have editing buttons that can be used to fix typos or add content, provided you have a Github account.


MEC 2021 Humdrum workshop
Humdrum workshop at the 2021 Music-Encoding Conference in Alicante Spain (19 July 2021).
Polyrhythm project editing notes
Notes for using VHV in preparing digital scores for the Polyrhyth Project, directed by Ève Poudrier at the University of British Columbia. (2020)
UBC October 2019 workshop
Workshop on Verovio Humdrum Viewer at the University of British Columbia, 10 Oct 2019.
IAML July 2019 workshop
Workshop on Verovio Humdrum Viewer at the International Association of Music Libraries in Kraków, Poland, 18 July 2019.
MEC May 2019 workshop
Workshop on Verovio Humdrum Viewer and its applications at the Music Encoding Conference, Vienna, Austria, 29 May 2019.
SIMSSA August 2017 presentation
Keynote presentation on Verovio Humdrum Viewer at the SIMSSA XII workshop at McGill University, Montreal, Canada, 7 August 2017.
MEC May 2017 presentation
Introduction of Verovio Humdrum at the Music Encoding Conference in Tours, France, May 2017.

Major software components

Here are the three major software components used to create the VHV website:

Music notation rendering in C++ (using MEI, with data imports from Humdrum and MusicXML and exports into SVG and MIDI)
Musical data conversion and analysis tools in C++ (using Humdrum, with imports from MusicXML and MEI and exports into MEI and MIDI)
ace editor
JavaScript text editor

Institutional/Project Supporters

Projects utilizing VHV

After preparing music in VHV, it should be suitable for use with music analysis and processing tools, such as Humdrum Tools, and for display on webpages with the Humdrum notation plugin.

For example, the Josquin Research Project (JRP) uses both the Humdrum notation plugin to display musical incipits on work pages as well as a random sample of the JRP score database displayed on the homepage. In addition, some analysis tools are implemented online through VHV. An example of this is the dissonant tool. Work pages, such as this one have an analysis tool button labeled “Dissonant” which links to VHV, loading the data from the website, and doing the dissonance analysis within VHV.

Files from other websites can be automatically be loaded into VHV by giving a URL as the filename in the file CGI parameter. For example, this link to VHV:


embeds this URL to the Humdrum data for the first movement of Beethoven’s Moonlight sonata:


This score is part of a Github repository of Beethoven piano sonatas:


which is accessible from the bottom of the help menu in the VHV interface (the question mark icon on the top left corner of the VHV page).