The kern2mens filter can be used to convert **kern data (modern western music notation) into **mens (white mensural notation).

Here is an example use of kern2mens to convert modern notation into white mensural notation:

Try removing the first data line starting with !!!filter: to see the original modern notation. Also trying copy-and-pasting the above data into the VHV text editor.

See the while mensural notation documentation page for more information about the **mens representation.

In VHV (but not on this page), you can view the converted **mens data by typing alt-c to compile the filter. For the above example, this will produce data that looks like the following example:

Setting the clef

A future development will allow specifying an “original clef” in the modern notation which will be used in the **mens data. Such a clef would be like a regular **kern clef, but with an o prefixed to “clef”, such as *oclefC3 for an alto clef. Currently the -c option can be used to change the clef between the **kern and **mens notation display. Here is the same music as above, but setting the **mens clef to C3 from the filter line:

Similar to *oclef, there will be an implementation of “original mensuration” signs, such as *omet(C|). This mensuration sign would be used in preference over the time signature or a plain *met(c|) meter signature when converting into **mens data.


Barlines are still needed in the converted data so that verovio can break the music onto multiple lines. Notice that tied notes are merged into single notes in the conversion. Any barlines that split a note will be removed, but the rest will be left for layout purposes. You can remove the barlines by adding the -M option, but this is currently only useful for short single-line examples.

If you want to remove bar numbers from the measures, add the -N option to the filter. If you want to see the remaining barlines, then add the -I option. Here is an example of using the -N and -I options at the same time:

Notice that some of the barlines have been remove to avoid tied notes in the converted **mens data.


Text underlay (i.e., lyrics) can be given as a **text spine to the right of the **kern spine and the resulting **mens spine:

Creating PDFs

In VHV, you can adjust the window size to fit the music and then type alt-t to download a one-page PDF file of the

visible music:

Adjust the windows size to have the music complete fit in view.

Here is the resulting PDF file, and below is shown the PDF file viewed in a PDF viewer:

Downloaded one-page PDF file in a PDF viewer.

For longer scores, type alt-shift-T to generate a multi-page PDF score formatted for letter-sized paper.

Converting polyphonic scores

Polyphonic works can also be converted:

Extracting parts from a polyphonic score

Use the extract filter to select a part from a **kern score before converting it into mensural notation.
The following example uses two filters in series:

!!!filter: extract -k 2
!!!filter: kern2mens -N

The first filter extracts the second kern spine from the left, which is the tenor part, and then converts that part into mensural notation. The two filters can also be merged into a single line by placing a pipe character between them:

!!!filter: extract -k 2 | kern2mens -N

Converting via URL

The kern2mens filter can be added to the VHV URL so that it will run automatically on data placed in the text editor. This will also allow for direct conversion to mensural notation from a MusicXML file dragged-and-dropped onto the page:

To add spaces to the URL, use %20 as a replacement for the space. For example, here is the URL for the filter kern2mens -N:

Click on one of the above lines, and then try drag-and-dropping a MusicXML score onto the page. This will automatically convert the MusicXML data into Humdrum data, and then the URL filter will convert the **kern data into **mens data. To see the final **mens data, type alt-c to compile the filter and display the result in the text editor.

To do

Some things to work on: Merge breve rests into long rests, and long rests into maxima rests. This currently has to be done by hand after conversion to **mens.

As mentioned above, accidentals and editorial accidentals still need work.

Also, suppressing notational dots in perfect mensurations needs address (currently has to be done by hand).

Other features such as colored notation and alterations are not address, and ligatures have to be notated by hand after converting into **mens data.

The rscale filter should be implemented to allow unreducing modern notation.