%
% This is bagpipe.tex version 3.01
%
\def\bptversion{3.01}%
\message{Version \bptversion\space -- Jul. 24, 2002}%
%
%               by    Walt Innes (walt@slac.stanford.edu)
%
%  Copyright Walt Innes. Permission is granted to use and copy provided
%  that this copyright notice remains attached. This code may not be sold.
%
%       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.
% ____________________________________________________________________
%
%    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
% \font\beamnine=beamn11%
%
\font\musicnine=musikn09%  % for use with 16 pt musicsize if
\font\beamnine=beamn09%    % 9 pt fonts are available%
%
 \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=musix09% 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}%
