Starting out with Lilypond music notation software
Over the past 4 years or so, Lilypond has become the primary software I use for music typesetting. I use it because it’s workflow suits the way I write music, because it is relatively easy to customize and make one’s own, and because it is open-source software and is not at the mercy of a company’s current interests/priorities (ahem).
This post is meant to provide someone with knowledge of writing music some basic tools for getting started using Lilypond and will hopefully open the door for some people to start using this great software.
Lilypond - What is it?
Lilypond is a markup language and interpreter (kind of like HTML on a web page and a web browser) that reads markup language and outputs a PDF file of music notation (and if you want a MIDI file as well). You tell Lilypond what music you want printed by writing it out in code. The code is fairly straight forward and once you get the hang of it, can be entered very quickly. I think of it as akin to taking a handwritten letter and typing it out in a word processor like Microsoft Word. You can get straight to downloading here if you want.
Lilypond Code - What does it look like?
When you first open Lilypond, a file opens up with a little introduction typed out and the following code:
\header{
title = "A scale in LilyPond"
}
\relative {
c d e f g a b c
}
You save the file to your desktop (or wherever) and then select “Compile - Typeset file” from the menu. A PDF file will then open up and you will see the music.

Now, Lilypond made a lot of assumptions from our limited input. We only entered in note names, but Lilypond put in a treble clef, 4/4 time signature (common time), and made each note a quarter note. Lilypond has some defaults assumed so that it is easier to jump right in and see the music. But let’s get right to adjusting the output.
Note names are written as is “c d e f g”. Sharps and flats are written with -is and -es appended to the end of the note names. So C# is cis and Db is des. This is based on the German words for sharp and flat. If you would prefer to use the english spelling (C# is cs, Db is df), then include the following line of code at the top of the file.
\include "english.ly"
So let’s change the code to write a D Major scale instead of C Major.
\header{
title = "A D Major scale in LilyPond"
}
\relative {
d e fis g a b cis d
}

Rhythms are written directly after the note name. So a half note D would be written d2 Quarter note F# is fis4 Dotted Eighth C# is cis8. (with the period after the “8”). Let’s now change the rhythm.
\header{
title = "Rhythms in LilyPond"
}
\relative {
d1 e2 fis4 g4 a2 b4. cis8 d1
}

As you can see Lilypond automatically adds measures when you need them. Finally let’s change the clef to bass clef and change the time signature to read “4/4” instead of “C”.
\header{
title = "End of Lilypond Tutorial"
}
\relative c {
\clef bass
\numericTimeSignature
d1 e2 fis4 g4 a2 b4. cis8 d1
}

Now I have added a “c” to the \relative command so that the notes will sit on the bass staff. The \clef command is used to change to any clef. And the command \numericTimeSignature tells Lilypond than I don’t want that Common Time time signature.
So that will hopefully get some people started. I highly recommend reading this, this, and the whole Lilypond.org site in general. And whenever you get stuck just search “Lilypond ___________” (The blank being whatever you have a question about), like “Lilypond trills” or “Lilypond remove bar lines” and you will probably find your answer. Feel free to ask me any questions or if you need clarification on anything.