On September 1, 2022, GitHub Learning Lab will shut down.
Read more on the GitHub blog and check out GitHub Skills for courses backed by GitHub Actions.
See an up-to-date option for this page.

Notating with LilyPond

LilyPond is an open source technology for notating music in plain text files. In this course, we'll cover the fundamentals of music notation in LilyPond.

Start free course Join 158 others!

social preview

In this course, you'll learn how to notate music with LilyPond! You can download LilyPond and run the code from this project directly, or you can use LilyBin to play your masterpiece in the browser.

What you'll learn

After taking this course, you'll be able to:

  • Add notes
  • Specify a rhythm
  • Change a time signature
  • Add multiple notes, or chords
  • Change a key signature
  • Use accidentals
  • Specify dynamics

When you're done, you'll be able to answer questions like:

  • How do I notate music for free?
  • How do I make sheet music without a mouse or clicking through a software interface?
  • How can I make version controlled sheet music?
  • Where can I find free sheet music?
  • How do I use LilyPond?
  • What can I use LilyPond for?

We can't wait to see what you create!

What you'll build

We're going to learn how to do some single instrument notation with nothing other than a plain text editor.



  • This course assumes you are able to read sheet music in treble clef.
  • This course assumes you are familiar with the GitHub interface and working with pull requests. If you need a refresher, try Introduction to GitHub.
  • We assume you are comfortable using files and folders.

Projects used

  • LilyPond, software that makes sheet music from plain text files
  • LilyBin, a website where you can run LilyPond for free
  • You'll be able to hear MIDI files output from LilyPond
  • GitHub's file editing interface


If you are a musician, music teacher, or music student this is a great course for you. If you're wanting to learn how to notate music without needing to use a mouse or click through an interface, this is the best course for you. If you're wanting to learn how to create beautiful, amazing sheet music for free, this is a fantastic way to do that. And if you're a person who loves version control and sheet music, take this course pronto!

Steps to complete this course 8
  1. Correct the melody

    Change a note to correct the melody

  2. Change a rhythm

    Change the notation of note duration to match the traditional rhythm

  3. Change the time signature

    Specify a time signature of 2/4

  4. Create a chord

    Create a chord with C and G on the last note of the song

  5. Change the key signature

    Change the key signature from C major to C minor

  6. Add an accidental

    Add a flat on the second A note

  7. Add a dynamic marking

    Add a marking for piano on the first F note

  8. Approve and merge

    Approve and merge the pull request

Share Notating with LilyPond
Average time to complete

21 minutes


All public courses on Learning Lab are free.

Latest release

Users who took this course also took

What is GitHub Learning Lab?

Learn new skills by completing fun, realistic projects in your very own GitHub repository.

Ready to start learning?

Start Notating with LilyPond