Here is my feedback on writing drum sheet music with LilyPond and Frescobaldi software.
LilyPond1 is a libre software of musical notation. It is usually used in combination with the software Frescobaldi2. Unlike other music editor, LilyPond is based on a textual approach, the drum sheet music is generated from a script close to the TeX language.
Drum notation key
First of all, you must define your drum notation key. For example, you can use the notation referenced in the book “Guide to Standardized Drumset Notation” by Norman.
I worked with the “Dante Agostini” method, so I used the following notation to write my drum sheet music:
Drum notation key
#(define DanteAgostini '(
(ridecymbal cross #f 4)
(crashcymbal xcircle #f 6)
(crashcymbala xcircle #f 7)
(openhihat cross "open" 5)
(closedhihat cross "stopped" 5)
(pedalhihat cross #f -5)
(hihat cross #f 5)
(lowmidtom default #f 2)
(snare default #f 0)
(sidestick triangle #f 0)
(tambourine default #f -2)
(lowtom default #f -3)
(bassdrum default #f -5)
(himidtom default #f 3)
(acousticsnare mensural #f 0)
))
global = {
\set DrumStaff.drumStyleTable = #(alist-hash-table DanteAgostini)
}
By default, LilyPond uses the drumpitch-ini.ly
file for setting the pitch of notes and symbols.
To define a personal notation, we create a variable DanteAgostini
which contains our configuration. The define
macro is used to substitute the notation list (crash, ride, etc…) with each DanteAgostini
occurrence found.
Two-voices notation
In the principle of two-voice notation, the stems of the notes are up or down, to separate the cymbals (in blue) of the snare, bass drum and toms (in red).
Two voices
upA = \drummode {\override NoteHead.color = #blue cymc8 hh hh hh r hh hh hh }
downA = \drummode {\override NoteHead.color = #red bd4 sn8. sn16 sn sn bd bd sn8 r }
upB = \drummode {\override NoteHead.color = #blue hh8 hh hh hh r hh hh hh }
downB = \drummode {\override NoteHead.color = #red bd4 sn8. sn16 sn sn bd bd sn8 r}
partition = {
\global
\repeat percent 1 {<<\new DrumVoice { \voiceOne \upA } \new DrumVoice { \voiceTwo \downA }>> }
\repeat percent 1 { <<\new DrumVoice { \voiceOne \upB } \new DrumVoice { \voiceTwo \downB }>> }
\bar "|."
}
Layout
In some pieces of music, reading the drum sheet music is more suitable when it is written on 4 measures per system. So to fix the number of measures per system, I use the following method:
ToutesLesQuatreMesures = \drummode { \repeat unfold 18 { s1 * 4 \break } }
AllFourMeasures
=> The name of the layer.\ repeat unfload 18
=> In this piece, there are 72 measures that represents 18 system (18 x 4 = 72).{s1 * 4 \ break}
=> An empty measures1
which is repeated 4 times with following a return to line.
This layer is associated with the partition as follows:
\score {
\new DrumStaff
\ToutesLesQuatreMesures
\partition
}
However, Lilypond manages as much as possible the rendering on 4 measures according to the size of the paper and the number of notes. Lilypond can be helped in this task by changing the orientation of the paper and the size of the characters.
\paper {
#(set-paper-size "a4" 'landscape)
}
\score {
\layout {
#(layout-set-staff-size 23)
}
}
lilypond-book
To generate the two images that illustrate the article, I used lilypond-book. The program is part of the lilypond package dependencies.
In an empty HTML file:
- write the opening tag
- add the LilyPond script of the sheet music
- write the closing tag </ lilypond>
In a terminal run the following lilypond-book command:
lilypond-book --lily-output-dir=./ my-file.html --output=./output
Conclusion
At first, working with Lilypond can seem difficult and complex. But, the time spent to understand the mechanisms during the writing of the first partition will be very useful for the following ones.
Once the structure is mastered, ie: the drum notation key, the two-voices notation and the layout, the structure is like a model that can be reused for all the other partitions. We can now focus on writing the drum sheet music and it’s relatively simple.
Lilypond’s textual approach opens up more opportunities for automating tasks.
Sheet music
Group | Title | PDF files | LilyPond Files |
---|---|---|---|
The black keys | Tighten Up | Tighten_Up.pdf | Tighten_Up.ly |
Muse | Feeling Good | Feeling_Good.pdf | Feeling_Good.ly |
Red Hot Chilli Peppers | Don’t forget me | Dont_forget_me.pdf | Dont_forget_me.ly |
Little Hurricane | Baa Baa Black Sheep | Baa-Baa-Black-Sheep.pdf | Baa-Baa-Black-Sheep.ly |