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