Catching up with the Mutopia Project

One of the truly impressive parts of the broader LilyPond “ecosystem” is the Mutopia Project. It currently offers an astounding 1888 pieces of music for free download in LilyPond, PDF, and MIDI formats. Every single piece is in the public domain or licensed under a Creative Commons license. What’s even more amazing is that they were all typeset by volunteers. In this post I will discuss some recent progress in the Mutopia Project, and acknowledge the valuable work of the volunteers who contribute to it. Continue reading

Restoring Deleted LilyPond Files

There are plenty of opportunities to delete important files, and even cases where you deliberately do it and only some time later notice that it was a stupid mistake. However, if you are using version control you’re lucky because that doesn’t make you worry at all. No need to hope that some undelete tool can be applied in time before something else irreversibly overwrites the bytes on disk etc.

Well, this is neither new nor specific to music editing, but I thought it a good idea to write a short post about it anyway. It will increase the chance that someone involved in music stumbles over the information, and it is yet another spotlight on the potential of versioned workflows for music editing. Continue reading

Annotating scores

(This is a post in a series about the “Crowd engraving” project “Oskar Fried: Das trunkne Lied”)

For quite some time I had been thinking (and to some extent writing) about the potential LilyPond’s plain text approach offers for implementing in-score annotations. The idea got stuck in a state of initial drafts because it requires Scheme skills that I don’t really have, but our crowd engraving project with the huge score was an incentive for me to implement at least a “working draft”, and as it turned out this was a priceless addition already in this initial state. Continue reading

“Segmented Workflows”

OK, the title of this post seems to be a cheap pun because it refers to the previous post about the “Segment Grid” approach. But in a way it is quite appropriate because that approach allows us to split our workflow into similarly arbitrary segments as the segment grid in the score suggests. Continue reading

The “Segment Grid” Approach

This is a post in a series about the “Crowd engraving” project “Oskar Fried: Das trunkne Lied”

Ever since I started using version control for working with scores I mused about the potential this might have on a “community” approach to editing musical scores. In our edition of Oskar Fried’s songs I already enjoyed the positive impact on collaboration, but basically we had a team of only two people with more or less fixed roles: I was responsible for producing the content, Janek had to beautify the output. However, along the way I learned to enjoy the freedom and comfort LilyPond and Git offered as a reliable safety net when our roles started to blur to a small extent. I could make suggestions regarding LilyPond coding, and Janek reported issues with the content more than once. This triggered ideas about making musical editing team-ready the same way as software development works. The task of creating a huge orchestral score was a welcome opportunity to develop new tools and workflows. Today I will give you an idea about the fundamental concept of slicing the score into a “segment grid”. Continue reading

Approaching a Big Score (Oskar Fried Again)

Last time I introduced you to our crowd engraving project “Das trunkne Lied.” In this we will prepare performance material for Oskar Fried’s large cantata after a text from Friedrich Nietzsche’s “Also sprach Zarathustra”. Today I will give you some more background on the project from the musical and historical perspective. Continue reading

Crowd Engraving Picking Up Speed

My very first post on this blog was the announcment of a “Crowd Engraving” project: preparing the performance material for the voluminous orchestral score of “Das trunkne Lied” by Oskar Fried. Unfortunately it took a really long time, but now the project has finally picked up speed and changed its status from a task to a “living” project. We will update you with hopefully interesting reports and information on this blog so this will be the first of a series of posts, similar to our series of posts about our edition of the Oskar Fried songs.

Over the last year we have always written about the joy of working with plain text and version control, and particularly what a positive impact this has on our ways of collaboration. Doing that in a team actually takes it to the next level, and I can already ensure you that this really works out nicely :-) . Continue reading

LilyPond’s Look & Feel

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! :-) Continue reading

How to write readable tuplets

All notation programs aim of course at being as powerful a tool as possible to help composers, arrangers and engravers rather than hold them back. I’d like to explore an area where I think you have to use these powers with care – I’m talking about tuplets.

This article is written from the perspective of writing music in LilyPond (this is after all the LilyPond blog) but my aim is that anyone interested in music notation should be able to follow this. Continue reading

Towards templating with la-lily-pond

In my previous post “Trees, Music and Lilypond”, I introduced a hierarchical naming scheme to store music in a structured manner and then to use template functions on it. Now I will explain how template functions can also be organized hierarchically (in a tree) and “normalized,” and what benefit we gain from this. In short, this is an effective way to separate different tasks — storing the music (content) is one task and laying it out in a score (presentation) is another. While I was previously writing about the theory grounding this technique, I will now shift these ideas towards the actual implementation and the main goals of this approach. Continue reading