As described in the introductory essay on its website LilyPond is modeled after classical plate-engraved scores. This deeply influences the way how LilyPond “thinks” about laying out objects on a virtual paper, but it also results in a characteristic “Look & Feel” that makes music engraved with LilyPond stand apart.

However, while this default appearance is undisputedly of high quality it is (of course) not to everybody’s pleasure, and it can be considered a rather severe limitation that the Emmentaler notation font is so deeply interwoven into LilyPond itself that it can’t easily be replaced with other fonts matching different styles.

But wait a minute: Did I say “it is a limitation”? Well, I have to stand corrected: It was a limitation, and this limitation has gone now! 🙂

The Gloomy Days of the Past

LilyPond has a very special relationship to its notation font. For example its source code is managed with the source code of LilyPond itself, and with each build of LilyPond the font is also built newly. But LilyPond is also (to my knowledge) the only notation software that makes use of optical sizes. That means: when printing at very small sizes it uses a font variant with less detail that looks better and somewhat bolder. As a consequence of that approach and attitude the usage of Emmentaler is realized in a very non-standard way, and originally it wasn’t possible to use different fonts to change the global appearance of the scores as you could do with other notation programs.

There has been one approach with one alternative font, Gonville that you could use, but only through a very hacky procedure where you basically made LilyPond think it used Emmentaler. It has been discussed as a severe usability restriction on the mailing lists, and when I talked with representatives of several major publishing houses this topic was one that always came up very early – and it definitely was a potential showstopper.

Unfortunately there hadn’t been any progress in that area because despite of a constant need for switching fonts there didn’t seem a solution in sight. While not qualified impossible it was understood that the issue is quite complex and those who are interested in it didn’t have the knowledge to do anything about it while those who could have tackled the task were too busy with other development tasks. One particular problem was the vicious circle that without fonts it doesn’t make sense to develop a switching mechanism, and without the option to use them it doesn’t make sense to develop fonts …

A First Approach: LilyJAZZ and SMuFL

Some time ago Torsten Hämmerle created a new Jazz font and made it usable with LilyPond (see this post). Some time later Nathan Ho adapted that approach to enable the use of SMuFL compatible fonts with LilyPond, as described in this post.

While this already was a significant improvement – particularly with the expectation of more and more SMuFL compliant fonts becoming available – the approach still wasn’t completely satisfying. It is somewhat unnatural to LilyPond in its technical implementation, and as you can see from the referenced articles it is quite some work to get such fonts to work flawlessly with LilyPond.

The Breakthrough: LilyPond Can Switch Fonts!

This was the situation until quite recently when Abraham Lee came around. He was the one combining the knowledge and tools with sufficient interest in the topic, and he created a working solution that really makes it possible to use LilyPond with different music fonts now 🙂 .

Starting with LilyPond 2.19.12 you can switch the music fonts as easily as switching the text fonts, and for the current stable release 2.18 there is a simple patch that anybody could apply. In addition Abraham has already supplied a really useful range of fonts that can now be used with LilyPond, and it seems he has found convenient workflows to add more fonts in the future.

It still doesn’t mean you can use LilyPond with any notation font – the fonts have to be set up to be compatible with LilyPond’s metrics and glyph allocation. And there is the small limitation that the new fonts don’t support the optical sizing (they do work but “only” the way notation fonts work in other programs). But having the option to switch fonts that easily, and already having such an interesting array of fonts available is nothing less than a breakthrough in LilyPond’s usability!

Edit: unfortunately Abraham had to decide not to make his fonts available for free anymore and has set up Music Type Foundry as his marketing platform. Still his work is an awesome contribution to LilyPond’s ecosystem and you may enjoy the following samples: