summaryrefslogtreecommitdiff
path: root/macros/generic/bagpipe/bagpipe.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/generic/bagpipe/bagpipe.tex
Initial commit
Diffstat (limited to 'macros/generic/bagpipe/bagpipe.tex')
-rw-r--r--macros/generic/bagpipe/bagpipe.tex1680
1 files changed, 1680 insertions, 0 deletions
diff --git a/macros/generic/bagpipe/bagpipe.tex b/macros/generic/bagpipe/bagpipe.tex
new file mode 100644
index 0000000000..607b5c1a1c
--- /dev/null
+++ b/macros/generic/bagpipe/bagpipe.tex
@@ -0,0 +1,1680 @@
+%
+% This is bagpipe.tex version 3.02
+%
+\def\bptversion{3.02}%
+\message{Version \bptversion\space -- May 27, 2014}%
+%
+% by Walt Innes (walt@slac.stanford.edu)
+%
+% Copyright Walt Innes. License is granted to distribute and use this product according to
+% the The LaTeX Project Public License (lpĀ­pl1.3),
+% which may be found at http://www.ctan.org/license/lppl1.3.
+%
+%
+% This is a macro package for use with MusicTeX or MusiXTeX
+% by Daniel Taupin.
+% It is intended to aid the type setting of music for
+% Scottish Highland bagpipes. It contains a reasonably complete
+% set of definitions for grace notes and a mechanism for easily
+% defining any additional ones that might be needed for a particular
+% piece. There are also definitions for generating beamed note groups.
+% This package modifies a few macros in Musi(c|X)TeX. It has been tested
+% with MusicTeX version 5.20 and MusiXteX T.88.
+% It may not be compatible with
+% future releases of Musi(c|X)TeX. It is definitely not compatible
+% with releases earlier than MusicTeX 4.7.
+%
+% History:
+% 1.30 7/21/93 Changes in margin handling so that multipage documents
+% do odd/even margins automatically. Change beam structure for
+% groups of four notes with the two internal notes short.
+% \wideodd and \wideeven no longer exist. The user may define
+% them as being \widewidth for backward compatibility.
+%
+% 1.31 1/34/95 Fix oversight in newpitch and oldpitch macros for
+% \g and \G .
+%
+% 1.32 5/95 Minor spacing adjustments for \pscp and similar macros.
+%
+% 1.33 5/95 Adjust tight spacing code in an effort to prevent overlapping
+% notes.
+%
+% 1.40 5/95 Add additional pickup note macros so that the bar numbers can be
+% put after the pickup notes. Add \setelemq.
+%
+% 1.41 10/95 Add definitions for \h and \N to ease conversion of
+% oldpitch to newpitch
+%
+% 1.50 5/96 Add grace notes to match BMW. Add \medtall. Add \ggr{}.
+%
+% 1.51 5/96 Add more four note definitions.
+%
+% 1.52 6/96 Fix a duplicate macro name
+%
+% 1.53 6/13/96 Make changes to clean up the interface to MusicTeX 5.17
+%
+% 1.54 6/20/97 Change \landscape to use recommended \special
+%
+% 1.55 11/19/97 add \Afour and \USletter contributed by Phil Scott
+%
+% 1.56 12/19/97 add double dots and four new \bdddd macros
+% restore 11 pt fonts for small music grace notes
+% (9 pt fonts are broken)
+%
+% 1.57 01/15/98 some modifications of beam macros. 16/48 4 note beam
+% macros are known to not work with grace notes.
+% \bgrx work around for beam macro problems.
+%
+% 1.60 02/17/98 major change in the way grace notes are generated.
+% \notes..\enotes no longer used to change note
+% spacing if the \newgrace option is selected.
+% This eliminates a problem with some embedded
+% grace notes.
+%
+% 2.00 03/05/98 major changes to allow multiple parts: beam numbering,
+% [no]autoglue, some internal changes needed to make
+% things work on the extra staves,
+% a change in the way pickup notes are handled linked to
+% the [no]autoglue options. Remove \bgrx.
+%
+% 2.01 03/17/98 add \alabreve to accommodate a typo in bmw2tex
+%
+% 2.02 03/27/98 fix bug involving \newgrace and \staffspacing /= 1.
+%
+% 2.10 08/05/98 add switch for MusiXTeX
+%
+% 2.11 03/21/99 fix bug with edre and dare definitions
+%
+% 2.20 03/22/99 restore nine point fonts
+%
+% 2.21 03/13/00 fix bug in \btst. Bug report and fix by Peter Hurwood.
+%
+% 3.0 04/25/02 add many new embellishments for compatibility with bww
+%
+% 3.01 07/24/02 bug fixes submitted by Sven Axelsson. These fixes correct
+% problems with cadences.
+%
+% 3.02 05/27/14 make MusixTeX the default. Usage terms changed to the LaTeX Project Public License
+% ____________________________________________________________________
+%
+% load bagpipe.tex only once
+%
+\ifx\bagpipeisloaded\relax\endinput\else\let\bagpipeisloaded=\relax\fi
+%
+\let\usemusixtex\relax% this sets the flag to use MusixTeX instead of MusicTeX
+%
+%
+ \ifx\usemusixtex\undefined % the musictex version
+%
+ \input musicnft
+%
+% Select one set of nine point font declarations:
+%
+% \font\musicnine=musikn11% for use if 9pt fonts are not available (old, better solution below)
+% \font\beamnine=beamn11%
+%
+\font\musicnine=musikn11 at 9pt % for use with 16 pt musicsize
+\font\beamnine=beamn11 at 9pt %
+%
+ \input musictex%
+ \input musicvbm%
+%
+% at signs are now letters and can be used in control sequences
+ \def\makeatletter{\catcode`\@=11}
+% at signs are now not letters and can't be used in control sequences
+ \def\makeatother{\catcode`\@=12}
+%
+\else % the musixtex version
+ \input musixtex%
+ \font\musicnine=musix11 at 9pt% for use if 9pt fonts are not available
+% \font\musicnine=musix11% for use if 9pt fonts are not available
+ \input musixcpt%
+%
+\fi
+%
+% macros for setting page sizes and offsets. These have nothing do
+% with bagpipe music per se.
+% set default
+%
+\newcount\natv
+\newdimen\theoffset
+\newdimen\oddoffset\oddoffset=0.in%
+\newdimen\evenoffset\evenoffset=0.in%
+%
+\def\USletter{%
+ \hoffset=0.0in%
+ \hsize=7.0in%
+ \vsize=9.0in%
+ \voffset=0.in%
+% landscape works with Tom Rokicki's dvips.
+ \def\landscape{%
+ \special{papersize=11in,8.5in}\hoffset=0.in\hsize=9.0in\vsize=6.5in}%
+ \def\realwidewidth{%
+ \special{papersize=11in,8.5in}%
+ \hoffset=-10.0mm\voffset=-10mm\hsize=10in\vsize=6.5in}%
+% page layout tools
+ \def\normalwidth{\hsize=7.0in \oddoffset=-0.11in \evenoffset=-0.36in}%
+ \def\medwidewidth{\hsize=7.35in \oddoffset=-0.21in\evenoffset=-0.56in}%
+ \def\widewidth{\hsize=7.6in \oddoffset=-0.40in \evenoffset=-0.66in}%
+ \def\normalheight{\vsize=9.0in\voffset=0.in%
+ \def\makefootline{\baselineskip=0pt\line{\the\footline}}}%
+ \def\tall{\voffset=-.50in\vsize=10.25in%
+ \def\makefootline{\baselineskip=0pt\vskip-15pt\line{\the\footline}}}%
+ \def\medtall{\voffset=-.25in\vsize=9.5in%
+ \def\makefootline{\baselineskip=0pt\vskip-5pt\line{\the\footline}}}%
+}%
+%
+\def\Afour{%
+% set default
+% PSc was here 8-11-1997. These dimensions are modified for A4 paper
+ \hoffset=0.0in%
+ \hsize=160.0mm%
+ \vsize=247.0mm%
+ \voffset=0.in%
+% landscape works with Tom Rokicki's dvips.
+%
+% This is the (new) preferred dvips specification for landscape
+%
+ \def\landscape{%
+ \special{papersize=297mm,210mm}%
+ \voffset=-10.0mm\hoffset=0.0mm\hsize=247.0mm\vsize=175.0mm}%
+ \def\realwidewidth{%
+ \special{papersize=297mm,210mm}%
+ \hoffset=-10.0mm\voffset=-10mm\hsize=267.0mm\vsize=175.0mm}%
+% page layout tools
+ \def\normalwidth{\hsize=160.0mm \oddoffset=0.in \evenoffset=0.in}%
+ \def\medwidewidth{\hsize=170.0mm \hoffset=-5.0mm}%
+ \def\widewidth{\hsize=180.0mm \hoffset=-10.0mm}%
+ \def\normalheight{\vsize=247.0mm\voffset=0.in%
+ \def\makefootline{\baselineskip=0pt\line{\the\footline}}}%
+ \def\tall{\voffset=-.50in\vsize=10.25in%
+ \def\makefootline{\baselineskip=0pt\vskip-15pt\line{\the\footline}}}%
+}%
+%
+%
+\def\sectionedpagenumbers{%
+ \footline={\hss\tenrm\number\count1.\number\pageno\hss}}%
+\def\pagenumbers{%
+ \footline={\hss\tenrm\number\folio\hss}}%
+%
+%
+\USletter % set default paper size
+\pageno=1\normalwidth % set default page width and offset
+\nopagenumbers
+%
+% Speical ouput routine. This is needed to do different margins on
+% odd and even pages
+\output={%
+ \ifodd
+ \pageno\let\theoffset=\oddoffset
+ \else
+ \let\theoffset=\evenoffset
+ \fi
+ \shipout\vbox{%
+ \moveright\theoffset\vbox{\makeheadline\pagebody\makefootline}%
+ }%
+ \advancepageno
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi
+ }%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\catcodesmusic% various special characters change category for music
+%
+\makeatletter% at signs are now letters and can used in control sequences
+%
+% extend musicnft to add a teenynotesize
+% this is helpful only for musicsize=20 since we have no font
+% smaller than eleven
+%
+% new width definitions which aid setting compressed music
+%
+\newdimen\pskwidth
+\newdimen\f@kwidth
+\newdimen\fskwidth%
+\ifx\mxversion\undefined
+ \def\set@teenynotesize{%
+ \def\beamfont{\beamteenyfont}%
+ \def\musicnfont{\musicteenyfont}%
+ \def\i@nterbeam{0.41\Interligne}%
+ \def\b@alkthick{0.130\Interligne}}%
+\else
+ \def\set@teenynotesize{\let\musixfont\musicteenyfont
+ \let\xgregfont\xgregtinyfont
+ \b@amthick\p@ne30\Interligne \interbeam.41\Interligne}%
+\fi
+%
+%
+\ifx\mxversion\undefined
+ \def\computespecifics{\ifnum\musicsize=0\relax\musicsize=20\relax\fi
+ \ifnum\musicsize=20\relax
+ \def\ppff{\ppfftwenty}%
+ \def\beamnorfont{\beamtwenty}\def\musicnorfont{\musictwenty}%
+ \def\beamsmallfont{\beamsixteen}\def\musicsmallfont{\musicsixteen}%
+ \def\beamtinyfont{\beamthirteen}\def\musictinyfont{\musicthirteen}%
+ \def\beamteenyfont{\beameleven}\def\musicteenyfont{\musiceleven}%
+ \def\meternorfont{\cmbx}\def\metersmallfont{\cmbxsmall}%
+ \def\metertinyfont{\cmbxtiny}\def\slurnorfont{\slurntwenty}%
+ \def\meterbigfont{\cmbxbig}%
+ \else
+ \def\ppff{\ppffsixteen}%
+ \def\beamnorfont{\beamsixteen}\def\musicnorfont{\musicsixteen}%
+ \def\beamsmallfont{\beamthirteen}\def\musicsmallfont{\musicthirteen}%
+ \def\beamtinyfont{\beameleven}\def\musictinyfont{\musiceleven}%
+ \def\beamteenyfont{\beamnine}\def\musicteenyfont{\musicnine}% if available
+ \def\meternorfont{\cmbxsmall}\def\metersmallfont{\cmbxtiny}%
+ \def\metertinyfont{\cmbxmicro}\def\slurnorfont{\slurnsixteen}%
+ \def\meterbigfont{\cmbx}%
+ \fi
+ \Interligne=\musicsize pt\divide\Interligne by 4\relax
+ \Internote=0.5\Interligne %%%%%
+ \interbeam=\i@nterbeam
+ \computeqn@w}%
+\else
+ \def\comput@fonts{%
+ \ifnum\musicsize=\sixt@@n
+ \let\musicLargefont\musictwentyfour
+ \let\musiclargefont\musictwenty
+ \let\musicnorfont\musicsixteen
+ \let\musicsmallfont\musicthirteen
+ \let\musictinyfont\musiceleven
+ \let\musicteenyfont\musicnine
+ \let\xgregLargefont\xgregtwentyfour
+ \let\xgreglargefont\xgregtwenty
+ \let\xgregnorfont\xgregsixteen
+ \let\xgregsmallfont\xgregthirteen
+ \let\xgregtinyfont\xgregeleven
+ \let\slurd\slurdsixteen \let\sluru\slurusixteen
+ \let\hslurd\hslurdsixteen \let\hsluru\hslurusixteen
+ \let\meternorfont\tenbf \let\metersmallfont\eightbf
+ \let\meterbigfont\twelvebf \let\meterlargefont\bigfont
+ \let\meterLargefont\Bigfont
+ \let\ppff\ppffsixteen
+ \else\ifnum\musicsize=\@xxiv
+ \let\musicLargefont\musictwentynine
+ \let\musiclargefont\musictwentynine
+ \let\musicnorfont\musictwentyfour
+ \let\musicsmallfont\musictwenty
+ \let\musictinyfont\musicsixteen
+ \let\musicteenyfont\musicthirteen
+ \let\xgregLargefont\xgregtwentynine
+ \let\xgreglargefont\xgregtwentynine
+ \let\xgregnorfont\xgregtwentyfour
+ \let\xgregsmallfont\xgregtwenty
+ \let\xgregtinyfont\xgregsixteen
+ \let\sluru\slurutwenty \let\slurd\slurdtwenty
+ \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
+ \let\meternorfont\bigfont \let\metersmallfont\twelvebf
+ \let\meterbigfont\Bigfont \let\meterlargefont\BIgfont
+ \let\meterlargefont\BIGfont
+ \let\ppff\ppfftwentyfour
+ \else\ifnum\musicsize=\@xxix
+ \let\musicLargefont\musictwentynine
+ \let\musiclargefont\musictwentynine
+ \let\musicnorfont\musictwentynine
+ \let\musicsmallfont\musictwentyfour
+ \let\musictinyfont\musictwenty
+ \let\musicteenyfont\musicsixteen
+ \let\xgregLargefont\xgregtwentynine
+ \let\xgreglargefont\xgregtwentynine
+ \let\xgregnorfont\xgregtwentynine
+ \let\xgregsmallfont\xgregtwentyfour
+ \let\xgregtinyfont\xgregtwenty
+ \let\sluru\slurutwenty \let\slurd\slurdtwenty
+ \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
+ \let\slurud\slurutwentyd \let\slurdd\slurdtwentyd % +ickd
+ \let\hslurud\hslurutwentyd \let\hslurdd\hslurdtwentyd %+ickd
+ \let\meternorfont\Bigfont \let\metersmallfont\bigfont
+ \let\meterbigfont\BIgfont \let\meterlargefont\BIGfont
+ \let\meterLargefont\BIGfont
+ \let\ppff\ppfftwentynine
+ \else
+ \ifnum\musicsize=\tw@nty
+ \else\ifnum\musicsize=\z@
+ \else\errmessage{\noexpand\musicsize=\the\musicsize\space not supported, set to default of 20}%
+ \fi
+ \fi\musicsize\tw@nty
+ \let\musicLargefont\musictwentynine
+ \let\musiclargefont\musictwentyfour
+ \let\musicnorfont\musictwenty
+ \let\musicsmallfont\musicsixteen
+ \let\musictinyfont\musicthirteen
+ \let\musicteenyfont\musiceleven
+ \let\xgreglargefont\xgregtwentyfour
+ \let\xgregLargefont\xgregtwentynine
+ \let\xgregnorfont\xgregtwenty
+ \let\xgregsmallfont\xgregsixteen
+ \let\xgregtinyfont\xgregthirteen
+ \let\sluru\slurutwenty \let\slurd\slurdtwenty
+ \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
+ \let\meternorfont\twelvebf \let\metersmallfont\tenbf
+ \let\meterbigfont\bigfont \let\meterlargefont\Bigfont
+ \let\meterLargefont\BIgfont
+ \let\ppff\ppfftwenty
+ \fi\fi\fi
+ }%
+\fi
+%
+\ifx\mxversion\undefined
+ \def\computeqn@w{%
+ \setbox\ch@box=\hbox{\w@h}\wn@width=\wd\ch@box
+ \setbox\ch@box=\hbox{\s@bv}\sb@width=\wd\ch@box
+ \setbox\ch@box=\hbox{\b@rv}\bv@width=\wd\ch@box
+ \setbox\ch@box=\hbox{\c@arrg}\gr@width=\wd\ch@box
+ \setbox\ch@box=\hbox{\h@a}\hn@width=\wd\ch@box
+ \setbox\ch@box=\hbox{\q@u}\qn@width=\wd\ch@box
+ \qd@skip=\qn@width\advance\qd@skip by -\hlthick
+ \hd@skip=\hn@width\advance\hd@skip by -\hlthick
+ \wd@skip=\wn@width\advance\wd@skip by -\hlthick
+ \setpskwidth\setf@kwidth\setfskwidth}%
+\else
+ \def\comput@sizes{%
+ \Interligne\fontdimen\fiv@\musicnorfont
+ \Internote\h@lf\Interligne \big@spc.6\Interligne
+ \qn@width\fontdimen\si@\musixfont
+ \wn@width1\qu@rt\qn@width
+ \txt@ff\h@lf\qn@width
+ \qd@skip\qn@width\advance\qd@skip-\hlthick
+ \setpskwidth\setf@kwidth\setfskwidth}%
+\fi
+%
+% add teeny fonts
+%
+\ifx\mxversion\undefined
+ \def\teenynotesize{\set@teenynotesize\computespecifics
+ \def\currentsize{\teenynotesize}}%
+\else
+ \def\teenynotesize{\set@teenynotesize\comput@specifics
+ \let\curr@ntsiz@\teenynotesize}%
+\fi
+%
+%
+\ifx\mxversion\undefined
+ \def\begininstrument{\global\advance\noinstrument by 1\relax
+ \selectinstr\resetstem
+ \ifdim\internote<0.60\Internote\csname set@teenynotesize\endcsname
+ \computespecifics
+ \else
+ \ifdim\internote<0.76\Internote\csname set@tinynotesize\endcsname
+ \computespecifics
+ \else
+ \ifdim\internote<0.95\Internote\csname set@smallnotesize\endcsname
+ \computespecifics
+ \else
+ \csname currentsize\endcsname
+ \fi
+ \fi
+ \fi
+ \global\noportee=0\relax\beginstaff
+ }%
+\else
+ \def\p@six{.6}%
+ \def\begininstrument{\advance\noinstrum@nt\@ne \s@l@ctinstr
+ \ifdim\internote<\p@six0\Internote \set@teenynotesize \comput@sizes
+ \else
+ \ifdim\internote<\p@seven6\Internote \set@tinynotesize \comput@sizes
+ \else
+ \ifdim\internote<.95\Internote \set@smallnotesize \comput@sizes
+ \else
+ \ifdim\internote<1.19\Internote \set@normalnotesize \comput@sizes
+ \else
+ \ifdim\internote<1.43\Internote \set@largenotesize \comput@sizes
+ \else
+ \set@Largenotesize \comput@sizes
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \noport@@\z@ \beginstaff}%
+\fi
+%
+% modify flag macros so that they tolerate very compressed music better.
+%
+\ifx\mxversion\undefined
+ \def\adv@locx@mqn{\advance\locx@skip by -\f@kwidth}%
+\else
+ \def\C@b#1#2{%
+ \n@ii\b@n \ifnum\n@ii<\z@ \n@ii-\n@ii \fi
+ \ifnum\n@ii>\n@v #1\fi
+ \loop
+ \advance\n@v\m@ne
+ \ifnum\n@ii=\n@v {\advance\locx@skip-\f@kwidth#2}\fi
+ \ifnum\n@v>\@ne \repeat}%
+\fi
+%
+% define some more skip macros
+\ifx\mxversion\undefined
+ \def\psk{\off\pskwidth}%
+ \def\f@k{\off\f@kwidth}%
+ \let\fsk=\f@k%
+ \def\bqsk{\off{1.3\qn@width}}%
+ \def\abqsk{\off{2.0\qn@width}}%
+ \def\nqsk{\off{-1.4\qn@width}}%
+ \def\tqsk{\off{2.5\qn@width}}%
+ \def\fgsk{\off{1.0\qn@width}}%
+ \def\setpskwidth{\ifdim 1.5\qn@width > \noteskip
+ \pskwidth=0.75\qn@width \else \pskwidth=0.5\noteskip \fi}%
+ \def\setf@kwidth{\ifdim 1.6\qn@width>\noteskip
+ \f@kwidth=.6\noteskip \else \f@kwidth=\qn@width \fi}%
+ \def\setfskwidth{\ifdim 1.6\qn@width>\noteskip
+ \fskwidth=.6\noteskip \else \fskwidth=\qn@width \fi}%
+\else
+ \def\psk{\off\pskwidth}%
+ \def\f@k{\off\f@kwidth}%
+ \def\fsk{\off\fskwidth}%
+ \def\bqsk{\off{1.3\qn@width}}%
+ \def\abqsk{\off{2.0\qn@width}}%
+ \def\nqsk{\off{-1.4\qn@width}}%
+ \def\tqsk{\off{2.2\qn@width}}%
+ \def\fgsk{\off{1.0\qn@width}}%
+ \def\vbqsk{\off{1.3\elemskip}}%
+ \def\vnabqsk{\off{1.0\elemskip}}%
+% \def\abqsk{\off{1.0\elemskip}}%
+% \def\nqsk{\off{-0.85\elemskip}}%
+ \def\vtqsk{\off{2.5\elemskip}}%
+% \def\setpskwidth{\ifdim 1.5\qn@width > \noteskip
+% \pskwidth=0.75\elemskip \else \pskwidth=0.5\noteskip \fi}%
+ \def\setpskwidth{\pskwidth=0.7\noteskip}%
+ \def\setf@kwidth{\ifdim 1.6\qn@width>\noteskip
+ \f@kwidth=.6\noteskip \else \f@kwidth=\qn@width \fi}%
+ \def\setfskwidth{\fskwidth=0.5\noteskip}%
+\fi
+%
+%
+\ifx\mxversion\undefined
+ \def\notes{\ifdim \elemskip<1.2\qn@width
+ \noteskip=1.2\qn@width \n@otes \else \vnotes 1.0\elemskip \fi
+ \setpskwidth\setf@kwidth\setfskwidth
+ \def\sf{\ccl f}}%
+\else
+ \def\notes{\vnotes 2.0\elemskip
+ \def\sf{\ccl f}}%
+\fi
+%
+% note spacings for grace notes
+%
+\ifx\mxversion\undefined
+ \def\gnotes{\ifdim .35\elemskip<0.75\qn@width
+ \noteskip=0.75\qn@width\n@otes \else \vnotes 0.35\elemskip \fi
+ }% teeny note spacing for grace notes
+ \def\Gnotes{\ifdim .7\elemskip<.9\qn@width
+ \noteskip=.9\qn@width\n@otes \else \vnotes 0.7\elemskip \fi
+ }% spacing between grace notes & normal notes
+ \def\GNotes{\ifdim .7\elemskip<1.2\qn@width
+ \noteskip=1.2\qn@width\n@otes \else \vnotes 0.7\elemskip \fi
+ }% spacing between grace notes & normal notes
+ \def\hnotes{\ifdim .7\elemskip<\qn@width
+ \noteskip=\qn@width\n@otes \else \vnotes 0.5\elemskip \fi
+ }% half of a note spacing
+\else
+ \def\gnotes{\vnotes 1.0\elemskip
+ }% teeny note spacing for grace notes
+ \def\Gnotes{\vnotes 1.5\elemskip
+ }% spacing between grace notes & normal notes
+ \def\GNotes{\vnotes 2.0\elemskip
+ }% spacing between grace notes & normal notes
+ \def\hnotes{\vnotes 1.0\elemskip
+ }% half of a note spacing
+\fi
+%
+\ifx\mxversion\undefined
+ \def\setelemq#1{\elemskip=#1\qn@width}%
+ \setelemq{1.6} % the default is unfortunate.
+\else
+ \def\setelemq#1{\relax}%
+ \autolines{8}{8}{48}%
+\fi
+%
+\makeatother% at signs are no longer letters
+%
+% some synonyms to make some music set for musixtex work with musictex
+%
+\ifx\mxversion\undefined
+ \let\en\enotes
+ \let\instrumentnumber\nbinstruments
+ \let\startpiece\debutmorceau
+ \let\bar\barre
+ \let\itie\iten
+ \let\ttie\tten
+ \let\contpiece\reprmorceau
+ \let\stoppiece\suspmorceau
+ \let\Stoppiece\finmorceau
+ \let\Endpiece\finmorceau
+ \let\leftrepeat\leftrepeatsymbol
+ \let\rightrepeat\rightrepeatsymbol
+ \def\setstaffs#1#2{natv#1\relax
+ \csname nbportees\romannumeral\natv\endcsname#2}%
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+\def\nbinstruments{1}% bagpipe music is written for one instrument
+% % although this could be redefined to add more.
+%
+% for multipart scores, set the number of staves and turn off auto glue
+% insertion
+% after beamed groups
+\def\multipart#1{\noautoglue\newgrace\nbporteesi=#1}%
+%
+\parindent=0pt%
+%
+\transpose=7
+\def\N{N}%
+\def\G{N}% define some alternate pitch names to allow
+\def\a{a}% consistent readable identifiers
+\def\b{b}%
+\def\c{c}%
+\def\d{d}%
+\def\e{e}%
+\def\f{f}%
+\def\g{g}%
+\def\A{h}%
+\def\h{h}%
+%
+% in pipe music melody notes are normally stem down, and since there are
+% only 9 pitches, let's define explicit macros for each note
+%
+\def\whG{\wh N}% whole notes
+\def\whN{\wh N}%
+\def\wha{\wh a}%
+\def\whb{\wh b}%
+\def\whc{\wh c}%
+\def\whd{\wh d}%
+\def\whe{\wh e}%
+\def\whf{\wh f}%
+\def\whg{\wh G}%
+\def\whA{\wh h}%
+\def\whh{\wh h}%
+%
+\def\hG{\hl N}% half notes
+\def\hN{\hl N}%
+\def\ha{\hl a}%
+\def\hb{\hl b}%
+\def\hc{\hl c}%
+\def\hd{\hl d}%
+\def\he{\hl e}%
+\def\hf{\hl f}%
+\def\hg{\hl g}%
+\def\hA{\hl h}%
+\def\hh{\hl h}%
+%
+\def\qlG{\ql N}% quarter notes
+\def\qlN{\ql N}%
+\def\qla{\ql a}%
+\def\qlb{\ql b}%
+\def\qlc{\ql c}%
+\def\qld{\ql d}%
+\def\qle{\ql e}%
+\def\qlf{\ql f}%
+\def\qlg{\ql g}%
+\def\qlA{\ql h}%
+\def\qlh{\ql h}%
+%
+\def\cG{\cl N}% eighth notes
+\def\cN{\cl N}%
+\def\ca{\cl a}%
+\def\cb{\cl b}%
+\def\cc{\cl c}%
+\def\cd{\cl d}%
+\def\ce{\cl e}%
+\def\cf{\cl f}%
+\def\cg{\cl g}%
+\def\cA{\cl h}%
+\def\ch{\cl h}%
+%
+\def\sG{\ccl N}% sixteenth notes
+\def\sN{\ccl N}%
+\def\sa{\ccl a}%
+\def\sb{\ccl b}%
+\def\sc{\ccl c}%
+\def\sd{\ccl d}%
+\def\se{\ccl e}%
+\def\sf{\ccl f}% caution : this redefines a macro used for sforzando
+\def\sg{\ccl g}%
+\def\sA{\ccl h}%
+\let\shp\sh%
+\def\sh{\ccl h}% caution : this redefines a macro for sharps
+%
+\def\tG{\cccl N}% thirtysecond notes
+\def\tN{\cccl N}%
+\def\ta{\cccl a}%
+\def\tb{\cccl b}%
+\def\tc{\cccl c}%
+\def\td{\cccl d}%
+\def\te{\cccl e}%
+\def\tf{\cccl f}%
+\def\tg{\cccl g}%
+\def\tA{\cccl h}%
+\def\th{\cccl h}%
+%
+\def\sfG{\ccccl N}% sixty-fourth notes
+\def\sfN{\ccccl N}%
+\def\sfa{\ccccl a}%
+\def\sfb{\ccccl b}%
+\def\sfc{\ccccl c}%
+\def\sfd{\ccccl d}%
+\def\sfe{\ccccl e}%
+\def\sff{\ccccl f}%
+\def\sfg{\ccccl g}%
+\def\sfA{\ccccl h}%
+\def\sfh{\ccccl h}%
+%
+\def\bG{\qb0N}% beam notes
+\def\bN{\qb0N}%
+\def\ba{\qb0a}%
+\def\bb{\qb0b}%
+\def\bc{\qb0c}%
+\def\bd{\qb0d}%
+\def\be{\qb0e}%
+\def\bf{\qb0f}%
+\def\bg{\qb0g}%
+\def\bA{\qb0h}%
+\def\bh{\qb0h}%
+%
+\def\bGp{\qbp0N\psk}% dotted beam notes
+\def\bNp{\qbp0N\psk}%
+\def\bap{\qbp0a\psk}%
+\def\bbp{\qbp0b\psk}%
+\def\bcp{\qbp0c\psk}%
+\def\bdp{\qbp0d\psk}%
+\def\bep{\qbp0e\psk}%
+\def\bfp{\qbp0f\psk}%
+\def\bgp{\qbp0g\psk}%
+\def\bAp{\qbp0h\psk}%
+\def\bhp{\qbp0h\psk}%
+%
+\def\bGpp{\qbpp0N\psk\psk}% double dotted beam notes
+\def\bNpp{\qbpp0N\psk\psk}%
+\def\bapp{\qbpp0a\psk\psk}%
+\def\bbpp{\qbpp0b\psk\psk}%
+\def\bcpp{\qbpp0c\psk\psk}%
+\def\bdpp{\qbpp0d\psk\psk}%
+\def\bepp{\qbpp0e\psk\psk}%
+\def\bfpp{\qbpp0f\psk\psk}%
+\def\bgpp{\qbpp0g\psk\psk}%
+\def\bApp{\qbpp0h\psk\psk}%
+\def\bhpp{\qbpp0h\psk\psk}%
+%
+% macros for dotted notes
+%
+\def\hp#1{\hl{.#1}\psk}%
+\def\qlp#1{\ql{.#1}\psk}% caution : this redefines a macro used for rests
+\def\cp#1{\cl{.#1}\psk}%
+\def\sp#1{\ccl{.#1}\psk}%
+\def\tp#1{\cccl{.#1}\psk}%
+\def\sfp#1{\cccl{.#1}\psk}%
+%
+% macros for double dotted notes
+%
+\def\hpp#1{\hlpp{#1}\psk\psk}%
+\makeatletter% at signs are now letters and can used in control sequences
+\ifx\usemusixtex\relax
+ \def\qlpp#1{\q@symbol\@qlpp{#1}\psk}%
+\else
+ \def\qlpp#1{\advancetrue\qlpp@z{#1}\psk}%
+\fi
+\makeatother% at signs are no longer letters
+\def\cpp#1{\clpp{#1}\psk\psk}%
+% some macros for beginning and ending grace note sequences
+%
+\def\tns{\teenynotesize}%
+%
+\ifx\mxversion\undefined
+ \def\nns{\ifdim\internote<0.76\Internote\tinynotesize
+ \else\ifdim\internote<0.95\Internote\smallnotesize
+ \else \normalnotesize
+ \fi\fi}%
+\else
+ \def\nns{\ifdim\internote<0.76\Internote\tinynotesize
+ \else\ifdim\internote<0.95\Internote\smallnotesize
+ \else\ifdim\internote<1.19\Internote\normalnotesize
+ \else\ifdim\internote<1.43\Internote\largenotesize
+ \else \Largenotesize
+ \fi\fi\fi\fi}%
+\fi
+%
+\def\gnss{\enotes\gnotes\tns}%
+\def\Gnss{\enotes\Gnotes\tns}%
+\def\GNss{\enotes\GNotes\tns}%
+\def\enn{\enotes\notes}%
+\def\etn{\enotes\temps\notes}%
+%\def\ehn{\enotes\hnotes}%
+\def\bart{\barre\temps}%
+\ifx\mxversion\undefined\relax\else\def\temps{\notes\sk\enotes}\fi
+%
+%
+\def\backput#1{\rlap{\off{-1.0\noteskip}#1}}
+%
+% the old way of doing grace notes
+\def\oldgrace{%
+ \ifx\mxversion\undefined\def\stdafterruleskip{\Internote}\else\relax\fi
+% simple grace notes
+ \def\Grace##1{\GNss\cccu {##1}\enn}%
+ \def\Echo##1{\GNss\ccu {##1}\enn}%
+ \def\Them##1{\GNss\cu {##1}\enn}%
+% general complex grace note macros
+% for transposed pitch specification ( N - h )
+ \ifx\mxversion\undefined
+ \def\multigr##1##2##3{\gnss\ibbbu1{##1}0\qh1{##2}\tbu1\Gnss\qh1{##3}\enn}%
+ \def\smultigr##1##2##3##4{\gnss\ibbbu1{##1}{##2}\qh1{##3}\Gnss\tbu1\qh1{##4}\enn}%
+ \else
+ \def\multigr##1##2##3{\gnss\ibbbu1{##1}0\qh1{##2}\tbu1%\Gnss
+ \qh1{##3}\off{0.6\elemskip}\enn}%
+ \def\smultigr##1##2##3##4{\gnss\ibbbu1{##1}{##2}\qh1{##3}%\Gnss
+ \tbu1\qh1{##4}\off{0.6\elemskip}\enn}%
+ \fi
+}% end \def\oldgrace
+%
+%
+% the new way of doing grace notes
+\def\newgrace{%
+% general complex grace note macros
+% for transposed pitch specification ( N - h )
+ \ifx\mxversion\undefined
+ \def\stdafterruleskip{3\Internote}%
+% general complex grace note macros
+% for transposed pitch specification ( N - h )
+% for simple grace notes
+ \def\Grace##1{\tns\zcccu##1\tqsk\nns}%
+ \def\Echo##1{\tns\zccu##1\tqsk\nns}%
+ \def\Them##1{\tns\zcu##1\tqsk\nns}%
+ \def\multigr##1##2##3{\tns\ibbbu1{##1}0\vargr##2\end\nqsk\tbu1\zqh1##3\abqsk\nns}%
+ \def\smultigr##1##2##3##4{\tns\ibbbu1{##1}{##2}\vargr##3\end\nqsk\tbu1\zqh1##4\abqsk\nns}%
+ \def\cadt##1##2##3##4{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\abqsk\zqh1##3\abqsk\tbbbu1\tbbu1\tbu1\zqh1##4\abqsk\nns}%
+ \def\cadf##1##2##3{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\abqsk\tbu1\zqh1##3\abqsk\nns}%
+ \def\cadl##1##2##3{\tns\ibu1{##1}0\zqh1##2\abqsk\tbbbu1\tbbu1\tbu1\zqh1##3\abqsk\nns}%
+ \def\tra{\tns\ibbu1c0\zqh1N\bqsk\nbbbu1\zqh1d\bqsk\tbbbu1\tbu1\zqh1c\abqsk\nns}%
+ \def\trac{\tns\ibu1c0\zqh1N\bqsk\nbbbu1\zqh1d\bqsk\tbbbu1\tbbu1\tbu1\zqh1c\abqsk\nns}%
+ \def\chelalho{\tns\ibu1e0\zqh1f\bqsk\nbbbu1\zqh1d\bqsk\tbbbu1\tbu1\zqh1e\abqsk\nns}%
+ \def\darodos{\tns\ibbu1e0\zqh1N\bqsk\nbbbu1\zqh1d\bqsk\zqh1N\bqsk\tbbbu1\zqh1c\bqsk\tbu1\zqh1N\abqsk\nns}%
+ \def\fcadt##1##2##3##4##5{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\abqsk\pointdorgue##5\zqh1##3\abqsk\tbbbu1\tbbu1\tbu1\zqh1##4\abqsk\nns}%
+ \def\fcadf##1##2##3##4{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\abqsk\tbu1\pointdorgue##4\zqh1##3\abqsk\nns}%
+ \def\fcadl##1##2##3##4{\tns\ibu1{##1}0\pointdorgue##4\zqh1##2\abqsk\tbbbu1\tbbu1\tbu1\zqh1##3\abqsk\nns}%
+ \else
+% for simple grace notes
+ \def\Grace##1{\vtqsk\llap{\tns\zcccu##1\tqsk\nns}}%
+ \def\Echo##1{\vtqsk\llap{\tns\zccu##1\tqsk\nns}}%
+ \def\Them##1{\vtqsk\llap{\tns\zcu##1\tqsk\nns}}%
+ \def\multigr##1##2##3{\varsp##2\end\vnabqsk
+ \llap{\tns\ibbbu1{##1}0\vargr##2\end\nqsk\tbu1\zqh1##3\abqsk\nns}}%
+ \def\smultigr##1##2##3##4{\varsp##3\end\vnabqsk
+ \llap{\tns\ibbbu1{##1}{##2}\vargr##3\end\nqsk\tbu1\zqh1##4\abqsk\nns}}%
+ \def\cadt##1##2##3##4{\vbqsk\vbqsk\vnabqsk
+ \llap{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\bqsk\zqh1##3\bqsk\tbbbu1\tbbu1\tbu1\zqh1##4\abqsk\nns}}%
+ \def\cadf##1##2##3{\vbqsk\vnabqsk
+ \llap{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\bqsk\tbu1\zqh1##3\abqsk\nns}}%
+ \def\cadl##1##2##3{\vbqsk\vnabqsk
+ \llap{\tns\ibu1{##1}0\zqh1##2\bqsk\tbbbu1\tbbu1\tbu1\zqh1##3\abqsk\nns}}%
+ \def\tra{\vbqsk\vbqsk\vnabqsk
+ \llap{\tns\ibbu1c0\zqh1N\bqsk\nbbbu1\zqh1d\bqsk\tbbbu1\tbu1\zqh1c\abqsk\nns}}%
+ \def\trac{\vbqsk\vbqsk\vnabqsk
+ \llap{\tns\ibu1c0\zqh1N\bqsk\nbbbu1\zqh1d\bqsk\tbbbu1\tbbu1\tbu1\zqh1c\abqsk\nns}}%
+ \def\chelalho{\vbqsk\vbqsk\vnabqsk
+ \llap{\tns\ibu1e0\zqh1f\bqsk\nbbbu1\zqh1d\bqsk\tbbbu1\tbu1\zqh1e\abqsk\nns}}%
+ \def\darodos{\vbqsk\vbqsk\vbqsk\vbqsk\vnabqsk
+ \llap{\tns\ibbu1e0\zqh1N\bqsk\nbbbu1\zqh1d\bqsk\zqh1N\bqsk\tbbbu1\zqh1c\bqsk\tbu1\zqh1N\abqsk\nns}}%
+ \def\fcadt##1##2##3##4##5{\vbqsk\vbqsk\vnabqsk
+ \llap{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\bqsk\pointdorgue##5\zqh1##3\bqsk\tbbbu1\tbbu1\tbu1\zqh1##4\abqsk\nns}}%
+ \def\fcadf##1##2##3##4{\vbqsk\vnabqsk
+ \llap{\tns\ibu1{##1}0\rlap{\fgsk\tbbbu1\tbbu1}\zqh1##2\bqsk\tbu1\pointdorgue##4\zqh1##3\abqsk\nns}}%
+ \def\fcadl##1##2##3##4{\vbqsk\vnabqsk
+ \llap{\tns\ibu1{##1}0\pointdorgue##4\zqh1##2\bqsk\tbbbu1\tbbu1\tbu1\zqh1##3\abqsk\nns}}%
+ \fi
+}% end \def\new grace
+%
+\oldgrace % make the old grace note scheme the default
+%
+% compatible with new and old grace
+%
+% obsolete old grace note macros
+\def\grace#1{\Gnss\cccu {#1}\enn}%
+%
+% for non transposed pitch specification ( g - o ) (old way)
+\def\omultigr#1#2#3{\gnss\ibbbu1{`#1}0\qh1{#2}\tbu1\Gnss\qh1{`#3}\enn}%
+\def\osmultigr#1#2#3#4{\gnss\ibbbu1{`#1}{#2}\qh1{#3}\Gnss\tbu1\qh1{`#4}\enn}%
+%
+% the tricky variable argument number macro for new grace
+\def\vargr#1{\zqh1#1\bqsk\ifx#1\end\let\next=\relax\else\let\next=\vargr\fi\next}%
+% the note counting spacing macro for the muxiXtex version of the \newgrace scheme
+\def\varsp#1{\vbqsk\ifx#1\end\let\next=\relax\else\let\next=\varsp\fi\next}%
+%
+% make any sequence of notes grace notes (good for piobaireachd) (old way)
+% may cause problems when embedded in certain beamed note sequences
+% not compatible with multipart music.
+\def\ggr#1{\gnss #1\enn\psk}%
+%
+%
+%
+% now for the actual grace note definitions
+%
+% simple grace notes and strikes
+%
+\def\grG{\Grace N}%
+\def\grN{\Grace N}%
+\def\gra{\Grace a}%
+\def\grb{\Grace b}%
+\def\grc{\Grace c}%
+\def\grd{\Grace d}%
+\def\gre{\Grace e}%
+\def\grf{\Grace f}%
+\def\grg{\Grace g}%
+\def\grA{\Grace h}%
+\def\grh{\Grace h}%
+%
+%
+% doublings
+%
+\def\dblright#1{\smultigr e{-4}{g#1}d}%
+\def\dblG{\dblright{N}}%
+\def\dblN{\dblright{N}}%
+\def\dbla{\dblright{a}}%
+\def\dblb{\dblright{b}}%
+\def\dblc{\dblright{c}}%
+\def\dbld{\multigr f{gd}e}%
+\def\dble{\multigr f{ge}f}%
+\def\dblf{\multigr f{gf}g}%
+\def\dblg{\multigr fgf}% this is the same as \hdblG
+\def\dblA{\multigr fhg}% this is the same as \hdblA
+\let\dblh\dblA
+%
+% half doublings
+%
+\def\hdblright#1{\smultigr c{4}{#1}d}%
+\def\hdblG{\hdblright{N}}%
+\def\hdblN{\hdblright{N}}%
+\def\hdbla{\hdblright{a}}%
+\def\hdblb{\hdblright{b}}%
+\def\hdblc{\hdblright{c}}%
+\def\hdbld{\multigr dde}%
+\def\hdble{\multigr eef}%
+\def\hdblf{\multigr ffg}%
+\let\hdblg\dblg
+\let\hdblA\dblA
+\let\hdblh\dblA
+%
+% thumb doublings
+%
+\def\tdblright#1{\smultigr f{-4}{h#1}d}%
+\def\tdblG{\tdblright{N}}%
+\def\tdblN{\tdblright{N}}%
+\def\tdbla{\tdblright{a}}%
+\def\tdblb{\tdblright{b}}%
+\def\tdblc{\tdblright{c}}%
+\def\tdbld{\multigr f{hd}e}%
+\def\tdble{\multigr f{he}f}%
+\def\tdblf{\multigr f{hf}g}%
+\def\tdblg{\multigr f{hg}f}%
+%
+% slurred doublings
+%
+\def\sdblright#1{\smultigr e{-4}{g#1d#1}N}%
+\def\sdbla{\sdblright{a}}%
+\def\sdblb{\sdblright{b}}%
+\def\sdblc{\sdblright{c}}%
+\def\sdbld{\multigr f{gded}N}%
+\def\sdble{\multigr f{gefe}a}%
+\def\sdblf{\multigr f{gfgf}a}%
+\def\sdblg{\multigr f{gfg}a}%
+\def\sdblG{\multigr f{gfg}a}%
+\def\sdblA{\multigr f{hgh}a}%
+\def\sdblh{\multigr f{hgh}a}%
+%
+% slurred half doublings
+%
+\def\shdblright#1{\smultigr d{-3}{#1d#1}N}%
+\def\shdbla{\shdblright{a}}%
+\def\shdblb{\shdblright{b}}%
+\def\shdblc{\shdblright{c}}%
+\def\shdbld{\multigr f{ded}N}%
+\def\shdble{\multigr f{efe}a}%
+\def\shdblf{\multigr f{fgf}a}%
+\def\shdblg{\multigr f{gfg}a}%
+\def\shdblG{\multigr f{gfg}a}%
+\def\shdblA{\multigr f{hgh}a}%
+\def\shdblh{\multigr f{hgh}a}%
+%
+% slurred thumb doublings
+%
+\def\stdblright#1{\smultigr g{-4}{h#1d#1}N}%
+\def\stdbla{\stdblright{a}}%
+\def\stdblb{\stdblright{b}}%
+\def\stdblc{\stdblright{c}}%
+\def\stdbld{\multigr g{hded}N}%
+\def\stdble{\multigr g{hefe}a}%
+\def\stdblf{\multigr g{hfgf}a}%
+\def\stdblg{\multigr g{hfg}a}%
+\def\stdblG{\multigr g{hfg}a}%
+\def\stdblA{\multigr g{hgh}a}%
+\def\stdblh{\multigr g{hgh}a}%
+%
+% shaken doublings
+%
+%\def\shkdblright#1{\smultigr e{-4}{g#1d#1}N}%
+%\def\shkdbla{\shkdblright{a}}%
+%\def\shkdblb{\shkdblright{b}}%
+%\def\shkdblc{\shkdblright{c}}%
+\def\shkdbld{\multigr f{gded}c}%
+%\def\shkdble{\multigr f{gefe}a}%
+%\def\shkdblf{\multigr f{gfgf}e}%
+%\def\shkdblg{\multigr f{gfg}e}%
+%\def\shkdblG{\multigr f{gfg}e}%
+%
+% shaken thumb doublings
+%
+%\def\shtdblright#1{\smultigr g{-4}{h#1d#1}N}%
+%\def\shtdbla{\shtdblright{a}}%
+%\def\shtdblb{\shtdblright{b}}%
+%\def\shtdblc{\shtdblright{c}}%
+\def\shtdbld{\multigr g{hded}c}%
+%\def\shtdble{\multigr g{hefe}a}%
+%\def\shtdblf{\multigr g{hfgf}a}%
+%\def\shtdblg{\multigr g{hfg}a}%
+%\def\shtdblG{\multigr g{hfg}a}%
+%\def\shtdblA{\multigr g{hgh}a}%
+%\def\shtdblh{\multigr g{hgh}a}%
+%
+%
+% double grace notes
+%
+\def\dblgr#1#2{\multigr #1#1#2}
+\def\ddgrN{\dblgr dN}
+\def\ddgra{\dblgr da}
+\def\ddgrb{\dblgr db}
+\def\ddgrc{\dblgr dc}
+\def\edgrN{\dblgr eN}
+\def\edgra{\dblgr ea}
+\def\edgrb{\dblgr eb}
+\def\edgrc{\dblgr ec}
+\def\edgrd{\dblgr ed}
+\def\fdgrN{\dblgr fN}
+\def\fdgra{\dblgr fa}
+\def\fdgrb{\dblgr fb}
+\def\fdgrc{\dblgr fc}
+\def\fdgrd{\dblgr fd}
+\def\fdgre{\dblgr fe}
+\def\gdgrN{\dblgr gN}
+\def\gdgra{\dblgr ga}
+\def\gdgrb{\dblgr gb}
+\def\gdgrc{\dblgr gc}
+\def\gdgrd{\dblgr gd}
+\def\gdgre{\dblgr ge}
+\def\gdgrf{\dblgr gf}
+\def\tdgrN{\dblgr hN}
+\def\tdgra{\dblgr ha}
+\def\tdgrb{\dblgr hb}
+\def\tdgrc{\dblgr hc}
+\def\tdgrd{\dblgr hd}
+\def\tdgre{\dblgr he}
+\def\tdgrf{\dblgr hf}
+\def\tdgrg{\dblgr hg}
+%
+% miscellaneous common complex grace notes
+%
+\def\thrwd{\multigr d{Nd}c}%
+\def\hthrwd{\smultigr d{-1}{d}c}%
+\let\Nthrwd\hthrwd%
+\let\Gthrwd\hthrwd%
+\let\gthrwd\hthrwd%
+\def\thrwf{\multigr g{feg}e}%
+\def\gripthrwd{\multigr e{NdN}c}%
+\def\hgripthrwd{\multigr d{dN}c}%
+\def\grip{\multigr c{Nd}N}% also used for leumluaths and throws on b and c
+\def\dgrip{\multigr c{Nb}N}%
+\def\ggrip{\multigr cdN}%
+\let\Ggrip\ggrip%
+\let\Ngrip\ggrip%
+\def\taor{\multigr d{NdN}e}%
+\def\Ntaor{\multigr d{dN}e}%
+\let\Gtaor\Ntaor%
+\let\gtaor\Ntaor%
+\def\dtaor{\multigr d{NbN}e}%
+\def\ahtaor{\multigr e{da}e}%
+%
+% birls
+%
+\def\birl{\multigr c{aNa}N}%
+\def\sbirl{\multigr e{gaNa}N}%
+\def\wbirl{\multigr c{Na}N}%
+\def\tbirl{\multigr g{haNa}N}%
+%
+% slurs (sometimes called slaps)
+%
+\def\slur#1{\smultigr f{-8}{g#1}N}%
+\def\slura{\slur a}%
+\def\slurb{\slur b}%
+\def\slurc{\slur c}%
+\def\slurd{\slur d}%
+\def\slure{\smultigr f{-8}{ge}a}%
+\def\slurf{\smultigr f{-8}{gf}a}%
+\let\slapa\slura% slapx is a synonym for slurx
+\let\slapb\slurb
+\let\slapc\slurc
+\let\slapd\slurd
+\let\slape\slure
+\let\slapf\slurf
+%
+% half slurs (half slaps)
+%
+\def\hslur#1{\smultigr c{-4}{#1}N}%
+\def\hslura{\hslur a}%
+\def\hslurb{\hslur b}%
+\def\hslurc{\hslur c}%
+\def\hslurd{\hslur d}%
+\def\hslure{\smultigr c{-4}ea}%
+\def\hslurf{\smultigr d{-4}fa}%
+\let\hslapa\hslura
+\let\hslapb\hslurb
+\let\hslapc\hslurc
+\let\hslapd\hslurd
+\let\hslape\hslure
+\let\hslapf\hslurf
+%
+% thumb slurs (thumb slaps)
+%
+\def\tslur#1{\smultigr g{-8}{h#1}N}%
+\def\tslura{\tslur a}%
+\def\tslurb{\tslur b}%
+\def\tslurc{\tslur c}%
+\def\tslurd{\tslur d}%
+\def\tslure{\smultigr g{-8}{he}a}%
+\def\tslurf{\smultigr g{-8}{hf}a}%
+\let\tslapa\tslura
+\let\tslapb\tslub
+\let\tslapc\tslurc
+\let\tslapd\tslurd
+\let\tslape\tslure
+\let\tslapf\stslurf
+%
+% shakes
+%
+\let\shka\slura
+\let\shkb\slurb
+\let\shkc\slurc
+\def\shkd{\smultigr g{-3}{gd}c}%
+\def\shke{\smultigr g{-2}{ge}a}%
+\def\shkf{\smultigr g{-1}{gf}e}%
+\def\shkg{\smultigr h{-1}{hg}e}%
+\def\shkG{\smultigr h{-1}{hg}e}%
+%
+% half shakes
+%
+\let\hshka\hslura
+\let\hshkb\hslurb
+\let\hshkc\hslurc
+\let\hshkd\hthrwd%
+\def\hshke{\smultigr e{-1}{e}a}%
+\def\hshkf{\smultigr f{-1}{f}e}%
+\def\hshkg{\smultigr g{-1}{g}e}%
+\def\hshkG{\smultigr g{-1}{g}e}%
+%
+% thumb shakes
+%
+\let\tshka\tslura
+\let\tshkb\tslurb
+\let\tshkc\tslurc
+\def\tshkd{\smultigr g{-3}{hd}c}%
+\def\tshke{\smultigr g{-2}{he}a}%
+\def\tshkf{\smultigr g{-1}{hf}e}%
+%
+% catches
+%
+\def\catcha{\multigr d{aNd}N}%
+\def\catchb{\multigr d{bNd}N}%
+\def\catchc{\multigr d{cNd}N}%
+\def\catchd{\multigr d{dNb}N}%
+\def\catche{\multigr e{eNd}N}%
+\def\scatcha{\smultigr g{-3}{gaNd}N}%
+\def\scatchb{\smultigr g{-3}{gbNd}N}%
+\def\scatchc{\smultigr g{-3}{gcNd}N}%
+\def\scatchd{\smultigr g{-3}{gdNb}N}%
+\def\scatche{\smultigr g{-3}{geNd}N}%
+\def\tcatcha{\smultigr h{-3}{haNd}N}%
+\def\tcatchb{\smultigr h{-3}{hbNd}N}%
+\def\tcatchc{\smultigr h{-3}{hcNd}N}%
+\def\tcatchd{\smultigr h{-3}{hdNb}N}%
+\def\tcatche{\smultigr h{-3}{heNd}N}%
+%
+% double strikes
+%
+\def\dstra{\multigr a{Na}N}%
+\let\dstrb\dgrip %
+\def\dstrc{\multigr c{Nc}N}%
+\let\dstrd=\grip %
+\def\dstre{\multigr e{ae}a}%
+\def\dstrf{\multigr f{ef}e}%
+\def\ldstrd{\multigr d{cd}c}%
+%
+% g double strikes
+%
+\let\gdstra\sbirl
+\def\gdblstr#1#2{\multigr f{g#1#2#1}#2}%
+\def\gdstrb{\gdblstr bN}%
+\def\gdstrc{\gdblstr cN}%
+\def\gdstrd{\gdblstr dN}%
+\def\gdstre{\gdblstr ea}%
+\def\gdstrf{\gdblstr fe}%
+\def\lgdstrd{\multigr d{dcd}c}%
+%
+% thumb double strikes
+%
+\let\tdstra\tbirl
+\def\tdblstr#1#2{\multigr g{h#1#2#1}#2}%
+\def\tdstrb{\tdblstr bN}%
+\def\tdstrc{\tdblstr cN}%
+\def\tdstrd{\tdblstr dN}%
+\def\tdstre{\tdblstr ea}%
+\def\tdstrf{\tdblstr fe}%
+\def\tdstrg{\tdblstr gf}%
+\def\ltdstrd{\multigr g{hdcd}c}%
+%
+% half double strikes
+%
+\let\hdstra\grip
+\def\hdblstr#1#2{\multigr #1{#1#2#1}#2}%
+\def\hdstrb{\hdblstr bN}%
+\def\hdstrc{\hdblstr cN}%
+\def\hdstrd{\hdblstr dN}%
+\def\hdstre{\hdblstr ea}%
+\def\hdstrf{\hdblstr fe}%
+\def\hdstrg{\hdblstr gf}%
+\def\hdstrh{\hdblstr hg}%
+\def\lhdstrd{\multigr d{dcd}c}%
+%
+%
+% triple strikes
+%
+\def\tstra{\multigr a{NaNa}N}%
+\def\tstrb{\multigr b{NbNb}N}%
+\def\tstrc{\multigr c{NcNc}N}%
+\def\tstrd{\multigr d{NdNd}N}
+\def\ltstrd{\multigr d{cdcd}c}%
+\def\tstre{\multigr e{aeae}a}%
+\def\tstrf{\multigr f{efef}e}%
+\def\tstrg{\multigr f{fgfg}f}%
+\def\tstrh{\multigr g{ghgh}g}%
+%
+% g triple strikes
+%
+\def\gtrpstr#1#2{\multigr f{g#1#2#1#2#1}#2}%
+\def\gtstra{\gtrpstr aN}%
+\def\gtstrb{\gtrpstr bN}%
+\def\gtstrc{\gtrpstr cN}%
+\def\gtstrd{\gtrpstr dN}%
+\def\gtstre{\gtrpstr ea}%
+\def\gtstrf{\gtrpstr fe}%
+\def\lgtstrd{\gtrpstr dc}%
+%
+% thumb triple strikes
+%
+\def\ttrpstr#1#2{\multigr g{h#1#2#1#2#1}#2}%
+\def\ttstra{\ttrpstr aN}%
+\def\ttstrb{\ttrpstr bN}%
+\def\ttstrc{\ttrpstr cN}%
+\def\ttstrd{\ttrpstr dN}%
+\def\ttstre{\ttrpstr ea}%
+\def\ttstrf{\ttrpstr fe}%
+\def\ttstrg{\ttrpstr gf}%
+\def\lttstrd{\ttrpstr dc}%
+%
+% half triple strikes
+%
+\def\htrpstr#1#2{\multigr #1{#1#2#1#2#1}#2}%
+\def\htstra{\htrpstr aN}%
+\def\htstrb{\htrpstr bN}%
+\def\htstrc{\htrpstr cN}%
+\def\htstrd{\htrpstr dN}%
+\def\htstre{\htrpstr ea}%
+\def\htstrf{\htrpstr fe}%
+\def\htstrg{\htrpstr gf}%
+\def\htstrh{\htrpstr hg}%
+\def\lhtstrd{\htrpstr dc}%
+%
+% peles aka hornpipe shakes
+%
+\def\pel#1{\multigr g{g#1e#1}N}%
+\def\pelb{\pel b}%
+\def\pelc{\pel c}%
+\def\peld{\pel d}%
+\def\pele{\multigr g{gefe}a}%
+\def\lpeld{\multigr g{gded}c}%
+%
+\def\tpel#1{\multigr g{h#1e#1}N}%
+\def\tpelb{\tpel b}%
+\def\tpelc{\tpel c}%
+\def\tpeld{\tpel d}%
+\def\tpele{\multigr g{hefe}a}%
+\def\ltpeld{\multigr g{hded}c}%
+%
+\def\hpel#1{\multigr e{#1e#1}N}%
+\def\hpelb{\hpel b}%
+\def\hpelc{\hpel c}%
+\def\hpeld{\hpel d}%
+\def\hpele{\multigr f{efe}a}%
+\def\lhpeld{\multigr f{ded}c}%
+%
+%%%%%%%%%%%% piobaireachd grace notes %%%%%%%%%%%%%%%%%%%%%%
+%
+% echoes
+%
+\def\echoG{\Echo N}%
+\def\echoN{\Echo N}%
+\def\echoa{\Echo a}%
+\def\echob{\Echo b}%
+\def\echoc{\Echo c}%
+\def\echod{\Echo d}%
+\def\echoe{\Echo e}%
+\def\echof{\Echo f}%
+\def\echog{\Echo g}%
+\def\echoA{\Echo h}%
+\def\echoh{\Echo h}%
+%
+% themal grace notes
+%
+\def\themG{\Them N}%
+\def\themN{\Them N}%
+\def\thema{\Them a}%
+\def\themb{\Them b}%
+\def\themc{\Them c}%
+\def\themd{\Them d}%
+\def\theme{\Them e}%
+\def\themf{\Them f}%
+\def\themg{\Them g}%
+\def\themA{\Them h}%
+\def\themh{\Them h}%
+%
+\def\crun{\multigr e{NdNeaf}a}%
+\def\dcrun{\multigr e{NbNeaf}a}%
+\def\crunf{\multigr e{eaf}a}%
+\def\crunme{\multigr f{feg}e}%
+\def\crunmd{\multigr e{edf}d}%
+\def\crunmc{\multigr e{NdNcecf}c}%
+\def\crunmb{\multigr e{NdNbebf}b}%
+\def\ahcrun{\multigr e{daeaf}a}%
+\def\Nhcrun{\multigr e{dNeaf}a}%
+\def\crunbr{\multigr e{NdNeNf}N}%
+\def\dcrunbr{\multigr e{NbNeNf}N}%
+\def\ahcrunbr{\multigr e{dNeNf}N}%
+%
+\def\dre{\multigr e{aeaf}a}%
+\def\edre{\multigr e{eaf}a}%
+\def\edreb{\multigr e{ebf}b}%
+\def\edrec{\multigr e{ecf}c}%
+\let\edred\crunmd% same as crunmd
+\let\dare\thrwf% same as thrwf
+\def\gedre{\multigr f{geaf}a}%
+\def\gdare{\multigr f{gfeg}e}%
+\def\tedre{\multigr g{heaf}a}%
+\def\tdare{\multigr g{hfeg}e}%
+\def\tchechere{\multigr g{hgeh}e}%
+\def\hdre{\multigr f{af}a}%
+\def\hedale{\multigr g{eg}e}%
+\def\hchechere{\multigr g{eh}e}%
+\def\hedari{\multigr f{geh}e}%
+\let\Nedre\scatchb
+\let\aedre\scatchc
+%
+\def\deda{\multigr e{Ne}N}%
+%
+\def\bain#1{\multigr d{#1Nd}N}%
+\def\enbain{\bain a}%
+\def\otro{\bain b}%
+\def\odro{\bain c}%
+\def\adela{\multigr e{dNe}N}%
+\def\gbain#1{\multigr f{g#1Nd}N}%
+\def\genbain{\gbain a}%
+\def\gotro{\gbain b}%
+\def\godro{\gbain c}%
+\def\gadela{\gbain d}%
+\def\tbain#1{\multigr g{h#1Nd}N}%
+\def\tenbain{\tbain a}%
+\def\totro{\tbain b}%
+\def\todro{\tbain c}%
+\def\tadela{\tbain d}%
+%
+\def\hiharin{\multigr d{daNa}N}%
+%
+\def\dbstf{\multigr g{fg}f}%
+\def\dbsth{\multigr g{gh}g}%
+\let\dstrg\dbstf%
+\let\dstrh\dbsth%
+
+%
+\def\darodo{\multigr d{NdNc}N}%
+\def\gdarodo{\multigr d{dNc}N}%
+\let\Gdarodo\gdarodo
+\def\Ndarodo{\multigr d{dNc}N}%
+\let\bubbly\darodo% bubbly is a synonym for darodo
+\let\Nbubbly\Ndarodo
+\let\gbubbly\gdarodo
+\let\Gbubbly\gdarodo
+%
+\def\cadged{\cadt gged}
+\def\cadhed{\cadt hhed}
+\def\cadge{\cadf gge}
+\def\cadgf{\cadf ggf}
+\def\caded{\cadl eed}
+\def\cadhe{\cadf hhe}
+\def\fcadged{\fcadt ggedj}
+\def\fcadhed{\fcadt hhedk}
+\def\fcadge{\fcadf ggej}
+\def\fcadgf{\fcadf ggfj}
+\def\fcaded{\fcadl eedh}
+\def\fcadhe{\fcadf hhek}
+\def\fcade{\tns\pointdorgue g\zcu e\tqsk\nns}
+%
+% macros for switching between pitch schemes
+%
+\def\oldpitch{%
+\def\g{N}%
+\def\G{g}%
+\def\whg{\wh N}%
+\def\whG{\wh g}%
+\def\hg{\hl N}%
+\def\hG{\hl g}%
+\def\qlg{\ql N}%
+\def\qlG{\ql g}%
+\def\cg{\cl N}%
+\def\cG{\cl g}%
+\def\sg{\ccl N}%
+\def\sG{\ccl g}%
+\def\tg{\cccl N}%
+\def\tG{\cccl g}%
+\def\sfg{\ccccl N}%
+\def\sfG{\ccccl g}%
+\def\bg{\qb0 N}%
+\def\bG{\qb0 g}%
+\def\bgp{\qbp0 N\psk}%
+\def\bGp{\qbp0 g\psk}%
+\def\grg{\Grace N}%
+\def\grG{\Grace g}%
+\def\dblg{\dblright{N}}%
+\def\dblG{\multigr fgf}% this is the same as \hdblG
+\def\hdblg{\hdblright{N}}%
+\def\hdblG{\multigr fgf}%
+\def\tdblg{\tdblright{N}}%
+\def\tdblG{\multigr f{hg}f}%
+}%
+\def\newpitch{%
+\def\g{g}%
+\def\G{N}%
+\def\whG{\wh N}%
+\def\whg{\wh g}%
+\def\hG{\hl N}%
+\def\hg{\hl g}%
+\def\qlG{\ql N}%
+\def\qlg{\ql g}%
+\def\cG{\cl N}%
+\def\cg{\cl g}%
+\def\sG{\ccl N}%
+\def\sg{\ccl g}%
+\def\tG{\cccl N}%
+\def\tg{\cccl g}%
+\def\sfG{\ccccl N}%
+\def\sfg{\ccccl g}%
+\def\bG{\qb0 N}%
+\def\bg{\qb0 g}%
+\def\bGp{\qbp0 N\psk}%
+\def\bgp{\qbp0 g\psk}%
+\def\grG{\Grace N}%
+\def\grg{\Grace g}%
+\def\dblG{\dblright{g}}%
+\def\dblg{\multigr fgf}% this is the same as \hdblG
+\def\hdblG{\hdblright{g}}%
+\def\hdblg{\multigr fgf}%
+\def\tdblg{\multigr f{hg}f}%
+\def\tdblG{\tdblright{N}}%
+}%
+%
+% some options concerning automatic insertion of glue and spacing of
+% pickup notes
+%
+% \autoglue causes glue to be inserted after beamed note groups
+% \noautoglue turns this feature off
+\def\autoglue{\def\bmend{\etn}\def\ttn{\etn\etn}%
+% for pickup notes
+ \def\pickup##1{\notes\qsk##1\enotes\advance\barno by -1\relax\xbarre}%
+ \ifx\mxversion\undefined
+ \def\reppickup##1{%
+ \advance\barno by -1\relax\reprmorceau\notes\fsk##1\enotes\xbarre}%
+ \def\repreppickup##1{\advance\barno by -1\relax\reprmorceau%
+ \rlap\leftrepeatsymbol\notes\sk\fsk##1\fsk\enotes\xbarre}%
+ \else
+ \def\reppickup##1{%
+ \advance\barno by -1\relax\reprmorceau\notes\qsk##1\enotes\xbarre}%
+ \def\repreppickup##1{\advance\barno by -1\relax\reprmorceau%
+% \rlap\leftrepeatsymbol\notes\sk\qsk##1\qsk\enotes\xbarre}%
+ \leftrepeatsymbol\notes\psk##1\psk\enotes\xbarre}%
+ \fi
+}%
+%
+\def\noautoglue{%
+ \def\bmend{}\def\ttn{\etn}%
+% for pickup notes
+ \def\pickup##1{\notes##1\enotes\advance\barno by -1\relax\xbarre}%
+ \def\reppickup##1{%
+ \advance\barno by -1\relax\reprmorceau\notes##1\enotes\xbarre}%
+ \ifx\mxversion\undefined
+ \def\repreppickup##1{\advance\barno by -1\relax\reprmorceau%
+ \rlap\leftrepeatsymbol\notes\sk\fsk\enn##1\enotes\xbarre}%
+ \else
+ \def\repreppickup##1{\advance\barno by -1\relax\reprmorceau%
+% \rlap\leftrepeatsymbol\notes\sk\qsk\enn##1\enotes\xbarre}%
+ \leftrepeatsymbol\notes\psk##1\psk\enotes\xbarre}%
+ \fi
+}%
+% the default is to automatically insert glue after beamed note groups
+\autoglue
+% note that autoglue is incompatible with multipart settings and is
+% turned off by \multipart
+%
+% definitions for beamed combinations
+%
+% first for explicit arrangements of note pairs
+%
+\makeatletter
+%
+\def\pcc#1#2{\Ibl0#1{#2}1\qb0{#1}\tbl0\qb0{#2}\bmend}%
+\def\pcgc#1#2#3{\Ibl0#1{#3}4\qb0#1#2\tbl0\qb0#3\bmend}%
+\def\pcs#1#2{\Ibl0{#1}{#2}1\qb0{#1}\tbbl0\tbl0\qb0{#2}\bmend}%
+\def\pcps#1#2{\Ibl0{#1}{#2}1\qbp0{#1}\psk\tbbl0\tbl0\qb0{#2}\bmend}%
+\def\pcgs#1#2#3{\Ibl0{#1}{#3}2\qb0{#1}#2\tbbl0\tbl0\qb0{#3}\bmend}%
+\def\pcpgs#1#2#3{\Ibl0{#1}{#3}2\qbp0{#1}\psk#2\tbbl0\tbl0\qb0{#3}\bmend}%
+\def\psc#1#2{\Ibbl0{#1}{#2}1\rlap{\f@k\tbbl0}\qb0{#1}\tbl0\qb0{#2}\bmend}%
+\def\pscp#1#2{\Ibbl0{#1}{#2}1\rlap{\f@k\tbbl0}\qb0{#1}\tbl0\qbp0{#2}\psk\bmend}%
+\def\psgc#1#2#3{\Ibl0{#1}{#3}2\rlap{\f@k\tbbl0}\qb0{#1}#2\tbl0\qb0{#3}\bmend}%
+\def\psgcp#1#2#3{%
+ \Ibl0{#1}{#3}3\rlap{\f@k\tbbl0}\qb0{#1}#2\tbl0\qbp0{#3}\psk\bmend}%
+%
+\def\pss#1#2{\Ibbl0{#1}{#2}1\qb0{#1}\tbl0\qb0{#2}}%
+\def\psgs#1#2#3{\Ibbl0#1{#3}4\qb0#1#2\tbl0\qb0#3}%
+\def\pst#1#2{\Ibbl0{#1}{#2}1\qb0{#1}\tbbbl0\tbl0\qb0{#2}}%
+\def\pspt#1#2{\Ibbl0{#1}{#2}1\qbp0{#1}\psk\tbbbl0\tbl0\qb0{#2}}%
+\def\psgt#1#2#3{\Ibbl0{#1}{#3}2\qb0{#1}#2\tbbbl0\tbl0\qb0{#3}}%
+\def\pspgt#1#2#3{\Ibbl0{#1}{#3}2\qbp0{#1}\psk#2\tbbbl0\tbl0\qb0{#3}}%
+\def\pts#1#2{\Ibbbl0{#1}{#2}1\rlap{\f@k\tbbbl0}\qb0{#1}\tbl0\qb0{#2}}%
+\def\ptsp#1#2{\Ibbbl0{#1}{#2}1\rlap{\f@k\tbbbl0}\qb0{#1}\tbl0\qbp0{#2}\psk}%
+\def\ptgs#1#2#3{\Ibbl0{#1}{#3}2\rlap{\f@k\tbbbl0}\qb0{#1}#2\tbl0\qb0{#3}}%
+\def\ptgsp#1#2#3{\Ibbl0{#1}{#3}2\rlap{\f@k\tbbbl0}\qb0{#1}#2\tbl0\qbp0{#3}\psk}%
+%
+\def\ptt#1#2{\Ibbbl0{#1}{#2}1\qb0{#1}\tbl0\qb0{#2}}%
+%
+% now more general definitions where the beam is specified first and then
+% the notes.
+%
+% pairs
+%
+\def\bcc#1#2#3#4#5{\Ibl0#1#2#3#4\tbl0#5\bmend}%
+\def\bss#1#2#3#4#5{\Ibbl0#1#2#3#4\tbl0#5\psk}%
+\def\btt#1#2#3#4#5{\Ibbbl0#1#2#3#4\tbl0#5\psk}%
+%
+\def\bcs#1#2#3#4#5{\Ibl0#1#2#3#4\tbbl0\tbl0#5\bmend}%
+\def\bsc#1#2#3#4#5{\Ibl0#1#2#3\rlap{\f@k\tbbl0}#4\tbl0#5\bmend}%
+\def\bst#1#2#3#4#5{\Ibbl0#1#2#3#4\tbbbl0\tbl0#5\bmend}%
+\def\bts#1#2#3#4#5{\Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4\tbl0#5\bmend}%
+\def\bct#1#2#3#4#5{\Ibl0#1#2#3#4\tbbbl0\tbbl0\tbl0#5\bmend}%
+\def\btc#1#2#3#4#5{\Ibl0#1#2#3\rlap{\f@k\tbbbl0\tbbl0}#4\tbl0#5\bmend}%
+%\def\bct#1#2#3#4#5{%
+%\enotes\hnotes\Ibl0#1#2#3#4\nbbbl0\sk\tbbbl0\tbbbl0\tbl0#5\bmend}%
+%\def\btc#1#2#3#4#5{\enotes\hnotes\Ibbbl0#1#2#3#4\tbbbl0\tbbl0\sk\tbl0#5\bmend}%
+%
+% triplets
+%
+\def\bccc#1#2#3#4#5#6{\Ibl0#1#2#3#4#5\tbl0#6\bmend}%
+\def\bsss#1#2#3#4#5#6{\Ibbl0#1#2#3#4#5\tbl0#6\bmend}%
+\def\bttt#1#2#3#4#5#6{\Ibbbl0#1#2#3#4#5\tbl0#6\psk}%
+%
+\def\bccs#1#2#3#4#5#6{\Ibl0#1#2#3#4#5\tbbl0\tbl0#6\bmend}%
+\def\bcsc#1#2#3#4#5#6{\Ibl0#1#2#3#4\tbbl0#5\tbl0#6\bmend}%
+\def\bscc#1#2#3#4#5#6{\Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\tbl0#6\bmend}%
+%
+\def\bcss#1#2#3#4#5#6{\Ibl0#1#2#3#4\nbbl0#5\tbl0#6\bmend}%
+\def\bscs#1#2#3#4#5#6{\Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\tbbl0\tbl0#6\bmend}%
+\def\bssc#1#2#3#4#5#6{\Ibbl0#1#2#3#4\tbbl0#5\tbl0#6\bmend}%
+%
+\def\bsst#1#2#3#4#5#6{\Ibbl0#1#2#3#4#5\tbbbl0\tbl0#6\enn}%
+\def\bsts#1#2#3#4#5#6{\Ibbl0#1#2#3#4\tbbbl0#5\tbl0#6\enn}%
+\def\btss#1#2#3#4#5#6{\Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4#5\tbl0#6\enn}%
+%
+\def\bstt#1#2#3#4#5#6{\Ibbl0#1#2#3#4\nbbbl0#5\tbl0#6\psk}%
+\def\btst#1#2#3#4#5#6{\Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4#5\tbbbl0\tbl0#6\psk}%
+\def\btts#1#2#3#4#5#6{\Ibbbl0#1#2#3#4\tbbbl0#5\tbl0#6\psk}%
+%
+\def\bcst#1#2#3#4#5#6{\Ibl0#1#2#3#4\nbbl0#5\tbbbl0\tbl0#6\bmend}%
+\def\bsct#1#2#3#4#5#6{\Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\tbbbl0\tbbl0\tbl0#6\bmend}%
+\def\bcts#1#2#3#4#5#6{\Ibl0#1#2#3#4\nbbl0\rlap{\f@k\tbbbl0}#5\tbl0#6\bmend}%
+\def\bstc#1#2#3#4#5#6{\Ibbl0#1#2#3#4\tbbbl0\tbbl0#5\tbl0#6\bmend}%
+\def\btsc#1#2#3#4#5#6{\Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4\tbbl0#5\tbl0#6\bmend}%
+\def\btcs#1#2#3#4#5#6{\Ibl0#1#2#3\rlap{\f@k\tbbbl0\tbbl0}#4#5\tbbl0\tbl0#6\bmend}%
+%
+% quadruplets
+%
+% all the same
+%
+\def\bcccc#1#2#3#4#5#6#7{\Ibl0#1#2#3#4#5#6\tbl0#7\bmend}%
+\def\bssss#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4#5#6\tbl0#7\bmend}%
+\def\btttt#1#2#3#4#5#6#7{\Ibbbl0#1#2#3#4#5#6\tbl0#7\bmend}%
+%
+% 3 c's, 1 s
+%
+\def\bcccs#1#2#3#4#5#6#7{\Ibl0#1#2#3#4#5#6\tbbl0\tbl0#7\bmend}%
+\def\bccsc#1#2#3#4#5#6#7{\Ibl0#1#2#3#4#5\tbbl0#6\tbl0#7\bmend}%
+\def\bcscc#1#2#3#4#5#6#7{\Ibl0#1#2#3#4\tbbl0#5#6\tbl0#7\bmend}%
+\def\bsccc#1#2#3#4#5#6#7{\Ibbl0#1#2#3\rlap{\f@k\tbbl0}#4#5#6\tbl0#7\bmend}%
+%
+% 2 c's, 2 s's
+%
+\def\bccss#1#2#3#4#5#6#7{\Ibl0#1#2#3#4#5\nbbl0#6\tbl0#7\bmend}%
+\def\bcscs#1#2#3#4#5#6#7{\Ibl0#1#2#3#4\tbbl0#5#6\tbbl0\tbl0#7\bmend}%
+\def\bcssc#1#2#3#4#5#6#7{\Ibl0#1#2#3#4\tbbl0#5\rlap{\f@k\tbbl0}#6\tbl0#7\bmend}%
+\def\bsccs#1#2#3#4#5#6#7{\Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5#6\tbbl0\tbl0#7\bmend}%
+\def\bscsc#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\rlap{\f@k\tbbl0}#6\tbl0#7\bmend}%
+\def\bsscc#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4\tbbl0#5#6\tbl0#7\bmend}%
+%
+% 2 c's, 1 s, 1 t
+%
+\def\bccst#1#2#3#4#5#6#7{\Ibl0#1#2#3#4#5\nbbl0#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\bccts#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3#4#5\nbbl0\rlap{\f@k\tbbbl0}#6\tbl0#7\bmend}%
+\def\bcstc#1#2#3#4#5#6#7{\Ibl0#1#2#3#4\nbbl0#5\tbbbl0\tbbl0#6\tbl0#7\bmend}%
+\def\bctsc#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3#4\nbbl0\rlap{\f@k\tbbbl0}#5\tbbl0#6\tbl0#7\bmend}%
+\def\bstcc#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4\tbbbl0\tbbl0#5#6\tbl0#7\bmend}%
+\def\btscc#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4\tbbl0#5#6\tbl0#7\bmend}%
+%
+% 1 c, 3 s's
+%
+\def\bcsss#1#2#3#4#5#6#7{\Ibl0#1#2#3#4\nbbl0#5#6\tbbl0\tbl0#7\bmend}%
+\def\bscss#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\nbbl0#6\tbl0#7\bmend}%
+\def\bsscs#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4\tbbl0#5#6\tbbl0\tbl0#7\bmend}%
+\def\bsssc#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4#5\tbbl0#6\tbl0#7\bmend}%
+%
+% 1 c, 2 s's, 1 t
+%
+\def\bcsst#1#2#3#4#5#6#7{\Ibl0#1#2#3#4\nbbl0#5#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\bcsts#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3#4\nbbl0#5\rlap{\f@k\tbbbl0}#6\tbbl0\tbl0#7\bmend}%
+\def\bscst#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\nbbl0#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\bscts#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3\rlap{\f@k\tbbl0}#4#5\nbbl0\rlap{\f@k\tbbbl0}#6\tbbl0\tbl0#7\bmend}%
+\def\bstcs#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3#4\tbbbl0\tbbl0#5#6\tbbl0\tbl0#7\bmend}%
+\def\btscs#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4\tbbl0#5#6\tbbl0\tbl0#7\bmend}%
+\def\bstsc#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3#4\tbbbl0\tbbl0#5\rlap{\f@k\tbbl0}#6\tbl0#7\bmend}%
+\def\btssc#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4\tbbl0#5\rlap{\f@k\tbbl0}#6\tbl0#7\bmend}%
+\def\btcss#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3\rlap{\f@k\tbbbl0\tbbl0}#4#5\nbbl0#6\tbl0#7\bmend}%
+\def\bctss#1#2#3#4#5#6#7{%
+ \Ibl0#1#2#3#4\tbbbl0\tbbl0#5\nbbl0#6\tbbl0\tbl0#7\bmend}%
+\def\bssct#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3#4\tbbl0#5#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\bsstc#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3#4\tbbl0#5\rlap{\f@k\tbbbl0\tbbl0}#6\tbl0#7\bmend}%
+%
+% 3 s's, 1 t
+%
+\def\bssst#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4#5#6\tbbbl0\tbl0#7\bmend}%
+\def\bssts#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4#5\tbbbl0#6\tbl0#7\bmend}%
+\def\bstss#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4\tbbbl0#5#6\tbl0#7\bmend}%
+\def\btsss#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4#5#6\tbbl0\tbl0#7\bmend}%
+%
+% 2 s's, 2 t's
+%
+\def\bsstt#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4#5\nbbbl0#6\tbl0#7\bmend}%
+\def\bstst#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4\tbbbl0#5#6\tbbbl0\tbl0#7\bmend}%
+\def\bstts#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3#4\tbbbl0#5\rlap{\f@k\tbbbl0}#6\tbl0#7\bmend}%
+\def\btsst#1#2#3#4#5#6#7{\Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4#5#6\tbbbl0\tbl0#7\bmend}%
+\def\btsts#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4#5\rlap{\f@k\tbbbl0}#6\tbl0#7\bmend}%
+\def\bttss#1#2#3#4#5#6#7{\Ibbbl0#1#2#3#4\tbbbl0#5#6\tbl0#7\bmend}%
+%
+% 1 s, 3 t's
+%
+\def\bsttt#1#2#3#4#5#6#7{\Ibbl0#1#2#3#4\nbbbl0#5#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\btstt#1#2#3#4#5#6#7{%
+ \Ibbl0#1#2#3\rlap{\f@k\tbbbl0}#4#5\nbbbl0#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\bttst#1#2#3#4#5#6#7{%
+ \Ibbbl0#1#2#3#4\tbbbl0#5#6\tbbbl0\tbbl0\tbl0#7\bmend}%
+\def\bttts#1#2#3#4#5#6#7{\Ibbbl0#1#2#3#4#5\tbbbl0#6\tbbl0\tbl0#7\bmend}%
+%
+\makeatother
+%
+\def\downtext#1{\zcharnote H{#1}}
+\def\Downtext#1{\zcharnote D{#1}}
+%
+\let\alabreve\allabreve% accommodate a typo in bmw2tex
+%
+\endcatcodesmusic% restore characters to their standard usage
+%
+% miscellaneous useful non-music macro definitions
+%
+\def\USdate{%
+\def\today{\ifcase\month\or Jan.\or Feb.\or Mar.\or Apr. \or
+ May.\or June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\fi
+ \ \number\day, \number\year}}% this is from the TeXbook
+%
+\def\Eurodate{%
+\def\today{\number\day\ \ifcase\month\or Jan.\or Feb.\or Mar.\or Apr. \or
+ May.\or June\or July\or Aug.\or Sep.\or Oct.\or Nov.\or Dec.\fi
+ \ \number\year}}% this is from the TeXbook
+%
+\USdate
+%
+\font\twelvebf=\fonthdg mbx12% useful for part headings
+%
+\def\medley{\let\medleyflag=\relax}% useful for making medleys
+\def\byemedley{\ifx\medleyflag\relax\endinput\fi}%
+%
+\endinput
+%
+\endmain
+\end{document}%