Creating drum sheet music with Lilypond

· by Steve · Read in about 4 min · (641 Words)

I’ve been trying to find a good tool to create drum-specific sheet music on my Mac, and have largely been frustrated. Expensive tools that do it all like Finale and Sibelius are just too heavyweight, both require lots of of tweaks to work well for drums, and felt a bit clumsy to me just because of their level of complexity. MuseScore looked great but the editing workflow just frustrated me, trying to get multiple voices in one stave (required when you have to chart up to 4 notes at a time in one place, because drummers have 4 limbs ;)) was far too fiddly and resulted in many annoying round-trips. Finale Notepad was almost the tool I needed, except that it refuses to properly annotate open/closed hi hats which makes it completely useless in practice (in the full Finale you can customise the notation to do it, but why do you have to?).

In the end I found Lilypond, and it’s wonderful. Not only does it support the full set of drum notation, it’s also based on text markup, making it a lot like LaTeX, which as a programmer is just perfect. Everything can be expressed as a nested syntax, copy & pasted easily, wrapped in repeats and context-specific tweaks when you need them, and I can version the whole thing in a git repository when I refine my tracks. Superb.

However, I did find that the default notation that Lilypond uses for drums was different to what I was used to. There’s no one standard notation, but the one I always use (and encounter most in places like Online Drummer and Rhythm magazine) is as denoted here. Conversely Lilypond seems to default to what Wikipedia says, which is just a weird version (to me). So the first thing I did was customise that - luckily being programmer-friendly Lilypond lets you alter most things using include files, which I used to shift the notation the way I wanted. Here’s my current standard include file, which in addition to making the notation ‘standard’ as per my experience, but also defines a useful macro ‘\flam’ which lets you create flams really quickly.

Did I say this tool was awesome? 😀

I could talk about all the cool things it supports really easily, like repeat segments with alternate endings, vocal part overlays, smart auto-layout and more. But instead, I thought I’d just share what I created today in just a few hours despite only finding Lilypond yesterday. I’ve created a public git repository with my first attempt at a full song score (pull requests welcome if you think you can improve it :)), which is Tick Tick Boom by The Hives. I want to play this but I couldn’t find a proper score for it, and I like to read a score when I’m practicing. So now I have one. 😀I charted all this myself so I’ve tried to get it as accurate as possible, but as I say if you see any mistakes please feel free to fork my git repo and submit a pull request.

Here’s the video:

And here’s the PDF version produced when you run my .ly file in the git repository above through Lilypond:

I predict I’ll be using Lilypond quite a lot in future!

PS: One problem I did have yesterday on OS X Mavericks with the standard Lilypond build is that it hung when I just saved the test file and tried to run it. I’m not sure why, because after saving a different file and loading it at startup Lilypond hasn’t hung since. So don’t be put off if the test file hangs the first time you run the program.

PS2: seems to be having some problems with their web site right now, I can’t reach it right now. Hopefully they’ll be fixing this soon!