LilyPond and Alternative Music Notations:

Information for Users

 

LilyPond offers native support for chromatic-staff notation systems. See our LilyPond wiki page which has the most current documentation.

 

Most of the content on this page comes from contributor Kevin Dalley's website, and documents how to use LilyPond with his "chromatic.ly" file and template file. (See Information for Developers for more technical documentation.) There are some non-functioning features.

It is also possible to use LilyPond for alternative notation systems without using Kevin's "chromatic.ly" and template files. See the LilyPond wiki page for more about this other approach of working more directly with LilyPond rather than using Kevin's files. (Both of these approaches are possible because of the code that Kevin contributed to LilyPond.)

 

Using LilyPond to transnotate music into an alternative notation

Assuming you have already installed LilyPond, here is how you would use it to transnotate music into an alternative notation.

  1. You will need a LilyPond music file (.ly) in standard LilyPond format, in a form similar to bach-invention-09-common.ly. The LilyPond website explains how to write such files from scratch. You can also download them from the Mutopia project or other online sources.
  2. You will need a copy of the chromatic.ly file which contains the definitions of various alternative music notation systems.
  3. You will also need a template file like this one: bach-invention-09-template.ly
  4. Open the template in any basic text editor and change the following line to refer to your LilyPond music file:

    \include "bach-invention-09-common.ly"

  5. Next edit the following line near the top of the template so it refers to your desired notation. (See below for a list of notation system names that can be entered here. Each system is defined in the chromatic.ly file.)

    #(define notation-style "6-6-tetragram")

  6. In the template, change these lines to define how many octaves your music covers.

    #(define lower-octave -2)
    #(define upper-octave 1)

  7. In the template, the following should be edited so they are appropriate for your file. You can add another voice, or another staff, but should consult the LilyPond documentation for details on this.

    \VoiceOne
    \VoiceTwoNoClef

  8. Now open the template file with LilyPond. It should output your music file in the designated alternative notation, except for the following non-functioning features.

 

Non-Functioning Features

When used with the standard LilyPond application, Kevin's "chromatic.ly" and template files do not currently render ledger lines that are internal to a staff, or different note head shapes. Kevin created a modified version of LilyPond that provides these two features, but they have not been incorporated into the official LilyPond application. Kevin did submit this patch to add the internal ledger lines functionality, but it needs a bit more work before it can be added to LilyPond. His code for changing note head shapes has not been submitted to be included in LilyPond. It and his full modified version of LilyPond can be found here on GitHub.

There are other ways to get LilyPond to provide these features (See the LilyPond wiki page.) but they have not yet been integrated with Kevin's chromatic.ly and template files / code / method.

 

Notation Systems

Here is a list of notation names that can be entered in the template in step four above. Each name corresponds to a particular notation system (or "notation-style"). Note that many of these are not fully implemented and are only approximations or first steps towards full support of a given notation system. For more on this, see our overview, LilyPond and Alternative Music Notations. This list is defined in the chromatic.ly file, see Information for Developers.

6-6-tetragram (6-6 Tetragram by Richard Parncutt)
a-b (Albert Brennink's Ailler-Brennink notation)
ailler (Johann Ailler's 4-line notation)
5-line (a basic 5-line chromatic staff)
frix (Grace Frix's 5-line chromatic staff)
avique (Anne & Bill Collins' Avique notation)
mirck (Klavar, Mirck version by Jean de Buur)
twinline (Twinline, by Tom Reed)
twinline-2 (Kevin Dalley's experimental version of Twinline)
beyreuther-untitled (Johannes Beyreuther's Untitled notation)
isomorph (Isomorph notation by Tadeusz Wojcik)
kevin (an experimental notation by Kevin Dalley)
express (Express Stave notation by John Keller)

 

Note that your music file may need to be slightly edited beforehand to produce the desired result. For instance, when Kevin transnotated J. S. Bach's Invention 9 into various notation systems, he had to make a few changes to the original file that he had downloaded from the Mutopia project. For the most part, the note section remained the same. However, the lower staff in the original switched between bass and treble clefs, which he had to modify before transnotating. Here is his slightly modified file for reference: J.S. Bach's Invention 9.

Eventually we would like to create a simple front-end application with a graphical user interface to handle most of these steps. Then the user would not have to directly edit the template file at all. The user could be presented with a window where they could specify the music file, select the desired notation system, define a few parameters like the number of octaves required, and click a button to transnotate the file with LilyPond.

If you would like to help contribute to this work, please contact us.

 

Note that Kevin Dalley also created a script that allows one to easily generate sheet music in many different notation systems at the same time. This "batch processing" script is not currently documented here, but it can be found on his website.