Big Fish In a Small Lilypond

As a hobby technologist (and a bit of a cheapskate), I am always on the lookout for open source computing tools that have capabilities similar to more expensive, closed source alternatives. This proclivity develops into a legitimate skill when one is a Linux enthusiast, since the major pay-to-play applications usually support only Microsoft and Apple.

The preceeding factors were the motivations behind my search for alternative musical notation software, since the road well traveled is both prohibitively expensive and requires me to boot into something other than a Linux distro. Usually I start off my search for free thingamabobs by querying the official software repositories, because in addition to being a hobby technologist and a bit of a cheapskate, I am also lazy.

The very first application that caught my eye was Tuxguitar, which at first glance seemed like the perfect solution for my humble needs as a guitar instructor. Although officially focused on producing guitar tablature, it has the capability of notating actual scores. After a few months of use, however, the problems with Tuxguitar started to really become clear. The scoring option was an afterthought, leaving out simple options such as the ability to change a single note’s accidental, utilization of rhythm slashes for lead sheets, and a setting for a specific number of measures per line. Unfortunately, all of these options are necessary to me in the various musical stuffs that I done does.

In response, I decided to query my repository one more time before taking to the deeps of the web and possibly having to compile something from source (lazy), and another program caught my eye: Lilypond. Now, I had noticed this application in my first search, but after a long enough time searching for free software alternatives one acquires a certain savvy about how much of a learning curve is going to be involved, and Lilypond had set off my spidey-sense.

Fortunately for me, I decided to Nike up and Just Do It, and I’m glad I did. What I ended up finding was pretty awesome. First of all, Lilypond has no graphical user interface. Yeah. If you’re wondering how to get music notes into a computer and out of your printer without the use of your mouse, that was basically my first question.

As it turns out, Lilypond takes a raw text file script as input and outputs the result as a PDF, Postscript, or MIDI file. The script is what I can only describe as a markup language, using code blocks and tags to denote rhythms, notes, time signatures, document metadata — anything a piece of music can contain. The text file is then fed to Lilypond like source code into a compiler, and the result is pretty pretty musics. In addition, the Lilypond’s output is highly customizable and sports features such as integrated lyrics, default chord naming schemes, and lots of other features I have yet to really investigate.

A quick and easy example of Lilypond input and output:
Code Example

simple-lily-example

I never thought I would see such a robust tool for what I assumed would be a scarce intersection of computer programming and music theory interests, but I’m glad it exists. This discovery has definitely opened my eyes to the changing landscape of music production. As online music production and collaboration continue to skyrocket and computer science becomes more and more accessible, it makes a whole ton of sense for musicians to educate themselves on and avail themselves of current technologies.