workable right now

This commit is contained in:
Eric Teunis de Boone 2016-01-07 14:47:02 +01:00
commit 792d8f563e
195 changed files with 7013 additions and 0 deletions

42
build Normal file
View File

@ -0,0 +1,42 @@
#!/bin/bash
MKDRUMCOMMAND="./lily_files/makedrum"
MKDRUMOPTIONS="-i ./lily_files/defs.ly -x ./lily_files/lilydrum.ly -c ./lily_files/bagpipe_new.ly"
MUSIC_DIR="./music"
trap "echo Aborted!; exit;" SIGINT SIGTERM
another_dir() {
d=$1
for f in $d/*
do
if [ -d "$f" ]; then
if [ "$f" == "template" ]; then
continue
fi
another_dir $f
continue
fi
if [ ! -f "$f" ]; then
continue
fi
if [[ ! "$f" == *.ly ]]; then
continue
fi
$MKDRUMCOMMAND $MKDRUMOPTIONS "$f"
done;
}
if [ "$1" == "-a" ]; then
echo "Build all"
another_dir $MUSIC_DIR
elif [ -f "$1" ]; then
echo "Build file"
$MKDRUMCOMMAND $MKDRUMOPTIONS "$1"
elif [ -d "$1" ]; then
echo "Build files in directory"
another_dir "$1"
fi

17
bwwtolily/README.md Normal file
View File

@ -0,0 +1,17 @@
bwwtolily will attempt to convert a .bww or .bmw file to a lilypond
(http://lilypond.org) parsable file. Not all of the embellishments
get converted properly, this is espessially true with piobaireachd,
and the program will list the embellishments that were not converted.
If you recognize an embellishment that isn't being parsed, please
send an email regarding the embellishment to jezra@jezra.net and I
will try to add the embellishment to the application.
usage:
>bwwtolily -i /path/to/a/bww/file
optionally, using the "-l" flag will try to run lilypond on the
created .ly file
example:
>bwwtolily -i /path/to/bww/file -l

391
bwwtolily/bwwtolily.py Normal file
View File

@ -0,0 +1,391 @@
#!/usr/bin/env python
#
#bwwtolily: will convert a bww file to a lilypond file
#copyright: 2008 Jezra Lickter
#GPL v3
from optparse import OptionParser
import sys,os,re,subprocess
version = "0.4.2"
#make a print function to handle various version of python
def do_print(string):
try:
eval("print "+string)
except:
print(string)
#define the class that will convert a bww file to a lilypond file
class bwwtolily :
def __init__(self,addmidi=False):
self.tune_elements = []
self.most_recent_note = 0
self.in_note_group=False
self.slur_tie_pending = False
self.last_group_close=0
'''compile a few regex queries'''
#make a regex to determine if something is a lilypond note
self.regex_lilynote= re.compile("[abcdefgAG][0-9]*")
#try to determine the time signature
self.sig_regex = re.compile("([0-9])_([0-9])")
#a regex to find notes
self.regex_note_info=re.compile("(?P<note>[A-Z]+)(?P<dir>[a-z]*)_(?P<time>[0-9]{1,2})")
#a regex to find grace notes
self.regex_grace_note = re.compile("([h|l]*[abcdefgt])g")
#a regex to parse doublings
self.regex_doubling = re.compile("^db([h|l]*[g|a|b|c|d|e|f]{1})")
#a regex to parse half_doublings
self.regex_half_doubling = re.compile("^hdb([h|l]*[g|a|b|c|d|e|f]{1})")
#a regex for finding strikes
self.regex_strike = re.compile("str([h|l]*[abcdefg])")
#a regex to find dots
self.regex_dot = re.compile("'[h|l]*[abcdefg]")
#a regex to find sub repeats
self.regex_sub_repeat = re.compile("'([0-9]+)")
#a regex to find note slurs, not slur embellishments
self.regex_slur = re.compile("\^(?P<note_count>[0-9])(?P<end_note>[a-z]*)")
#a regex to find ties
self.regex_tie = re.compile("\^ts(.*)*\^te")
#we need a list to ignore
self.ignore_elements = ("sharpf","sharpc","space","&")
#create a dictionary of common bww elements and their lily counterparts
self.transpose_dict = {
"!":"\\bar \"|\"\n",
"!I":"\\bar \".|\" \\break \n",
#"''!I":"\\set Score.repeatCommands = #'( end-repeat ) \\break \n",
"''!I":"\\bar \":|\" \\break\n",
#"''!I":"} \\break \n",
"I!''":"\\bar \"|:\"",
"I!":"\\bar \"|.\"",
#"I!''":"\\set Score.repeatCommands = #'( start-repeat )\n",
#"I!''":"\n\\repeat volta 2 {\n",
"_'":"\\set Score.repeatCommands = #'((volta #f)) \\bar \"|\"\n",
"!t":"\\bar \"|\" \\break\n\n",
"thrd":"\\thrwd",
"gbr":"\\gbirl",
"brl":"\\wbirl",
"abr":"\\birl",
"lgstd":"\\dbld",
"gste":"\\slure",
"grp":"\\grip",
"tar":"\\taor",
"gstd":"\\slurd",
"tdbf":"\\tdblf"
}
#are we adding midi?
if addmidi:
self.lily_midi="\midi{}"
else:
self.lily_midi=''
def set_file(self,file_path):
#determine the absolute path to the file
abs_file = os.path.join(os.getcwd(),file_path)
file_name = os.path.basename(abs_file)
(self.name,ext) = file_name.split(".")
#does the file exist?
if os.path.isfile(abs_file):
self.original_file = abs_file
self.file_dir = os.path.dirname(abs_file)
else:
raise Exception(bww_file_path+" is not a file")
def quit(self,string=""):
if string!="":
do_print( string)
sys.exit()
def parse(self):
'''reate a string that represents the converted
contents of the file'''
#open the file read only
file_handle = open(self.original_file,"r")
#read the contents of the file
file_text = file_handle.read()
#get the title,type,author of the file, these are in quotes
quote_regex = re.compile("\"(.*)\"")
tune_info = quote_regex.findall(file_text)
self.tune_title = tune_info[0]
self.tune_type = tune_info[1]
self.tune_author = tune_info[2]
#try to determine the time signature
result = self.sig_regex.search(file_text)
if result:
self.tune_time_sig = result.group(1)+"/"+result.group(2)
else:
self.tune_time_sig = "4/4"
#get the tunes note info
'''greedy, multiline, from first ampersand to !'''
notes_regex = re.compile("&.*!I",re.S)
result = notes_regex.search(file_text)
try:
tune_notes = result.group()
except:
#no notes were found, what kind of file is this
self.quit("No notes were found.\nIs this a valid input file?")
#replace all whitespace characters with spaces
tune_notes = tune_notes.replace("\r"," ")
tune_notes = tune_notes.replace("\n"," ")
tune_notes = tune_notes.replace("\t"," ")
#split the string into it's constituents elements
elements = tune_notes.split()
for element in elements:
self.transpose(element)
def lilynote(self,bwwname):
#convert a bww notename to a lilypond notename
#make the notename lowercase
notename = bwwname.lower()
if notename =="lg":
lilynote = "G"
elif notename == "la":
lilynote ="a"
elif notename == "hg":
lilynote = "g"
elif notename == "ha" or notename =="t":
lilynote = "A"
else:
lilynote = notename
return lilynote
def transpose(self,element):
#receive a bww element and return a lilypond equivelent
#is the element a note?
note_result = self.regex_note_info.search(element)
if note_result:
note = self.lilynote( note_result.group("note") )+note_result.group("time")
#is a tie slur pending?
if self.slur_tie_pending:
self.slur_tie_pending=False
note+="~"
self.tune_elements.append(note)
self.most_recent_note = len(self.tune_elements)-1
if note_result.group("dir") == "r" and not self.in_note_group:
self.in_note_group=True
self.tune_elements.append("[")
elif note_result.group("dir") == "l":
if self.in_note_group:
self.in_note_group=False
self.tune_elements.append("]")
self.last_group_close = len(self.tune_elements)-1
else:
#delete the last group close
del(self.tune_elements[self.last_group_close])
#decrement the most recent note
self.most_recent_note-=1
self.tune_elements.append("]")
return
#is the element a grace note?
grace_result=self.regex_grace_note.search(element)
if grace_result:
grace = "\\gr"+self.lilynote( grace_result.group(1) )
self.tune_elements.append(grace)
return
#is the element a doubling?
doubling_result=self.regex_doubling.search(element)
if doubling_result:
doubling = "\\dbl"+self.lilynote( doubling_result.group(1) )
self.tune_elements.append(doubling)
return
#is the element a half doubling?
hdoubling_result=self.regex_half_doubling.search(element)
if hdoubling_result:
half_doubling = "\\hdbl"+self.lilynote( hdoubling_result.group(1) )
self.tune_elements.append(half_doubling)
return
#is the element a strike?
strike_result=self.regex_strike.search(element)
if strike_result:
strike = "\\slur"+self.lilynote( strike_result.group(1) )
#if the strike is on low g \\slurG
if strike =="\\slurG":
#let the strike be a low g grace note
strike = "\\grG"
#if the strike is on high G
elif strike =="\\slurg":
#let the strike be a grace note on the high g
strike = "\\grg"
#if hte strike is on low a
elif strike == "\\slura":
#let the strike be a grace not on low a
strike = "\\gra"
self.tune_elements.append(strike)
return
#is the element a dot?
dot_result=self.regex_dot.search(element)
if dot_result:
#add a dot to the last note
note = self.tune_elements[self.most_recent_note]
if note[-1]=="~":
self.tune_elements[self.most_recent_note].replace("~",".~")
else:
self.tune_elements[self.most_recent_note]+="."
return
#is the element a slur?
slur_result = self.regex_slur.search(element)
if slur_result:
#get the matching elements
note_count = slur_result.group("note_count")
end_note = slur_result.group("end_note")
#get the length of the slur as an integer
slur_len = int(note_count)
'''find the position of the note that is slur_len from the end'''
#get the tune_elements lenght
elem_index = len(self.tune_elements)-1
note_count = 0
while note_count<2:
element = self.tune_elements[elem_index]
#is this element a note?
is_note = self.regex_lilynote.search(element)
if is_note:
#increment the note count
note_count+=1
#decrease the element index
elem_index-=1
#add the slur start just after the start note
self.tune_elements.insert(elem_index+1,"(")
#add the slur end
self.tune_elements.append(")")
return
#is this a bww tie slur?
if element == "^ts":
self.slur_tie_pending = True
return
tie_result = self.regex_tie.search(element)
if tie_result:
#get first note
self.do_print('Tie found')
#is the element the start of a sub_repeat?
sub_repeat_result = self.regex_sub_repeat.search(element)
if sub_repeat_result:
sub_repeat = "\\set Score.repeatCommands = #'((volta \"%s\")) " % ( sub_repeat_result.group(1) )
self.tune_elements.append(sub_repeat)
return
else:
#is the element in the ignore list?
if element in self.ignore_elements:
return
#if the element is a start double,
#check if the previous element was a end double
if len(self.tune_elements):
last_element = self.tune_elements[-1]
if element=="I!''" and last_element.find(":|"):
#replace the last element with a double double
self.tune_elements[-1] = "\\bar \":|:\" \\break\n\n"
return
#is this a time sig?
result = self.sig_regex.search(element)
if result:
return
try:
dict_result = self.transpose_dict[element]
if dict_result:
self.tune_elements.append(dict_result)
return
except:
do_print( "unparsed: "+element)
return
#handle writing the output
def create_output_file(self):
#determine the output file
output_file = os.path.join(self.file_dir,self.name+".ly")
#open the file for writing
file_handle = open(output_file,"w")
#write the data to the file
text = self.get_lilypond_text()
file_handle.write(text)
#close the handle
file_handle.close()
#return the string of the path to the file
return output_file
def get_lilypond_text(self):
tune_text = " ".join(self.tune_elements)
lptext ='''\\include "bagpipe.ly"
melody = {
\\set Staff.midiInstrument = #"bagpipe"
\\hideKeySignature
\\cadenzaOn
\\once \\override Score.BreakAlignment #'break-align-orders =
#(make-vector 3 '(instrument-name
left-edge
ambitus
span-bar
breathing-sign
clef
key-signature
time-signature
staff-bar
custos
span-bar))
\\time %s
%s
}
\\score {
\\melody
\\layout {
indent = 0.0\\cm
\\context { \\Score \\remove "Bar_number_engraver" }
}
\\header {
title = "%s"
meter = "%s"
arranger = "%s"
}
%s
}
''' % (self.tune_time_sig,
tune_text,
self.tune_title,
self.tune_type,
self.tune_author,
self.lily_midi
)
return lptext
#use the bww2lily class
if __name__ == "__main__" :
parser = OptionParser()
parser.add_option("-i", "--in", dest="input",
help="the FILE to convert", metavar="FILE")
parser.add_option("-l", "--lilypond",
action="store_true", dest="runlilypond",default=False,
help="run lilypond after converting the file")
parser.add_option("-m", "--midi",
action="store_true", dest="addmidi",default=False,
help="add midi output to the lilypond file")
parser.add_option("-v","--version",dest='version',default=False,
action="store_true",help="print version information and quit")
#parse the args
(options, args) = parser.parse_args()
if options.version:
do_print( "bwwtolily: "+version)
sys.exit()
if options.input!=None:
b2l = bwwtolily(options.addmidi)
b2l.set_file(options.input)
b2l.parse()
new_file = b2l.create_output_file()
#are we running lilypond?
if options.runlilypond:
#try to run lilypond as a subprocess
subprocess.check_call("lilypond \""+new_file+"\"",shell=True)
else:
parser.print_help()
sys.exit()

42
header_book.ily Normal file
View File

@ -0,0 +1,42 @@
%{
Header formatting for tunes. Customize to get your name in the tag line.
%}
\version "2.16.0"
today = #(strftime "%B %e, %Y" (localtime (current-time)))
\paper {
raggedbottom = ##t
tagline = \markup {
\line {
"Cpl ET de Boone, Seaforths of Holland,"
\concat { "(rev. " \today ")" }
}
}
bookTitleMarkup = \markup {
\override #'(baseline-skip . 3.5)
\column {
\fill-line { \fromproperty #'header:dedication }
\override #'(baseline-skip . 3.5)
\column {
\huge \larger \bold
\fill-line {
\larger \fromproperty #'header:title
}
\fill-line {
\large \smaller \bold
\larger \fromproperty #'header:subtitle
}
\fill-line {
\smaller \bold
\fromproperty #'header:source
}
\fill-line {
\line { \fromproperty #'header:meter }
\line { \fromproperty #'header:composer " " \italic \fromproperty #'header:arranger }
}
}
}
}
}

39
header_default.ily Normal file
View File

@ -0,0 +1,39 @@
%{
Header formatting for tunes. Customize to get your name in the tag line.
%}
\version "2.16.0"
today = #(strftime "%B %e, %Y" (localtime (current-time)))
\paper {
tagline = \markup {
\line {
"Cpl ET de Boone, Seaforths of Holland,"
\concat { "(rev. " \today ")" }
}
}
scoreTitleMarkup = \markup {
\override #'(baseline-skip . 3)
\column {
\fill-line {
\column {
\large \bold \fromproperty #'header:title
\bold \fromproperty #'header:subtitle
}
\fromproperty #'header:meter
\column \right-align {
\fromproperty #'header:instrument
\line {
\fromproperty #'header:composer
$(if (and (ly:get-option 'header:composer) (ly:get-option 'header:arranger))
(markup " "))
\italic \fromproperty #'header:arranger }
}
}
$(if (not (ly:get-option 'without-comment))
(markup #:justify-field 'header:comment)
(markup))
}
}
}

3
lilydrum/.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.pdf
/pdf
/tmp

14
lilydrum/README.md Normal file
View File

@ -0,0 +1,14 @@
# pipeband-drumming
First trial with github, purpose is to set up a lilypond file in the same way as there is a bagpipe.ly (see github.com/svenax/bagpipemusic). Main focus is on pipeband snare drumming. Note that it would be best if they are compatible to create fullscores (see fullscore/ folder for first set up of Black Bear)
Somehow, the drums part in lilypond does not cover a notation with only right left. That is right is above the line and left is below it. In the same manner as the bagpipe.ly file, flams and drags are defined as a shortcut.
There has been a lilypond include file earlier made by Simon Froger (which includes all of the above). So first version is a shameless copy.
This is meant to extend or translate some parts.
The original file can still be found at http://lsr.di.unimi.it/LSR/Snippet?id=970
Currently, the most advanced scores are for Lady MacKenzie of Fairburn in strathspeys/lady_mackenzie_of_fairburn/*.ly
These scores are used for most of the layout.
The scores include a side, tenor, bass, pipes, fullscore for drums and a regular fullscore.

134
lilydrum/cheatsheet.ly Normal file
View File

@ -0,0 +1,134 @@
#(ly:set-option 'point-and-click #f)
% Choose a size
#(set-global-staff-size 18)
#(set-default-paper-size "a4" 'landscape)
\paper {
indent = 0\mm
ragged-right = ##t
ragged-bottom = ##t
}
\layout {
indent = 30\mm
\context {
\Score
\override NonMusicalPaperColumn #'line-break-permission = ##f
}
}
\include "lilydrum.ly"
\score {
\new PipeBandDrumStaff {
\set Staff.instrumentName = "Plain notes"
\drummode {
d4 g \crossstick d \crossstick g \rimshot d \rimshot g \backstick d \backstick g
}
}
\addlyrics {
"d" "g" "\crossstick d" "\crossstick g" "\rimshot d" "\rimshot g" "\backstick d" "\backstick g"
}
}
\score {
\new PipeBandDrumStaff {
\set Staff.instrumentName = "Tenor Flourishing"
\drummode {
d^\splitTheFeather g^\cartWheel d^\up {d8 g8 d4} g d \flourish { d4 g d g }
}
}
\addlyrics {
"\splitTheFeather" "cartWheel" "up" "scoop d g d" "\flourish { }"
}
}
\score {
\new PipeBandDrumStaff {
\set Staff.instrumentName = "Embellishments"
\time 2/4
\drummode {
\flam d \flam g
\drag d \drag g
\odrag d \odrag g
\ruff d \ruff g
\sruff d \sruff g
}
}
\addlyrics {
"\flam d" "\flam g"
"\drag d" "\drag g"
"\odrag d" "\odrag g"
"\ruff d" "\ruff g"
"\sruff d" "\sruff g"
}
}
\score {
\new PipeBandDrumStaff {
\set Staff.instrumentName = \markup \column { \line{Forced hand} \line{embellishments}}
\time 2/4
\drummode {
\flamg d \flamd g
\dragg d \dragd g
\odragg d \odragd g
\ruffg d \ruffd g
\sruffg d \sruffd g
}
}
\addlyrics {
"\flamg d" "\flamd g"
"\dragg d" "\dragd g"
"\odragg d" "\odragd g"
"\ruffg d" "\ruffd g"
"\sruffg d" "\sruffd g"
}
}
\score {
\new PipeBandDrumStaff {
\set DrumStaff.drumStyleTable = #(alist->hash-table pipeband-style)
\set Staff.instrumentName = "Rolls"
\drummode {
d4:32( d8:32)(-> g8) \flam d4 r8 d8:32( \dr |
\triplet { g16) d g } \drag d16. g32 d32 g d g d16. g32-> d16. d32 \flam g4
}
}
\addlyrics {
\partial 8
"d8:32(" "\\triplet " -- "\\flam d16." "g32" -- "\\drag g16" -- "\\triplet" "g:64" "d-> }"
}
}
\score {
\new PipeBandDrumStaff {
\drummode {
\time 6/8
\repeat volta 2 {
\partial 8 d8:32(_"7" |
g8.[) g16 \dragd d8] d8.[ d16 \dragg g8] |
g8.[ \dragd d16 d8] d8.[ d16 \dragg g8] |
\flamddr d8. d16 g8 d4.:32(_"13" |
d8.) g16 d8 \flamg g4 d8:32(_"7" \fr |
\break
g8.[) g16 \dragd d8] d8.[ d16 \dragg g8] |
g8.[ \dragd d16 d8] d8.[ d16 \dragg g8] |
\flamddr d8. d16:64(_"5" d8) \flamd d8. d16 \flamg g8 |
d8.:32(_"5" d16) \flamg g8 \flamd d4 \fr |
}
}
}
\header {
title = "And now for something completely standard"
}
}
% # Writing parts
% rolls
% tuplets
% tutti
% accents ( > v ^)
%
\header {
title = "Cheat sheet for entering pipeband drumming music"
subtitle = "Intended for Lilypond 2.18 or better"
tagline = \markup { "Cpl ET de Boone, Seaforths of Holland" }
}

34
lilydrum/lilydrum.ly Normal file
View File

@ -0,0 +1,34 @@
\version "2.16.2"
%{
LilyPond file definitions for Pipeband drumming scores.
Primarily focused on Snare drumming,
occasional bass or tenor scores should be possible.
This file builds on work done by Simon Froger.
Substantial changes by ET de Boone, Seaforth Highlanders of Holland (seaforth.nl)
Include by using :
\include "[pathtothisfile]" e.g. "~/lilydrum.ly"
Music has to be put into :
\new DrumStaff {
\drummode {
[musique]
}
}
%}
% Note name defs :
% "d" for the right hand ("droite") and
% "g" for the left hand ("gauche")
%-----------------------------------------
#(ly:set-option 'point-and-click #f)
#(ly:set-option 'relative-includes #t)
\include "lilydrum/layout_tweaks.ily"
\include "lilydrum/musical_functions.ily"
\include "lilydrum/embellishments.ily"
\include "lilydrum/flourishing.ily"
\include "lilydrum/special_sticking.ily"

View File

@ -0,0 +1,109 @@
% ================================================= %
% Flams, Drags & the sort %
% ================================================= %
drumgrace = #(define-music-function (parser location notes ) ( ly:music? ) #{
% Set settings
\stemUp
\once \override Beam.positions = #'(2 . 2)
\once \override DrumStaff.Stem.length = #5
\override Flag.stroke-style = #"grace"
\override Score.GraceSpacing #'spacing-increment = #0
\override Score.Stem #'beamlet-max-length-proportion = #'(0.5 . 0.5)
% Print notes
\small \grace $notes
% Revert back
\revert Score.Stem #'beamlet-default-length
\revert Flag.stroke-style
\stemNeutral
#})
% Flams
flamd = \drummode { \drumgrace { g8 } } % Flam right
flamg = \drummode { \drumgrace { d8 } } % Flam left
flamddr = \drummode { \drumgrace { g8\startGroup } } % Flam right with start repeat
flamgdr = \drummode { \drumgrace { d8\startGroup } } % Flam left with start repeat
% Drags
dragd = \drummode { \drumgrace { g16[ g] } } % Drag right
dragg = \drummode { \drumgrace { d16[ d] } } % Drag left
dragddr = \drummode { \drumgrace { g16[\startGroup g] } } % Drag right with start repeat
draggdr = \drummode { \drumgrace { d16[\startGroup d] } } % Drag left with start repeat
% Open Drags
odragd = \drummode { \drumgrace { g16[ s^"o" g] } } % Open Drag right
odragg = \drummode { \drumgrace { d16[ s^"o" d] } } % Open Drag left
odragddr = \drummode { \drumgrace { g16[\startGroup s^"o" g] } } % Open Drag right with start repeat
odraggdr = \drummode { \drumgrace { d16[\startGroup s^"o" d] } } % Open Drag left with start repeat
% Ruff
ruffg = \drummode { \drumgrace { g16[ d g] } } % Ruff right
ruffd = \drummode { \drumgrace { d16[ g d] } } % Ruff left
ruffgdr = \drummode { \drumgrace { g16[\startGroup d g] } } % Ruff right with start repeat
ruffddr = \drummode { \drumgrace { d16[\startGroup g d] } } % Ruff left with start repeat
% Swiss Ruff
sruffg = \drummode { \drumgrace { g16[ d d] } } % Swiss Ruff right
sruffd = \drummode { \drumgrace { d16[ g g] } } % Swiss Ruff left
sruffgdr = \drummode { \drumgrace { g16[\startGroup d d] } } % Swiss Ruff right with start repeat
sruffddr = \drummode { \drumgrace { d16[\startGroup g g] } } % Swiss Ruff left with start repeat
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Embellishment functions, automatic left or right %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Flam
flam = #(define-music-function (parser location note) (ly:music?) #{
% is note right-handed? then \flamd
% if left, then \flamg
#(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand")
#{ \flamg #}
#{ \flamd #})
% print the note, else it won't show up
$note
#})
% Drag
drag = #(define-music-function (parser location note) (ly:music?) #{
% is note right-handed? then \flamd
% if left, then \flamg
#(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand")
#{ \dragg #}
#{ \dragd #})
% print the note, else it won't show up
$note
#})
% Open Drag
odrag = #(define-music-function (parser location note) (ly:music?) #{
% is note right-handed? then \flamd
% if left, then \flamg
#(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand")
#{ \odragg #}
#{ \odragd #})
% print the note, else it won't show up
$note
#})
% Ruff
ruff = #(define-music-function (parser location note) (ly:music?) #{
% is note right-handed? then \flamd
% if left, then \flamg
#(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand")
#{ \ruffg #}
#{ \ruffd #})
% print the note, else it won't show up
$note
#})
% Swiss Ruff
sruff = #(define-music-function (parser location note) (ly:music?) #{
% is note right-handed? then \flamd
% if left, then \flamg
#(if (string=? (symbol->string (ly:music-property note 'drum-type)) "left-hand")
#{ \sruffg #}
#{ \sruffd #})
% print the note, else it won't show up
$note
#})

View File

@ -0,0 +1,62 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
%%Title: butterfly.eps
%%CreationDate: Tue Nov 3 18:58:20 2015
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 14 14 28 23
%%EndComments
%%BeginProlog
% Use own dictionary to avoid conflicts
10 dict begin
%%EndProlog
%%Page: 1 1
% Translate for offset
14.173228346456694 14.173228346456694 translate
% Translate to begin of first scanline
0 8 translate
13 -8 scale
% Image geometry
13 8 8
% Transformation matrix
[ 13 0 0 8 0 0 ]
% Strings to hold RGB-samples per scanline
/rstr 13 string def
/gstr 13 string def
/bstr 13 string def
{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
true 3
%%BeginData: 521 ASCII Bytes
colorimage
s8N,fqu$Hrp$r(^J,~>
s8N,fqu$Hrp$r(^J,~>
s8N,fqu$Hrp$r(^J,~>
%,Fub,@p3Al">-rJFS-~>
%,Fub,@p3Al">-rJFS-~>
%,Fub,@p3Al">-rJFS-~>
%!VFFnjYIn8*9jOooah~>
%!VFFnjYIn8*9jOooah~>
%!VFFnjYIn8*9jOooah~>
!3Z>$"7e/Pci*kDS:C~>
!3Z>$"7e/Pci*kDS:C~>
!3Z>$"7e/Pci*kDS:C~>
!4)S'".KO$rr2otR",~>
!4)S'".KO$rr2otR",~>
!4)S'".KO$rr2otR",~>
%#Fo_s2eEn(3KNTjbJ?~>
%#Fo_s2eEn(3KNTjbJ?~>
%#Fo_s2eEn(3KNTjbJ?~>
%,#f`D0l$Xfg[Vp@e"s~>
%,#f`D0l$Xfg[Vp@e"s~>
%,#f`D0l$Xfg[Vp@e"s~>
s8N,`p\b$no^Mn\J,~>
s8N,`p\b$no^Mn\J,~>
s8N,`p\b$no^Mn\J,~>
%%EndData
showpage
%%Trailer
end
%%EOF

View File

@ -0,0 +1,107 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: cairo 1.14.2 (http://cairographics.org)
%%CreationDate: Wed Nov 4 14:58:05 2015
%%Pages: 1
%%DocumentData: Clean7Bit
%%LanguageLevel: 3
%%BoundingBox: 0 -1 21 19
%%EndComments
%%BeginProlog
save
50 dict begin
/q { gsave } bind def
/Q { grestore } bind def
/cm { 6 array astore concat } bind def
/w { setlinewidth } bind def
/J { setlinecap } bind def
/j { setlinejoin } bind def
/M { setmiterlimit } bind def
/d { setdash } bind def
/m { moveto } bind def
/l { lineto } bind def
/c { curveto } bind def
/h { closepath } bind def
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
0 exch rlineto 0 rlineto closepath } bind def
/S { stroke } bind def
/f { fill } bind def
/f* { eofill } bind def
/n { newpath } bind def
/W { clip } bind def
/W* { eoclip } bind def
/BT { } bind def
/ET { } bind def
/pdfmark where { pop globaldict /?pdfmark /exec load put }
{ globaldict begin /?pdfmark /pop load def /pdfmark
/cleartomark load def end } ifelse
/BDC { mark 3 1 roll /BDC pdfmark } bind def
/EMC { mark /EMC pdfmark } bind def
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
/Tj { show currentpoint cairo_store_point } bind def
/TJ {
{
dup
type /stringtype eq
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
} forall
currentpoint cairo_store_point
} bind def
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
/Tf { pop /cairo_font exch def /cairo_font_matrix where
{ pop cairo_selectfont } if } bind def
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
/cairo_font where { pop cairo_selectfont } if } bind def
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
/g { setgray } bind def
/rg { setrgbcolor } bind def
/d1 { setcachedevice } bind def
%%EndProlog
%%BeginSetup
%%EndSetup
%%Page: 1 1
%%BeginPageSetup
%%PageBoundingBox: 0 -1 21 19
%%EndPageSetup
q 0 -1 21 20 rectclip q
Q q
0 18.4 20.801 -18.398 re W n
q
0 18.4 21 -19 re W n
[ 0.8 0 0 0.8 0 -0.00000038147 ] concat
/DeviceRGB setcolorspace
8 dict dup begin
/ImageType 1 def
/Width 26 def
/Height 23 def
/Interpolate true def
/BitsPerComponent 8 def
/Decode [ 0 1 0 1 0 1 ] def
/DataSource currentfile /ASCII85Decode filter /FlateDecode filter def
/ImageMatrix [ 1 0 0 -1 0 23 ] def
end
image
Gatm8gFo%9)#d/2gE[.Um;+hI3UEp%Xt3I?N/l1l9M:.%/M((/>\H_ta+]A=3YdQT;E&]$>p
h8S*.'p^e?KM&*c:JEl*lPlhY]"?n,#8_kBl([IGWlCjo:D5oCKl;_loW%4<C]5Uh!k@@"!
Ho%,9[sf4m-B6=G7H>[;3Kfk`i84XJ!hG'9ZZkmI]J8tcC:B[7P)8U^Qges79AqoD<S>2&"
uOF+^U@A0C*>jgD&gtCAK/&lJ9j'uVEpg"s`+"o;18kr!ISt:+ZmI'BL"Th:]!.gj=q^_R@
X]DJQ$u5H]4b7UU=0]#?@q2[Ge^[ZUEJ&\*aYl%8>[`^T1GeWU:;>iV9u%AT&p-1*.r99JP
@%GUWrKf*?ai@Q._-:)H[E@o/:JKQ7L]d%@0Hh2Z.W<_Q7+NB"Dsb\.T!JW<%?&fO@G.<14
RWqU/5`D!2En.g=c[pQ"ZSa])#]EAp.5+o("QE/hSbQ*:tO5,GV?I['$R7U:_JL91qo*-R[
uH?9$s>q"VoB[\KV>aiWP:+r6*EZEeLiE$,pS6.O`E$X0%EG(m3STF.U<CubTkVbRIC$1[N
hq>$[%*#sWE+S@)%aar5I.TL"I"DT6HaWU0*<62pi1c@6K`%ma^jCCHHYL.#+pi]VpMi0/=
/R0o0hU+&=3a,W^+:nf*-78_W&F#ijXf\]IGeEbDG-hIM<f`<ZCmYCY#%'K`7:?uJ(=4pjb
$qWsR[\SJGtogjWE-&cpp$o:C2/Xq+WfR9[C%li<Kp,;>;gh-V8=a]5VA0ihIgKEj`7X2PR
]-`3?68Nh%B8Mo)ReV]RB%3^':PN(W$]j)KQAFAu)?B=)\l,9DBMS\qn\QSR?F?*ak[[6UO
Uc(fHRFf\Fsj8uK!o;fUc($_un,Q4WseYD3Wq7Rpt%:.uWK*o=;.#s<5u#E+Lu*sDn-73Xj
$mjn=:YHJJCr%'<)QH"lqiM"_.0[tnHm$*a+md=r?4\5brK!qE0ba97&eXiYuWgdUAPsCGS
iUeN4IjIJuTL,)c==hP2jaV[oW1gH$ZDk+VCbh,sd2J*cEcMk">tF-*,B#?*i82/\4n9@l2
JY#):A/5V5Q@+Tkl~>
Q
Q Q
showpage
%%Trailer
end restore
%%EOF

View File

@ -0,0 +1,50 @@
%!PS-Adobe-3.0 EPSF-3.0
%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
%%Title: stop.eps
%%CreationDate: Wed Nov 4 21:02:56 2015
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 14 14 23 33
%%EndComments
%%BeginProlog
% Use own dictionary to avoid conflicts
10 dict begin
%%EndProlog
%%Page: 1 1
% Translate for offset
14.173228346456693 14.173228346456693 translate
% Translate to begin of first scanline
0 18.747656542932134 translate
8.2488188976377952 -18.747656542932134 scale
% Variable to keep one line of raster data
/scanline 9 3 mul string def
% Image geometry
9 17 8
% Transformation matrix
[ 9 0 0 17 0 0 ]
{ currentfile scanline readhexstring pop } false 3
%%BeginData: 946 ASCII Bytes
colorimage
fffffff5f5f5fffffffffffffffffffffffffffffffffffffcfcfc
fafafaffffff4e4e4e0000000000000000004e4e4effffffffffff
ffffff4e4e4e000000ffffffffffffffffff0000004e4e4effffff
ffffff000000ffffffffffffffffffffffffffffff000000ffffff
ffffff000000ffffffffffffffffffffffffffffff000000ffffff
ffffff000000ffffffffffffffffffffffffffffff000000ffffff
ffffff4e4e4e000000ffffffffffffffffff0000004e4e4effffff
ffffffffffff4e4e4e0000000000000000004e4e4efffffff5f5f5
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
ffffffffffffffffffffffff000000ffffffffffffffffffffffff
000000000000000000000000000000000000000000000000000000
%%EndData
showpage
%%Trailer
end
%%EOF

View File

@ -0,0 +1,49 @@
% ================================================= %
% Tenor Flourishing %
% ================================================= %
% Part of lilydrum
splitTheFeather = \markup{ \musicglyph #"noteheads.s2xcircle"}
cartWheel = \markup { \musicglyph #"timesig.neomensural94" }
up = \markup {
%\center-column {
\combine
\draw-line #'(0 . -2) % draw stick
\arrow-head #Y #UP ##f
%}
}
bfly = \markup {
\epsfile #X #2 #"../lilydrum/flourish_symbols/butterfly.eps"
}
stop = \markup {
\epsfile #X #2 #"../lilydrum/flourish_symbols/stop.eps"
}
scoop = \markup {
\path #.2 #'( (moveto 0 0 )
(lineto 3 1 )
(lineto 6 0 )
(lineto 7 1 )
)
}
scoopo = #(define-music-function (parser location beg notes) (ly:music? ly:music?)
#{
%Set spanner from first to last note
$beg
\startGroup
$notes
\stopGroup
#})
flourish = #(define-music-function (parser location notes) (ly:music?)
#{
\temporary \override Staff.NoteHead.style = #'cross
$notes
\revert Staff.NoteHead.style
#})
sdcoop = #(define-music-function (parser location notes end) (ly:music? ly:music?)
#{
$notes
$end
#})
% stf = \splitTheFeather
% cart = \cartWheel
% fl = \flourish

View File

@ -0,0 +1,114 @@
% =================================================== %
% Layout tweaks for good defaults %
% =================================================== %
% Note name defs :
% "d" for the right hand ("droite") and
% "g" for the left hand ("gauche")
drumPitchNames =
#(append '(
(d . right-hand)
(g . left-hand)
(right . right-hand)
(left . left-hand)
)
drumPitchNames
)
% Position according to the line : right hand above and left hand below
#(define pipeband-style '(
(right-hand () #f 1)
(left-hand () #f -1)
)
)
\layout {
\context {% add hands to note definitions
\DrumStaff
drumStyleTable = #(alist->hash-table pipeband-style)
}
}
\layout {
indent = 0.0
\context {
\DrumStaff
\name PipeBandDrumStaff
\alias DrumStaff
% one line per staff
\override StaffSymbol.line-positions = #'(0)
% bar line height
\override BarLine.bar-extent = #'(-2 . 2)
% stems
\override Stem.direction = #DOWN % stems down
\override Stem.length = #8.5 % unbeamed stems length
\override Stem.stemlet-length = #1 % short stem length
% beams
\override Beam.beam-thickness = #0.4 % beam-thickness
\override Beam.positions = #'(-3.8 . -3.8) % fix beams on one height
% slurs and ties
\override Slur.direction = #UP % Slurs on top
\override Tie.direction = #UP % Ties on top
% dynamics up
\dynamicUp
% slurs below rolls number
%\override TextScript.outside-staff-priority = ##f
%\override TextScript.side-axis = #0
%\override TextScript.staff-padding = #3
%\override TextScript.X-offset = #1 % padding to stems
%\override TextScript.extra-offset = #'(-0.3 . 0)
% tremolos (rolls)
\override StemTremolo.slope = #0.5 % slope
\override StemTremolo.beam-width = #1.5 % beam-width
\override StemTremolo.beam-thickness = #0.3 % beam-thickness
\override StemTremolo.extra-offset = #'(0 . 0.3) % vertical pos. position
\override TupletBracket.bracket-visibility = #'if-no-beams
% unison brackets
\consists "Horizontal_bracket_engraver"
\override HorizontalBracket.staff-padding = #3.5 % staff-padding
\override HorizontalBracket.direction = #UP % brackets above the staff
\override HorizontalBracket.bracket-flare = #'(0 . 0) % vertical brackets
subdivideBeams = ##t
strictBeatBeaming = ##t
\numericTimeSignature
}
\context {
\Score
\accepts "PipeBandDrumStaff"
\override RehearsalMark.break-align-symbols = #'(clef)
\override RehearsalMark.padding = #3
\override VoltaBracket.edge-height = #'(1.5 . 1.5)
}
\context {
\StaffGroup
\accepts "PipeBandDrumStaff"
}
}
% =================================================== %
% *Shorts* for Naming %
% =================================================== %
instrumentSide = "Side"
instrumentTenor = "Tenor"
instrumentBass = "Bass"
instrumentPipes = "Pipes"
shortInstrumentSide = "S.D."
shortInstrumentTenor = "T.D."
shortInstrumentBass = "B.D."
shortInstrumentPipes = "P."
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,45 @@
% ================================================= %
% Musical Functions %
% ================================================= %
% Part of lilydrum
eighthBeaming = {
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = #'( 2 2 )
}
compoundEighthBeaming = {
\set baseMoment = #(ly:make-moment 1/8)
\set beatStructure = #'( 3 )
}
% triplet
triplet = #(define-music-function (parser location notes) (ly:music?) #{ \tuplet 3/2 { $notes } #})
% dynamics
v = #(define-event-function (parser location) () #{ \upbow #})
% repeat brackets
dr = #(define-event-function (parser location) () #{ \startGroup #})
fr = #(define-event-function (parser location) () #{ \stopGroup #})
% dynamics with extended lines
dynLine = #(define-music-function
(parser location text)
(markup?)
#{
\once \override TextSpanner.style = #'line
\once \override TextSpanner.bound-details.left.text = \markup {
\combine
\draw-line #'(0 . -1)
\draw-line #'(1 . 0)
\dynamic #text
}
\once \override TextSpanner.bound-details.right.text = \markup { \draw-line #'(0 . -1) }
#})
% still to add: a little 'u'
tutti = #(define-event-function (parser location notes) (ly:music?) #{
\startGroup
$notes
\stopGroup
#})

View File

@ -0,0 +1,21 @@
% ================================================= %
% Side Sticking (modifies note, or adds mark) %
% ================================================= %
% Part of lilydrum
backstick = #(define-music-function (parser location notes) (ly:music?)
#{
\temporary \override Staff.NoteHead.style = #'cross
$notes
\revert Staff.NoteHead.style
#})
crossstick = #(define-music-function (parser location notes) (ly:music?)
#{
\temporary \override Staff.NoteHead.style = #'xcircle
$notes
\revert Staff.NoteHead.style
#})
rimshot = #(define-music-function (parser location notes) (ly:music?)
#{
$notes
#})

256
lilydrum/makedrum Normal file
View File

@ -0,0 +1,256 @@
#!/usr/bin/python3.4
## Generate pdf form lilypond file
## by using standard command
##
## Most of programming was done by Sven Axelsson, http://svenax.net/
import codecs, os
from argparse import ArgumentParser
class MakeDrum:
LILYPOND = 'lilypond'
VERSION = '0.9.5'
TMP_DIR = os.path.join(os.path.abspath(os.curdir),'tmp')
TMP_PREFIX = 'tmp_'
MASTER_DIR = os.path.dirname(os.path.abspath(__file__))
RUN_DIR = os.path.abspath(os.curdir)
def __init__(self):
parser = ArgumentParser(__file__)
parser.add_argument('--version', action='version', version=self.VERSION)
parser.add_argument('--lilyversion',
action='store_true', dest='show_lilyversion', default=False,
help='show Lilypond version and exit')
# options for inclusion of files
parser.add_argument('-x', '--drumfile',
dest='lilydrum', default='lilydrum.ly',
help='Use the specified file for drums')
parser.add_argument('-c', '--pipefile',
dest='lilypipe', default='bagpipe.ly',
help='Use the specified file for pipes')
parser.add_argument('-i', '--include',
dest='includes', nargs='*', default=[],action='append',
help='Include the specified file for compiling')
# options for lilypond
parser.add_argument('-p', '--paper-size',
dest='papersize', default='a4',
help='Paper size. Default: A4')
parser.add_argument('-o', '--orientation',
dest='orientation', default='landscape',
help='Paper orientation. Default: landscape')
parser.add_argument('-s', '--staff-size',
dest='staffsize', default='20',
help='Staff size. Default: 20pt.')
parser.add_argument('-w', '--view-spacing',
action='store_const', dest='view_spacing', default='##f', const='##t',
help='Turn on "Paper.annotatespacing".')
parser.add_argument('-l', '--line-break',
action='store_const', dest='line_break', default='##t', const='##f',
help='Turn off explicit linebreaks".')
# options for generating and compiling
parser.add_argument('-g','--generated',
dest='gen_out', default=self.TMP_DIR,
help='Put generated lilyfiles in $gen_out')
parser.add_argument('--no-compile',
action='store_false', dest='compile', default=True,
help='Do not compile generated Lilypond files')
parser.add_argument('--no-log',
action='store_false', dest='log', default=True,
help='Do not generate log files.')
parser.add_argument('--no-cleanup',
action='store_false', dest='clean', default=True,
help='Leave all temporary files in place')
parser.add_argument('-d', '--out_dir',
dest='out_dir', default='pdf',
help='Output dir for the lilypond process. If it doesn\'t exist, try to create it')
# the file(s) to process
parser.add_argument('music_file',
default='', nargs='*',
help='file to process')
parser.add_argument('-@', '--list_file',
dest='list_file', default='',
help='file containing the list of files to process')
self.args = parser.parse_args()
if self.args.show_lilyversion:
print(os.system(self.LILYPOND+' --version'))
return
# Input files
if self.args.list_file != '':
self.args.music_file.append(open(self.args.list_file, 'r').readlines())
close(self.args.list_file)
# Check if there are any files
if not self.args.music_file:
parser.print_usage()
return
# Check for inclusion options
self.args.includes = [el for elements in self.args.includes for el in elements]
# Whether to clean up tmp_dir if possible
self.remove_tmp_dir = self.args.clean
# are TMP_DIR, out_dir dirs?
if not os.path.exists(self.TMP_DIR):
try: os.makedirs(self.TMP_DIR)
except:
print('Seems like no temporary directory can be created')
return
if not os.path.exists(self.args.out_dir):
try: os.makedirs(self.args.out_dir)
except:
print('Seems like no output directory can be created')
return
# do the work!
for file_path in self.args.music_file:
self.process_it(file_path)
#if dir is empty:
#os.rmdir(self.TMP_DIR)
def process_it(self, file):
tmp_file = self.maketemplate(file)
if self.args.gen_out is not None and self.args.gen_out != self.TMP_DIR:
new_tmp_file = os.path.basename(tmp_file).replace(self.TMP_PREFIX, '');
print ('Moving ', tmp_file, ' to ', new_tmp_file, end=' ', flush=True)
gen_dir = os.path.join(self.RUN_DIR, self.args.gen_out);
# if not dir $gen_out, make it
if not os.path.exists(gen_dir):
try: os.makedirs(gen_dir)
except:
print('[Error]')
print(' ! Seems like the {} directory cannot be created'.format(gen_dir))
return
# mv file to dir, remove self.TMP_PREFIX
os.rename(tmp_file, os.path.join(gen_dir, new_tmp_file))
tmp_file = new_tmp_file
print('[OK]')
if self.args.compile:
if self.args.log:
logfile = os.path.join(self.TMP_DIR, os.path.relpath(file).replace(".ly", '').replace('/', '-')+'.log')
log = ' > '+logfile+' 2>&1'
else:
log = ''
print ('Compiling ', file, end=' ', flush=True)
if not self.args.log:
print()
lilyout = os.path.join(self.args.out_dir, os.path.basename(tmp_file).replace(self.TMP_PREFIX, '').replace(".ly", ''))
print (lilyout)
lilycmd = self.LILYPOND+' --pdf --output='+lilyout+' '+tmp_file+log
if os.system(lilycmd) != 0:
self.remove_tmp_dir = False
print ('[Error]')
if self.args.log:
print (' ! Did not compile, please see the log at ', logfile)
else :
print ('[OK]')
if self.args.clean:
#remove files
if self.args.log:
os.remove(logfile)
os.remove(tmp_file)
def maketemplate(self, file):
lily_includes = ''
include_drum_file = False
include_pipe_file = False
# find out whether drum, pipes, or full score
for ext in ['full', 'side', 'tenor', 'bass', 'drum', 'snare']:
if ext in file:
include_drum_file = True
break
for ext in ['full', 'pipes']:
if ext in file:
include_pipe_file = True
break
if include_drum_file:
self.args.includes.insert(0,self.args.lilydrum)
if include_pipe_file:
self.args.includes.insert(0, self.args.lilypipe)
for f in self.args.includes:
lily_includes = lily_includes + "\n\\include \"{}\"".format(f)
# Set up a tmp file with template and file combined
tmp_file = self.TMP_PREFIX + os.path.relpath(file).replace('/', '-').replace('..', '').replace('//','').lstrip('-')
tmp_file = os.path.join(self.TMP_DIR, tmp_file)
out_file = codecs.open(tmp_file, 'w+', 'utf8')
out_file.write(u'\ufeff')
# Write the file
out_file.write(
u"""% Generated from {filename} by {script} Version {version}
\\version "2.18.0"
#(ly:set-option 'point-and-click #f)
{lily_includes}
#(set-global-staff-size {staffsize})
#(set-default-paper-size \"{papersize}\" '{orientation})
\\paper {{
annotatespacing = {view_spacing}
}}
\layout {{
\context {{
\Score {{
\override NonMusicalPaperColumn #'line-break-permission = {line_break}
}}
}}
}}
% The tune to generate.
""".format(
filename=file,
script=__file__,
version=self.VERSION,
lily_includes=lily_includes,
staffsize=self.args.staffsize,
papersize=self.args.papersize,
orientation=self.args.orientation,
view_spacing=self.args.view_spacing,
line_break=self.args.line_break
)
)
# Read lily file into tmp file
music = codecs.open(file, 'r', 'utf8').read()
if music.startswith(u'\ufeff'): music = music[1:]
music = music.split(u'\n')
printit = 1
for line in music:
if line.startswith(u'\\include'):
if line.startswith(u'\\include "lilydrum.ly"'): continue
if line.startswith(u'\\include "bagpipe.ly"'): continue
# Rewrite includes to absolute location of file
incline = line.replace('\\include', '').strip('"\' ')
if not incline.startswith('\\'): #already absolute
incline = os.path.join(os.path.abspath(os.path.dirname(file)), incline)
line = "\\include \""+incline+"\""
if printit:
out_file.write(line.replace('\r', '')+'\n')
out_file.close()
# Return tmp_file_path
return tmp_file
if __name__ == "__main__":
MakeDrum();

17
lilydrum/todo Normal file
View File

@ -0,0 +1,17 @@
TODO
* show 8th and 16th beats in beaming, currently only 8ths: d32[[ g] d[ g]] d32[[ g] d[ g]]
* Macro for tutti's (unisons)
- on just one note
- with open ending
* Macro for "Part 2 of $n"
* If 8/16/32/..th notes come before a flam, they have a flag instead of a beam (fixable by explicit beaming, but rather have a good autobeaming)
* A tuplet beginning with a flam has a strange tuplet beam (slanted) (fixable by putting the flam outside of the tuplet .. However the flam function doesnt work that way (yet))
* It's customary to have 4 bars per line for portrait and 8 for landscape...
* SIDE sticking
rimshot default + cross
* FLOURISHING short long note above-note
ups \up arrow-up
scoop \scoop arrow-right-(diag-up then diag-down) [propably start on beginning of note and filter out the last one]
(further EUSPBA symbols)

12
music/.gitignore vendored Normal file
View File

@ -0,0 +1,12 @@
*.bww
*.ps
*.pdf
*.png
*.log
*tmp*
*.py
*.toc
*.aux
_output/
pdf/
fullscores/*

View File

@ -0,0 +1,68 @@
\include "bagpipe.ly"
melody = {
\set Staff.midiInstrument = #"bagpipe"
\hideKeySignature
\cadenzaOn
\once \override Score.BreakAlignment #'break-align-orders =
#(make-vector 3 '(instrument-name
left-edge
ambitus
span-bar
breathing-sign
clef
key-signature
time-signature
staff-bar
custos
span-bar))
\time 2/4
\bar "|:" \grg a16. [ b32 ] \bar "|"
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\dble e8 [ \grg b8 ] \grip b8 [ \grg e16 d16 ] \bar "|"
\grg c32 [ d16. ] \grg b32 [ \grd c16. ] \grg a16. [ b32 \grg c32 \grd a16. ] \bar "|" \break
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\dble e8 [ \grip e8 ] \grg e16. [ g32 \grA f32 e16. ] \bar "|"
\thrwd d8 [ \grg f8 ] \thrwd d8 \bar ":|" \break
e8 \bar "|"
\grg a16. [ \grd a32 a16 ] \grd b16 ] \thrwd d8 [ \grg d16 e16 ] \bar "|"
\dblg g8 [ \grA f16 e16 ] \grg f32 [ A16. f16. d32 ] \bar "|"
\grg a16. [ \grd a32 a16 ] \grd b16 ] \thrwd d8 [ \grg d16 e16 ] \bar "|"
\dblg g8 [ \grA f16 e16 ] \grg f32 [ A16. f16. d32 ] \bar "|" \break
A8 [ a16 \dbla a16 ] \grg c8 [ \grd a16 \dbla a16 ] \bar "|"
\grg d8 [ b16 \dblb b16 ] \grg e8 [ c16 \dblc c16 ] \bar "|"
\grg d32 [ f16. ] \grg d32 [ f16. ] e16. [ g32 \grA f32 g16. ] \bar "|"
A8 [ \grip A8 ] \grg A16. [ g32 f16. ] e32 ] \bar ":|:" \break
\bar "|"
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\dble e8 [ \grg b8 ] \grip b8 [ \grg e16 d16 ] \bar "|"
\grg c32 [ d16. ] \grg b32 [ \grd c16. ] \grg a16. [ b32 \grg c32 \grd a16. ] \bar "|" \break
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] \bar "|"
\dble e8 [ \grip e8 ] \grg e16. [ g32 \grA f32 e16. ] \bar "|"
\thrwd d8 [ \grg f8 ] \set Score.repeatCommands = #'((volta "1")) \thrwd d8 \grg a16. [ b32 ] \set Score.repeatCommands = #'((volta #f)) \bar "|"
\set Score.repeatCommands = #'((volta "2")) \thrwd d4 \set Score.repeatCommands = #'((volta #f)) \bar "|"
\bar ":|" \break
}
\score {
\melody
\layout {
indent = 0.0\cm
\context { \Score \remove "Bar_number_engraver" }
}
\header {
title = "The Black Bear Hornpipe"
meter = "March"
arranger = "1936"
}
}

View File

@ -0,0 +1,14 @@
\version "2.19.0"
%% Globals
global = {
\time 2/4
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Black Bear"
meter = "March"

View File

@ -0,0 +1,55 @@
\version "2.19.0"
\include "config.ily"
%\include "notes.bass.ily"
%\include "notes.tenor.ily"
\include "notes.side.ily"
\include "notes.pipes.ily"
\score {
\new StaffGroup <<
\new Staff {
\global
\bagpipeKey
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentPipes }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentPipes }
<<
{}%Format
{}%Pipes
>>
}
\new PipeBandDrumStaff = "side" {
\set PipeBandDrumStaff.instrumentName = \markup \column {\instrumentSide}
\set PipeBandDrumStaff.shortInstrumentName = \markup{\shortInstrumentSide}
}
\new PipeBandDrumStaff = "bass" {
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentBass }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentBass}
}
\new PipeBandDrumStaff = "tenor" {
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentTenor }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentTenor }
}
>>
\header {
title = \title
meter = \meter
composer = \markup \large {
\column \right-align {
$(if (not (string=? "" composerPipes)) #{ \markup {\line { \composerPipes ":" }} #} )
$(if (not (string=? "" composerSide)) #{ \markup {\line { \composerSide ":" }} #} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \composerTenor ":" }} #} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \composerBass ":" }} #} )
}
\column \right-align {
$(if (not (string=? "" composerPipes)) #{ \markup {\line { \instrumentPipes }}#} )
$(if (not (string=? "" composerSide)) #{ \markup {\line { \instrumentSide }}#} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \instrumentTenor }}#} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \instrumentBass }}#} )
}
}
}
}

View File

@ -0,0 +1,39 @@
% 2/4 Black Bear
% Pipes
\version "2.18.2"
composerPipes = "1936"
pipesA = {
\grg a16. [ b32 ] |
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\dble e8 [ \grg b8 ] \grip b8 [ \grg e16 d16 ] |
\grg c32 [ d16. ] \grg b32 [ \grd c16. ] \grg a16. [ b32 \grg c32 \grd a16. ]
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\dble e8 [ \grip e8 ] \grg e16. [ g32 \grA f32 e16. ] |
\thrwd d8 [ \grg f8 ] \thrwd d8
}
pipesB = {
e8 |
\grg a16. [ \grd a32 a16 ] \grd b16 ] \thrwd d8 [ \grg d16 e16 ] |
\dblg g8 [ \grA f16 e16 ] \grg f32 [ A16. f16. d32 ] |
\grg a16. [ \grd a32 a16 ] \grd b16 ] \thrwd d8 [ \grg d16 e16 ] |
\dblg g8 [ \grA f16 e16 ] \grg f32 [ A16. f16. d32 ] |
A8 [ a16 \dbla a16 ] \grg c8 [ \grd a16 \dbla a16 ] |
\grg d8 [ b16 \dblb b16 ] \grg e8 [ c16 \dblc c16 ] |
\grg d32 [ f16. ] \grg d32 [ f16. ] e16. [ g32 \grA f32 g16. ] |
A8 [ \grip A8 ] \grg A16. [ g32 f16. ] e32 ]
}
pipesCA = {
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\dble e8 [ \grg b8 ] \grip b8 [ \grg e16 d16 ] |
\grg c32 [ d16. ] \grg b32 [ \grd c16. ] \grg a16. [ b32 \grg c32 \grd a16. ]
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\thrwd d8 [ \dbld d8 ] \grg f16. [ d32 ] A16. [ f32 ] |
\dble e8 [ \grip e8 ] \grg e16. [ g32 \grA f32 e16. ] |
\thrwd d8 [ \grg f8 ] \thrwd d8 \grg a16. [ b32 ]
}

View File

@ -0,0 +1,31 @@
% 2/4 Black Bear
% Snare
\version "2.18.2"
composerSnare = "E.T. de Boone, 2015"
%%music
snareA = \drummode {
d8:32( |
g16.) \parenthesize g32 \flamd d16. g32 d16. \flamg g32 d16. g32 |
\flamd d16. \parenthesize g32 \flamd d16. g32 d16. \flamg g32 d16. g32 |
\flamd d8 d32 g32 d32 g32 d4 |
r4^\markup {\bold HOI} d8:32( g8:32)(-> |
d16.) \parenthesize g32 \flamd d16. g32 d16. \flamg g32 d16. g32 |
\flamd d16. \parenthesize g32 \flamd d16. g32 d16. \flamg g32 d16. g32 |
\flamd d4 d4:32( |
d8) \flamg g8 \flamd d8
}
% Part 2
snareBA = \drummode {
g8 |
d4:32( d4:32)( |
d8) g16. d32-> g16. g32 \flamd d16. g32 |
d4:32( d4:32)( |
d8) g16. d32-> g16. g32 \flamd d16. g32 |
d4:32( d8.:32)( g16:32)( |
d8:32)( g8:32)( d4)( |
g8:32)( d8:32)( g16.) d32-> g16. g32 |
\flamd d8 d8:32( g8)
}

View File

@ -0,0 +1,33 @@
% 2/4 Black Bear
% Snare
\version "2.18.2"
composerSnare = "E.T. de Boone, v1.2, 2015"
%%music
yell = \markup { \bold HOI}
snareA = \drummode {
d8:32( |
g16.) \parenthesize g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d16. \parenthesize g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d8 \tuplet 3/2 { d16 g16 d16 } \flam g4 |
r4^\yell d8:32( g8:32)(-> |
d16.) \parenthesize g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d16. \parenthesize g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d4 d4:32( |
d8) \flam g8 \flam d8
}
% Part 2
snareBA = \drummode {
g8 |
\tuplet 3/2 { \flam d16 g16 d16->} g16. g32 \flam d8:32( \tuplet 3/2 { g16) d16 g16 } |
\flam d8:32( g16.)(-> g32) d32 g16. d16:64( d16:64)( |
\tuplet 3/2 { d16) g16 d16-> } g16. g32 \flam d8:32( \tuplet 3/2 { g16) d16 g16 } |
\flam d8:32( g16.)(-> g32) d32 g16. d16. g32 |
\tuplet 3/2 { \flam d32 d32 g16 d16 } \tuplet 3/2 { g16 d16 \flam g32 g32 } \tuplet 3/2 { d16 g16 d16 } \tuplet 3/2 { \flam g32 g32 d16 g16 } |
\tuplet 3/2 { d16 g16 \flam d32 d32 } \tuplet 3/2 { g16 d16 g16 } \tuplet 3/2 { \flam d32 d32 g16 d16 } \tuplet 3/2 { \flam g32 g32 d16 g16 } |
\flam d16. g32-> d16. d32 \tuplet 3/2 { \flam g16[ d16 g16-> } d16. \drag g32] |
g32 d32 g32 d32 \tuplet 3/2 {g16-> d16 g16-> } \tuplet 3/2 { d16 g16 d16->} g32 d32 d32 g32 |
}

View File

@ -0,0 +1,33 @@
% 2/4 Black Bear
% Snare
\version "2.18.2"
composerSide = "E.T. de Boone, v1.3, 2015"
%%music
yell = \markup { \bold HOI}
snareA = \drummode {
d8:32( |
g16.)-> \parenthesize g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d16.-> \parenthesize g32 \flam d16.-^ g32 d16. \flam g32 d16. g32 |
\flam d8 \tuplet 3/2 { d16 g16 d16 } \flam g4 |
r4^\yell d8:32( \< g8:32)(-> |
d16.) \! g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d16. g32 \flam d16. g32 d16. \flam g32 d16. g32 |
\flam d4 d4:32( |
d8) \flam g8 \flam d8
}
% Part 2
snareBA = \drummode {
g8
\flamd \tuplet 3/2 { d16 g16 d16->} g16. g32 d8:32( \tuplet 3/2 { g16) d16 g16 } |
d8:32( g16.)(-> g32) d32 g16. d16:64( d16:64)( |
\tuplet 3/2 { d16) g16 d16-> } g16. g32 d8:32( \tuplet 3/2 { g16) d16 g16 } |
d8:32( g16.)(-> g32) d32 g16. d16. g32 |
\flamd \tuplet 3/2 { d32 d32 g16 d16 } \tuplet 3/2 { g16 d16 \flam g32 g32 } \tuplet 3/2 { d16 g16 d16 } \flamg \tuplet 3/2 { g32 g32 d16 g16 } |
\tuplet 3/2 { d16 g16 \flam d32 d32 } \tuplet 3/2 { g16 d16 g16 } \flamd \tuplet 3/2 { d32 d32 g16 d16 } \flamg \tuplet 3/2 { g32 g32 d16 g16 } |
\flam d16. g32-> d16. d32 \flamg \tuplet 3/2 { g16[ d16 g16-> } d16. \drag g32] |
g32 d32 g32 d32 \tuplet 3/2 {g16-> d16 g16-> } \tuplet 3/2 { d16 g16 d16->} g32 d32 d32 g32 |
}

View File

@ -0,0 +1,21 @@
\version "2.18.2"
\include "config.ily"
\include "notes.pipes.ily"
\score {
\new Staff {
\global
\bagpipeKey
<<
{ }
{ }
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentPipes
composer = \composerPipes
}
}

View File

@ -0,0 +1,27 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.v1.3.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \halfline \break \halfline } \break
\part \line \bar "|."
}
{
\snareA s8
\snareBA
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,15 @@
\version "2.19.0"
%% Globals
global = {
\time 2/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Duncan McInnes"
meter = "Drum Salute in Quick Time"

View File

@ -0,0 +1,83 @@
% 2/4 Black Bear
% Snare
\version "2.18.2"
composerSnare = "E.T. de Boone, 2015"
%%music
snareA = \drummode {
d8:32( |
g8) d16. g32-> d16. d32 \flamg g8 |
\tuplet 3/2 { d16 g d-> } \tuplet 3/2 { g16 d g-> } d8-> d8:32( |
g8) d16. g32 d8:32( g8) |
\flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( |
g8) d16. g32-> d16. d32 \flamg g8 |
\tuplet 3/2 { d16 g d-> } \tuplet 3/2 { g16 d g-> } d8-> d8:32( |
g8) \flamd d8 d16 \flamg g8 g16 |
\flamd d8 d8:32( g8)
}
% Part 2
snareB = \drummode {
r16. g32 |
\flamd d8 d16. g32-> d16. d32 \flamg g8 |
\tuplet 3/2 { d16 g d-> } \tuplet 3/2 { g16 d g-> } d8:32( g8) |
\flamd d8. d16 \flamg g16 r16 g16 \flamd d16 |
\flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g8. g16 |
\flamd d8 d16. g32-> d16. d32 \flamg g8 |
\tuplet 3/2 { d16 g d-> } \tuplet 3/2 { g16 d g-> } d8-> d8:32( |
g8) \flamd d8 d16 \flamg g8 g16 |
\flamd d8 d8:32( g8)
}
% Part 3
snareC = \drummode {
d16. g32 |
\flamd d16. g32 d16. d32 \flamg g16. d32 g16. g32 |
d16. \flamg g32 d16. d32 \flamg g8 d8:32( |
g8) d16. g32 d8:32( g8) |
\flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d16. g32 |
\flamd d16. g32 d16. d32 \flamg g16. d32 g16. g32 |
d16. \flamg g32 d16. d32 \flamg g8 d8:32( |
g8) \flamd d8 d16 \flamg g8 g16 |
\flamd d8 d8:32( g8)
}
% Part 4
snareDA = \drummode {
d16. g32 |
d8:32( g8:32)(-> d8.) d16:64( |
d16.) g32 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( |
g8) d16. g32 d8:32( g8) |
\flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d16. g32 |
}
snareDAB = \drummode {
d8:32( g8:32)(-> d8.) d16:64( |
d16.) g32 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( |
g8) \flamd d8 d16 \flamg g8 g16 |
\flamd d8 d8:32( g8)
}
snareDAC = \drummode {
\flamd d16. g32 d16. d32 \flamg g16. d32 g16. g32 |
d16. \flamg g32 d16. d32 \flamg g8 d8:32( |
<<
{
g8) \flamd d8 d16 \flamg g8 g16 |
}
\new PipeBandDrumStaff{
\eighthBeaming
\once \omit Staff.TimeSignature
g16. d32:128( d16.) g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 |
}
>>
\flamd d8 d8:32( g4)
\bar "|."
}

View File

@ -0,0 +1,32 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \line } \break
\repeat volta 2 { \part \line } \break
\repeat volta 2 { \part \line } \break
\part \halfline \halfline \bar "||" \break
\part \halfline \halfline \bar "|."
}
{
\snareA s8
\snareB s8
\snareC s8
\snareDA \snareDAB s8
\snareDA \snareDAC
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,14 @@
\version "2.19.0"
%% Globals
global = {
\time 2/4
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 4 { s4 s4 } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "High Road to Gairloch"
meter = "March"

View File

@ -0,0 +1,26 @@
% 2/4 High Road to Gairloch
% Pipes
\version "2.18.2"
composerPipes = "Trad."
pipesA = {
\grg e8. [ f16 ] \grg e8 [ a8 ] |
\dblc c8 [ \gre a8 ] \dble e4 |
\thrwd d8 [ \grg f16 e16 ] \thrwd d8 [ \gre G8 ] |
\dblb b8 [ \gre G8 ] d4 |
\grg e8. [ f16 ] \grg e8 [ a8 ] |
\dblc c8 [ \gre a8 ] \dble e4 |
\grg a8. [ b16 ] \dblc c8 [ \gre a8 ] |
\dblb b4 \grG a4
}
pipesB = {
\dblc c8 [ \gre a8 ] \wbirl a8. [ b16 ] |
\dblc c8 [ \gre a8 ] \dblc c4 |
\thrwd d8. [ c16 ] \grg b8. [ c16 ] |
\thrwd d8 [ \gre b8 ] \thrwd d4 |
\dblc c8 [ \gre a8 ] \wbirl a8. [ b16 ] |
\dblc c8 [ \gre b8 ] \dblc c8 [ e8 ] |
\grg a8. [ b16 ] \dblc c8 [ \gre a8 ] |
\dblb b4 \grG a4
}

View File

@ -0,0 +1,27 @@
\version "2.18.2"
\include "config.ily"
\include "notes.pipes.ily"
\score {
\new Staff {
\global
\bagpipeKey
<<
{
\line
\line
}
{
\pipesA
\pipesB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentPipes
composer = \composerPipes
}
}

View File

@ -0,0 +1,21 @@
\version "2.19.0"
%% Globals
global = {
\time 2/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "MacKenzie Highlanders"
meter = "Trooping of the Colours"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,48 @@
% 2/4 MacKenzie Highlanders
% Snare
\version "2.18.2"
composerSide = "alternate version"
%%music
snareA = \drummode {
d8:32( |
g8) \tuplet 3/2 { d16 g d } \flam g16. d32-> g16. g32 |
\flam d8 d8:32( g8:32) d16. g32 |
d8:32( g16.) g32-> d32 g d g-> d16.-> g32 |
d8:64(-> g32) d g d g8 d8:32( |
g8) \tuplet 3/2 { d16 g d } \flam g16. d32-> g16. g32 |
d8-> g8:32(-> d8:32)(-> \tuplet 3/2 { g16) d g } |
d8[-> \drag d16 d32-> g] d[ g \drag d16 d16. g32] |
d4:32( d8)
}
% Part 2
snareBA = \drummode {
g8 |
d8:32( \tuplet 3/2 { g16) d g-> } d16.-> g32-> d32 g d g-> |
d8-> d8:32( g8) d16. g32 |
d8:32( g16.) g32-> d32 g d g-> d16.-> g32 |
d8:64(-> g32) d g d g8 g8-> |
d8:32( \tuplet 3/2 { g16) d g-> } d16.-> g32-> d32 g d g-> |
d8-> g8:32(-> d8:32)(-> \tuplet 3/2{ g16) d g } |
d8[-> \drag d16 d32-> g] d[ g \drag d16 d16. g32] |
d4:32( d8) g8
}
snareBB = \drummode {
d8:32( \tuplet 3/2 { g16) d g-> } d16.-> g32-> d32 g d g-> |
d8-> d8:32( g8) d16. g32 |
d8:32( g16.) g32-> d32 g d g-> d16.-> g32 |
\flam d4 d8:32(-> \< g8:32)(-> |
d8)-> \! \tuplet 3/2 { g16 d g-> } d8:32(-> \tuplet 3/2 { g16) d g-> }
d32 g d g-> d16.-> g32 d8:32(-> \tuplet 3/2 { g16) d g } |
d8[-> \drag d16 d32-> g] d[ g \drag d16 d16. g32] |
d4:32( d4)
}

View File

@ -0,0 +1,36 @@
% 2/4 MacKenzie Highlanders
% Snare
\version "2.18.2"
composerSnare = ""
%%music
snareA = \drummode {
d8:32( |
g8) \tuplet 3/2 { d16 g d } \flam g16. d32-> g16. g32 |
\flam d8 d8:32( g8:32)(-> \tuplet 3/2 { d16) g d } |
\flam g8[ \drag d16. d32]-> g16.[ \drag d32 d16. g32] |
d4:32( d8) d8:32( |
g8) \tuplet 3/2 { d16 g d } \flam g16. d32-> g16. g32 |
\flam d8 d8:32( g8:32)(-> \tuplet 3/2 { d16) g d } |
\flam g8-> \tuplet 3/2 { \flam d16 g d-> } g16. g32 \flam d8 |
d4:32( d8)
}
% Part 2
snareB = \drummode {
g8 |
d8:32( \tuplet 3/2 { g16) d g-> } d16.-> g32-> d32 g d g-> |
d8-> d8:32( g8) d16. g32 |
d8:32( \tuplet 3/2 { g16) d g-> } d32 g d g-> d16.-> g32 |
d4:32( d8) g8 |
d8:32( \tuplet 3/2 { g16) d g-> } d8:32(-> g8:32)(-> |
\tuplet 3/2 { d16) g d->} g16. g32 d8:32(-> \tuplet 3/2 { g16) d g } |
\flam g8-> \tuplet 3/2 { \flam d16 g d-> } g16. g32 \flam d8 |
d4:32( d8)
}

View File

@ -0,0 +1,28 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.alt.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \line } \break
\part \line \bar "||" \break
\line \bar "|."
}
{
\snareA s8
\snareBA
\snareBB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,26 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \line } \break
\repeat volta 2 { \part \line }
}
{
\snareA s8
\snareB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,20 @@
\version "2.19.0"
%% Globals
global = {
\time 3/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s2. | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Castle Dangerous"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,24 @@
% 3/4 Castle Dangerous
% Tenor
\version "2.18.2"
composerTenor = ""
%%music
tenorA = \drummode {
r8. d16
g4
r8 d8
|
r8 g8
r8 d8
r8 g8
|
r8 d8
r8 g8
r8 d8
|
r8 g8
r8 d16 g
d16 g d g
|
}

View File

@ -0,0 +1,24 @@
\version "2.18.2"
\include "config.ily"
\include "notes.tenor.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \line }
}
{
\tenorA
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentTenor
composer = \composerTenor
}
}

View File

@ -0,0 +1,20 @@
\version "2.19.0"
%% Globals
global = {
\time 3/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 4 { s2. | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "On the Road to Passchendaele"
meter = "Retreat"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,35 @@
% 3/4 On the Road to Passchendaele
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareAA = \drummode {
\flamd d8. g16 d4:32( d8) d8:32( |
\tuplet 3/2 { g16) d g } \flamd d8 \flamd d4 d4:32( |
d8.) g16 d8:32(-> \tuplet 3/2 { g16) d g } d8:32(-> g8:32)(-> |
\tuplet 3/2 { d16) g d-> } g16. g32 \flamd d8 d8:32( g16.) d32-> g16. g32 |
}
snareAB = \drummode {
\flamd d8. g16 d4:32( d8) d8:32( |
\tuplet 3/2 { g16) d g } \flamd d8 d4:32( d4) |
\flamd d8. g16 d4:32( d8:32)(-> \tuplet 3/2 { g16) d g } |
d16. d32 \flamg g8 d4:32( d4)
}
% Part 2
snareBA = \drummode {
d16[ \dragg g8 g16] d8:32( g8) d4:32( |
\tuplet 3/2 { d16) g d-> } g16. g32 \flamd d4 d4:32( |
d8.) g16 d8:32(-> \tuplet 3/2 { g16) d g } d8:32(-> g8:32)(-> |
\tuplet 3/2 { d16) g d-> } g16. g32 \flamd d8 d8:32( g16.) d32-> g16. g32 |
}
snareBB = \drummode {
d8. g16 d8:32( g8) d4:32( |
\tuplet 3/2 { g16) d g } \flamd d8 d4:32( d4) |
\flamd d8. g16 d4:32( d8:32)(-> \tuplet 3/2 { g16) d g } |
d16. d32 \flamg g8 d4:32( d4)
}

View File

@ -0,0 +1,33 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \line } \break
\line \bar "||" \break
\line \bar "|."
}
{
\snareAA
\snareAB
\snareBA
\snareBB
\snareBA
\snareAB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,19 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "51st Highland Division"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,29 @@
% 4/4 51st Highland Division
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareA = \drummode {
d16. g32 |
d4:32( d8.) g16 \flamd d8 d8:32( g8) d8:32( |
g8.) g16 \flamd d8 \flamg g8 d4:32(-> d8.)-> g16 |
}
snareAA = \drummode {
d8:32(-> g8) r8 d8:32( g8) g16. d32-> g16. g32 \flamd d8 |
\flamg g4 d4:32( d4) r8
}
snareAB = \drummode {
d8:32(-> g8) \flamd d8 d8:32( \tuplet 3/2 { g16) d g } \flamd d16. g32-> d16. d32 \flamg g8 |
\flamg g4 d4:32( d4) r8
}
% Part 2
snareB = \drummode {
d16. g32 |
d8:32(-> \tuplet 3/2 { g16) d g } d8:32(-> g8:32)(-> \tuplet 3/2 { d16) g d } \flamg g8 \flamd d8 d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32-> \tuplet 3/2 { d16 g d } \flamg g8 d4:32(-> d8.)-> g16 |
d8:32(-> g8) r8 d8:32( g8) g16. d32-> g16. g32 \flamd d8 |
\flamg g4 d4:32( d4) r8
}

View File

@ -0,0 +1,35 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 {
\repeat volta 2 { \part \halfline \break}
\alternative { {\halfline} {\halfline } }
\bar "|." \break
\part \line \bar "||" \break
\line \bar "|."
}
}
{
\snareA
\snareAA s8
\snareAB s8
\snareB
\snareA \snareAB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,21 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Flett from Flotta"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,29 @@
% 4/4 Flett from Flotta
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareA = \drummode {
d8:32( |
g8.) g16 d8:32( g8) d4:32( d8) d8:32( |
g8) \tuplet 3/2 { d16 g d-> } g16. g32 d8 \flamg g4 d8:32( g8:32)( |
d4) d8:32(-> \tuplet 3/2 { g16) d g } \flamd d16. g32 d16. g32 \flamd d8 d8:32( |
d4)-> d4:32( d4) d4:32( |
g8.) g16 d8:32( g8) d4:32( d8) d8:32( |
g8) \tuplet 3/2 { d16 g d-> } g16. g32 d8 \flamg g4 d8:32( g8) |
\flamd d8 \tuplet 3/2 { g16 d g } d8:32(-> g8:32)(-> \tuplet 3/2 { d16) g d } \flamg g8 \flamd d8 g8:32( |
d4)-> d4:32( d4) r8
}
% Part 2
snareB = \drummode {
d4:32( d8) d32 g d g d32 g d g d8 \flamg g8 d8:32( |
g8) \tuplet 3/2 { d16 g d-> } g16. g32 d8 d4:32( g8:32)(-> d8:32)(-> |
d4) r4 r4 r4 |
d8.:32(-> g16) d8:32(-> g8)-> d32 g d g d16. g32-> r16 g16-> r16 g16-> |
g8.:32(-> g16) d8:32(-> g8) d4:32( d8) d8:32( |
g8) \tuplet 3/2 { d16 g d-> } g16. g32 d8 \flamg g4 d8:32( g8:32) |
\flamd d8 \tuplet 3/2 { g16 d g } d8:32(-> g8:32)(-> \tuplet 3/2 { d16) g d } \flamg g8 \flamd d8 g8:32( |
d4)-> d4:32( d4) r8
}

View File

@ -0,0 +1,28 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \line \break \line }
\repeat volta 2 { \line \break \line }
}
{
\snareA s8
\snareB s8
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,20 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Minstrel Boy"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,33 @@
% 4/4 Minstrel Boy
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareAA = \drummode {
d16. g32 |
d4:32( d8.) g16 \flamd d8 d8:32( g8) d8:32( |
g16.) d32-> g16. g32 \flamd d8 \flamg g8 d4:32(-> d4:32)(-> |
\break
d8:32)(-> g8:32)-> r8 d8:32( g8[) \dragd d16. d32]-> g16. g32 \flamd d8 |
\flamd d4 d4:32( d4)
}
snareAB = \drummode {
\dragd d16. d32-> g16. g32 |
d4:32( d8.) g16 \flamd d8 d8:32( g8) d8:32( |
g16.) d32-> g16. g32 \flamd d8 \flamg g8 d4:32(-> d4:32)(-> |
\break
d8:32)(-> g8:32)-> r8 d8:32( g8[) \dragd d16. d32]-> g16. g32 \flamd d8 |
\flamd d4 d4:32( d4)
}
% Part 2
snareBA = \drummode {
\flamd d8. d16:32( |
g16) g16 d8:32( g16) g16 d8:32( g8:32)( d8) r8 d8:32( |
g16.) d32-> g16. g32 \flamd d8 \flamg g8 d4:32(-> d4:32)(-> |
d8:32)(-> g8:32)-> r8 d8:32( g8[) \dragd d16. d32]-> g16. g32 \flamd d8 |
\flamd d4 d4:32( d4)
}

View File

@ -0,0 +1,33 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\part \line \break
\line \break \bar "|."
\partial 4 s4 |
\line \break
\line \break \bar "|."
}
{
\snareAA
\snareAB s4
\snareBA
\snareAB r8
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,21 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 4 s4 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Rowan Tree"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,23 @@
% 4/4 Rowan Tree
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareEnding = \drummode {
\flamd d8[ d8]:32( g8[) d8]:32( \tuplet 3/2 { g16) d g } \flamd d16. g32 d16. g32-> d g d \flamd d |
d4 d4:32( d4)
}
snareA = \drummode {
r8 d8 |
d4:32( d8) g8 d4:32( d8) g8 |
\flamd d8 g16. d32-> g16. g32 \flamd d16. g32 \flamd d16. d32:128( d16.) g32-> d32 g d \flamd d g8 |
\snareEnding
}
% Part 2
snareBA = \drummode {
d8. g16 |
d8[:32(-> g8]:32)(-> g8[:32)( d8]:32)(-> g8[:32)( d8]:32)(-> g8[)-> d8]:32( |
g8.) g16 d8:32( g8) \flamd d8 d8:32( g8.) g16 |
\snareEnding
}

View File

@ -0,0 +1,27 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \line \break }
\part \line \bar "||"
}
{
\snareA s4
\snareBA
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,21 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Scotland the Brave"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,21 @@
% 4/4 Scotland the Brave
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareA = \drummode {
d8:32( |
g8.) g16 d8:32( g8) \flamd d8 d8:32( g8) d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( |
g8.) g16 d8:32( g8) \flamd d8 d8:32( \tuplet 3/2 { g16) d g } d8 |
\flamd d4 d4:32( d4) r8
}
% Part 2
snareBA = \drummode {
g8 |
d4:32( d8) g8 d4:32( d8) g8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d8 |
d4:32( d8) g8 d4:32( d8) g8 |
\flamd d4 d4:32( d4) r8
}

View File

@ -0,0 +1,27 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 {\part \line \break }
\part \line \bar "||"
}
{
\snareA s8
\snareBA
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,15 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 4 s4 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "The Leaving of Liverpool"
meter = "March"

View File

@ -0,0 +1,63 @@
\version "2.19.0"
\include "config.ily"
%\include "notes.bass.ily"
\include "notes.tenor.ily"
\include "notes.side.ily"
\score {
\new StaffGroup <<
\new PipeBandDrumStaff = "side" {
\global
\set PipeBandDrumStaff.instrumentName = \markup{\instrumentSide}
\set PipeBandDrumStaff.shortInstrumentName = \markup{\shortInstrumentSide}
<<
{
\repeat volta 2 { \part \line } \break
\part \line \break
\line \bar "|."
}
{
\snareA s4
\snareBA
\snareBB
}
>>
}
%\new PipeBandDrumStaff = "bass" {
% \set PipeBandDrumStaff.instrumentName = \markup{ \instrumentBass }
% \set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentBass}
%
% \bassA
% s16 \bassBA \bassBB
%}
\new PipeBandDrumStaff = "tenor" {
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentTenor }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentTenor }
r8 r16 \tenorA s4
r8 r16 \tenorA
r8 r16 \tenorA
s4
}
>>
\header {
title = \title
meter = \meter
composer = \markup {
\column \right-align {
$(if (not (string=? "" composerSide)) #{ \markup {\line { \composerSide ":" }} #} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \composerTenor ":" }} #} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \composerBass ":" }} #} )
}
\column \right-align {
$(if (not (string=? "" composerSide)) #{ \markup {\line { \instrumentSide }}#} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \instrumentTenor }}#} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \instrumentBass }}#} )
}
}
}
}

View File

@ -0,0 +1,33 @@
% 2/4 Black Bear
% Snare
\version "2.18.2"
composerSnare = "E.T. de Boone, 2015"
%%music
snareA = \drummode {
r8 d16. g32 |
\flamd d8 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d16. g32 |
\flamd d8 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8 |
\flamd d4 d4:32( d4)
}
% Part 2
snareBA = \drummode {
\flamd d4 |
d4:32(\< d4:32)(-> d8)\! d32 g d g d8-> d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d16. g32 |
d4:32(\< d4:32)(-> d8)\! d32 g d g d8-> g8 |
\flamd d4 d4:32( d4)
}
snareBB = \drummode{
\flamd d4 |
d4:32(\< d4:32)(-> d8)\! d32 g d g d8-> d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 d16. g32 \tuplet 3/2 { d16 g d } \flamg g8 d16. g32 |
\flamg g16. d32:128( d16.) g32 d16.:64( d32) \tuplet 3/2 { g16 d g } \flamd d16. g32-> d32 g d g d16. g32-> d32 g d g |
d4 d4:32( d4)
}

View File

@ -0,0 +1,27 @@
% 4/4 The Leaving of Liverpool
% Tenor
\version "2.18.2"
composerTenor = "F.J. de Boone,2011"
%%music
tenorA = \drummode {
g16 |
d8[ g]
d[ g]
d[ g]
d[ g]
|
d4
r8. g16
d4
r8. g16
|
d8[ g]
d[ g]
d[ g]
d[ g]
|
d16 g d g
d g d g
d4
}

View File

@ -0,0 +1,30 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \line } \break
\part \line \break
\line \bar "|."
}
{
\snareA s4
\snareBA
\snareBB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,20 @@
\version "2.18.2"
\include "config.ily"
\include "notes.tenor.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{\repeat volta 2 { \partial 16 s16 \line }}
{\tenorA d4 r8.}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentTenor
composer = \composerTenor
}
}

View File

@ -0,0 +1,21 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "The Old Rustic Bridge"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,13 @@
% 4/4 The Olde Rustic Bridge
% Tenor
\version "2.18.2"
composerTenor = ""
%%music
tenorA = \drummode {
g16 |
d4 g8 d g4 d8. g16 |
d8 g d4 g r |
d4 g8[ d] g[ d] g[ d] |
g4 r4 d4 r4 |
}

View File

@ -0,0 +1,20 @@
\version "2.18.2"
\include "config.ily"
\include "notes.tenor.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{\repeat unfold 2 {\repeat volta 2 { \part \line } \break }}
{\repeat unfold 2 {s16\tenorA}}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentTenor
composer = \composerTenor
}
}

View File

@ -0,0 +1,19 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
}
%% Format
part = { \partial 8 s8 }
line = { \repeat unfold 4 { s1 | } }
%% Headers
title = "The Pikeman's March"
meter = "March"
composerSide = ""
composerTenor = ""
composerBass = ""
composerPipes = ""

View File

@ -0,0 +1,68 @@
\version "2.19.0"
\include "config.ily"
%\include "notes.bass.ily"
\include "notes.tenor.ily"
\include "notes.side.v1.6.ily"
\score {
\new StaffGroup <<
\new PipeBandDrumStaff = "side" {
\global
\set PipeBandDrumStaff.instrumentName = \markup{\instrumentSide}
\set PipeBandDrumStaff.shortInstrumentName = \markup{\shortInstrumentSide}
<<
{ \repeat volta 2 { \part \line \break \line} \break
\part \line \break
\line \break
\line \bar "|."
}
{ \snareAA
\snareAB
s8
\snareBA
\snareBB
\snareBC
}
>>
}
%\new PipeBandDrumStaff = "bass" {
% \set PipeBandDrumStaff.instrumentName = \markup{ \instrumentBass }
% \set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentBass}
%
% \bassA
% s16 \bassBA \bassBB
%}
\new PipeBandDrumStaff = "tenor" {
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentTenor }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentTenor }
\tenorAA
\tenorAB
s8
s8
\tenorBA
\tenorBB
\tenorBC
}
>>
\header {
title = \title
meter = \meter
composer = \markup {
\column \right-align {
$(if (not (string=? "" composerSide)) #{ \markup {\line { \composerSide ":" }} #} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \composerTenor ":" }} #} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \composerBass ":" }} #} )
}
\column \right-align {
$(if (not (string=? "" composerSide)) #{ \markup {\line { \instrumentSide }}#} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \instrumentTenor }}#} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \instrumentBass }}#} )
}
}
}
}

View File

@ -0,0 +1,39 @@
% 4/4 The Pikeman's March
% Side
\version "2.18.2"
composerSide = "E.T. de Boone, 2014"
%%music
snareAA = \drummode {
g8 |
\flamd d4_^ d32 g d g d8-> \flamd d8 \flamg g8 r8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) g8 |
\flamd d4 \flamd d16 g-> d d \flamg g16 d-> g g \flamd d16 g-> d d |
\flamd d4 d4:32( d4) r8 g8 |
}
snareAB = \drummode {
\flamd d4_^ d32 g d g d8-> \flamd d8 \flamg g8 r8 d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 \flamd d16. g32 d32 g d g d8-> d16. g32 |
d8:32( d8:32)(-> d8:32)( d8:32)(-> d8)-> d32 g d g d8-> g8 |
\flamd d4 d4:32( d4) r8
}
snareBA = \drummode {
d16. g32 |
\flamd d8 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) g8 |
d8:32( d8:32)(-> d8:32)( d8:32)(-> d8)-> d32 g d g d8-> d16. g32 |
\flamd d4 d8:32( g8:32)(-> d4) \flamd d16 \p g \flamg g d |
}
snareBB = \drummode {
\flamd d8\f \flamg g8 r8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) d16. g32 |
d8.:32(-> g16:64)(-> d8:32)(-> g8)-> \flamd d16.\> g32-> d16. d32\! \flamg g16.\> d32-> g16. g32\! |
\flamd d4 d4:32( d4) r8 d16. g32 |
}
snareBC = \drummode {
\flamd d8\f \flamg g8 r8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) d16. g32 |
d8.:32(-> g16:64)(-> d8:32)(-> g8)-> d32 g d g d16.-> g32-> d32 g d g d8-> |
\flamd d4 d8:32( g8:32)(-> d4) r4
}

View File

@ -0,0 +1,39 @@
% 4/4 The Pikeman's March
% Side
\version "2.18.2"
composerSide = "E.T. de Boone, v1.5, 2015"
%%music
snareAA = \drummode {
g16. g32 |
\flamd d4\v d32\< g d g d8->\! \flamd d8\> \flamg g8\! r8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8..) g32 |
\flamd d8.. g32 \tuplet 3/2 { d16 d g} \flam d16. g32 \tuplet 3/2 { d16 d g } \flam d16. g32 \flam d16. d32 \tuplet 3/2 { g16 g d }
\flamd d4 d8:32( g8:32)(-> d4) r8 \tuplet 3/2 { g16\< d g\! } |
}
snareAB = \drummode {
\flamd d4\v d32\< g d g d8->\! \flamd d8\> \flamg g8\! r8 d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 \flamd d16. g32 d32 g d g d8-> g16. g32 |
d8:32( g8:32)(-> d8:32)( g8:32)(-> d8)-> \tuplet 3/2 { g16 d g} \flam d8 g32 d d g |
\flam d8. g16 d16:64(-> \parenthesize d16:64)(-> g16:64)(-> \parenthesize g16:64)(-> d8.)-> \parenthesize d16:64( \parenthesize d8:64)
}
snareBA = \drummode {
d16. g32 |
\flamd d8 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) g8 |
d8:32( g8:32)(-> d8:32)( g8:32)(-> d8)-> d32 g d g d8-> d16. g32 |
\flamd d4 d8:32( g8:32)(-> d4) \flamd d16 \p g \flamg g d |
}
snareBB = \drummode {
\flamd d8\f \flamg g8 r8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) d16. g32 |
d8.:32(-> g16:64)(-> d8:32)(-> g8)-> \flamd d16.\> g32-> d16. d32\! \flamg g16.\> d32-> g16. g32\! |
\flamd d4 d4:32( d4) r8 d16. g32 |
}
snareBC = \drummode {
\flamd d8\f \flamg g8 r8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) d16. g32 |
d8.:32(-> g16:64)(-> d8:32)(-> g8)-> d32 g d g d16.-> g32-> d32 g d g d8-> |
\flamd d4 d8:32( g8:32)(-> d4) r4
}

View File

@ -0,0 +1,39 @@
% 4/4 The Pikeman's March
% Side
\version "2.18.2"
composerSide = "E.T. de Boone, v1.6, 2015"
%%music
snareAA = \drummode {
g16. g32 |
\flamd d4\v d32\< g d g d8->\! \flamd d8\> \flamg g8\! r8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8..) g32 |
\flamd d4 \flamd d16 g-> d d \flamg g16 d-> g g \flamd d16 g-> d d |
\flamd d4 d8:32( g8:32)(-> d4) r8 \tuplet 3/2 { g16\< d g\! } |
}
snareAB = \drummode {
\flamd d4\v d32\< g d g d8->\! \flamd d8\> \flamg g8\! r8 d8:32( |
\tuplet 3/2 { g16) d g } \flamd d16. g32 \tuplet 3/2 { d16 g d } \flamg g16. g32 \flamd d16. g32 d32 g d g d8-> g16. g32 |
d8:32( g8:32)(-> d8:32)( g8:32)(-> d8)-> \tuplet 3/2 { g16 d g} \flam d8 g32 d d g |
\flam d8. g16 d8:32(-> g8:32)(-> d8.)-> d16:64( d8:64)
}
snareBA = \drummode {
d16. g32 |
\flamd d8 \tuplet 3/2 { d16 g d } \flamg g8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) g8 |
d8:32( g8:32)(-> d8:32)( g8:32)(-> d8)-> d32 g d g d8-> d16. g32 |
\flamd d4 d8:32( g8:32)(-> d4) \flamd d16 \p g \flamg g d |
}
snareBB = \drummode {
\flamd d8\f \flamg g8 r8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) d16. g32 |
d8.:32(-> g16:64)(-> d8:32)(-> g8)-> \flamd d16.\> g32-> d16. d32\! \flamg g16.\> d32-> g16. g32\! |
\flamd d4 d4:32( d4) r8 d16. g32 |
}
snareBC = \drummode {
\flamd d8\f \flamg g8 r8 d8:32( g16.) d32-> g16. g32 \flamd d8 d8:32( |
g16.) d32-> g16. g32 d16. g32-> d16. d32 \flamg g8 d8:32( g8) d16. g32 |
d8.:32(-> g16:64)(-> d8:32)(-> g8)-> d32 g d g d16.-> g32-> d32 g d g d8-> |
\flamd d4 d8:32( g8:32)(-> d4) r4
}

View File

@ -0,0 +1,41 @@
% 4/4 The Pikeman's March
% Tenor
\version "2.18.2"
composerTenor = "E.T. de Boone, v0.3, 2015"
%%music
tenorAA = \drummode {
d16 \< g16 |
d4 \! g8. d16 r8 d16 g d4
|
d8 g d8 g d4 g4
|
d4-> r16 d16 r8 r16 g16 r8 r16 d r g
|
d4 d8^\markup{scoop} g d4^\markup{end} r8
}
tenorAB = \drummode {
d16 \< g16 |
d4 \! g8. d16 r8 d16 g d4
|
d8 g d8 g d4 g4
|
d8 g r8 g8 d8 g8 r4
|
d4 d8^\markup{scoop} g d4^\markup{end} r8
}
% Part 2
tenorBA = \drummode {
d8-_ g
d8 g
d8 g
d8 g
|
s1*3
}
tenorBB = \drummode {
s1*4
}
tenorBC = \drummode {
s1*4
}

View File

@ -0,0 +1,32 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.v1.6.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{\repeat volta 2 { \part \line \break \line} \break
\part \line \break
\line \break
\line \bar "|."
}
{
\snareAA
\snareAB
s8
\snareBA
\snareBB
\snareBC
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,32 @@
\version "2.18.2"
\include "config.ily"
\include "notes.tenor.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{\repeat volta 2 { \part \line \break \line} \break
\part \line \break
\line \break
\line \bar "|."
}
{
\tenorAA
\tenorAB
s8
\tenorBA
\tenorBB
\tenorBC
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentTenor
composer = \composerTenor
}
}

View File

@ -0,0 +1,15 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 2 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "We're No' Awa Tae Bide Awa"
meter = "March"

View File

@ -0,0 +1,19 @@
% 4/4 We're No Awa Tae Bide Awa
% Snare
\version "2.18.2"
composerSide = ""
%%music
snareAA = \drummode {
d16. g32 |
d32-> g d g-> d-> g d g d g d-> g d g d g d-> g d g d-> g d g d8-> d8:32( |
\tuplet 3/2 { g16) d g } \flam d16. g32 \tuplet 3/2 { d16 g d } \flam g16. g32 d16. g32 \tuplet 3/2 { d16 g d } \flam d8 r8 |
d32-> g d g-> d-> g d g d g d-> g d g d g d-> g d g d-> g d g d8-> d8:32( |
g4) d4:32( d4) r8 g8 |
}
snareAB = \drummode {
d2:32(\< d4)\! r8 g8 |
d8[:32( g8]) g8[ d8]:32( d8[) r8 r8 g8 |
\flam d8 g16. d32-> g16. g32 \flam d16. g32 \flam d16. d32:128( d16) g16-> d16 g d \flam d |
d4 d4:32( d4) r8
}

View File

@ -0,0 +1,26 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 {\part \line \break \line \break}
}
{
\snareAA
\snareAB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,14 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
\eighthBeaming
}
%% Format
part = { \partial 8 s8 }
line = { \repeat unfold 2 { s1 | } }
%% Headers
title = "Wings"
meter = "March"

View File

@ -0,0 +1,28 @@
% 4/4 Wings
% Snare
\version "2.18.2"
composerSide = "K. Westerkamp, 2003"
%%music
snareAA = \drummode {
d8:32( \mf |
g8.) \parenthesize d16 d8:32( g8) r8 d32-> \< g d g d-> g d g d8-> \! |
\flamd d8 \f g16. d32-> g16. g32 \flamd d8 d4:32( \< d8) \! d16. g32 |
}
snareABA = \drummode {
d4:32( \< d8) \! \flamg g8 d16 \flamg g8 g16 \flamd d8 d8:32( |
\tuplet 3/2 { g16) d g } \flamd d8 d16.[ g32 \dragd d8] d32 g d g d8 d4:32(
}
snareABB = \drummode {
d4:32)( \< d8) \! \flamg g8 d32 g d g d8 d16.[ g32 \dragd d8] |
d32 g d g d8 d4:32( d4) r8
}
% Part 2
snareBA = \drummode {
d8:32( |
g8) d16. g32 d16. d32:128( d8) \flamd d8 d16. g32 d8:32(-> \< g8:32)(-> |
d8.)-> \! g16 d8:32( g16.) g32 d8:32( g16.) g32 \tuplet 3/2 { d16 g d-> } \tuplet 3/2 { g d g } |
\flamd d8 d16. g32-> d16. d32 \flamg g8 \flamd d4 \tuplet 3/2 { d16 \p g d } \flamg g8 |
\flamd d4 r4 d8[:32(-> \< g8]:32)(-> d8[:32)(-> g8]:32)(-> | s256) \!
}

View File

@ -0,0 +1,39 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\partial 8 s8
\repeat volta 2 {
s1 | s1
}
\alternative {
{ s1 | s1 }
{ s1 | s2^"Fine" s4 s8 \bar "|."}
}
\partial 8 s8
s1
s1
s1
s1^"D.C. al Fine" \bar "||"
}
{
\snareAA
\snareABA
\snareABB
\snareBA
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,20 @@
\version "2.18.2"
\include "config.ily"
\include "notes.bass.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{ \repeat volta 2 { \line } }
{ \bassA }
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentBass
composer = \composerBass
}
}

View File

@ -0,0 +1,13 @@
\version "2.19.0"
%% Globals
global = {
\time 5/4
\eighthBeaming
}
%% Format
part = {\partial 8 s8 }
line = { \repeat unfold 4 { s2 s2. } }
%% Headers
title = "Cullen Bay"
meter = "March"

View File

@ -0,0 +1,65 @@
\version "2.19.0"
\include "config.ily"
\include "notes.bass.ily"
\include "notes.tenor.ily"
\include "notes.side.ily"
\score {
\new StaffGroup <<
\new PipeBandDrumStaff = "side" {
\set PipeBandDrumStaff.instrumentName = \markup{\instrumentSide}
\set PipeBandDrumStaff.shortInstrumentName = \markup{\shortInstrumentSide}
\global
<<
{
\repeat unfold 4 {
\line
\break
\line
\bar "|."
}
}%End of Format
{
\repeat unfold 2 { \snareA }
\repeat unfold 2 { \snareB }
\repeat unfold 2 { \snareC }
\repeat unfold 2 { \snareD }
}
>>
}
\new PipeBandDrumStaff = "bass" {
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentBass }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentBass}
\repeat unfold 4 {
\bassA
}
}
\new PipeBandDrumStaff = "tenor" {
\set PipeBandDrumStaff.instrumentName = \markup{ \instrumentTenor }
\set PipeBandDrumStaff.shortInstrumentName = \markup{ \shortInstrumentTenor }
\repeat unfold 4 {
\tenorAA \tenorAB
}
}
>>
\header {
title = \title
meter = \meter
composer = \markup \tiny {
\column \right-align {
$(if (not (string=? "" composerSide)) #{ \markup {\line { \composerSide ":" }} #} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \composerTenor ":" }} #} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \composerBass ":" }} #} )
}
\column \right-align {
$(if (not (string=? "" composerSide)) #{ \markup {\line { \instrumentSide }}#} )
$(if (not (string=? "" composerTenor)) #{ \markup {\line { \instrumentTenor }}#} )
$(if (not (string=? "" composerBass)) #{ \markup {\line { \instrumentBass }}#} )
}
}
}
}

View File

@ -0,0 +1,7 @@
% 5/4 Cullen Bay
% Bass
\version "2.18.2"
composerBass = ""
bassA = \drummode {
\repeat unfold 4 { d4-^ g d-> g d | }
}

View File

@ -0,0 +1,62 @@
% 5/4 Cullen Bay
% Side
\version "2.18.2"
composerSide = ""
snareEnd = \drummode {
d8[:32)(-> g16.) g32]->
d8[:32(-> g8]:32)(->
d8[:32)( g8]:32)(->
d4)
d4:32(
|
d8) d8:32(
\triplet { g16)[ d g } \flam d8]
g16. d32-> g16. g32
\flam d8 d16. g32 ->
d16. d32 \flam g8
|
\flam d8. d16:64(
d8) d8:32(
\triplet { g16) d g } \flam d8
d4:32(
d4)
}
snareA = \drummode {
\flam d8.[ g16]
d8[:32( g8])
\flam d8[ d8]:32(
\triplet { g16[) d g } \flam d16. g32]
\triplet { g16[ d g } \flam g8]
|
\snareEnd
}
snareB = \drummode{
\flamd d8[ d16 \flam g16]
r16 g16[ \flam d g]\v
r16 d16[ \flam g8]
\flam d4
d4:32(
|
\snareEnd
}
snareC = \drummode{
\flam d8-> \flam d16-> g->
d16 d \flam g8
g8 d8:32(
\triplet { g16) d g } \flam d16. g32
\triplet { g16 d g } \flam g8
|
\snareEnd
}
snareD = \drummode{
\flam d16. g32 d16. g32->
d32 g d g d16. g32
d16. g32-> d32 g d g
d4
d4:32(
|
\snareEnd
}

View File

@ -0,0 +1,16 @@
% 5/4 Cullen Bay
% Tenor
\version "2.18.2"
composerTenor = ""
tenorAA = \drummode {
d8-> g d g d-> g d4 d4 |
d8. g16 d8-> g8-> r8 g8 d4 d4 |
d8-> g d g d-> g d8.-> g16-> r8 d8-> |
d4 d4 d8 g8 d4 d4 |
}
tenorAB = \drummode {
d4 g4 d4 g4 d4 |
d8. g16 d8-> g8-> r8 g8 d4 d4 |
d4 g4 d8-> g8 d8.-> g16-> r8 d8->
d4 d4 d8 g8 d4 d4 |
}

View File

@ -0,0 +1,30 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 1 { \line } \break
\repeat volta 1 { \line } \break
\repeat volta 1 { \line } \break
\repeat volta 1 { \line } \break
}
{
\snareA
\snareB
\snareC
\snareD
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,20 @@
\version "2.18.2"
\include "config.ily"
\include "notes.tenor.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{ \repeat unfold 1 { \line \line \bar "|."} }
{ \tenorAA \tenorAB }
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentTenor
composer = \composerTenor
}
}

View File

@ -0,0 +1,14 @@
\version "2.19.0"
%% Globals
global = {
\time 6/8
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 4 { s2. | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Hills of Glenorchy"
meter = "March"

View File

@ -0,0 +1,33 @@
% 6/8 Hills of Glenorchy
% Snare
\version "2.18.2"
composerSnare = "G. Clark, 1977"
%%music
snareA = \drummode {
d8 |
\flamg g4 \flamd d8-> g8 \tuplet 3/2 { d32 g32 d32 } g8.-> |
\tuplet 5/2 { d8 g d g d } g8-> d4.:32( |
d8.) g16 \tuplet 3/2 { \flamd d32 d32 g16 d16 } g16 d16 g16 d16 \tuplet 3/2 { \flamg g32 g32 d16 g16 } |
d16 g16 d16 g16 \flamd d8 \flamg g4 d8 |
\flamg g4 \flamd d8-> g8 \tuplet 3/2 { d32 g32 d32 } g8.-> |
\tuplet 5/2 { d8 g d g d } g8-> \flamd d8 \tuplet 3/2 { g8 d8 g8 } |
\flamd d16 d16 g16 d16 g16 d16 \flamg g16 g16 d16 g16 d16 g16:32(-> |
g8.:32)( d16) g8:32(-> d4)
}
% Part 2
snareBA = \drummode {
\tuplet 5/2 { d16 g d g d } |
g8. d16 g8 d4.:32( |
d16.) g32 d16 g16 d16 g16 d16 g16 d16 g16 d8 |
\flamg g16.d32 g16 d16 \flamg g16 g16 \tuplet 3/2 { d16 g16 d16 } \flamg g8. d16 |
g16 d16 \flamg g16 g16 \tuplet 3/2 { d16 g16 d16 } \flamg g8.d16 g8
\break
\flamg g8. d16 g8 d4.:32( |
d16.) g32 d16 g16 d16 g16 d16 g16 d16 g16 d8 |
\flamd d16 d16 g16 d16 g16 d16 \flamg g16 g16 d16 g16 d16 g16:32(-> |
g8.:32)( d16) g8:32(-> d4)
}

View File

@ -0,0 +1,26 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 { \part \halfline \break \halfline }
\repeat volta 2 { \part \halfline \break \halfline }
}
{
\snareA s8
\snareBA s8
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,14 @@
\version "2.19.0"
%% Globals
global = {
\time 4/4
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 4 { s1 | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Abide with Me"
meter = "Hymn"

View File

@ -0,0 +1,16 @@
% 4/4 Abide with Me
% Side
\version "2.18.2"
composerSide = "W.H. de Boone, 2014"
snareAA = \drummode {
\flam d8->) \! \triplet { d16 g d } g8 \flam d-> r8 \flam d r8 g |
\flam d8-> \triplet { d16 g d } g8 \flam d-> r8 \flam d r8 g |
\flam d8-> \triplet { d16 g d } \flam d8-> \triplet { d16 g d } \flam d8-> \triplet { d16 g d } \flam g8 \flam g-> |
d4:32( \< d4:32)( d4:32)( d4:32)( \! \> |
}
snareAB = \drummode {
\flam d8->) \! \triplet { d16 g d } g8 \flam d-> r8 \flam d r8 \flam g |
\flam d8->\< \triplet { d16 g d } \flam d8-> \triplet { d16 g d } \flam d8-> \triplet { d16 g d } \flam g8[ \drag g]->\! |
d4:32( \> d4:32)( d4:32)( d4:32)( |
d4:32)( \< d4:32)( d4:32)( d4:32) \!
}

View File

@ -0,0 +1,31 @@
\version "2.18.2"
\include "config.ily"
\include "notes.side.ily"
\score {
\new PipeBandDrumStaff {
\global
<<
{
\repeat volta 2 {\halfline \break}
\alternative {
{ \halfline \break }
{ \halfline \bar "|."}
}
}
{
\snareAA
\snareAA
\snareAB
}
>>
}
\header {
title = \title
meter = \meter
instrument = \instrumentSide
composer = \composerSide
}
}

View File

@ -0,0 +1,14 @@
\version "2.19.0"
%% Globals
global = {
\time 6/8
}
%% Format
part = { \partial 8 s8 }
halfline = { \repeat unfold 4 { s2. | } }
line = { \repeat unfold 2 { \halfline } }
%% Headers
title = "Alexander MacKenzie"
meter = "Slow March"

View File

@ -0,0 +1,36 @@
% 6/8 Alexander MacKenzie
% Side
\version "2.18.2"
composerSide = ""
snareAA = \drummode {
d16. g32 |
d8:32( d8.)-> g16 d4:32( d8) |
\dragd d16. d32-> g16. g32 \flamd d8 d4.:32( |
d4) d16. g32 d8:32( d8) g8 |
\flamd d16. g32 d16. \flamg g32 d16. g32 \flamd d4
}
snareAB = \drummode {
d16. g32 |
d8:32( d8.)-> g16 d4:32( d8) |
\dragd d16. d32-> g16. g32 \flamd d8 d4:32( d16.) g32 |
d8:32( g16.) d32-> g16. g32 d8:32( g16.) d32-> g16. g32 |
d4.:32( d4)
}
snareBA = \drummode {
d8:32( |
g4) \flamd d16. g32 d8:32( d8) \flamd d8 |
d32-> g32 d32 g32 d32 g32 d32 g32-> d32 g32 d32 g32 d4-> d8:32(
g4) \flamd d16. g32 d8:32( d8.) g16 |
d4.:32( d4)
}
snareBB = \drummode {
d8:32( |
g4) \flamd d16. g32 d8:32( d8) \flamd d8 |
d32-> g32 d32 g32 d32 g32 d32 g32-> d32 g32 d32 g32 d4-> \flamd d16. g32 |
d8:32( g16.) d32-> g16. g32 d8:32( g16.) d32-> g16. g32 |
d4.:32( d4)
}

Some files were not shown because too many files have changed in this diff Show More