mirror of
https://github.com/kastdeur/bagpipe.ly.git
synced 2024-11-01 01:53:32 +01:00
374 lines
13 KiB
Text
374 lines
13 KiB
Text
%{
|
||
Bagpipe music settings for Lilypond.
|
||
This file builds on work by Andrew McNabb (http://www.mcnabbs.org/andrew/)
|
||
|
||
Substantial changes and additions made by
|
||
Sven Axelsson, the Murray Pipes & Drums of Gothenburg
|
||
(http://www.murrays.nu)
|
||
%}
|
||
|
||
\version "2.12.0"
|
||
|
||
% Notes of the scale of the Great Highland Bagpipe. Extra high notes for bombarde.
|
||
% Flat notes used mainly in some modern music.
|
||
|
||
pitchnamesBagpipe = #`(
|
||
(G . ,(ly:make-pitch 0 4 NATURAL))
|
||
(a . ,(ly:make-pitch 0 5 NATURAL))
|
||
(b . ,(ly:make-pitch 0 6 NATURAL))
|
||
(bflat . ,(ly:make-pitch 0 6 FLAT))
|
||
(c . ,(ly:make-pitch 1 0 SHARP))
|
||
(cflat . ,(ly:make-pitch 1 0 FLAT))
|
||
(d . ,(ly:make-pitch 1 1 NATURAL))
|
||
(e . ,(ly:make-pitch 1 2 NATURAL))
|
||
(f . ,(ly:make-pitch 1 3 SHARP))
|
||
(fflat . ,(ly:make-pitch 1 3 FLAT))
|
||
(g . ,(ly:make-pitch 1 4 NATURAL))
|
||
(gflat . ,(ly:make-pitch 1 4 FLAT))
|
||
(A . ,(ly:make-pitch 1 5 NATURAL))
|
||
(B . ,(ly:make-pitch 1 6 NATURAL))
|
||
(C . ,(ly:make-pitch 2 0 SHARP))
|
||
)
|
||
pitchnames = \pitchnamesBagpipe
|
||
#(ly:parser-set-note-names parser pitchnames)
|
||
|
||
% Bagpipe music is written in something like D major. If we use
|
||
% flattened notes, the flat should be shown on all instances.
|
||
bagpipeKey = {
|
||
\key d \major
|
||
#(set-accidental-style 'forget)
|
||
}
|
||
|
||
% Show the key signature e.g. for BMW compatibility.
|
||
showKeySignature = {
|
||
\override Staff.KeySignature #'stencil = #'ly:key-signature-interface::print
|
||
\override StaffGroup.KeySignature #'stencil = #'ly:key-signature-interface::print
|
||
\override Score.KeySignature #'stencil = #'ly:key-signature-interface::print
|
||
}
|
||
|
||
% Show the true key signature (E-flat major). Use together with
|
||
% \transpose f a to print scores for other instruments.
|
||
showTrueKeySignature = {
|
||
\override Staff.KeySignature #'stencil = #'ly:key-signature-interface::print
|
||
\override StaffGroup.KeySignature #'stencil = #'ly:key-signature-interface::print
|
||
\override Score.KeySignature #'stencil = #'ly:key-signature-interface::print
|
||
\override Stem #'direction = #0
|
||
\override Slur #'direction = #0
|
||
\override Tie #'direction = #0
|
||
}
|
||
|
||
% gracenotesOff = #(set! showGracenotes ##f)
|
||
% gracenotesOn = #(set! showGracenotes ##t)
|
||
% \gracenotesOn
|
||
|
||
% Various tweaks to get good defaults for bagpipe music.
|
||
\paper {
|
||
top-margin = 4\mm
|
||
bottom-margin = 4\mm
|
||
}
|
||
|
||
\layout {
|
||
indent = 0.0
|
||
|
||
\context {
|
||
\Score
|
||
|
||
between-system-space = #0.1
|
||
between-system-padding = #0.0
|
||
|
||
\remove "Bar_number_engraver"
|
||
|
||
\override Stem #'direction = #down
|
||
\override Slur #'direction = #up
|
||
\override Tie #'direction = #up
|
||
|
||
\override KeySignature #'print-function = ##f
|
||
\override VoltaBracketSpanner #'Y-extent = #'(-1 . 0)
|
||
\override VoltaBracket #'height = #2.2
|
||
}
|
||
|
||
\context {
|
||
\StaffGroup
|
||
|
||
between-system-space = #0.1
|
||
between-system-padding = #0.0
|
||
|
||
extraNatural = ##f
|
||
|
||
\override KeySignature #'stencil = ##f
|
||
}
|
||
|
||
\context {
|
||
\Staff
|
||
|
||
extraNatural = ##f
|
||
midiInstrument = #"bagpipe"
|
||
|
||
\override KeySignature #'stencil = ##f
|
||
}
|
||
}
|
||
|
||
% Some common timing tweaks.
|
||
|
||
% Sets the autobeamer to span quarter notes only. Use for fast music.
|
||
quarterBeaming = {
|
||
#(override-auto-beam-setting '(end * * * *) 1 4 'Staff)
|
||
#(override-auto-beam-setting '(end * * * *) 1 2 'Staff)
|
||
#(override-auto-beam-setting '(end * * * *) 3 4 'Staff)
|
||
#(override-auto-beam-setting '(end * * * *) 4 4 'Staff)
|
||
#(revert-auto-beam-setting '(end 1 32 2 4 ) 1 8 'Staff)
|
||
#(revert-auto-beam-setting '(end 1 32 2 4 ) 3 8 'Staff)
|
||
#(revert-auto-beam-setting '(end 1 32 4 4 ) 1 8 'Staff)
|
||
#(revert-auto-beam-setting '(end 1 32 4 4 ) 3 8 'Staff)
|
||
#(revert-auto-beam-setting '(end 1 32 4 4 ) 5 8 'Staff)
|
||
#(revert-auto-beam-setting '(end 1 32 4 4 ) 7 8 'Staff)
|
||
}
|
||
halfBeaming = {
|
||
#(override-auto-beam-setting '(end * * 2 2) 1 2 'Staff)
|
||
#(override-auto-beam-setting '(end * * 2 2) 2 2 'Staff)
|
||
}
|
||
% Reels are in allabreve time with half note beaming.
|
||
reelTime = {
|
||
\time 2/2
|
||
\halfBeaming
|
||
}
|
||
% 4/4 marches are written with numerical time signature and with quarter beaming.
|
||
marchTime = {
|
||
\time 4/4
|
||
\numericTimeSignature
|
||
\quarterBeaming
|
||
}
|
||
|
||
% Add appropriate tweaks needed for piping grace notes to look great.
|
||
pgrace = #(define-music-function (parser location notes) (ly:music?)
|
||
#{ \override Score.GraceSpacing #'spacing-increment = #0
|
||
\override Score.Stem #'beamlet-default-length = #'(0.6 . 0.6)
|
||
\grace $notes
|
||
\revert Score.Stem #'beamlet-default-length
|
||
#}
|
||
)
|
||
|
||
% Single pgrace notes
|
||
grG = { \pgrace { \small G32 } }
|
||
gra = { \pgrace { \small a32 } }
|
||
grb = { \pgrace { \small b32 } }
|
||
grc = { \pgrace { \small c32 } }
|
||
grd = { \pgrace { \small d32 } }
|
||
gre = { \pgrace { \small e32 } }
|
||
grf = { \pgrace { \small f32 } }
|
||
grg = { \pgrace { \small g32 } }
|
||
grA = { \pgrace { \small A32 } }
|
||
|
||
% Doublings
|
||
dblG = { \pgrace { \small g32[ G d] } }
|
||
dbla = { \pgrace { \small g32[ a d] } }
|
||
dblb = { \pgrace { \small g32[ b d] } }
|
||
dblc = { \pgrace { \small g32[ c d] } }
|
||
dbld = { \pgrace { \small g32[ d e] } }
|
||
dble = { \pgrace { \small g32[ e f] } }
|
||
dblf = { \pgrace { \small g32[ f g] } }
|
||
% These are the same as the half doublings.
|
||
dblg = { \pgrace { \small g32[ f] } }
|
||
dblA = { \pgrace { \small A32[ g] } }
|
||
|
||
% Half doublings
|
||
hdblG = { \pgrace { \small G32[ d] } }
|
||
hdbla = { \pgrace { \small a32[ d] } }
|
||
hdblb = { \pgrace { \small b32[ d] } }
|
||
hdblc = { \pgrace { \small c32[ d] } }
|
||
hdbld = { \pgrace { \small d32[ e] } }
|
||
hdble = { \pgrace { \small e32[ f] } }
|
||
hdblf = { \pgrace { \small f32[ g] } }
|
||
hdblg = { \pgrace { \small g32[ f] } }
|
||
hdblA = { \pgrace { \small A32[ g] } }
|
||
|
||
% Thumb doublings
|
||
tdblG = { \pgrace { \small A32[ G d] } }
|
||
tdbla = { \pgrace { \small A32[ a d] } }
|
||
tdblb = { \pgrace { \small A32[ b d] } }
|
||
tdblc = { \pgrace { \small A32[ c d] } }
|
||
tdbld = { \pgrace { \small A32[ d e] } }
|
||
tdble = { \pgrace { \small A32[ e f] } }
|
||
tdblf = { \pgrace { \small A32[ f g] } }
|
||
tdblg = { \pgrace { \small A32[ g f] } }
|
||
|
||
% Shakes
|
||
% A few of these can't really be played and are here only for consistency.
|
||
shakea = { \pgrace { \small g32[ a e a G] } }
|
||
shakeb = { \pgrace { \small g32[ b e b G] } }
|
||
shakec = { \pgrace { \small g32[ c e c G] } }
|
||
shaked = { \pgrace { \small g32[ d e d G] } }
|
||
shakee = { \pgrace { \small g32[ e f e a] } }
|
||
shakef = { \pgrace { \small g32[ f g f a] } }
|
||
shakeg = { \pgrace { \small A32[ f g a] } }
|
||
shakeA = { \pgrace { \small A32[ g A a] } }
|
||
|
||
% Half shakes
|
||
hshakea = { \pgrace { \small a32[ d a G] } }
|
||
hshakeb = { \pgrace { \small b32[ d b G] } }
|
||
hshakec = { \pgrace { \small c32[ d c G] } }
|
||
hshaked = { \pgrace { \small d32[ e d G] } }
|
||
hshakee = { \pgrace { \small e32[ f e a] } }
|
||
hshakef = { \pgrace { \small f32[ g f a] } }
|
||
hshakeg = { \pgrace { \small g32[ f g a] } }
|
||
hshakeA = { \pgrace { \small A32[ g A a] } }
|
||
|
||
% Thumb shakes
|
||
tshakea = { \pgrace { \small A32[ a d a G] } }
|
||
tshakeb = { \pgrace { \small A32[ b d b G] } }
|
||
tshakec = { \pgrace { \small A32[ c d c G] } }
|
||
tshaked = { \pgrace { \small A32[ d e d G] } }
|
||
tshakee = { \pgrace { \small A32[ e f e a] } }
|
||
tshakef = { \pgrace { \small A32[ f g f a] } }
|
||
tshakeg = { \pgrace { \small A32[ f g a] } }
|
||
tshakeA = { \pgrace { \small A32[ g A a] } }
|
||
|
||
% Slurs
|
||
% A few of these can't really be played and are here only for consistency.
|
||
slura = { \pgrace { \small g32[ a G] } }
|
||
slurb = { \pgrace { \small g32[ b G] } }
|
||
slurc = { \pgrace { \small g32[ c G] } }
|
||
slurd = { \pgrace { \small g32[ d G] } }
|
||
slure = { \pgrace { \small g32[ e a] } }
|
||
slurf = { \pgrace { \small g32[ f a] } }
|
||
slurg = { \pgrace { \small A32[ f a] } }
|
||
slurA = { \pgrace { \small f32[ a] } }
|
||
|
||
% Half slurs
|
||
hslura = { \pgrace { \small a32[ G] } }
|
||
hslurb = { \pgrace { \small b32[ G] } }
|
||
hslurc = { \pgrace { \small c32[ G] } }
|
||
hslurd = { \pgrace { \small d32[ G] } }
|
||
hslure = { \pgrace { \small e32[ a] } }
|
||
hslurf = { \pgrace { \small f32[ a] } }
|
||
hslurg = { \pgrace { \small g32[ a] } }
|
||
hslurA = { \pgrace { \small A32[ a] } }
|
||
|
||
% Thumb slurs
|
||
tslura = { \pgrace { \small A32[ a G] } }
|
||
tslurb = { \pgrace { \small A32[ b G] } }
|
||
tslurc = { \pgrace { \small A32[ c G] } }
|
||
tslurd = { \pgrace { \small A32[ d a] } }
|
||
tslure = { \pgrace { \small A32[ e a] } }
|
||
tslurf = { \pgrace { \small A32[ f a] } }
|
||
tslurg = { \pgrace { \small A32[ f a] } }
|
||
tslurA = { \pgrace { \small f32[ a] } }
|
||
|
||
% Catches
|
||
catcha = { \pgrace { \small a32[ G d G] } }
|
||
catchb = { \pgrace { \small b32[ G d G] } }
|
||
catchc = { \pgrace { \small c32[ G d G] } }
|
||
catchd = { \pgrace { \small d32[ G b G] } }
|
||
catche = { \pgrace { \small e32[ G d G] } }
|
||
|
||
% G-pgrace catches
|
||
gcatcha = { \pgrace { \small g32[ a G d G] } }
|
||
gcatchb = { \pgrace { \small g32[ b G d G] } }
|
||
gcatchc = { \pgrace { \small g32[ c G d G] } }
|
||
gcatchd = { \pgrace { \small g32[ d G b G] } }
|
||
gcatche = { \pgrace { \small g32[ e G d G] } }
|
||
|
||
% Thumb catches
|
||
tcatcha = { \pgrace { \small A32[ a G d G] } }
|
||
tcatchb = { \pgrace { \small A32[ b G d G] } }
|
||
tcatchc = { \pgrace { \small A32[ c G d G] } }
|
||
tcatchd = { \pgrace { \small A32[ d G b G] } }
|
||
tcatche = { \pgrace { \small A32[ e G d G] } }
|
||
|
||
% Triple strikes (BMW has them all, but I've never seen any but the A one used, so ...)
|
||
tripleA = { \pgrace { \small A32[ g A g A g] } }
|
||
|
||
% Throws
|
||
thrwd = { \pgrace { \small G32[ d c] } }
|
||
Gthrwd = { \pgrace { \small d32[ c] } }
|
||
gripthrwd = { \pgrace { \small G32[ d G c] } }
|
||
thrwe = { \pgrace { \small e32[ a f a] } }
|
||
wthrwe = { \pgrace { \small e32[ d f d] } }
|
||
thrwf = { \pgrace { \small f32[ e g e] } }
|
||
|
||
% Birls
|
||
birl = { \pgrace { \small a32[ G a G] } }
|
||
wbirl = { \pgrace { \small G32[ a G] } }
|
||
gbirl = { \pgrace { \small g32[ a G a G] } }
|
||
dbirl = { \pgrace { \small d32[ a G a G] } }
|
||
|
||
% Grips
|
||
grip = { \pgrace { \small G32[ d G] } }
|
||
dgrip = { \pgrace { \small G32[ b G] } }
|
||
egrip = { \pgrace { \small G32[ e G] } }
|
||
|
||
% Taorluaths
|
||
taor = { \pgrace { \small G32[ d G e] } }
|
||
taorjmd = { \pgrace { \small G32[ d a e] } }
|
||
taorold = { \pgrace { \small G32[ d G a e] } }
|
||
dtaor = { \pgrace { \small G32[ b G e] } }
|
||
Gtaor = { \pgrace { \small d32[ G e] } }
|
||
taoramb = { \pgrace { \small G32[ d G b e] } }
|
||
taoramc = { \pgrace { \small G32[ d G c e] } }
|
||
taoramd = { \pgrace { \small G32[ d G c d e] } }
|
||
|
||
% Crunluaths
|
||
crun = { \pgrace { \small G32[ d G e a f a ] } }
|
||
dcrun = { \pgrace { \small G32[ b G e a f a ] } }
|
||
Gcrun = { \pgrace { \small d32[ G e G f a ] } }
|
||
crunamb = { \pgrace { \small G32[ d G b e b f b ] } }
|
||
crunamc = { \pgrace { \small G32[ d G c e c f c ] } }
|
||
crunamd = { \pgrace { \small G32[ d G c d e d f d ] } }
|
||
crunambfosg = { \pgrace { \small e32[ b f b ] } }
|
||
crunamcfosg = { \pgrace { \small e32[ c f c ] } }
|
||
crunamdfosg = { \pgrace { \small e32[ d f d ] } }
|
||
|
||
% Special piobaireachd notations
|
||
grGcad = { \pgrace { \small G16 } }
|
||
gracad = { \pgrace { \small a16 } }
|
||
cad = { \pgrace { \small g32[ e8 d32] } }
|
||
hcad = { \pgrace { \small g32[ e8] } }
|
||
tcad = { \pgrace { \small e8[ d32] } }
|
||
thcad = { \pgrace { \small e8 } }
|
||
% This is the same as thrwe
|
||
dre = { \pgrace { \small e32[ a f a] } }
|
||
% This is the same as thrwf
|
||
dare = { \pgrace { \small f32[ e g e] } }
|
||
bari = { \pgrace { \small e32[ G f G] } }
|
||
dari = { \pgrace { \small f32[ e g e f e] } }
|
||
pthrwd = { \pgrace { \small G16[ d32 c] } }
|
||
darodo = { \pgrace { \small G32[ d G c G] } }
|
||
Gdarodo = { \pgrace { \small d32[ G c G] } }
|
||
pdarodo = { \pgrace { \small G16[ d32 G c G16] } }
|
||
pGdarodo = { \pgrace { \small d32[ G c G16] } }
|
||
% Weird stuff from Joseph MacDonald’s book
|
||
fifteenthcutting = { \pgrace { \small G32[ d a e a f a e a d] } }
|
||
fifteenthcuttingG = { \pgrace { \small G32[ d a e G f G e G d] } }
|
||
Gfifteenthcutting = { \pgrace { \small d32[ a e a f a e a d] } }
|
||
GfifteenthcuttingG = { \pgrace { \small d32[ a e G f G e G d] } }
|
||
seventeenthcutting = { \pgrace { \small G32[ d a e a f a e a d a c] } }
|
||
seventeenthcuttingG = { \pgrace { \small G32[ d a e G f G e G d G c] } }
|
||
Gseventeenthcutting = { \pgrace { \small d32[ a e a f a e a d a c] } }
|
||
GseventeenthcuttingG = { \pgrace { \small d32[ a e G f G e G d G c] } }
|
||
barluadh = { \pgrace { \small G32[ d a e a f a e a d a c a b a e a f a] } }
|
||
barluadhG = { \pgrace { \small G32[ d a e G f G e G d G c G b G e G f G] } }
|
||
Gbarluadh = { \pgrace { \small d32[ a e a f a e a d a c a b a e a f a] } }
|
||
GbarluadhG = { \pgrace { \small d32[ a e G f G e G d G c G b G e G f G] } }
|
||
% Non-gracenote piobaireachd markup.
|
||
trebling = \markup {
|
||
\override #'(baseline-skip . 0.3)
|
||
\column {
|
||
\musicglyph #"scripts.tenuto"
|
||
\musicglyph #"scripts.tenuto"
|
||
\musicglyph #"scripts.tenuto"
|
||
}
|
||
}
|
||
% Abbreviated notation common in piobaireachd scores.
|
||
% TODO: Make sure these are put on a fixed Y-position.
|
||
txtaor = \markup { "T" }
|
||
txcrun = \markup { "C" }
|
||
txtaorcrun = \markup {
|
||
\override #'(baseline-skip . 1.8)
|
||
\column { "T" "C" }
|
||
}
|
||
txtaoram = \markup { "T’’" }
|
||
txcrunam = \markup { "C’’" }
|
||
txtaorcrunam = \markup {
|
||
\override #'(baseline-skip . 1.8)
|
||
\column { "T’’" "C’’" }
|
||
}
|