Next: , Previous: Percussion staves, Up: Common notation for percussion


2.5.1.6 Custom percussion staves

If you do not like any of the predefined lists you can define your own list at the top of your file.

     
     #(define mydrums '(
              (bassdrum     default   #f         -1)
              (snare        default   #f         0)
              (hihat        cross     #f         1)
              (pedalhihat   xcircle   "stopped"  2)
              (lowtom       diamond   #f         3)))
     up = \drummode { hh8 hh hh hh hhp4 hhp }
     down = \drummode { bd4 sn bd toml8 toml }
     
     \new DrumStaff <<
       \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums)
       \new DrumVoice { \voiceOne \up }
       \new DrumVoice { \voiceTwo \down }
     >>

[image of music]

Selected Snippets

FIXME: MOVE ALL THESE TO LSR! -gp

Here are some examples:

Two Woodblocks, entered with wbh (high woodblock) and wbl (low woodblock)

     
     #(define mydrums '(
              (hiwoodblock     default   #t        3)
              (lowoodblock       default   #t        -2)))
     	 %% These lines define the position of the woodblocks in the stave, if You like, You can change it 
     	 % or You can use  special note heads for the woodblocks.
     	 woodstaff = { \override Staff.StaffSymbol #'line-positions = #'(-2 3)  
     % this defines a staff with only two lines. It also defines the positions of the two lines
     	 \override Staff.BarLine #'bar-size  = #3 }
     	 %% this is neccessary. If not entered, the barline wuld be too short!
      
      \new DrumStaff  {
     	 \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
     	 %% with this You load Your new drum style table
     	 \woodstaff 
     	 \drummode {
     	\time 2/4
     	wbl8 wbl16 wbl wbh 8 -> wbl |
     	wbl 8 wbl16  wbh ~ -> wbh wbl 16 r8 |
     	 }
     }

[image of music]

See also

Note that in this special case the length of the barline must altered with \override Staff.BarLine #'bar-size #number. Otherwise it would be too short. And You have also to define the positions of the to stafflines. For more information about these delicate things have a look at Staff symbol.

A tambourine, entered with "tamb":

     
      % tambourine-music is entered with "tamb"
     	tambustaff = { \override Staff.StaffSymbol #'line-positions = #'( 0 )   
     		\override Staff.BarLine #'bar-size  = #3 
     	\set DrumStaff.instrumentName="Tambourine"}
      \new DrumStaff {
     	 \tambustaff 
     % broken
     %	 \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
     	 \drummode { \time 6/8
     		\repeat "unfold" 2 { tamb8. tamb16 tamb8 tamb tamb tamb | }
     		tamb4. tamb8 tamb tamb | tamb2.*5/6 \startTrillSpan s8 \stopTrillSpan |
     		%% the trick with the scaled duration and the shorter rest is neccessary for the correct ending of the trill-span!
     				 }
     					 }
     

[image of music]

Music for Tam-Tam (entered with "tt"):

     
      #(define mydrums '(
              (tamtam     default   #t      0) ) )
     	tamtamstaff = { \override Staff.StaffSymbol #'line-positions = #'( 0 )   
     		\override Staff.BarLine #'bar-size  = #3 
     	\set DrumStaff.instrumentName="Tamtam"}
      \new DrumStaff {
     	 \tamtamstaff
     	 \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
     	 \drummode { tt 1 \pp \laissezVibrer 
     				 } 
     					 }

[image of music]

Two different bells, entered with "cb" (cowbell) and "rb" (ridebell)"

     
     %% bells are enterd with:
     % "cb" (cowbell) and "rb" (ridebell)" 
      #(define mydrums '(
              (ridebell     default   #t        3 )
              (cowbell       default   #t        -2)))
     	
     	 bellstaff = { \override DrumStaff.StaffSymbol #'line-positions = #'(-2 3)  
     		 \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) 
     	 \override Staff.BarLine #'bar-size  = #3   
     	 \set DrumStaff.instrumentName="Different Bells"}
      
      \new DrumStaff  {
     	 \bellstaff
     	 \drummode {
     	\time 2/4
     	\repeat "unfold" 2 { rb 8 rb cb cb16  rb ~ -> | rb16  rb 8 rb 16 cb 8 cb | }
     	 }
     }

[image of music]

Here an short example by maestro Stravinsky (from "L'hostire du Soldat")

     
      #(define mydrums '(
     	  (bassdrum         default #t 4 ) 
     	 (snare              default #t -4 )
              (tambourine     default   #t      0) ) )
     	 
      global = { \time 3/8 s 4. \time 2/4 s 2 *2 \time 3/8 s 4. \time 2/4 s 2 }
     	 
     drumsA = { \context DrumVoice << {  \global }
     	{\drummode { 
       \autoBeamOff 
     \stemDown sn 8 \stemUp tamb s8 |
     		 sn4 \stemDown sn4  |
     \stemUp tamb 8 \stemDown sn8 \stemUp sn16 \stemDown sn \stemUp sn8   |
     \stemDown sn 8 \stemUp tamb s8 |
     \stemUp sn4 s8 \stemUp tamb |
     	} } >> }
     drumsB = { \drummode { s 4 bd 8 s 2*2 s 4 bd8 s 4 bd8 s 8 } }
     	 
     \layout {
     		indent = #40
     } 
     
      \score { 
      \new StaffGroup
      <<
      \new DrumStaff 
      {  \set DrumStaff.instrumentName= \markup { \column { "Tambourine" "et" "caisse claire s. timbre" } }
      \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \drumsA } 
      \new DrumStaff 
      { \set DrumStaff.instrumentName= "Grosse Caisse"
      \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) \drumsB } 
      >> 
     
      }

[image of music]

See also

Snippets: Percussion.

Internals Reference: DrumStaff, DrumVoice.

This page is for LilyPond-2.11.58 (development-branch).

Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.

Your suggestions for the documentation are welcome.