Just Intonation – Semantic Encoding with LilyPond

Recently we have discussed LilyPond’s capabilities for engraving contemporary music. It seems many composers consider extended notation with the computer a daunting task and prefer using graphical approaches for it, like drawing tools in graphical programs or even post-processing scores in graphics programs like Inkscape or Illustrator. However, while this may seem straightforward, I’ve always felt it’s conceptually inferior, mostly because this approach is a one-way street: once you have edited the resulting PDF in a drawing program you can’t ever go back to editing the content of the score. LilyPond gives you the option of encoding what you mean, and while it is admittedly a complex task to create extended notation with it, I definitely think this feature alone makes it worth the trouble. Of course you have to consider that a composer doesn’t necessarily have to do the programming himself, there will usually be generous help from the community. And developing a library specifically addressing contemporary notation needs will (hopefully) be an extremely powerful asset for the LilyPond toolkit.

In two posts I’m going to demonstrate you one example that clearly makes this point – encoding and displaying Just Intonation.
Continue reading

The Future of openLilyLib

Some time ago Matteo Ceccarello appeared on the LilyPond stage and announced a new library that merged several ideas from this blog. My own posts about a grid approach and two posts by Jan-Peter Voigt had inspired him to develop a library where the “cells” of the grid can be directly stored in a tree-like Scheme object. I helped him integrating this library in openLilyLib where it now lives as GridLY. This process and collaboration produced some significant by-products, for example an automated testing infrastructure for openLilyLib. And now Matteo presented a new tool that opens up some important perspectives for openLilyLib. Continue reading

LilyPond and the World of Digital Music Edition

Ever heard of MEI? As a LilyPond user and regular reader of our blog you may have not, but let me assure you that MEI is one of the most exciting prospects LilyPond has had in recent years. Embracing the Music Encoding Iinitiative and interfacing with its data format will open up new horizons for us. LilyPond can be incorporated into Digital Music Edition, a realm where Finale and Sibelius fail by design. This post goes into some length introducing aspects of digital music edition and how LilyPond may (and will) fit into that system. As a surplus there’s a PDF essay attached that gives even more examples and thoughts on the subject, although more directed towards MEI-related readers.
Continue reading

Toggle Multi-line Comments in LilyPond Files

While I’m happy with having so many posts on Scores of Beauty carrying quite some weight I realized that we should think about adding more lightweight posts, offering “Tips & Tricks” every now and then. So here is a short post about a minor issue I often struggled with until I stumbled over a simple and obvious solution. This may be trivial but I can very well imagine I’m not the only one who had overlooked it … Continue reading

Glyph comparison of alternative music fonts

Abraham Lee has designed a rich collection of alternative LilyPond music fonts. Urs Liska has provided instructions on how to include them in the LilyPond score layout.

Although I have already used the fonts in LilyPond scores, my main use of the fonts is the display in ThePirateFugues software. The following video browses through the design themes for scores:

In this post, we provide a per-glyph graphical comparison of the most common glyphs in modern notation. Continue reading

Agile Music Edition?

Throughout the lifetime of this blog we have been propagating a certain perspective on music engraving and music editing. Its idea is to take advantage of methods, tools and workflows from software development and computer science. Agile software development is one of today’s strong tendencies in software development, sharing important parts of our endeavors and ideas. So why not give it a shot and draw from it, working towards agile music edition? Continue reading

„Der Rosenkavalier“ – Chamber Version with Berlin Philharmonic Orchestra

This post is partly an advertisment and partly a success story of creating Beautiful Scores with LilyPond which I had the opportunity to experience recently.

2015, April 26th, 3pm and 5pm we will play a children’s version of Richard Strauss’ „Der Rosenkavalier“ in the Philharmonie of Berlin, commissioned and played by the Berlin Philharmonic Orchestra. I made the arrangement, the engraving, and I will conduct these performances. Continue reading

“Defining a Music Function”

It’s been about a year since I started a category with Scheme tutorials, and back then I declared them as a “documentation of my own thorny learning path”. By now I’ve experienced a significant boost in Scheme “fluency” which was triggered by (and at the same time enabled) a number of projects and enhancements, for example the ScholarLY package and the jump into a fundamental redesign of openLilyLib. I thought it would be a good idea to pick up the tradition of these tutorials before I forget too much about the difficulties of finding my way around LilyPond’s Scheme. This is of course not a carefully crafted “curriculum” but it will always be a random collection of (hopefully) useful snippets of information, each one written with the goal of explaining a single topic in more depth and at the same time more casually than the LilyPond reference can do.

Today I’m writing a tutorial that I would have needed a year ago 😉 about one thing that always vaguely confused me. I usually managed to just get around it by either routinely “doing it as always” or by getting some ready-to-use code snippets from a friendly soul on lilypond-user. This is the topic of defining music-/scheme- and void-functions in Scheme. I will analyze a music function I introduced in last years’ posts and explain what is going on there. Understanding this gave me surprising insights, and I think knowing this kind of stuff is really helpful when trying to get more familiar with using Scheme in LilyPond. Continue reading

Using Lilypond in the Platonic Music Engine

I have a music generating software project, written in Lua, called the Platonic Music Engine (PME). It started its life as a simple tool to be used by several other projects I’m working on but has gotten so out of hand that it has taken on a life of its own. It aims to do everything musical that can ever be done. Part of this goal is to be able to generate sheet music in a variety of styles which is where Lilypond comes in. Continue reading

Managing Alternative Fonts with LilyPond

Oh my, it’s been quite some time since my last post – fortunately there has been at least a guest post recently and there are more in the pipeline. I have been working hard under the hood and there are exciting things going on, but nothing was in a state to be presented here. Now finally I can break the silence and write about one of the topics, at the same time providing some glimpses into other parts of current development in LilyPond’s ecosystem.

As you know (if not: it was announced in “LilyPond’s Look & Feel”) Abraham Lee has enabled LilyPond to use alternative notation fonts, and he already has provided an impressive range of fonts with various styles that are available from fonts.openlilylib.org. In a two part series I’ll introduce you to this new world of stylistic variety that has become possible through Abraham’s work and that openLilyLib makes easily accessible now.

Today we’ll take a first tour through LilyPond’s font handling in general – as it has originally been designed, as it has been until now, and as it will be from now on. In the next post I’ll take the presentation of “Arnold”, a new font Abraham created upon my suggestion, as an opportunity to dig slightly deeper into this topic and show you the tools provided by openLilyLib in some more detail. Continue reading