2 Bagpipe music settings for Lilypond.
\r
3 This file builds on work by Andrew McNabb (http://www.mcnabbs.org/andrew/)
\r
5 Substantial changes and additions made by
\r
6 Sven Axelsson, the Murray Pipes & Drums of Gothenburg
\r
7 (http://www.murrays.nu)
\r
9 $Id: bagpipe.ly,v 1.1 2005/08/04 21:54:58 gpercival Exp $
\r
14 % Notes of the scale of the Great Highland Bagpipe. Extra high notes for bombarde.
\r
15 % Flat notes used mainly in some modern music.
\r
17 pitchnamesBagpipe = #`(
\r
18 (G . ,(ly:make-pitch 0 4 NATURAL))
\r
19 (a . ,(ly:make-pitch 0 5 NATURAL))
\r
20 (b . ,(ly:make-pitch 0 6 NATURAL))
\r
21 (c . ,(ly:make-pitch 1 0 SHARP))
\r
22 (cflat . ,(ly:make-pitch 1 0 FLAT))
\r
23 (d . ,(ly:make-pitch 1 1 NATURAL))
\r
24 (e . ,(ly:make-pitch 1 2 NATURAL))
\r
25 (f . ,(ly:make-pitch 1 3 SHARP))
\r
26 (fflat . ,(ly:make-pitch 1 3 FLAT))
\r
27 (g . ,(ly:make-pitch 1 4 NATURAL))
\r
28 (gflat . ,(ly:make-pitch 1 4 FLAT))
\r
29 (A . ,(ly:make-pitch 1 5 NATURAL))
\r
30 (B . ,(ly:make-pitch 1 6 NATURAL))
\r
31 (C . ,(ly:make-pitch 2 0 SHARP))
\r
33 pitchnames = \pitchnamesBagpipe
\r
34 #(ly:parser-set-note-names parser pitchnames)
\r
36 % Bagpipe music is written in something like D major. If we use
\r
37 % flattened notes, the flat should be shown on all instances.
\r
39 hideKeySignature = {
\r
40 % We normally don't want to show the key signature.
\r
41 \override Score.KeySignature #'print-function = ##f
\r
42 \set Score.extraNatural = ##f
\r
43 \set Staff.keySignature = #'((0 . 2) (3 . 2))
\r
44 #(set-accidental-style 'forget)
\r
46 showKeySignature = {
\r
47 % Show the key signature e.g. for BMW compatibility.
\r
48 \override Score.KeySignature #'print-function = #'Key_signature_interface::print
\r
49 \set Score.extraNatural = ##f
\r
50 \set Staff.keySignature = #'((0 . 2) (3 . 2))
\r
51 #(set-accidental-style 'forget)
\r
59 % All stems go down.
\r
60 \override Stem #'direction = #-1
\r
61 % All slurs and ties are on top.
\r
62 \override Slur #'direction = #1
\r
63 \override Tie #'direction = #1
\r
67 % Some common timing tweaks.
\r
69 % Sets the autobeamer to span quarter notes only. Use for fast music.
\r
70 % TODO: Needs more tweaking
\r
72 #(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
\r
73 #(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
\r
74 #(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
\r
75 #(override-auto-beam-setting '(end * * * *) 4 4 'Staff)
\r
76 #(revert-auto-beam-setting '(end 1 32 2 4 ) 1 8 'Staff)
\r
77 #(revert-auto-beam-setting '(end 1 32 2 4 ) 3 8 'Staff)
\r
78 #(revert-auto-beam-setting '(end 1 32 4 4 ) 1 8 'Staff)
\r
79 #(revert-auto-beam-setting '(end 1 32 4 4 ) 3 8 'Staff)
\r
80 #(revert-auto-beam-setting '(end 1 32 4 4 ) 5 8 'Staff)
\r
81 #(revert-auto-beam-setting '(end 1 32 4 4 ) 7 8 'Staff)
\r
84 #(override-auto-beam-setting '(end * * 2 2) 1 2 'Staff)
\r
85 #(override-auto-beam-setting '(end * * 2 2) 2 2 'Staff)
\r
87 % Reels are in allabreve time with half note beaming.
\r
92 % 4/4 marches are written with numerical time signature and with quarter beaming.
\r
95 \override Staff.TimeSignature #'style = #'()
\r
99 % Single grace notes
\r
100 grG = { \grace { \small G32 } }
\r
101 gra = { \grace { \small a32 } }
\r
102 grb = { \grace { \small b32 } }
\r
103 grc = { \grace { \small c32 } }
\r
104 grd = { \grace { \small d32 } }
\r
105 gre = { \grace { \small e32 } }
\r
106 grf = { \grace { \small f32 } }
\r
107 grg = { \grace { \small g32 } }
\r
108 grA = { \grace { \small A32 } }
\r
111 dblG = { \grace { \small g32[ G d] } }
\r
112 dbla = { \grace { \small g32[ a d] } }
\r
113 dblb = { \grace { \small g32[ b d] } }
\r
114 dblc = { \grace { \small g32[ c d] } }
\r
115 dbld = { \grace { \small g32[ d e] } }
\r
116 dble = { \grace { \small g32[ e f] } }
\r
117 dblf = { \grace { \small g32[ f g] } }
\r
118 % These are the same as the half doublings.
\r
119 dblg = { \grace { \small g32[ f] } }
\r
120 dblA = { \grace { \small A32[ g] } }
\r
123 hdblG = { \grace { \small G32[ d] } }
\r
124 hdbla = { \grace { \small a32[ d] } }
\r
125 hdblb = { \grace { \small b32[ d] } }
\r
126 hdblc = { \grace { \small c32[ d] } }
\r
127 hdbld = { \grace { \small d32[ e] } }
\r
128 hdble = { \grace { \small e32[ f] } }
\r
129 hdblf = { \grace { \small f32[ g] } }
\r
130 hdblg = { \grace { \small g32[ f] } }
\r
131 hdblA = { \grace { \small A32[ g] } }
\r
134 tdblG = { \grace { \small A32[ G d] } }
\r
135 tdbla = { \grace { \small A32[ a d] } }
\r
136 tdblb = { \grace { \small A32[ b d] } }
\r
137 tdblc = { \grace { \small A32[ c d] } }
\r
138 tdbld = { \grace { \small A32[ d e] } }
\r
139 tdble = { \grace { \small A32[ e f] } }
\r
140 tdblf = { \grace { \small A32[ f g] } }
\r
141 tdblg = { \grace { \small A32[ g f] } }
\r
144 % A few of these can't really be played and are here only for consistency.
\r
145 shakea = { \grace { \small g32[ a d a G] } }
\r
146 shakeb = { \grace { \small g32[ b d b G] } }
\r
147 shakec = { \grace { \small g32[ c d c G] } }
\r
148 shaked = { \grace { \small g32[ d e d G] } }
\r
149 shakee = { \grace { \small g32[ e f e a] } }
\r
150 shakef = { \grace { \small g32[ f g f a] } }
\r
151 shakeg = { \grace { \small A32[ f g a] } }
\r
152 shakeA = { \grace { \small A32[ g A a] } }
\r
155 hshakea = { \grace { \small a32[ d a G] } }
\r
156 hshakeb = { \grace { \small b32[ d b G] } }
\r
157 hshakec = { \grace { \small c32[ d c G] } }
\r
158 hshaked = { \grace { \small d32[ e d G] } }
\r
159 hshakee = { \grace { \small e32[ f e a] } }
\r
160 hshakef = { \grace { \small f32[ g f a] } }
\r
161 hshakeg = { \grace { \small g32[ f g a] } }
\r
162 hshakeA = { \grace { \small A32[ g A a] } }
\r
165 tshakea = { \grace { \small A32[ a d a G] } }
\r
166 tshakeb = { \grace { \small A32[ b d b G] } }
\r
167 tshakec = { \grace { \small A32[ c d c G] } }
\r
168 tshaked = { \grace { \small A32[ d e d G] } }
\r
169 tshakee = { \grace { \small A32[ e f e a] } }
\r
170 tshakef = { \grace { \small A32[ f g f a] } }
\r
171 tshakeg = { \grace { \small A32[ f g a] } }
\r
172 tshakeA = { \grace { \small A32[ g A a] } }
\r
175 % A few of these can't really be played and are here only for consistency.
\r
176 slura = { \grace { \small g32[ a G] } }
\r
177 slurb = { \grace { \small g32[ b G] } }
\r
178 slurc = { \grace { \small g32[ c G] } }
\r
179 slurd = { \grace { \small g32[ d G] } }
\r
180 slure = { \grace { \small g32[ e a] } }
\r
181 slurf = { \grace { \small g32[ f a] } }
\r
182 slurg = { \grace { \small A32[ f a] } }
\r
183 slurA = { \grace { \small f32[ a] } }
\r
186 hslura = { \grace { \small a32[ G] } }
\r
187 hslurb = { \grace { \small b32[ G] } }
\r
188 hslurc = { \grace { \small c32[ G] } }
\r
189 hslurd = { \grace { \small d32[ G] } }
\r
190 hslure = { \grace { \small e32[ a] } }
\r
191 hslurf = { \grace { \small f32[ a] } }
\r
192 hslurg = { \grace { \small g32[ a] } }
\r
193 hslurA = { \grace { \small A32[ a] } }
\r
196 tslura = { \grace { \small A32[ a G] } }
\r
197 tslurb = { \grace { \small A32[ b G] } }
\r
198 tslurc = { \grace { \small A32[ c G] } }
\r
199 tslurd = { \grace { \small A32[ d a] } }
\r
200 tslure = { \grace { \small A32[ e a] } }
\r
201 tslurf = { \grace { \small A32[ f a] } }
\r
202 tslurg = { \grace { \small A32[ f a] } }
\r
203 tslurA = { \grace { \small f32[ a] } }
\r
206 catcha = { \grace { \small a32[ G d G] } }
\r
207 catchb = { \grace { \small b32[ G d G] } }
\r
208 catchc = { \grace { \small c32[ G d G] } }
\r
209 catchd = { \grace { \small d32[ G b G] } }
\r
210 catche = { \grace { \small e32[ G d G] } }
\r
213 gcatcha = { \grace { \small g32[ a G d G] } }
\r
214 gcatchb = { \grace { \small g32[ b G d G] } }
\r
215 gcatchc = { \grace { \small g32[ c G d G] } }
\r
216 gcatchd = { \grace { \small g32[ d G b G] } }
\r
217 gcatche = { \grace { \small g32[ e G d G] } }
\r
220 tcatcha = { \grace { \small A32[ a G d G] } }
\r
221 tcatchb = { \grace { \small A32[ b G d G] } }
\r
222 tcatchc = { \grace { \small A32[ c G d G] } }
\r
223 tcatchd = { \grace { \small A32[ d G b G] } }
\r
224 tcatche = { \grace { \small A32[ e G d G] } }
\r
227 thrwd = { \grace { \small G32[ d c] } }
\r
228 Gthrwd = { \grace { \small d32[ c] } }
\r
229 gripthrwd = { \grace { \small G32[ d G c] } }
\r
230 thrwf = { \grace { \small f32[ e g e] } }
\r
233 birl = { \grace { \small a32[ G a G] } }
\r
234 wbirl = { \grace { \small G32[ a G] } }
\r
235 gbirl = { \grace { \small g32[ a G a G] } }
\r
236 dbirl = { \grace { \small d32[ a G a G] } }
\r
239 grip = { \grace { \small G32[ d G] } }
\r
240 dgrip = { \grace { \small G32[ b G] } }
\r
241 egrip = { \grace { \small G32[ e G] } }
\r
244 taor = { \grace { \small G32[ d G e] } }
\r
245 dtaor = { \grace { \small G32[ b G e] } }
\r
246 Gtaor = { \grace { \small d32[ G e] } }
\r
247 taoramb = { \grace { \small G32[ d G b e] } }
\r
248 taoramc = { \grace { \small G32[ d G c e] } }
\r
249 taoramd = { \grace { \small G32[ d G c d e] } }
\r
252 crun = { \grace { \small G32[ d G e a f a ] } }
\r
253 dcrun = { \grace { \small G32[ b G e a f a ] } }
\r
254 Gcrun = { \grace { \small d32[ G e G f a ] } }
\r
255 crunamb = { \grace { \small G32[ d G b e b f b ] } }
\r
256 crunamc = { \grace { \small G32[ d G c e c f c ] } }
\r
257 crunamd = { \grace { \small G32[ d G c d e d f d ] } }
\r
259 % Special piobaireachd notations
\r
260 grGcad = { \grace { \small G16 } }
\r
261 gracad = { \grace { \small a16 } }
\r
262 cad = { \grace { \small g32[ e8 d32] } }
\r
263 hcad = { \grace { \small g32[ e8] } }
\r
264 dre = { \grace { \small e32[ a f a] } }
\r
265 % This is the same as thrwf
\r
266 dare = { \grace { \small f32[ e g e] } }
\r
267 bari = { \grace { \small e32[ G f G] } }
\r
268 dari = { \grace { \small f32[ e g e f e] } }
\r
269 pthrwd = { \grace { \small G16[ d32 c] } }
\r
270 darodo = { \grace { \small G32[ d G c G] } }
\r
271 Gdarodo = { \grace { \small d32[ G c G] } }
\r
272 % Non-gracenote piobaireachd markup.
\r
273 trebling = \markup {
\r
274 \override #'(baseline-skip . 0.3)
\r
276 \musicglyph #"scripts.tenuto"
\r
277 \musicglyph #"scripts.tenuto"
\r
278 \musicglyph #"scripts.tenuto"
\r
281 % Abbreviated notation common in piobaireachd scores.
\r
282 % TODO: Make sure these are put on a fixed Y-position.
\r
283 txtaor = \markup { "T" }
\r
284 txcrun = \markup { "C" }
\r
285 txtaorcrun = \markup { \column { "T" "C" } }
\r
286 % TODO: These characters should be shown upside down.
\r
287 % Use a postscript markup command for this.
\r
288 txtaoram = \markup { "T" }
\r
289 txcrunam = \markup { "C" }
\r
290 txtaorcrunam = \markup { \column { "T" "C" } }
\r