Nearly a year ago I introduced you to significant improvements in LilyPond’s handling of alternative notation fonts and promised a second post. Well, finally here it is, and if you read through it to the end you’ll see why it’s not coincidental that it appears on new year.

Note: This post is based on functionality provided by openLilyLib. openLilyLib is undergoing several substantial changes, therefore information and/or links in this article may not be valid anymore when you read it. If you should notice any such issues please either add a comment or contact us by other means.

New Font Loading Mechanism

The first post ended with a music example using an alternative font, Improviso, which could be activated by these trivial lines:

\include "openlilylib"
\useLibrary Stylesheets
\useNotationFont Improviso
Improviso default appearance (click to view PDF)

Improviso default appearance (click to view PDF)

This is of course a huge improvement over the former approach where you had to add a #(define fonts function in a document’s \paper block in order to change fonts. (And this had also been a huge improvement over what you had to do before.)

But today I would like to direct your attention to a specific issue: the default appearance. Maybe you notice that it’s not just the notation font but the whole score that looks different from usual LilyPond output. If you would simply replace the notation font using the (set-global-fonts) approach shown in the previous post the score would look like this:

Improviso without default stylesheet (click to view PDF)

Improviso without default stylesheet (click to view PDF)

Of course all engraving details in LilyPond’s default appearance have carefully been adjusted to match the appearance of its default font, Emmentaler, the most obvious aspects being the thickness of all sorts of lines. Different fonts may require different settings to look good, and a “handwritten” font like Improviso does so for sure.

Default Stylesheets

So what is the magic that \useNotationFont applies? Well, we have provided default stylesheets for most of the alternative notation fonts, and when the fonts are invoked like this the corresponding stylesheet is automatically loaded. As a result you don’t have to care about adjusting LilyPond’s engraving settings to a different font, everything is done automatically in most cases! Cool, isn’t it?

In order to give you more control over the loading of the font \useNotationFont provides an optional \with {} argument that can be used to set several options through key = value pairs. The above example has been created using the following command:

\useNotationFont \with {
  style = none
} Improviso

Setting style to none causes the font to be activated without any stylesheet, which usually makes sense when you want to define a stylesheet from scratch. But the style option can also be used to select alternative stylesheets (although no such stylesheets are available yet). We intend to also enable locally defined stylesheets, but this is part of the quite long todo list.

Individually Selecting A Brace Font

Most of the alternative fonts ship with a corresponding font for braces, but not all. By default \useNotationFont will fall back to the default Emmentaler when no brace font can be found. However, using the brace option you can control the selection of a brace font, choosing an arbitrary brace font.

\useNotationFont \with {
  brace = "Gutenberg1939"
} LilyJAZZ
LilyJAZZ font with Gutenberg1939 brace font (click to view PDF)

LilyJAZZ font with Gutenberg1939 brace font (click to view PDF)

This example shows a combination of clearly distinct fonts chosen to make the point clear. Nobody would want that in a real-world score, but a practical use case might be to use the Sebastiano brace font – instead of falling back to Emmentaler – together with Scorlatti which doesn’t have its own dedicated brace font.

Arnold: A New Font With Extended Features

I had something like this new interface in mind for some time, but I was finally pushed toward its implementation through the new font Arnold that Abraham Lee created upon my suggestion and that is now (as soon as the site is online again) available from fonts.openlilylib.org. It instantly recreates the atmosphere of a certain repertoire and the characteristic appearance of its original editions. Just let me show you a typical example:

Alban Berg: From "Four pieces" op. 5 (click to view PDF)

Alban Berg: From “Four pieces” op. 5 (click to view PDF)

A basic stylesheet has been applied, but beyond that no further attempts have been made to tweak this to completely match the original edition. Nevertheless the similarity to Universal Edition scores from around 1910-1920 is astonishing.

In order to show some glyphs of the new font I have deliberately added wrong content here and there – please forgive me if you’re a purist. But once more I have to point towards LilyPond’s outstanding quality of default engraving. There is one limitation that had to be handled manually: LilyPond will always align dynamic letters horizontally to their notes, which doesn’t work well in cramped scores like this. So the f in the middle of the clarinet part, the ff at the beginning of the piano, and the f towards the end of the piano left hand have manually been shifted to the left – please note that I didn’t position them exactly but only added the necessary space so LilyPond could do the actual placement. But apart from this the whole sample has been engraved fully automatically by LilyPond, without the need for any manual intervention.

Interface for Font Extensions

As the previous heading suggests Arnold has “extended features” – and openLilyLib provides a convenient way to access them. The repertoire this font is targeting makes common use of some notation elements not supported by LilyPond and Emmentaler, namely two articulations to indicate strong and weak beats, and marks to indicate principal and secondary voices. Additionally I noticed that the reference scores I investigated contained two different glyphs for the accent, and it seemed a nice idea to provide both. Abraham provided these items as additional named glyphs. LilyPond doesn’t make use of them by default but it is possible to access such additional glyphs directly. Therefore I created markup commands and custom articulations and included them in an “arnold-extensions” stylesheet for convenient access. This extension stylesheet is made available through the syntax

\useNotationFont \with {
  extensions = ##t

The new commands provided by Arnold extensions are: \arnoldWeakbeat, \arnoldStrongbeat, \arnoldVaraccent articulations, \hauptstimme, \nebenstimme, \endstimme markup commands, and finally \altAccent and \defAccent to permanently switch the accent glyph. You can see most of them in the following short (and slightly modified) excerpt from Arnold Schoenberg’s Wind Quintet op. 26:

Arnold Schönberg: Wind Quintet op. 26, beginning of second movement, oboe part (click to view PDF)

Arnold Schönberg “Bläserquintett|für Flöte, Oboe, Klarinette, Horn und Fagott|op. 26”, excerpt from oboe part, movement II (click to view PDF)
© Copyright 1925 by Universal Edition A.G., Wien/PH 230 www.universaledition.com

Such extensions are now available for Arnold, but I think this is an approach that can be built upon for other fonts. That way fonts can support additional features for their specific notation purpose, for example ancient or contemporary notation, musical analysis, or popular idioms. The nice thing about separating these as “extensions” is that it is completely separate from other stylesheets the user might select or create.

Anton Webern: Five Songs After Poems By Stefan George Opus 4

At the top of this article I wrote that it’s release date is not arbitrary. The motivation to publish it today is that the music of Anton Webern has passed into public domain last night. Therefore I want to take the opportunity to make some of his music publicly available today: The Five songs op. 4 after poems of Stefan George – which had been the initial challenge to develop Arnold for.

Original Edition (Click to enlarge)

Original Edition (Click to enlarge)

First page of our rendering (click to enlarge)

First page of our rendering (click to enlarge)

You may want to place the two pages side by side to see how close LilyPond already gets to the atmosphere of the original edition. This is not a finished score considered publication quality, though.

With the active assistance of Peter Crighton and Chris Yate (and help by discussion through several other people) I could prepare an edition of that cycle, entering and proofing the music and setting up the basic style sheet. However, it turned out that the music is extremely complicated to engrave, and therefore LilyPond obviously hits its limits of automatic engraving. This is not embarrassing once you start to realize how “hacky” the original edition actually is, but it will need more time to find solutions for all the challenges of the full score.

Therefore I do make the score publicly available today, but initially only in the form of a source code repository. When the score gets into a presentable state I will upload it to this post, but in the meantime I encourage anybody to join us and complete this first (legal) free edition of a Webern score as a real community effort.

13 thoughts on ““Arnold”

  1. Jay Anderson

    [Unrelated to the music itself] I’m glad you kept the title in as is. I was curious what font the title was, but couldn’t find anything satisfying (font match attempt: http://www.fontspring.com/matcherator?matcherator_img=90e66b9668ec53cde94bcb6766ba45bd). If you want to match that it’ll probably require creating a special font or an EPS for the title.

    As far as articulation extensions are concerned: any thoughts on adding these into lilypond and emmentaler directly?

    1. Urs Liska

      Indeed the title has been taken from the scanned image itself. And it makes a huge difference for the “instant recognition” (I was surprised to see to what extent this is). I have no idea if this font is a known font or if they created a custom font – and of course if there is a digital version of it.

      With regard to including the extensions into LilyPond we haven’t considered this so far: They are pretty specific, and I am not so keen suggesting things like this for inclusion. But above all I am not able to create new glyphs for Emmentaler’s Metafont files. If anybody wants to pick that up and provide a patch they’re of course welcome.

      1. André

        A good match for the title font could be ITC Stoclet. However, I don’t know if there’s a similar free font.

  2. Paul Hodges

    It’s a shame that at the time this was posted, the site fonts.openlilylib.org is empty, so it’s not possible to download the fonts that can be used in LilyPond. Is there a known date for its reappearance?


  3. Josh N.

    I think I know this font. It’s in the Adobe Font Folio. Here are a few from that collection that match it close:

    – Eccentric Std
    – Kolo SP Std

    I’ll keep looking; I swear I’ve seen it.

    I’ll also ask the lovely folks over at Reddit at

  4. Arjen Bax

    I can’t access fonts.openlilylib.org. Firefox shows the following error message:
    fonts.openlilylib.org uses an invalid security certificate. The certificate expired on zondag 18 september 2016 05:08. The current time is dinsdag 24 januari 2017 11:37. Error code: SEC_ERROR_EXPIRED_CERTIFICATE

    1. Urs Liska

      Unfortunately I have to say that this free LilyPond fonts site doesn’t exist anymore since Abraham Lee had to decide to change to a commercial business model.

      You can get his fonts, including Arnold from https://www.musictypefoundry.com/ now.

      Actually I should update this post and we should leave a redirection page in place, that’s right.

  5. Richard C.

    Were the fonts previously published with open-source licensing? If so, users have the right to continue sharing them.on a new web site.

    1. Urs Liska

      Yes, if you got a copy of the fonts with the original license you have the right to use and share them. This is not illegal. And some of the fonts remain under free licenses because Abraham already obtained them under free licenses.

      But you will not be entitled to any updates and extensions to the fonts that are made at MusicTypeFoundry.

      And – any ideological discussions aside – I can fully understand his decision to go that way and I can only encourage anyone to support him by actually buying his fonts, at least if you use them regularly and/or professionally.

      1. David Kastrup

        Well, ideological discussions aside, software does not market itself. Just making software proprietary does not magically sell (more?) copies. You need to figure out your market, and design a plan to address it, and acquire customers by creating marketing material and pushing it. All of that is often seriously unsexy stuff for programmers, so it often means finding a business partner who specializes on that stuff and is not turned off by it.

        It’s an understandable move to offer software only proprietarily and of course everybody has to make his own choices. It’s just a pity when that actually does not turn much of a dime. In the end, offering software proprietarily gives you leverage on your market, but if you don’t actually employ that leverage actively, it just means the software disappears for practical purposes.


Leave a Reply

Your email address will not be published. Required fields are marked *