summaryrefslogtreecommitdiff
path: root/macros/musixtex/tex/musixtex.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-01-30 03:00:44 +0000
committerNorbert Preining <norbert@preining.info>2024-01-30 03:00:44 +0000
commit084f5d8435744b7ea7ef487ec111a7bfd100ed62 (patch)
treed4e91f6ef6d075509a2b33942f57337725089951 /macros/musixtex/tex/musixtex.tex
parent6c43653052d016d5913aabb728c484f0e62b4754 (diff)
CTAN sync 202401300300
Diffstat (limited to 'macros/musixtex/tex/musixtex.tex')
-rw-r--r--macros/musixtex/tex/musixtex.tex5970
1 files changed, 0 insertions, 5970 deletions
diff --git a/macros/musixtex/tex/musixtex.tex b/macros/musixtex/tex/musixtex.tex
deleted file mode 100644
index a46abeec61..0000000000
--- a/macros/musixtex/tex/musixtex.tex
+++ /dev/null
@@ -1,5970 +0,0 @@
-%
-% This file is part of MusiXTeX
-%
-% MusiXTeX is free software; you can redistribute it and/or modify
-% it under the terms of the GNU General Public License as published by
-% the Free Software Foundation; either version 2, or (at your option)
-% any later version.
-%
-% MusiXTeX is distributed in the hope that it will be useful,
-% but WITHOUT ANY WARRANTY; without even the implied warranty of
-% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-% GNU General Public License for more details.
-%
-% You should have received a copy of the GNU General Public License
-% along with MusiXTeX; see the file COPYING. If not, write to
-% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-% Boston, MA 02111-1307, USA.
-%
-%
-\ifx\undefined\startpiece \else \endinput \fi
-\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
-
-\ifx\makeatletter\undefined\def\makeatletter{\catcode`\@=11\relax}\fi
-\ifx\makeatother\undefined\def\makeatother{\catcode`\@=12\relax}\fi
-
-\def\mufl@x{0.83}%
-\def\mxmajorvernumber{1}
-\def\mxminorvernumber{37}
-\def\mxvernumber{\mxmajorvernumber\mxminorvernumber}% make it possible to compare with \ifnum
-\def\mxversuffix{}%
-\edef\mxversion{\mxmajorvernumber.\mxminorvernumber\mxversuffix}
-\def\mxdate{2023-10-07}
-
-\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}%
-\everyjob{\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}}%
-
-% version 1.37
-%
-% added small ss fonts
-%
-% version 1.36
-%
-% Support for Turkish classical music accidentalsi; see musixmkm.tex.
-% Re-define \hlthick to produce thicker ledger lines.
-% Provide thinner accidentals; see musixthacc.tex.
-% Thicker Postscript hairpins.
-
-% version 1.35
-%
-% This release includes a handwriting font from MuseScore and an extension
-% library musixjt.tex to support it.
-
-% version 1.34
-%
-% redefine \tabfnt... commands to allow re-definition in musixftab.tex
-% decrement the number of slashes if tabstylespace is true
-%
-
-% version 1.33a
-%
-% improved implementations of the tablature commands:
-% + 4-7 slashes are replaced by numbers 4-7
-% + notehead-less stems are replaced by tiny notes (without ledger lines)
-
-% version 1.33
-%
-% \tabfnt etc. now uses (Helvetica) bold
-% replace ledger lines by slashes (/) for tablature notes below the staff
-% new commands \tzqu, \tzcup, etc. for stems without noteheads, for use in tablature
-
-% version 1.32
-
-% commented out spurious \let\doublebar\doublebar@II
-% forbid line-breaking at \zdoublebar
-
-% version 1.31
-%
-% defined \zzdoublebar, \zzbar, \zendpiece
-
-% version 1.30
-%
-% defined \zdoublebar for use within a bar
-% defined \hbp and \hbpp
-
-% version 1.29
-%
-% defined \tabfnt, \tabcleffnt, \tabstringfnt, \tab etc. to support tablature
-
-% version 1.28
-%
-% defined
-% \z[left|right|leftright]repeat, for use *within* a bar
-% \zz...repeat, to force to the end of a system
-% corrected definition of \C@Inter for \nblines < 4
-
-% version 1.27
-%
-% introduced \meterN
-% eliminated \ds@oup
-% introduced \nqqb \nqqh \nqqqb \nqqqh abbreviations and
-% synonyms \nqql \nqqu \nqqql \nqqqu
-% introduced \hap, \happ analogous to \qap, \qapp
-% introduced \hbsk analogous to \hsk
-% introduced \bqsk, \bhsk, \btsk analogous to \qsk, \hqsk, \tqsk
-% introduced \xxtuplet
-
-% version 1.26
-%
-% deleted spurious definition in \resetlayout and
-% spurious space in definition of \interfacteur...
-
-% version 1.25
-%
-% included a "dummy" tuplet.tex in the distribution
-% added \ignorespaces in musixltx.tex
-% defined \qap, \qapp, \tqsk
-
-% version 1.24
-%
-% preserve changes to \transpose in an hboxed tremolo command
-% test that musixtex.tex has already been loaded in some extensions:
-% musixps, musixec, musixhv, musixplt, musixtmr, musixppff
-% changed from \it to \ppff in several places
-% support new command \setinterstaff{n}{m}
-% define \largenotesize, \Largenotesize
-% correct typos \twtybf[g] \svtbf[g]
-
-% version 1.23
-%
-% added \xtr and \ptr ornaments
-% adjusted spacing of \tr
-% corrected definition of \C@Inter for \nblines > 6
-
-% version 1.22
-%
-% bi and sc font definitions added; sl and tt definitions for musixsty moved
-% explicit font choices for \txtfont replaced by generic commands \smalltype\it etc.
-% \pdlud \halfwidthbigwedge and \raise-height font-dependent
-% \cbreath and \zbreath use \BIGtype rather than \BIGfont
-
-
-% version 1.21
-%
-% RDT adjusted the offsets and/or vertical positions for some tremolos
-% RDT moved \lastbarpos\lin@pos after calls to \Writ@meters
-% to correct \centerbar positioning
-% RDT copied the definition of \Hpause from musixlit.tex
-% RDT introduced \Changeclefs, \cHpause and \centerHpause
-% RDT replaced \smalltype\it by \txtfont in octave clef commands
-% RDT moved definitions of \txtfont into \comput@fonts
-% RDT added support for piano-pedal bracket notation
-
-% version 1.20
-%
-% RDT re-defined tremolo commands to allow for numerical pitches;
-% use of \raise and \hbox suggested by Jean-Pierre Colon
-
-% version 1.19:
-%
-% RDT corrected typos in the definition of \comput@fonts
-% affecting ppff fonts for \Largemusicsize
-% RDT introduced definitions for tremolo commands \trml, \trmu, etc.
-% RDT turned off lyrics for \metron and \metronequiv notes
-
-% version 1.18:
-%
-% RDT added definitions of \raggedstoppiece and \slide from musixext.tex
-% RDT increased the length of beam stems (adapted from J.-P. Coulon)
-
-% version 1.17:
-%
-% RDT re-defined \txtfont for non-normal staff sizes
-% RDT defined \tinyppff and \ppfftwelve, and re-defined \ppff to be staffsize dependent
-% RDT introduced \tqqb \tqqh \tqqqb \tqqqh abbreviations
-% and synonyms \tqql \tqqu \tqqql \tqqqu
-% RDT introduced ornaments \tr, \trt
-% RDT re-defined \triolet to be consistent with musixdoc (prints \txt, not nec. 3)
-% RDT introduced \cpause etc. and corrected definitions of \centerpause etc.
-% RDT introduced double-dotted rests \qppp, \dspp, \qspp, etc.
-
-% version 1.16:
-%
-% RDT corrected the definitions of \nnotes and \nnnotes
-
-% HM corrected the definitions for cautionary small accidentals
-
-% RDT added \check@staff ... \fi to \@qa h, \@mca, \hs, \qqs
-% so that \qa, \ca, \ha, etc. can be "hidden" using \setstaffs{n}{0}
-
-% RDT incorporated tuplet.tex (approved by George Sicherman)
-% and introduced \txtfont to allow changing size or style
-
-% RDT introduced
-% \qqsk, a one-quarter notehead skip
-% \tqu and \tql, synonyms for \tqh and \tqb
-% \ztqu and \ztql, synonyms for \ztqh and \ztqb
-% \hpp, \qpp, \dsp, \qsp, \hsp, \qqsp for pointed rests
-% \nnotes, \nnnotes: 1.6 and 1.28 \elemskip spacing
-% \zcn, \ccn, \lcn, synomyms for \zcharnote etc.
-
-% RDT incorporated curly.tex (approved by Mthimkhulu Molekwa)
-
-% RDT modernized the treatment of text fonts
-% meterfonts must be bf, even if titling fonts are rm or sc
-% added dynamic-mark macros \sfz \sfzp
-
-% version 1.15:
-%
-% moved out:
-% - 1/128th beams -> musixbm
-% - triple pointed notes -> musixtri
-
-% and shrinked the memory consumption
-
-%++ickd 19Sep1997: with help of William P. Houser introduced dotted slurs.
-% Changes marked with +ickd for added single lines, -ickd for replaced
-%++ickd single lines, ++ickd...++ickd for added blocks
-
-%++simick 04Dec2000: Don Simons and Werner Icking made some improvements
-% to volta-processing and centerbar processing the changes are
-% marked with +simick for added single lines, -simick for
-%++simick replaced lines and ++simick...++simick for added blocks
-
-% Hiroaki, May2010, T.115: change register allocation codes into new ones
-% which enables >12 elements. Search the string "version 1.15" for details.
-%
-
-% TeXperts may want to change the next
-
-% PARAMETER DIFFERENT THAN PLAIN
-
-\showboxdepth=0
-\showboxbreadth=0
-
-\ifx\undefined\documentstyle % -> []plain.tex
- \parindent0pt
- \hoffset-15.4mm
- \voffset-10mm
- \hsize190mm
- \vsize260mm
-\fi
-
-%%% from LaTeX
-% The following definitions save token space. E.g., using \@height
-% instead of height saves 5 tokens at the cost in time of one macro
-% expansion.
-
-\def\@height{height}
-\def\@depth{depth}
-\def\@width{width}
-
-%%% also removed 'by', '='
-
-\def\@to{to}
-\def\p@ne{.1}
-\def\qu@rt{.25}
-\def\h@lf{.5}
-\def\p@seven{.7}
-
-%%%from plain
-% To make the macros more efficient in time and space,
-% several constant values are declared here as control sequences
-% If they were changed, anything could happen; so they are private symbols
-
-%\chardef\active=13
-%\chardef\&=`\& -> 38
-%\chardef\#=`\# -> 35
-%\chardef\$=`\$ -> 36
-% Nomenclature: '@' means most times 'e' or seperator, sometimes 'o','a'
-
-\chardef\f@ur=4
-\chardef\fiv@=5
-\chardef\si@=6
-\chardef\s@v@n=7
-\chardef\@ight=8
-\chardef\nin@=9
-\chardef\t@n=10
-\chardef\@l@v@n=11
-\chardef\tw@lv@=12
-\chardef\fourt@@n=14
-\chardef\fiv@t@@n=15
-\chardef\tw@nty=20
-\chardef\@xxiii=23
-\chardef\@xxv=25
-\chardef\@xxiv=24
-\chardef\@xxvi=26
-\chardef\@xxvii=27
-\chardef\@xxix=29
-\chardef\@xxxii=32
-\chardef\@xl=40
-\chardef\@xli=41
-\chardef\@xlv=45
-\chardef\@l=50
-\chardef\@lii=52
-\chardef\@liv=54
-\chardef\@lxxxiii=83
-\chardef\@c=100
-\chardef\@cxv=115
-\chardef\@cxxviii=128
-
-\newif\ifcatcodesmusic
-
-\def\catcodesmusic{\ifcatcodesmusic\relax
- \else
- \edef\catcode@gt{\the\catcode`\>}\catcode`\>\tw@lv@
- \edef\catcode@lt{\the\catcode`\<}\catcode`\<\tw@lv@
- \edef\catcode@vert{\the\catcode`\|}\catcode`\|\active
- \edef\catcode@and{\the\catcode`\&}\catcode`\&\active
- \edef\catcode@excl{\the\catcode`\!}\catcode`\!\tw@lv@
- \edef\catcode@star{\the\catcode`\*}\catcode`\*\tw@lv@
- \edef\catcode@pt{\the\catcode`\.}\catcode`\.\tw@lv@
- \edef\catcode@sc{\the\catcode`\:}\catcode`\:\tw@lv@
- \let\@@bar\bar
- \def\bar{\barre}%
- \fi\catcodesmusictrue}
-
-\catcodesmusic
-
-% MusicTeX + MuFlex -> MusiXTeX
-\def\musixtex{MusiX\TeX}
-
-\def\kernm{\kern-}
-
-%...\let\@wloG=\wlog
-%...\def\wlog#1{}
-
-%%% account registers
-
-% \let\maxinstruments\si@ % [version 1.15] here disabled to avoid conflict
-
-% temporary registers
-
-\newcount\n@i
-\newcount\n@ii
-\newcount\n@iii
-\newcount\n@iv
-\newcount\n@v
-\newcount\n@vi
-\newcount\n@vii
-\newcount\n@viii
-\newcount\count@
-
-\newbox\toks@box
-\newbox\w@rkbox
-\newbox\n@otebox
-
-\newdimen\y@
-\newdimen\y@i
-\newdimen\y@ii
-\newdimen\y@iii
-\newdimen\y@iv
-\newdimen\y@v
-
-% [version 1.15] moved out to the new register allocation code -- start from here --
-% altitude
-% \newskip\k@ii
-% InterNote
-% \newdimen\i@ni
-\def\i@n{\z@} % safety in case of....
-% positions x et z de debut des poutres
-% \newdimen\b@xi \newdimen\b@zi
-% \newdimen\c@xi \newskip\c@zi
-% \newdimen\d@xi \newskip\d@zi
-% \newdimen\e@xi \newskip\e@zi
-% \newdimen\f@xi \newskip\f@zi
-% pentes des poutres ( entier de -9 a +9 )
-% multiplicite des poutres ( de -5 a +5 . 0= inactive )
-% \newcount\b@pi \newcount\b@ni
-% Number of Portees
-% \newcount\n@pi \n@pi\@ne
-% Actual Signs Old Signs
-% \newcount\a@si \newcount\o@si
-% ActualCleftoks
-% \newtoks\a@ci \a@ci={{\z@}{\z@}{\z@}{\z@}}
-% OldCleftoks
-% \newtoks\o@ci
-% MeterToks
-% \newtoks\m@ti
-% Altitude of choir groups
-% \newskip\g@bi
-% Height of choir groups
-% \newskip\g@hi
-
-% [version 1.15] moved out to the new register allocation code -- until here --
-% \let\maxgroups\thr@@ % maximum three groups of instruments or choirs [version 1.15] moved to later, using \setmaxgroups
-\newcount\group@no
-
-%%% [version 1.15] new register allocation code -- start from here --
-%
-% register allocation for use inside \loop...\if...\repeat
-% (only for plain, but no harm even in case of LaTeX)
-\edef\noexpand@newcount{\noexpand\newcount}%
-\edef\noexpand@newdimen{\noexpand\newdimen}%
-\edef\noexpand@newskip{\noexpand\newskip}%
-%\edef\noexpand@newmuskip{\noexpand\newmuskip}% not used
-%\edef\noexpand@newbox{\noexpand\newbox}% not used
-\edef\noexpand@newtoks{\noexpand\newtoks}%
-%\edef\noexpand@newmarks{\noexpand\newmarks}% not used
-%
-% a shortcut for register allocation routines
-\def\roman@c@{\romannumeral\count@}%
-%
-% some registers (i@n, b@x, b@z, c@x, d@x, e@x, s@x, s@Y)
-% should be allocated by \newdimen (for id 0...5) and \newskip (for id 6...11)
-% because T.114 and earlier did so and for the compatibility to Stanislav
-% Kneifl's musixps.tex 0.92a.
-% And again \newdimen (for id>11), because both \dimen and \skip are
-% applicable but \dimen uses less memory in case of >255 on e-TeX.
-\def\noexpand@newdimsk{%
- \ifnum\count@<7 \let\@@newdimsk=\noexpand@newdimen
- \else\ifnum\count@<13 \let\@@newdimsk=\noexpand@newskip
- \else\let\@@newdimsk=\noexpand@newdimen
- \fi\fi \@@newdimsk}%
-%
-% and some other registers (c@z, d@z, e@z, f@z, g@z)
-% should be allocated by \newskip (for id 0...11) and \newdimen (for id>11)
-% for the same reason of above.
-\def\noexpand@newskdim{%
- \ifnum\count@<13 \let\@@newskdim=\noexpand@newskip
- \else \let\@@newskdim=\noexpand@newdimen
- \fi \@@newskdim}%
-%
-% registers for instrument
-\newdimen\interinstrument % moved from "distance between instruments" to here
-\def\setmaxinstruments#1{%
- \ifnum#1>\@oldmaxinstruments
- \chardef\maxinstruments=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxinstruments=\@c
- \fi
- \count@\@oldmaxinstruments\loop
- \advance\count@ by\@ne
- %
- \expandafter \let \csname interinstrument\roman@c@\endcsname \interinstrument
- \expandafter\def\csname interfacteur\roman@c@\endcsname{\interfacteur}% RDT 1.26
- %
- % altitude
- \expandafter \noexpand@newskip \csname k@i\roman@c@\endcsname
- %
- % InterNote
- \expandafter \noexpand@newdimsk \csname i@n\roman@c@\endcsname
- %
- % beam horizontal positions: x=start, z=end, 8th-64th beams
- \expandafter \noexpand@newdimsk \csname b@x\roman@c@\endcsname
- \expandafter \noexpand@newdimsk \csname b@z\roman@c@\endcsname
- \expandafter \noexpand@newdimsk \csname c@x\roman@c@\endcsname
- \expandafter \noexpand@newskdim \csname c@z\roman@c@\endcsname
- \expandafter \noexpand@newdimsk \csname d@x\roman@c@\endcsname
- \expandafter \noexpand@newskdim \csname d@z\roman@c@\endcsname
- \expandafter \noexpand@newdimsk \csname e@x\roman@c@\endcsname
- \expandafter \noexpand@newskdim \csname e@z\roman@c@\endcsname
- %
- % pentes des poutres ( entier de -9 a +9 ) (slopes of the beams)
- % multiplicite des poutres ( de -5 a +5 . 0= inactive ) (multiplicity of the beams)
- \expandafter \noexpand@newcount \csname b@p\roman@c@\endcsname
- \expandafter \noexpand@newcount \csname b@n\roman@c@\endcsname
- %
- % Number of Portees
- \expandafter \noexpand@newcount \csname n@p\roman@c@\endcsname
- \csname n@p\roman@c@\endcsname\@ne
- %
- % Actual Signs
- \expandafter \noexpand@newcount \csname a@s\roman@c@\endcsname
- %
- % Old Signs
- \expandafter \noexpand@newcount \csname o@s\roman@c@\endcsname
- %
- % ActualCleftoks
- \expandafter \noexpand@newtoks \csname a@c\roman@c@\endcsname
- \csname a@c\roman@c@\endcsname={{\z@}{\z@}{\z@}{\z@}}%
- %
- % OldCleftoks
- \expandafter \noexpand@newtoks \csname o@c\roman@c@\endcsname
- %
- % MeterToks
- \expandafter \noexpand@newtoks \csname m@t\roman@c@\endcsname
- %
- % staffsize
- \expandafter \let \csname staffspacing\roman@c@\endcsname \@ne
- %
- % text, lyrics, free positioning of chars
- \expandafter \let \csname T@R\roman@c@\endcsname \z@
- %
- % preset clef symbols
- \expandafter \let \csname treblec@s\roman@c@\endcsname \z@
- \expandafter \let \csname altoc@s\roman@c@\endcsname \z@
- \expandafter \let \csname bassc@s\roman@c@\endcsname \z@
- %
- % preset default staff lines as 5
- \expandafter \let \csname n@l\roman@c@\endcsname \fiv@
- %
- \ifnum\count@<\maxinstruments\repeat
- \expandafter\message\expandafter{maxinstruments=\the\maxinstruments}%
- \chardef\@oldmaxinstruments=\maxinstruments\relax%
- \normalnotesize\resetlayout
- \fi
-}%
-%
-% registers for 128th beam
-\def\setmaxcxxviiibeams#1{%
- \ifnum#1>\maxinstruments
- \errmessage{The number of 128th beam must not exceed maxinstruments}%
- \else
- \ifnum#1>\@oldmaxcxxviiibeams
- \chardef\maxcxxviiibeams=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxcxxviiibeams=\@c
- \fi
- \count@\@oldmaxcxxviiibeams \loop
- \advance\count@ by\@ne
- \expandafter \noexpand@newdimen \csname f@x\roman@c@\endcsname
- \expandafter \noexpand@newskdim \csname f@z\roman@c@\endcsname
- \ifnum\count@<\maxcxxviiibeams\repeat
- \expandafter\message\expandafter{max128beams=\the\maxcxxviiibeams}%
- \chardef\@oldmaxcxxviiibeams=\maxcxxviiibeams\relax%
- \fi
- \fi
-}%
-%
-% registers for 256th beam
-\def\setmaxcclvibeams#1{%
- \ifnum#1>\maxcxxviiibeams
- \errmessage{The number of 256th beam must not exceed the number of 128th beam}%
- \else
- \ifnum#1>\@oldmaxcclvibeams
- \chardef\maxcclvibeams=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxcclvibeams=\@c
- \fi
- \count@\@oldmaxcclvibeams \loop
- \advance\count@ by\@ne
- \expandafter \noexpand@newdimen \csname g@x\roman@c@\endcsname
- \expandafter \noexpand@newskdim \csname g@z\roman@c@\endcsname
- \ifnum\count@<\maxcclvibeams\repeat
- \expandafter\message\expandafter{max256beams=\the\maxcclvibeams}%
- \chardef\@oldmaxcclvibeams=\maxcclvibeams\relax%
- \fi
- \fi
-}%
-%
-% registers for choir group
-\def\setmaxgroups#1{%
- \ifnum#1>\@oldmaxgroups
- \chardef\maxgroups=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxgroups=\@c
- \fi
- \count@\@oldmaxgroups \loop
- \advance\count@ by\@ne
- % Altitude
- \expandafter \noexpand@newskip \csname g@b\roman@c@\endcsname
- % Height
- \expandafter \noexpand@newskip \csname g@h\roman@c@\endcsname
- %
- \expandafter \let \csname lowersonginstrum\roman@c@\endcsname \maxdimen
- \expandafter \let \csname uppersonginstrum\roman@c@\endcsname \z@
- \ifnum\count@<\maxgroups\repeat
- \expandafter\message\expandafter{maxgroups=\the\maxgroups}%
- \chardef\@oldmaxgroups=\maxgroups\relax%
- \fi
-}%
-%
-% registers for slur
-\def\setmaxslurs#1{%
- \ifnum#1>\@oldmaxslurs
- \chardef\maxslurs=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxslurs=\@c
- \fi
- \count@\@oldmaxslurs \loop
- \advance\count@ by\@ne
- %
- % horizontal start position of slur
- \expandafter \noexpand@newdimsk \csname s@x\roman@c@\endcsname
- %
- % sense u,d and x (flag) for pending slurs
- \expandafter \noexpand@newtoks \csname s@s\roman@c@\endcsname
- \csname s@s\roman@c@\endcsname={x}%
- %
- % vertical offset of slur
- \expandafter \noexpand@newdimsk \csname s@Y\roman@c@\endcsname
- %
- % altportee of slur
- \expandafter \noexpand@newskip \csname s@a\roman@c@\endcsname
- %
- % vertical start position of slur [steps of internote]
- \expandafter \noexpand@newcount \csname s@y\roman@c@\endcsname
- %
- % instrument number of that slur (to retrieve internote)
- \expandafter \noexpand@newcount \csname s@N\roman@c@\endcsname
- %
- % vertical end position of slur [steps of internote], used from
- % \breakslur. the value \maxdimen is used to decide, if
- % \breakslur is used or not (flag)
- \expandafter \noexpand@newcount \csname s@z\roman@c@\endcsname
- \csname s@z\roman@c@\endcsname\maxdimen
- %
- %++ickd: dotted indicator for pending slurs
- \expandafter \noexpand@newtoks \csname s@d\roman@c@\endcsname
- %
- \ifnum\count@<\maxslurs\repeat
- \expandafter\message\expandafter{maxslurs=\the\maxslurs}%
- \chardef\@oldmaxslurs=\maxslurs\relax%
- \fi
-}%
-%
-% registers for trill (MusiXTeX-type trill only. Legacy \trillC and
-% \TrillC are out of the scope.)
-\def\setmaxtrills#1{%
- \ifnum#1>\@oldmaxtrills
- \chardef\maxtrills=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxtrills=\@c
- \fi
- \count@\@oldmaxtrills \loop
- \advance\count@ by\@ne
- % starting horizontal pos
- \expandafter \noexpand@newskip \csname tr@x\roman@c@\endcsname
- \csname tr@x\roman@c@\endcsname\maxdimen\relax
- % heading of trill
- \expandafter \noexpand@newtoks \csname tr@sw\roman@c@\endcsname
- % height of trill
- \expandafter \noexpand@newskip \csname tr@y\roman@c@\endcsname
- \ifnum\count@<\maxtrills\repeat
- \expandafter\message\expandafter{maxtrills=\the\maxtrills}%
- \chardef\@oldmaxtrills=\maxtrills\relax%
- \fi
-}%
-%
-% registers for octave line
-\def\setmaxoctlines#1{%
- \ifnum#1>\@oldmaxoctlines
- \chardef\maxoctlines=#1\relax
- \ifnum#1>\@c
- \errmessage{The maximum reference number of elements is limited to \the\@c}
- \chardef\maxoctlines=\@c
- \fi
- \count@\@oldmaxoctlines \loop
- \advance\count@ by\@ne
- % starting horizontal pos
- \expandafter \noexpand@newskip \csname o@x\roman@c@\endcsname
- \csname o@x\roman@c@\endcsname\maxdimen\relax
- % height of octline
- \expandafter \noexpand@newskip \csname o@y\roman@c@\endcsname
- % sense of octline
- \expandafter \noexpand@newtoks \csname o@sw\roman@c@\endcsname
- \ifnum\count@<\maxoctlines\repeat
- \expandafter\message\expandafter{maxoctlines=\the\maxoctlines}%
- \chardef\@oldmaxoctlines=\maxoctlines\relax%
- \fi
-}%
-%
-\chardef\@oldmaxinstruments=\z@
-\chardef\@oldmaxcxxviiibeams=\z@
-\chardef\@oldmaxcclvibeams=\z@
-\chardef\@oldmaxgroups=\z@
-\chardef\@oldmaxslurs=\z@
-\chardef\@oldmaxtrills=\z@
-\chardef\@oldmaxoctlines=\z@
-%
-% actual setup (=register allocation) of the maximum element numbers
-% should be done after fonts definition.
-%
-%%% [version 1.15] new register allocation code -- until here --
-
-
-%%% fonts
-
-\newif\iflongDCfontnames
-\newif\iflongECfontnames
-\longDCfontnamesfalse % obsolete
-\longECfontnamesfalse % to use EC fonts, \input musixec
-\def\fontid{cm} % deprecated but used in pmx.tex
-
-%%
-% Small bold sans serif fonts % version 1.33 RDT
-%%
-
-\font\threedc=phvb8t at 3pt
-\font\fourdc=phvb8t at 4pt
-\font\fivedc=phvb8t at 5pt
-\font\sixdc=phvb8t at 6pt
-
-%%
-% small ss fonts % version 1.37 RDT
-%%
-\font\fourss=phvr8t at 4pt
-\font\fivess=phvr8t at 5pt
-\font\sixss=phvr8t at 6pt
-
-%%
-% Seven point fonts
-%%
-
-\font\sevenrm=cmr7
-\font\sevenbf=cmbx7
-\font\sevenit=cmti7
-\font\sevenbi=cmbxti10 at 7pt % version 1.22 RDT
-\font\sevensc=cmcsc10 at 7pt
-\font\sevenss=phvr8t at 7pt % version 1.29 RDT
-\font\sevendc=phvb8t at 7pt
-
-
-%%
-% Eight point fonts
-%%
-
-\font\eightrm=cmr8
-\font\eightbf=cmbx8
-\font\eightit=cmti8
-\font\eightbi=cmbxti10 at 8pt % version 1.22 RDT
-\font\eightsc=cmcsc10 at 8pt
-\font\eightss=phvr8t at 8pt % version 1.29 RDT
-\font\eightdc=phvb8t at 8pt
-
-%%
-% Nine point fonts
-%%
-
-\font\ninerm=cmr9
-\font\ninebf=cmbx9
-\font\nineit=cmti9
-\font\ninebi=cmbxti10 at 9pt % version 1.22 RDT
-\font\ninesc=cmcsc10 at 9pt
-\font\niness=phvr8t at 9pt % version 1.29 RDT
-\font\ninedc=phvb8t at 9pt
-
-%%
-% Ten point fonts
-%%
-
-\font\tenrm=cmr10
-\font\tenbf=cmbx10
-\font\tenit=cmti10
-\font\tenbi=cmbxti10 % version 1.22 RDT
-\font\tensc=cmcsc10
-\font\tenss=phvr8t % version 1.29 RDT
-\font\tendc=phvb8t
-
-%%
-% Eleven point fonts
-%%
-\font\elevenrm=cmr9 scaled \magstephalf
-\font\elevenbf=cmbx9 scaled \magstephalf
-\font\elevenit=cmti9 scaled \magstephalf
-\font\elevenbi=cmbxti10 at 11pt % version 1.22 RDT
-\font\elevensc=cmcsc10 at 11pt
-\font\elevenss=phvr8t at 11pt % version 1.29 RDT
-\font\elevendc=phvb8t at 11pt
-
-%%
-% Twelve point fonts
-%%
-\font\twelverm=cmr12
-\font\twelvebf=cmbx12
-\font\twelveit=cmti12
-\font\twelvebi=cmbxti10 scaled \magstep1 % version 1.22 RDT
-\font\twelvesc=cmcsc10 scaled \magstep1
-\font\twelvess=phvr8t scaled \magstep1 % version 1.29 RDT
-\font\twelvedc=phvb8t scaled \magstep1
-
-% 14pt fonts
-\font\frtrm=cmr12 scaled \magstep1
-\font\frtbf=cmbx12 scaled \magstep1
-\font\frtit=cmti12 scaled \magstep1
-\font\frtsc=cmcsc10 scaled \magstep2
-\font\frtbi=cmbxti10 scaled \magstep2 % version 1.22 RDT
-\font\frtss=phvr8t scaled \magstep2 % version 1.29 RDT
-\font\frtdc=phvb8t scaled \magstep2
-%
-% 17pt
-\font\svtrm=cmr12 scaled \magstep2
-\font\svtbf=cmbx12 scaled \magstep2
-\font\svtit=cmti12 scaled \magstep2
-\font\svtsc=cmcsc10 scaled \magstep3
-\font\svtbi=cmbxti10 scaled \magstep3
-\font\svtdc=phvb8t scaled \magstep3
-%
-% 20pt
-\font\twtyrm=cmr12 scaled \magstep3
-\font\twtybf=cmbx12 scaled \magstep3
-\font\twtyit=cmti12 scaled \magstep3
-\font\twtysc=cmcsc10 scaled \magstep4
-\font\twtybi=cmbxti10 scaled \magstep4 % version 1.22 RDT
-\font\twtydc=phvb8t scaled \magstep4
-%
-% 25pt
-\font\twfvrm=cmr12 scaled \magstep4
-\font\twfvbf=cmbx12 scaled \magstep4
-\font\twfvit=cmti12 scaled \magstep4
-\font\twfvsc=cmcsc10 scaled \magstep5
-\font\twfvbi=cmbxti10 scaled \magstep5 % version 1.22 RDT
-%
-%%
-%%
-% Define five font families
-%%
-\def\tinytype{%
- \let\rm\sevenrm
- \let\bf\sevenbf
- \let\it\sevenit
- \let\bi\sevenbi
- \let\sc\sevensc
- \rm}
-\def\smalltype{%
- \let\rm\eightrm
- \let\bf\eightbf
- \let\it\eightit
- \let\bi\eightbi
- \let\sc\eightsc
- \rm}
-\def\Smalltype{%
- \let\rm\ninerm
- \let\bf\ninebf
- \let\it\nineit
- \let\bi\ninebi
- \let\sc\ninesc
- \rm}
-\def\normtype{%
- \let\rm\tenrm
- \let\bf\tenbf
- \let\it\tenit
- \let\bi\tenbi
- \let\sc\tensc
- \rm}
-\def\medtype{%
- \let\rm\twelverm
- \let\bf\twelvebf
- \let\it\twelveit
- \let\bi\twelvebi
- \let\sc\twelvesc
- \rm}
-%
-% four font families at big/Big/BIg/BIG sizes
-% default is \bf here and in musixec, but \sc in musixplt, \rm in musixtmr
-%
-\def\bigfont{%
- \let\rm\frtrm
- \let\bf\frtbf
- \let\it\frtit
- \let\sc\frtsc
- \let\bi\frtbi
- \bf}
-\def\Bigfont{%
- \let\rm\svtrm
- \let\bf\svtbf
- \let\it\svtit
- \let\sc\svtsc
- \let\bi\svtbi
- \bf}
-\def\BIgfont{%
- \let\rm\twtyrm
- \let\bf\twtybf
- \let\it\twtyit
- \let\sc\twtysc
- \let\bi\twtybi
- \bf}
-\def\BIGfont{%
- \let\rm\twfvrm
- \let\bf\twfvbf
- \let\it\twfvit
- \let\sc\twfvsc
- \let\bi\twfvbi
- \bf}
-%%
-% large fonts for titles
-% (If you prefer Roman, use \rm)
-% (If you prefer small-caps, use \sc)
-%
-\def\bigtype{\bigfont\bf} % default for "big" fonts is \bf
-\def\Bigtype{\Bigfont\bf}
-\def\BIgtype{\BIgfont\bf}
-\def\BIGtype{\BIGfont\bf}
-%
-%
-% Bold italic fonts for dynamic markings.
-%%
-
-\font\ppfftwelve=cmbxti10 at 8pt % version 1.17 RDT
-\font\ppffsixteen=cmbxti10
-\font\ppfftwenty=cmbxti10 scaled \magstep1
-\font\ppfftwentyfour=cmbxti10 scaled \magstep2
-\font\ppfftwentynine=cmbxti10 scaled \magstep3
-
-\def\ppff{\ifdim\internote<\p@seven6\Internote\tinyppff% version 1.17 RDT
-\else\ifdim\internote<.95\Internote\smallppff%
-\else\ifdim\internote<1.19\Internote\normppff%
-\else\medppff\fi\fi\fi}%
-
-
-\def\tinydyn{\let\ppff\ppfftwelve} % version 1.18 RDT
-\def\smalldyn{\let\ppff\ppffsixteen}
-\def\normdyn{\let\ppff\ppfftwenty}
-\def\meddyn{\let\ppff\ppfftwentyfour}
-
-\font\tabfntthirteen=phvb8t at 5pt % version 1.37 RDT
-\font\tabfntsixteen=phvb8t at 6pt
-\font\tabfnttwenty=phvb8t at 7pt
-\font\tabfnttwentyfour=phvb8t at 9pt
-\font\tabfnttwentynine=phvb8t at 11pt
-
-\font\musiceleven=musix11
-\font\musicthirteen=musix13
-\font\musicsixteen=musix16
-\font\musictwenty=musix20
-\font\musictwentyfour=musix24
-\font\musictwentynine=musix29
-
-
-%
-% tt fonts needed by musixsty % version 1.22 RDT
-%
-\font\eighttt=cmtt8
-\font\ninett=cmtt9
-\font\tentt=cmtt10
-\font\twelvett=cmtt12
-\font\frttt=cmtt12 scaled \magstep1
-\font\svttt=cmtt12 scaled \magstep2
-\font\twtytt=cmtt12 scaled \magstep3
-\font\twfvtt=cmtt12 scaled \magstep4
-%
-%
-% sl fonts needed by musixsty % version 1.22 RDT
-%
-\font\eightsl=cmsl8
-\font\ninesl=cmsl9
-\font\tensl=cmsl10
-\font\twelvesl=cmsl12
-\font\frtsl=cmsl12 scaled \magstep1
-\font\svtsl=cmsl12 scaled \magstep2
-\font\twtysl=cmsl12 scaled \magstep3
-\font\twfvsl=cmsl12 scaled \magstep4
-
-% piano brackets, slides, guitar chords, lines, (de)crescendi, circles
-
-\font\mxsps=musixspx
-
-
-%%%
-%
-% Slur macro package for MusicTeX
-%
-% Ross Mitchell, February 20 1993
-%
-%%%
-%%
-% Load the font set
-%
-% Nomenclature: slur[p][size]
-% [p] : sign of slur gradient; u=positive, d=negative, z=zero
-%%
-
-\font\slurz=xslz20
-\font\slurzd=xslz20d %+ickd
-
-\font\slurueleven=xslu11 % slur up eleven points
-\font\sluruthirteen=xslu13
-\font\slurusixteen=xslu16
-\font\slurutwenty=xslu20
-\font\slurutwentyfour=xslu24
-\font\slurutwentynine=xslu29
-
-\font\slurdeleven=xsld11 % slur down eleven points
-\font\slurdthirteen=xsld13
-\font\slurdsixteen=xsld16
-\font\slurdtwenty=xsld20
-\font\slurdtwentyfour=xsld24
-\font\slurdtwentynine=xsld29
-
-%++ickd same for dotted slurs
-\font\sluruelevend=xslu11d % slur up eleven points
-\font\sluruthirteend=xslu13d
-\font\slurusixteend=xslu16d
-\font\slurutwentyd=xslu20d
-\font\slurutwentyfourd=xslu24d
-\font\slurutwentynined=xslu29d
-
-\font\slurdelevend=xsld11d % slur down eleven points
-\font\slurdthirteend=xsld13d
-\font\slurdsixteend=xsld16d
-\font\slurdtwentyd=xsld20d
-\font\slurdtwentyfourd=xsld24d
-\font\slurdtwentynined=xsld29d
-%++ickd
-
-%!these fonts can't be used with highres printers (>~800dpi)
-% for these printers comes a interface to PS using DVIPS (PS-Tricks)
-% and \special{}-commands next time (patience is a virtue ...)
-
-\font\xtie=xslhz20
-\font\xtied=xslhz20d %+ickd
-
-\font\hslurdeleven=xslhd11 % slur half down eleven points
-\font\hslurdthirteen=xslhd13
-\font\hslurdsixteen=xslhd16 % slur half down sixteen points
-\font\hslurdtwenty=xslhd20
-\font\hslurdtwentyfour=xslhd24
-\font\hslurdtwentynine=xslhd29
-
-\font\hslurueleven=xslhu11
-\font\hsluruthirteen=xslhu13
-\font\hslurusixteen=xslhu16
-\font\hslurutwenty=xslhu20
-\font\hslurutwentyfour=xslhu24
-\font\hslurutwentynine=xslhu29
-
-%++ickd same for dotted slurs
-\font\hslurdelevend=xslhd11d % slur half down eleven points
-\font\hslurdthirteend=xslhd13d
-\font\hslurdsixteend=xslhd16d % slur half down sixteen points
-\font\hslurdtwentyd=xslhd20d
-\font\hslurdtwentyfourd=xslhd24d
-\font\hslurdtwentynined=xslhd29d
-
-\font\hsluruelevend=xslhu11d
-\font\hsluruthirteend=xslhu13d
-\font\hslurusixteend=xslhu16d
-\font\hslurutwentyd=xslhu20d
-\font\hslurutwentyfourd=xslhu24d
-\font\hslurutwentynined=xslhu29d
-%++ickd
-
-% number of pending slurs
-
-\newcount\N@s
-
-% [version 1.15] moved out to the new register allocation code (except for \s@Y)
-% horizontal start position of slur
-% \newdimen\s@xi
-% sense u,d and x (flag) for pending slurs
-% \newtoks\s@si \s@si={x}
-% vertical offset of slur
-\newdimen\s@Y % this register is for common use
-% \newdimen\s@Yi
-% altportee of slur
-% \newskip\s@ai
-% vertical start position of slur [steps of internote]
-% \newcount\s@yi
-% instrument number of that slur (to retrieve internote)
-% \newcount\s@Ni
-% vertical end position of slur [steps of internote], used from \breakslur
-% the value \maxdimen is used to decide, if \breakslur is used or not (flag)
-% \newcount\s@zi \s@zi\maxdimen
-%++ickd: dotted indicator for pending slurs
-% \newtoks\s@di % moved out to the new register allocation code
-%++ickd
-
-\def\roman@n@i{\romannumeral\n@i\endcsname}
-
-%
-% [version 1.15] make slurs independent from \maxinstruments
-\def\test@slurnum{%
- \ifnum\n@i<\z@ \n@i\@c \fi
- \ifnum\n@i<\maxslurs \else
- \count@\maxslurs \advance\count@\m@ne
- \errmessage{Wrong slur reference number \the\n@i! (valid: 0 to \the\count@)}% [version 1.15]
- \n@i\z@% [version 1.15]
- \fi
- \advance\n@i\@ne}%
-%
-\def\s@l@ctslur#1\relax{%
- \n@i#1\relax\test@slurnum% [version 1.15] make it independent from beams
- \edef\s@a{\csname s@a\roman@n@i}% dimen (altportee)
- \edef\s@x{\csname s@x\roman@n@i}% dimen (hor start pos)
- \edef\s@y{\csname s@y\roman@n@i}% count (startnote [internote])
- \edef\s@N{\csname s@N\roman@n@i}% count (instrument number)
- \edef\s@z{\csname s@z\roman@n@i}% count (endnote [internote])
- \edef\s@Y{\csname s@Y\roman@n@i}% dimen (voffset)
- \edef\s@d{\csname s@d\roman@n@i}% token (dotted) +ickd
- \edef\s@s{\csname s@s\roman@n@i}}% token (sense)
-
-% get current position (returns the dimen in \y@v)
-% (\lin@pos starts behind signatures!)
-
-\newdimen\lin@pos
-\def\getcurpos{\y@v\lin@pos \advance\y@v\locx@skip}
-
-% \n@i vertical offset of first note (number); temporary
-% \n@ii vertical offset of second note (number); temporary
-% \n@iii meet note
-% \n@iv first note
-% \n@v temp. character
-% \n@vi last note
-% \n@vii right halfslur length
-% \n@viii don't touch
-% \y@ complete length of slur - allowed overlap (4pt), temp. length
-% \y@i abs. height of slur
-% \y@ii complete length of slur
-% \y@iii old maxslurwidth
-% \y@iv don't touch
-% \y@v don't touch
-
-% \@sense{u,d}
-%
-% if \curve (\midslur) is used
-% \@meet{}
-% \l@length{}
-% \r@length{}
-
-% #1 start pitch #2 end pitch #3 length #4 right hoffset
-
-\newcount \meet@minus@n@iv
-\def\writ@slur#1#2#3#4{\check@staff % modified: sld... into slurd... 12.04.95 ick
- \let\slz\slurz% inserted
- \let\slzd\slurzd% inserted for dotted slurs +ickd
- \ifx\s@N\undefined \relax % \let\internote\Internote
- \else
- \edef\internote{\csname i@n\romannumeral\s@N\endcsname}%
- \fi
-% \immediate\write16{\noexpand\writ@slur internote:\the\internote}%
- \n@iv#1%
- \n@vi#2%
-%%
-% Get note vertical offsets
-% \n@iv= vertical offset of first note(n@i temp);
-% \n@vi= vertical offset of second note(n@ii temp);
-% \y@i = reference height of first note (pt);
-%
-% Define adequate fonts for this slur, according to the value of \internote
-%
- \ifdim\internote>3.5pt
- \let\sld\slurdtwentynine \let\slu\slurutwentynine
- \let\hslurd\hslurdtwentynine \let\hsluru\hslurutwentynine
- \let\sldd\slurdtwentynined \let\slud\slurutwentynined % +ickd
- \let\hslurdd\hslurdtwentynined \let\hslurud\hslurutwentynined %+ickd
- \def\@stepwidth{3.6pt}%
- \else \ifdim\internote>2.9pt
- \let\sld\slurdtwentyfour \let\slu\slurutwentyfour
- \let\hslurd\hslurdtwentyfour \let\hsluru\hslurutwentyfour
- \let\sldd\slurdtwentyfourd \let\slud\slurutwentyfourd % +ickd
- \let\hslurdd\hslurdtwentyfourd \let\hslurud\hslurutwentyfourd %+ickd
- \def\@stepwidth{3.0pt}%
- \else \ifdim\internote>2.3pt
- \let\sld\slurdtwenty \let\slu\slurutwenty
- \let\hslurd\hslurdtwenty \let\hsluru\hslurutwenty
- \let\sldd\slurdtwentyd \let\slud\slurutwentyd % +ickd
- \let\hslurdd\hslurdtwentyd \let\hslurud\hslurutwentyd %+ickd
- \def\@stepwidth{2.5pt}%
- \else \ifdim\internote>1.8pt
- \let\sld\slurdsixteen \let\slu\slurusixteen
- \let\hslurd\hslurdsixteen \let\hsluru\hslurusixteen
- \let\sldd\slurdsixteend \let\slud\slurusixteend % +ickd
- \let\hslurdd\hslurdsixteend \let\hslurud\hslurusixteend %+ickd
- \def\@stepwidth{2pt}%
- \else \ifdim\internote>1.4pt
- \let\sld\slurdthirteen \let\slu\sluruthirteen
- \let\hslurd\hslurdthirteen \let\hsluru\hsluruthirteen
- \let\sldd\slurdthirteend \let\slud\sluruthirteend % +ickd
- \let\hslurdd\hslurdthirteend \let\hslurud\hsluruthirteend %+ickd
- \def\@stepwidth{1.6pt}%
- \else
- \let\sld\slurdeleven \let\slu\slurueleven
- \let\hslurd\hslurdeleven \let\hsluru\hslurueleven
- \let\sldd\slurdelevend \let\slud\sluruelevend % +ickd
- \let\hslurdd\hslurdelevend \let\hslurud\hsluruelevend %+ickd
- \def\@stepwidth{1.28pt}%
- \fi\fi\fi\fi\fi
-%
-% End choice of font
-%
- \n@i\n@iv \pl@base % \y@i = initial height
- \n@ii\n@vi
-%
-% Select appropriate font
-% Set \n@i to the vertical difference index
-% setup \n@iii(meetnote)
-%
- \ifnum\n@ii=\n@i % Slope is zero
- \n@iii\n@i
- \if u\@sense \advance\n@iii\thr@@ \else \advance\n@iii-\thr@@ \fi
- \def\@slope{z}\n@i\z@
- \else
- \ifnum\n@ii<\n@i % Slope is negative
- \C@csl\n@i\n@ii\def\@slope{d}% % compute @meet height for slurs
- \else % Slope is positive
- \C@csl\n@ii\n@i\def\@slope{u}\n@i\n@ii % compute @meet height for slurs
- \fi
- \fi
-%%
-% Select the required font and load the width parameters
-%
-% Font specific parameters
-% \y@iii is the horizontal width of the longest slur in the fonts
-% This parameter is loaded from the tfm \fontdimen parameter 5
-% respectively
-%%
- \y@iii\fontdimen\fiv@\csname sl\@slope\endcsname
- \y@ii#3%
-%
-% \n@i contains slope (difference between start and end note)
-%
-% force longslurs if (!!! no check, be careful !!!)
-% long slurs are at least 20[16] pt long) !!! Perhaps will change again !!!
-% - difference between first note and last note > 8
-% - if \curve or \midslur is def'd
-% - if \invertslur is used
-%
- \ifnum\n@i>\@ight \y@iii\z@ \fi % RMslurs limit 8 steps
- \ifx\@meet\empty \else\y@iii\z@ \fi
- \ifx\@invert\@ne \y@iii\z@ \fi
- \ifdim\y@ii>\y@iii % start of longslurs
-%
-% setup meet height of slur
-%
- \ifx\empty\@meet
-% \immediate\write16{\noexpand\@meet was empty.}%
- \else
- \n@iii\n@iv
- \advance\n@iii\@meet
- \fi
- \edef\@meet{\the\n@iii}%
-% \immediate\write16{\noexpand\@meet = \@meet.}%
-%
-% allow a little bit overlap (2*2pt) for nicer outlook (as longer as nicer)
-% clip to extremities
-% compute the max length in fontunits (\count@)
-%
- \y@\y@ii \advance\y@\f@ur\p@ \n@v\y@
- \sp@pt\t@n % 10pt steps
- \advance\n@v-\f@ur % first brace is 20pt wide (perhaps 10pt is better ??)
- \min@n@v\z@
- \max@n@v\fourt@@n % largest braces are 2*((90pt-20pt)/10pt)
- \count@\n@v % max length
-%
-% compute the length of the starting and ending halfslurs
-% in case, that curve is not def'd
-%
- \ifx\empty\l@length
- \divide\n@v\tw@ % 2 halfslurs
- \n@vii\n@v
- \n@ii\n@v
- \def@lr
-%
-% first try to reach nicer long slurs without using \curve
-%
- \if z\@slope % leave ties untouched
- \else
- \ifnum\count@>\z@ % only for long slurs
- \multiply\n@v\tw@
- \if\@slope\@sense % uu,dd advance l@length ud,du advance r@length
- \s@adjust\n@vii\n@ii
- \else
- \s@adjust\n@ii\n@vii
- \fi
- \def@lr
- \fi
- \fi
-%
-% adjust \curve parameters, if neccesary
-%
- \else
- \n@vii\l@length
- \n@ii\r@length
- \loop
- \count@\n@vii
- \advance\count@\n@ii
- \ifnum\count@>\n@v
- \advance\n@vii\m@ne \ifnum\n@vii<\z@ \n@vii\z@ \fi
- \advance\n@ii\m@ne \ifnum\n@ii<\z@ \n@ii\z@ \fi
- \repeat
- \def@lr
- \fi
-%
-% clip to extremity heights (max slur height= 16\internote)
-%
- \C@csm\n@iv
- \C@csm\n@vi
-%
-% change sense and offset behind linebreak and reset flag
-%
- \ifx\@invert\@ne \ifdim\s@x=\z@
- \@invsl \let\@invert\empty \s@Y-\s@Y
- \fi \fi
-%
-% compute final height and put the box
-%
-% \immediate\write16{ before @meet:\noexpand\y@i=\the\y@i}%
-% \message{ was \noexpand\n@iv\the\n@iv}%
-% \message{ was \noexpand\n@vi\the\n@vi}%
-%
- \meet@minus@n@iv=\@meet
- \advance\meet@minus@n@iv-\n@iv
-% \immediate\write16{\noexpand\meet@minus@n@iv=\the\meet@minus@n@iv}%
-% \y@i\@meet\internote % \y@i final height
-% change from DT for staffspacing not standard
- \y@i \@stepwidth % part proportional to slur font size
- \multiply \y@i \meet@minus@n@iv
- \advance\y@i \n@iv\internote % was done by \pl@base...
-%
- \C@sof % add the voffsets
- \llap{\raise\y@i\hbox\@to\y@ii{%
-%
-% compute the beginning and ending halfslur chars
-% n@i firstslur
-% n@ii lastslur
-% n@v character
-%
- \C@cc\n@iv\n@i\n@ii
- \C@cc\n@vi
-%
- \n@v\l@length
- \multiply\n@v\sixt@@n % 16 different heigths
- \advance\n@v\n@i % offset to length
- \advance\n@v\@cxxviii % offset to starthalfslur
- \@boX \box\ch@box\hss% put starthalfslur
- \n@v\r@length
- \multiply\n@v\sixt@@n
- \advance\n@v\n@ii
-%
-% put ending halfslur in box
-%
- \ifx\@invert\@ne \@invsl \fi
- \@boX
-%
-% put the middle extension (could be replaced by []rule)
-%
- \ifdim\y@ii>\p@ne\p@
- \n@v\y@ii
- \sp@pt\f@ur % 4pt steps
- \ifx\@invert\@ne
- \divide\n@v\tw@
- \if u\@sense \advance\n@v\@cxxviii \fi
- \mid@box\hss\hss% don't ask me why
- \if u\@sense \advance\n@v-\@cxxviii \else \advance\n@v\@cxxviii \fi
- \mid@box%
- \else
- \if d\@sense \advance\n@v\@cxxviii \fi
- \mid@box \fi \fi
-%
-% place the end of slur and kern right horizontal offset
-%
- \hss\box\ch@box}\kern#4}%
-%
-% reset slurcurve
-%
- \global\let\@meet\empty
- \let\l@length\empty
- \let\@invert\empty
-%
-%>>>>>> start of RM slurs
-% Set \n@v to the width index in the slur font table
-%
- \else
- \ifdim\y@ii<\@ight\p@ \y@ii\@ight\p@ \fi % Clip to extremities
- \y@\y@ii
- \advance\y@-\si@\p@
- \n@v\y@
- \sp@pt\f@ur
-%
-% Find decimal character count into font table
-% (a) Zero height slurs: charnum= width index
-% (b) Others: charnum= 16*(height index - 1) + width index
-% Place the character count in \n@v
-%
- \if z\@slope
- \if d\@sense \advance\n@v\@liv \fi % \@liv(=54) offset to slurchars
- \else
- \advance\n@i\m@ne % height index - 1
- \multiply\n@i\sixt@@n % 16*(height index - 1)
- \advance\n@v\n@i % 16*(height index - 1) + width index
- \if d\@sense \advance\n@v\@cxxviii \fi
- \fi
-%
-% Place the slur character
-%
- \C@sof
- \ifnum\n@v>255 % to avoid diags in case of...
- \n@v=255\relax
- \fi
- \ifnum\n@v<0 % to avoid diags in case of...
- \n@v=0\relax
- \fi
-%
- \llap{\raise\y@i\hbox\@to\y@ii{%
-%-ickd \hss\csname sl\@slope\endcsname\char\n@v\hss}\kern#4}%
- \hss\csname sl\@slope\@dotted\endcsname\char\n@v\hss}\kern#4}%
- \fi
-\fi} % end writ@slur
-
-
-\def\sp@pt#1{\divide\n@v65536\divide\n@v#1}
-\def\max@n@v#1{\ifnum\n@v>#1\n@v#1\fi}
-\def\min@n@v#1{\ifnum\n@v<#1\n@v#1\fi}
-
-%-ickd \def\mid@box{\hbox{\xtie\char\n@v}}
-\def\mid@box{%
- \ifnum\n@v>255 % to avoid diags in case of...
- \n@v=255\relax
- \fi
- \ifnum\n@v<0 % to avoid diags in case of...
- \n@v=0\relax
- \fi
-%
- \hbox{\csname xtie\@dotted\endcsname\char\n@v}}
-%-ickd \def\@boX{\setbox\ch@box\hbox{\csname hslur\@sense\endcsname\char\n@v}%
-\def\@boX{%
- \ifnum\n@v>255 % to avoid diags in case of...
- \n@v=255\relax
- \fi
- \ifnum\n@v<0 % to avoid diags in case of...
- \n@v=0\relax
- \fi
-%
- \setbox\ch@box\hbox{\csname hslur\@sense\@dotted\endcsname\char\n@v}%
- \advance\y@ii-\wd\ch@box}
-
-\def\def@lr{\edef\l@length{\the\n@vii}\edef\r@length{\the\n@ii}}
-
-\def\s@adjust#1#2{%
- \ifnum\n@v<\count@ \advance#1\@ne \fi
- \ifnum\n@v>\z@ \advance#1\@ne \advance#2\m@ne
- \ifnum#1>\s@v@n #1\s@v@n \fi \fi}
-
-\def\C@csl#1#2{% compute meet height for slurs
- \if u\@sense \n@iii#1\advance\n@iii\tw@
- \else \n@iii#2\advance\n@iii-\tw@ \fi
- \ifx\@invert\@ne
- \n@iii#1\advance\n@iii-#2\divide\n@iii\tw@ \advance\n@iii#2\fi
- \advance#1-#2}
-
-\def\C@cc#1{% slur = abs(meet-note) - 1
- \n@ii\@meet
- \advance\n@ii-#1%
- \ifnum\n@ii<\z@ \n@ii-\n@ii \fi
- \advance\n@ii\m@ne
- }
-% \ifnum\n@ii<\z@\immediate\write16{Warning: \noexpand\C@cc->\noexpand\n@ii=\the\n@ii}\fi
-% \n@ii\z@} % modeif DT 20-12-97
-
-\def\C@csm#1{% clip to extremity heights (max slur height= 16\internote)
- \n@i\n@iii
- \advance\n@i-#1%
- \ifnum\n@i>\sixt@@n
- \ifnum\n@iii>#1%
- #1\n@iii \advance#1-\sixt@@n
- \else
- #1\n@iii \advance#1\sixt@@n
- \fi
- \fi}
-
-\def\C@sof{\advance\y@i\s@Y % abs. voffset
- \ifx\@Ti\@ne \advance\y@i\s@a \let\@Ti\empty \fi}% call from cutslur
-
-% manual influation on the curve for long slurs
-% must be coded in front of \tslur
-% #1 final height [number, steps of internote, relativ to beginning! note]
-% #2 (length)slope left #3 (length)slope right
-
-\def\curve#1#2#3{\getcurpos % ignore \curve behind a linebreak
- \ifdim\y@v>\@xxxii\p@ \xdef\@meet{#1}\edef\l@length{#2}\edef\r@length{#3}\relax
- \else
-% \message{\noexpand\curve #1#2#3 not expanded}%
- \fi}
-
-% raise (or lower) only the mid of slur
-% #1 final height [number, steps of internote, relativ to beginning! note]
-%! #1 can still be changed to work relativ from default height ???
-
-\def\midslur#1{\getcurpos
- \ifdim\y@v>\@xxxii\p@ \xdef\@meet{#1}\relax
- \else
-% \message{\noexpand\midslur #1 not expanded}%
- \fi}
-
-\let\@meet\empty
-\let\l@length\empty
-\let\r@length\empty
-
-% Liftslur #1 refnumber #2 lift[steps of internote]
-
-\def\Liftslur#1#2{\n@i#1\advance\n@i\@ne \advance\csname s@y\roman@n@i#2}
-
-% breakslur #1 refnumber #2 endheight during linebreak[steps of internote]
-
-\def\breakslur#1#2{\inhgetn@i#2\relax\n@ii\n@i
- \n@i#1\advance\n@i\@ne \global\csname s@z\roman@n@i\n@ii}
-
-% invertslur #1 refnumber
-
-\def\@invsl{\if u\the\s@s \s@s{d}\else \s@s{u}\fi}
-
-\def\invertslur#1{\s@l@ctslur#1\relax
- \if u\the\s@s \global\s@s{D}% change sense and set flag for invertslur
- \else \global\s@s{U}\fi}
-
-% initiate slur #1 reference number #2 start note
-
-\def\isluru{\i@slur\h@lf{1\p@seven\internote}u}% 'normal'
-\def\issluru{\i@slur{1\p@ne}{\p@seven\internote}u}% shorter for accords
-% for beam(ib[l]u) or stem, doesn't work with \stemcut (yet?)
-\def\ibsluru{\y@i\stemfactor\interbeam
- \advance\y@i\h@lf\internote \i@slur1\y@i u}
-\def\islurd{\i@slur\h@lf{-1\p@seven\internote}d}
-\def\isslurd{\i@slur{1\p@ne}{-\p@seven\internote}d}
-\def\ibslurd{\y@i\stemfactor\interbeam
- \advance\y@i\h@lf\internote \y@i-\y@i \i@slur0\y@i d}
-
-% initiate slur at half note width but NO vertical offset (for linkings)
-
-\def\ihsluru{\i@slur\h@lf\z@ u}%
-\def\ihslurd{\i@slur\h@lf\z@ d}%
-
-\let\itieu\issluru
-\let\itied\isslurd
-\def\istieu{\i@slur{1\p@ne}{\qu@rt\internote}u}% shorter for accords
-\def\istied{\i@slur{1\p@ne}{-\qu@rt\internote}d}%
-\let\itenu\istieu
-\let\itenl\istied
-\let\Itenu\istieu
-\let\Itenl\istied
-
-\def\dotted{\let\dott@d\@ne}\let\dott@d\empty %+ickd
-
-\def\@mis{missing }
-
-% #1 hoffset #2 voffset #3 sense (u,d) #4 reference number #5 start note
-
-\def\i@slur#1#2#3#4#5{%
- \check@staff
- \global\advance\N@s\@ne % update slurcounter
- \s@l@ctslur#4\relax
-% test for already invoked \islur
- \if x\the\s@s \else\errmessage{\@mis\noexpand\tslur#4}\fi
- \global\s@Y#2% store voffset (abs. dim. to rel. height)
- \global\s@s{#3}% store sense (u,d)
- \ifx\dott@d\empty \global\s@d{}\else\global\s@d{d}\fi %+ickd
- \let\dott@d\empty % set dotted indicator +ickd
- \global\s@N\noinstrum@nt % store instrument number
- \inhgetn@i#5\relax
- \global\s@y\n@i % start vpos (steps of internote)
- \global\s@a\altportee % store altportee of current slur
- \getcurpos
- \advance\y@v#1\qn@width
- \global\s@x\y@v
- \fi}% start hpos (current pos including hoffset)
-
-% terminate slur #1 reference number #2 end note
-% the various types only influence the horizontal offset, if you want to
-% terminate a \ibslur with a \tslur it becomes a little bit tricky
-%%
-%% RDT: the "trick", whatever it is, doesn't seem to be working !!!!!
-%% e.g. \Notes\ibsluru1g\qa g\ha l\sk\zq g\zq i\tslur1k\qu k\en
-
-\def\tslur{\t@slur\h@lf}
-\def\tsslur{\t@slur{-\p@ne}}
-\def\tubslur{\t@slur1}
-\def\tdbslur{\t@slur0}
-\def\tbsluru{\t@slur1}
-\def\tbslurd{\t@slur0}
-
-% \def\ttie#1{\let\T@i\@c \t@slur{-\p@ne}#1\@ne}
-% \def\tleg#1{\let\T@i\@c \tslur #1\@ne}
-% #1 should be braced... by David Alsop on January 11, 2009
-\def\ttie#1{\let\T@i\@c \t@slur{-\p@ne}{#1}\@ne}
-\def\tleg#1{\let\T@i\@c \tslur{#1}\@ne}
-\let\tten\ttie
-\let\Tten\ttie
-\let\Tleg\tleg
-
-% y@i linewidth
-% y@iv right hoffset
-% y@v endpos, complete length
-
-% #1 hoffset #2 reference number #3 end note
-
-\def\t@slur#1#2#3{%
- \check@staff
- \s@l@ctslur#2\relax
- \y@iv#1\qn@width
- \def\@sense{\the\s@s}%
- \edef\@dotted{\the\s@d}%+ickd
-% test for missing \islur
- \if x\@sense \errmessage{\@mis\noexpand\islur#2}\fi
-% test for \invertslur
- \if D\@sense \s@s{u}%
- \let\@invert\@ne
- \fi
- \if U\@sense \s@s{d}%
- \let\@invert\@ne
- \fi
-% compute length
- \getcurpos
- \advance\y@v\y@iv
-% eoline
- \y@eol\advance\y@-\beforeruleskip
-% clip slur at eoline
- \ifdim\y@v>\y@ \y@v\y@ \advance\y@v\beforeruleskip \y@iv\beforeruleskip \fi
- \advance\y@v-\s@x
- \ifx\T@i\@c \n@i\s@y \else \inhgetn@i#3\relax \fi
- \writ@slur\s@y\n@i\y@v{-\y@iv}%
-% reset sense of slur
- \global\s@s{x}\let\T@i\empty
- \global\advance\N@s\m@ne
- \fi}% update slur counter
-
- % this command is made to terminate the slur #1 exactly on the note pitch #2
-\def\Tslurbreak#1#2{\s@l@ctslur#1\relax
- \def\@sense{\the\s@s}%
- {\if d\@sense \advance\transpose 2\raise0.2\Interligne\hbox{\tslur{#1}{#2}}\relax
- \else \advance\transpose -2\raise-0.2\Interligne\hbox{\tslur{#1}{#2}}\relax
- \fi
- }%
-\global\let\@meet\empty
-\let\l@length\empty
-\let\r@length\empty
-\let\@invert\empty
-}
-
-\def\Islurubreak#1#2{{\advance\transpose -1\isluru{#1}{#2}}}
-\def\Islurdbreak#1#2{{\advance\transpose 1\islurd{#1}{#2}}}
-
-\def\TslurbreakNextBar#1#2{\off{\beforeruleskip}\hloff{\Tslurbreak{#1}{#2}}\off{-\beforeruleskip}}
-\def\IslurubreakPrevBar#1#2{\off{-\afterruleskip}\hloff{\Islurubreak{#1}{#2}}\off{\afterruleskip}}
-\def\IslurdbreakPrevBar#1#2{\off{-\afterruleskip}\hloff{\Islurdbreak{#1}{#2}}\off{\afterruleskip}}
-
-\def\y@eol{\y@\line@width \advance\y@-\sign@skip
- \advance\y@-\clef@skip \advance\y@-\s@indent}
-
-% hold up the RM-slur calling, because faster coding,
-% if the slurs are inside a bar (and you use one kind of \notes)
-% and ... there is no limitation in the number of slurs
-% if you want to call a short slur, extending to the left use \slur[][][]0
-
-% #1 start pitch #2 final pitch #3 sense(u,d) #4 length[noteskip]
-
-\def\C@slur#1#2#3#4{\check@staff
- \inhgetn@i#1\relax \n@ii\n@i
- \inhgetn@i#2\relax \relax
- \ifx\dott@d\empty \gdef\@dotted{}\else\gdef\@dotted{d}\fi %+ickd
- \let\dott@d\empty % set dotted indicator +ickd
- \def\@sense{#3}%
- \if d\@sense \s@Y-\s@Y \fi
- \y@v#4\noteskip
- \y@iv\y@v
- \advance\y@iv\y@ii
- \advance\y@v\y@iii
- \kern\y@iv
- \writ@slur\n@ii\n@i\y@v\z@
- \kernm\y@iv
- \fi}
-
-\def\sslur{%
- \let\s@N\undefined % do not store instrument number
- \s@Y\p@seven\internote
- \y@iii-1.2\qn@width % offset to length 1.1behind+.1before
- \y@ii-\p@ne\qn@width
- \C@slur}
-\def\slur{%
- \let\s@N\undefined % do not store instrument number
- \s@Y1\p@seven\internote
- \y@iii\z@
- \y@ii\h@lf\qn@width
- \C@slur}
-\def\stie#1{\sslur{#1}{#1}}
-\def\tie#1{\slur{#1}{#1}}
-
-%%% setup fontsizes
-
-\newdimen\interbeam % distance entre poutres
-\newdimen\b@amthick % half beamthickness
-\newdimen\Interligne% de la base d'une ligne a l'autre
-\newdimen\Internote % la moitie de \Interligne
-
-\let\internote\Internote
-\def\musixchar{\musixfont\char}
-\def\keychar{\musickeyfont\char}
-
-\let\musicnorfont\musictwenty
-
-\def\set@Largenotesize{\let\musixfont\musicLargefont
- \let\xgregfont\xgregLargefont
- \let\fetafont\fetaLargefont % RDT 1.36
- \b@amthick.3456\Interligne \interbeam1.08\Interligne }
-
-\def\set@largenotesize{\let\musixfont\musiclargefont
- \let\xgregfont\xgreglargefont
- \let\fetafont\fetalargefont % RDT 1.36
- \b@amthick.288\Interligne \interbeam.9\Interligne }
-
-\def\set@normalnotesize{\let\musixfont\musicnorfont
- \let\xgregfont\xgregnorfont
- \let\fetafont\fetanorfont % RDT 1.36
- \b@amthick.24\Interligne \interbeam\p@seven5\Interligne }
-
-\def\set@smallnotesize{\let\musixfont\musicsmallfont
- \let\xgregfont\xgregsmallfont
- \let\fetafont\fetasmallfont % RDT 1.36
- \b@amthick\p@ne92\Interligne \interbeam.6\Interligne }
-
-\def\set@tinynotesize{\let\musixfont\musictinyfont
- \let\xgregfont\xgregtinyfont
- \let\fetafont\fetatinyfont % RDT 1.36
- \b@amthick\p@ne536\Interligne \interbeam.48\Interligne }
-
-\def\normalnotesize{\set@normalnotesize\comput@specifics
- \let\curr@ntsiz@\normalnotesize}
-\def\smallnotesize{\set@smallnotesize\comput@specifics
- \let\curr@ntsiz@\smallnotesize}
-\def\tinynotesize{\set@tinynotesize\comput@specifics
- \let\curr@ntsiz@\tinynotesize}
-\def\largenotesize{\set@largenotesize\comput@specifics % v.124 RDT
- \let\curr@ntsiz@\largenotesize}
-\def\Largenotesize{\set@Largenotesize\comput@specifics % v.124 RDT
- \let\curr@ntsiz@\Largenotesize}
-
-\def\musickeyfont{%
- \ifdim\internote<\p@seven6\Internote \musictinyfont
- \else
- \ifdim\internote<.95\Internote \musicsmallfont
- \else
- \ifdim\internote<1.19\Internote \musicnorfont
- \else
- \ifdim\internote<1.43\Internote \musiclargefont
- \else
- \musicLargefont
- \fi
- \fi
- \fi
- \fi}
-
-\def\meterfont{%
- \ifdim\internote<\p@seven6\Internote \metersmallfont
- \else
- \ifdim\internote<.95\Internote \meternorfont
- \else
- \ifdim\internote<1.19\Internote \meterbigfont
- \else
- \ifdim\internote<1.43\Internote \meterlargefont
- \else \meterLargefont
- \fi
- \fi
- \fi
- \fi}
-
-\def\tabcleffnt{% 1.29 RDT
- \ifdim\internote<.95\Internote \tabsmallcleffnt
- \else
- \ifdim\internote<1.19\Internote \tabnorcleffnt
- \else
- \ifdim\internote<1.43\Internote \tablargecleffnt
- \else \tabLargecleffnt
- \fi
- \fi
- \fi}
-
-\def\tabfnt{% 1.29 RDT
- \ifdim\internote<.95\Internote \tabsmallfnt
- \else
- \ifdim\internote<1.19\Internote \tabnorfnt
- \else
- \ifdim\internote<1.43\Internote \tablargefnt
- \else \tabLargefnt
- \fi
- \fi
- \fi}
-
-\newbox\ch@box
-\newcount\musicsize
-\newdimen\qd@skip
-\newdimen\qn@width
-\newdimen\wn@width
-
-\newskip\txt@ff
-\newskip\s@indent % store parindent
-\newskip\big@spc
-
-\newdimen\lthick \lthick=.4pt
-% \def\hlthick{\h@lf\lthick}
-\def\hlthick{0.4pt} % 1.36 RDT
-
-%%%
-
-\def\normalmusicsize{\musicsize\tw@nty \comput@specifics
- \afterruleskip\@ight\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
-\def\smallmusicsize{\musicsize\sixt@@n \comput@specifics
- \afterruleskip\si@\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
-\def\largemusicsize{\musicsize\@xxiv \comput@specifics
- \afterruleskip\t@n\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
-\def\Largemusicsize{\musicsize\@xxix \comput@specifics
- \afterruleskip\t@n\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
-
-\def\comput@fonts{%
- \ifnum\musicsize=\sixt@@n
- \let\musicLargefont\musictwentyfour
- \let\musiclargefont\musictwenty
- \let\musicnorfont\musicsixteen
- \let\musicsmallfont\musicthirteen
- \let\musictinyfont\musiceleven
- \let\xgregLargefont\xgregtwentyfour
- \let\xgreglargefont\xgregtwenty
- \let\xgregnorfont\xgregsixteen
- \let\xgregsmallfont\xgregthirteen
- \let\xgregtinyfont\xgregeleven
- \let\fetaLargefont\fetatwentyfour % 1.36 RDT
- \let\fetalargefont\fetatwenty
- \let\fetanorfont\fetasixteen
- \let\fetasmallfont\fetathirteen
- \let\fetatinyfont\fetaeleven
- \let\slurd\slurdsixteen \let\sluru\slurusixteen
- \let\hslurd\hslurdsixteen \let\hsluru\hslurusixteen
- \let\meternorfont\tenbf \let\metersmallfont\eightbf % version 1.16 RDT
- \let\meterbigfont\twelvebf \let\meterlargefont\frtbf
- \let\meterLargefont\svtbf
- \let\tinyppff\ppfftwelve % version 1.17 RDT
- \let\smallppff\ppfftwelve
- \let\normppff\ppffsixteen
- \let\medppff\ppfftwenty
- \def\txtfont{\ifdim\internote<.95\Internote \tinytype\it % version 1.22 RDT
- \else\ifdim\internote<1.19\Internote \smalltype\it
- \else\ifdim\internote<1.43\Internote \Smalltype\it
- \else\normtype\it\fi\fi\fi}%
- \let\tabnorfnt\tabfntsixteen \let\tablargefnt\tabfnttwenty % 1.34 RDT
- \let\tabLargefnt\tabfnttwentyfour \let\tabsmallfnt\tabfntthirteen
- \let\tabnorcleffnt\eightdc \let\tablargecleffnt\tendc
- \let\tabLargecleffnt\twelvedc \let\tabsmallcleffnt\sixdc
- \def\tabstringfnt{\ifdim\internote<.95\Internote \fourss % 1.29 RDT
- \else\ifdim\internote<1.19\Internote \fivess
- \else\ifdim\internote<1.43\Internote \sevenss
- \else\eightss\fi\fi\fi}%
- \else\ifnum\musicsize=\@xxiv
- \let\musicLargefont\musictwentynine
- \let\musiclargefont\musictwentynine
- \let\musicnorfont\musictwentyfour
- \let\musicsmallfont\musictwenty
- \let\musictinyfont\musicsixteen
- \let\xgregLargefont\xgregtwentynine
- \let\xgreglargefont\xgregtwentynine
- \let\xgregnorfont\xgregtwentyfour
- \let\xgregsmallfont\xgregtwenty
- \let\xgregtinyfont\xgregsixteen
- \let\fetaLargefont\fetatwentynine % 1.36 RDT
- \let\fetalargefont\fetatwentynine
- \let\fetanorfont\fetatwentyfour
- \let\fetasmallfont\fetatwenty
- \let\fetatinyfont\fetasixteen
- \let\sluru\slurutwenty \let\slurd\slurdtwenty
- \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
- \let\meternorfont\frtbf \let\metersmallfont\twelvebf % version 1.18 RDT
- \let\meterbigfont\svtbf \let\meterlargefont\twtybf
- \let\meterlargefont\twfvbf
- \let\tinyppff\ppffsixteen
- \let\smallppff\ppfftwenty
- \let\normppff\ppfftwentyfour
- \let\medppff\ppfftwentynine
- \def\txtfont{\ifdim\internote<.95\Internote \smalltype\it % version 1.22 RDT
- \else\ifdim\internote<1.19\Internote \Smalltype\it
- \else\ifdim\internote<1.43\Internote \normtype\it
- \else\medtype\it\fi\fi\fi}%
- \let\tabnorfnt\tabfnttwentyfour \let\tablargefnt\tabfnttwentynine % 1.34 RDT
- \let\tabLargefnt\tabfnttwentynine \let\tabsmallfnt\tabfnttwenty
- \let\tabnorcleffnt\twelvedc \let\tablargecleffnt\frtdc
- \let\tabLargecleffnt\svtdc \let\tabsmallcleffnt\tendc
- \def\tabstringfnt{\ifdim\internote<.95\Internote \sixss % 1.29 RDT
- \else\ifdim\internote<1.19\Internote \sevenss
- \else\ifdim\internote<1.43\Internote \eightss
- \else\twelvess\fi\fi\fi}%
- \else\ifnum\musicsize=\@xxix
- \let\musicLargefont\musictwentynine
- \let\musiclargefont\musictwentynine
- \let\musicnorfont\musictwentynine
- \let\musicsmallfont\musictwentyfour
- \let\musictinyfont\musictwenty
- \let\xgregLargefont\xgregtwentynine
- \let\xgreglargefont\xgregtwentynine
- \let\xgregnorfont\xgregtwentynine
- \let\xgregsmallfont\xgregtwentyfour
- \let\xgregtinyfont\xgregtwenty
- \let\fetaLargefont\fetatwentynine % 1.36 RDT
- \let\fetalargefont\fetatwentynine
- \let\fetanorfont\fetatwentynine
- \let\fetasmallfont\fetatwentyfour
- \let\fetatinyfont\fetatwenty
- \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\svtbf \let\metersmallfont\frtbf % version 1.18 RDT
- \let\meterbigfont\twtybf \let\meterlargefont\twfvbf % version 1.24 typos corrected
- \let\meterLargefont\twfvbf
- \let\tinyppff\ppfftwenty
- \let\smallppff\ppfftwentyfour
- \let\normppff\ppfftwentynine
- \let\medppff\ppfftwentynine
- \def\txtfont{\ifdim\internote<.95\Internote \normtype\it % version 1.22 RDT
- \else\ifdim\internote<1.19\Internote \medtype\it
- \else\ifdim\internote<1.43\Internote \bigfont\it
- \else\Bigfont\it\fi\fi\fi}%
- \let\tabnorfnt\tabfnttwentynine \let\tablargefnt\tabfnttwentynine % 1.34 RDT
- \let\tabLargefnt\tabfnttwentynine \let\tabsmallfnt\tabfnttwentyfour
- \let\tabnorcleffnt\frtdc \let\tablargecleffnt\svtdc
- \let\tabLargecleffnt\twtydc \let\tabsmallcleffnt\twelvedc
- \def\tabstringfnt{\ifdim\internote<.95\Internote \eightss % 1.29 RDT
- \else\ifdim\internote<1.19\Internote \niness
- \else\ifdim\internote<1.43\Internote \twelvess
- \else\frtss\fi\fi\fi}%
-\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\xgreglargefont\xgregtwentyfour
- \let\xgregLargefont\xgregtwentynine
- \let\xgregnorfont\xgregtwenty
- \let\xgregsmallfont\xgregsixteen
- \let\xgregtinyfont\xgregthirteen
- \let\fetalargefont\fetatwentyfour % 1.36 RDT
- \let\fetaLargefont\fetatwentynine
- \let\fetanorfont\fetatwenty
- \let\fetasmallfont\fetasixteen
- \let\fetatinyfont\fetathirteen
- \let\sluru\slurutwenty \let\slurd\slurdtwenty
- \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
- \let\meternorfont\twelvebf \let\metersmallfont\tenbf % version 1.18 RDT
- \let\meterbigfont\frtbf \let\meterlargefont\svtbf
- \let\meterLargefont\twtybf
- \let\tinyppff\ppfftwelve
- \let\smallppff\ppffsixteen
- \let\normppff\ppfftwenty
- \let\medppff\ppfftwentyfour
- \def\txtfont{\ifdim\internote<.95\Internote \smalltype\it
- \else\ifdim\internote<1.19\Internote \Smalltype\it
- \else\ifdim\internote<1.43\Internote \normtype\it
- \else\medtype\it\fi\fi\fi}%
- \let\tabnorfnt\tabfnttwenty \let\tablargefnt\tabfnttwentyfour % 1.34 RDT
- \let\tabLargefnt\tabfntwentynine \let\tabsmallfnt\tabfntsixteen
- \let\tabnorcleffnt\tendc \let\tablargecleffnt\twelvedc
- \let\tabLargecleffnt\frtdc \let\tabsmallcleffnt\eightdc
- \def\tabstringfnt{\ifdim\internote<.95\Internote \fivess % 1.29 RDT
- \else\ifdim\internote<1.19\Internote \sevenss % 1.37 RDT
- \else\ifdim\internote<1.43\Internote \eightss
- \else\niness\fi\fi\fi}%
-\fi\fi\fi}%
-
-\def\comput@specifics{\comput@fonts\comput@sizes}
-
-\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}
-
-%\newdimen\afterruleskip
-\newskip\afterruleskip
-\newdimen\staffbotmarg % marge au-dessous des portees
-\newdimen\stafftopmarg % au-dessus des portees
-\newdimen\line@width
-
-\def\normalvalue{1}
-\def\largevalue{1.2}
-\def\Largevalue{1.44}
-\def\smallvalue{.8}
-\def\tinyvalue{.64}
-
-\def\instrumentnumber#1{\n@v#1\relax
- \min@n@v\@ne
- \max@n@v\maxinstruments
- \edef\nbinstruments{\the\n@v}}
-
-% staffsize
-
-\def\setsize#1#2{\n@v#1\relax % select instrument
- \expandafter\edef\csname staffspacing\romannumeral\n@v\endcsname{#2}}
-
-% [version 1.15] moved out to the new register allocation code
-% \let\staffspacingi\@ne
-
-% number of staffs
-
-\def\setstaffs#1#2{\n@v#1\relax \csname n@p\romannumeral\n@v\endcsname#2}
-
-% staff lines
-
-\def\setlines#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname n@l\romannumeral\n@v\endcsname{#2}}
-
-\newdimen\interportee % distance between staffs of the same instrument (incl)
-\newcount\noport@@
-\newcount\noinstrum@nt
-\newdimen\altportee
-
-\def\interstaff#1{\def\interfacteur{#1}}
-
-\def\s@l@ctinstr{%
- \ifnum\noinstrum@nt>\maxinstruments % [version 1.15] -- from here --
- \errmessage{Wrong instrument reference number \the\noinstrum@nt, maxinstruments=\the\maxinstruments}
- \fi % [version 1.15] -- until here --
- \edef\altitude{\csname k@i\romannumeral\noinstrum@nt\endcsname}%
- \edef\st@ffs{\csname n@p\romannumeral\noinstrum@nt\endcsname}%
- \edef\nblines{\csname n@l\romannumeral\noinstrum@nt\endcsname}%
- \edef\internote{\csname i@n\romannumeral\noinstrum@nt\endcsname}%
- \edef\int@rf{\csname interfacteur\romannumeral\noinstrum@nt\endcsname}% RDT 1.24
- \interportee\int@rf\internote \interportee\tw@\interportee}% RDT 1.26
-
-\def\C@Inter{% RDT: corrected to work if \nblines > 6 (version 1.23)
- % RDT: corrected for \nblines < 4 (version 1.28)
- \stem@skip\interportee
- \ifnum\nblines<\f@ur
- \advance\stem@skip-\@ight\internote
- \else
- \advance\stem@skip-\nblines\internote
- \advance\stem@skip-\nblines\internote
- \advance\stem@skip\tw@\internote
- \fi}
-
-%%% loop over instruments and staffs
-
-\def\count@portee{\advance\noport@@\@ne}
-
-\def\n@loop{\noinstrum@nt\z@ \loop\ifnum\noinstrum@nt<\nbinstruments
- \advance\noinstrum@nt\@ne \s@l@ctinstr}
-
-\def\m@loop{\noinstrum@nt\z@ \loop\ifnum\noinstrum@nt<\maxinstruments
- \advance\noinstrum@nt\@ne}
-
-\def\p@loop{\noport@@\z@ \loop\ifnum\noport@@<\st@ffs
- \altportee\altitude \advance\altportee\noport@@\interportee}
-
-\def\Comp@High{\y@v\st@ffs\interportee \C@Inter\advance\y@v-\stem@skip}
-
-% to be used to make heavy bars at staff left
-% modified according to Werner Icking
-
-
-\def\groupbottom#1#2{\group@no#1\relax
- \advance\group@no\m@ne\test@grnum % testgr@num advances group@no by 1...
- \expandafter\def\csname lowersonginstrum\romannumeral\group@no\endcsname{#2}}
-
-\def\grouptop#1#2{\group@no#1\relax
- \advance\group@no\m@ne\test@grnum % testgr@num advances group@no by 1...
- \expandafter\def\csname uppersonginstrum\romannumeral\group@no\endcsname{#2}}
-
-\def\songbottom{\groupbottom1}
-\def\songtop{\grouptop1}
-
-% [version 1.15] moved out to the new register allocation code
-% \let\lowersonginstrumi\maxdimen
-% \let\uppersonginstrumi\z@
-
-\def\g@loop{\group@no\z@ \loop\ifnum\group@no<\maxgroups
- \s@l@ctgroup}
-\def\s@l@ctgroup{%
- \relax\test@grnum
- \edef\g@b{\csname g@b\romannumeral\group@no\endcsname}% dimen (group bottom)
- \edef\g@h{\csname g@h\romannumeral\group@no\endcsname}% dimen (group top)
- \edef\lowersonginstrum{\csname lowersonginstrum\romannumeral\group@no\endcsname}% dimen (group top)
- \edef\uppersonginstrum{\csname uppersonginstrum\romannumeral\group@no\endcsname}% dimen (group top)
- }%
-\def\test@grnum{%
- \ifnum\group@no<\z@ \group@no\@c \fi
- \ifnum\group@no<\maxgroups \else
- \count@\maxgroups \advance\count@\m@ne
- \errmessage{Wrong group reference number \the\group@no! (valid: 0 to \the\count@)}% [version 1.15]
- \group@no\z@% [version 1.15]
- \fi
- \advance\group@no\@ne}
-
-% \nobarmessages prevents bar messages
-
-\def\nobarmessages{\let\no@b\@ne}
-\let\no@b\empty
-
-% \nolinemessages prevents line messages in phase three
-\def\nolinemessages{\let\no@l\@ne}
-\let\no@l\empty
-
-% \nobarnumbers prevents bar numbering (Ian Collier)
-% \barnumbers restores bar numbering
-
-\def\nobarnumbers{\let\lin@bar\empty \let\freqbarno\maxdimen}
-\def\barnumbers{\let\freqbarno\normalvalue}
-\barnumbers
-
-% show barnumbers only at the beginning system
-
-\def\raisebarno{\f@ur\internote}
-\let\shiftbarno\z@
-
-\def\writebarno{\boxit{\eightbf\the\barno\barnoadd}}
-\def\systemnumbers{\nobarnumbers\let\lin@bar\@ne}
-
-% add 'a' behind the systembarnumber, if the previous line ended without
-% a bar rule
-
-\let\z@sw\empty
-\def\writezbarno{a}
-\def\barnoadd{\ifx\z@sw\@ne \writezbarno \fi}
-
-% suppress the beginning vertical rule for single-staff scores
-
-\def\startrule{\let\b@rule\empty}
-\def\nostartrule{\let\b@rule\z@}
-\startrule
-
-%%% distance between instruments (added to \interportee)
-
-% [version 1.15] moved out to the above of the new register allocation code
-% \newdimen\interinstrument
-% [version 1.15] moved out to the new register allocation code
-% \let\interinstrumenti\interinstrument
-
-\def\setinterinstrument#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname interinstrument\romannumeral\n@v\endcsname{#2}}%
-
-\def\setinterstaff#1#2{\n@v#1\relax % select instrument RDT 1.24
- \expandafter\def\csname interfacteur\romannumeral\n@v\endcsname{#2}}%
-
-%%% portees
-
-\newdimen\systemheight
-\newdimen\altplancher
-
-% New version by Werner Icking
-
-\def\writ@staffs{%
- \y@\staffbotmarg \global\altplancher\staffbotmarg
- \rlap{\n@loop\w@st\repeat
-% beginning vertical rule
- \systemheight\y@
- \advance\systemheight-\altplancher
- \C@Inter \global\advance\systemheight-\stem@skip
- \ifx\empty\b@rule \raise\altplancher\rlap{%
- \vrule\@depth\hlthick\@height\systemheight\@width\lthick}\fi
-% 'Akkoladenklammer' don't know the english word
- \g@loop
- \ifnum\uppersonginstrum<\lowersonginstrum
- \else
- \noinstrum@nt\uppersonginstrum\s@l@ctinstr\C@Inter
- \global\advance\g@h-\stem@skip \global\advance\g@h-\g@b
- \global\advance\g@h\Interligne \global\advance\g@b-\Internote
- \raise\g@b\llap{\uplap{\offinterlineskip
- \set@normalnotesize\hbox{\musixfont\fourt@@n}\hbox{\vrule\@height\g@h
- \@width\internote}\hbox{\musixfont\fiv@t@@n}}\kern\internote}%
- \fi
- \repeat
-% systembarnumbers
- \ifx\lin@bar\@ne \y@\altplancher \advance\y@\systemheight
- \advance\y@\raisebarno \raise\y@\rlap{\kern\shiftbarno\writebarno}\fi
-% strut
- \advance\stafftopmarg\staffbotmarg
- \raise\stafftopmarg\hbox{\vrule\@height\systemheight\@width\z@}}}
-
-\def\uplap#1{\vbox\@to\z@{\vss#1}}
-
-% new version of \w@st by Werner Icking
-
-\newskip\instrum@in@group
-\def\w@st{%
- \global\noport@@\z@ \global\altitude\y@
- \global\instrum@in@group=\z@
- {\g@loop
- \ifnum\noinstrum@nt=\lowersonginstrum
- \global\g@b\altitude
- \fi
- \ifnum\uppersonginstrum>\lowersonginstrum\relax
- \ifnum\noinstrum@nt<\lowersonginstrum\relax
- \else
- \ifnum\noinstrum@nt>\uppersonginstrum\relax
- \else
-% \message{\the\noinstrum@nt\space in-group!}%
- \global\instrum@in@group=2\internote
- \fi
- \fi
- \fi
- \repeat}%
-% nullportee
- \ifnum\st@ffs=\z@
- \advance\y@\f@ur\Interligne
- \else
-% multportee
- \ifnum\st@ffs>\@ne \Comp@High\n@v\y@v \sp@pt\tw@
- \advance\n@v\@cxxviii \divide\y@v\tw@
-%==== the parenthesis should be shifted to the left if within
-%==== songbottom -- songtop
- \advance\y@v\y@
- \raise\y@v\hbox{\kern -\instrum@in@group\mxsps\char\n@v\kern\instrum@in@group}%
- \fi
-% normal staff
- {\loop \staff@lines\ifnum\noport@@<\st@ffs \repeat}%
- \fi % fin du \else pour 0 portees=chant
- {\g@loop
- \ifnum\noinstrum@nt=\uppersonginstrum \global\g@h\y@ \fi
- \repeat}%
- \ifnum\noinstrum@nt<\nbinstruments
- \advance\y@\csname interinstrument\romannumeral\noinstrum@nt\endcsname \fi}
-
-\def\staff@lines{\raise\y@\rlap{\uplap{%
- \ifcase\nblines
- \or \Lin@\zLin@\zLin@
- \or \Lin@\zLin@\Lin@\zLin@
- \or \Lin@\zLin@\Lin@\zLin@\Lin@
- \or \Lin@\Lin@\Lin@\Lin@
- \or \Lin@\Lin@\Lin@\Lin@\Lin@
- \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
- \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
- \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
- \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
- \fi\kernm\hlthick}}%
- \global\advance\y@\interportee \count@portee}
-
-\def\zLin@{\kern\tw@\internote}
-\def\Lin@{\zLin@\kernm\lthick\hrule\@width\line@width}
-
-\newskip\boxitsep \boxitsep\thr@@\p@\relax
-
-\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern\boxitsep\vbox{%
- \kern\boxitsep\hbox{#1}\kern\boxitsep}\kern\boxitsep\vrule}\hrule}}
-\def\circleit#1{\setbox\ch@box\hbox{#1}\y@v\ht\ch@box
- \y@v1.41\ht\ch@box % => sqrt(2)
- \n@v\y@v \sp@pt\tw@ \advance\n@v69\rlap{#1}%
- \raise\h@lf\ht\ch@box\rlap{\kern\h@lf\wd\ch@box\mxsps\char\n@v}}
-
-\def\thinrul@{\writ@rule\lthick}
-\def\thickrul@{\writ@rule\big@spc}
-
-%%% start normal score
-
-%%
-% Define a counter to keep track of total number of bars in piece
-% which are terminated by a barline. This is not necessarily
-% the same as \barno, in view of (eg) a bar containing
-% multiple bars rest.
-%%
-% !!! \barsinpi@c@ now used for \zbar and \xbar too, if you use them
-% the value of \barsinpi@c@ says nothing !!!
-%
-
-\newcount\barsinpi@c@
-\newcount\barno
-\newcount\startbarno \startbarno\@ne
-\newdimen\sign@skip
-\newdimen\maxsign@skip
-
-
-\def\piece@begina{\catcodesmusic \barno\startbarno \@l@mskip\elemskip
- \barsinlin@\z@ \let\z@sw\empty \frenchspacing
-% \let\barrul@\thinrul@ \comp@internote} %-simick
- \b@rrul@\comp@internote} %+simick
-
-\def\comp@internote{\comput@specifics
- \n@loop
- \internote\csname staffspacing\romannumeral\noinstrum@nt\endcsname\Internote
- \repeat
- \line@width\hsize}
-
-\def\piece@beginb{\advance\line@width-\parindent \s@indent\parindent
- \writ@staffs \writ@names \advance\line@width\parindent}
-
-\def\piece@beginc{%
-% write clefs
- \n@loop{\writ@clefi}\repeat \kern\clef@skip
-% everystaff stuff
- \everyst@ff
-% write signatures
- \sign@skip\z@ \n@loop{\s@l@ctsigns \let\@Ti\writ@sign \C@wsi}\repeat
- \kern\sign@skip \m@loop \s@l@ctsigns \o@s\a@s \s@l@ctclefs \o@c\a@c \repeat
- \let\Writ@newsigns\empty \hskip\z@ plus\p@ minus\p@ \lastbarpos\z@}
-
-\let\fil@begin\empty
-\let\Writ@meters\empty
-
-\def\startpiece{\ifstartmuflex@done\relax
- \else\startmuflex
- \immediate\write16{\noexpand\startmuflex launched by
- \noexpand\startpiece }%
- \fi
- \barsinpi@c@\z@ \piece@begina \leavevmode \piece@beginb
- \piece@beginc \fil@begin \Writ@meters\lastbarpos\lin@pos %%% 1.21: added \lastbarpos setting
- \let\volta@set\empty % tells the kind of volta setting at next bar
- \let\volta@cut\empty % flag to tell that a volta has been cut at line end
- \let\volta@type\empty % the current volta setting (same defs as \volta@set)
- \let\endvolta@set\empty % tells the kind of volta closing at next bar
- \let\pdl@cut\empty % flag to signal a pedal rule has been cut at the end of a line % 1.21 RDT
-}
-
-\let\everystaff\empty
-\def\everyst@ff{\everystaff}% --> MuFlex Pass II
-
-%%% continue score
-
-\let\atnextline\empty
-
-\def\piece@conta{\catcodesmusic \atnextline \let\atnextline\empty
- \comp@internote \leavevmode \barsinlin@\z@ }
-
-\def\contpiece{\noindent \piece@conta \writ@staffs \piece@beginc
- \Writ@meters\wbarno@x\lastbarpos\lin@pos\addspace\afterruleskip %%% 1.21: added \lastbarpos setting
-}
-
-% like contpiece but with indentation (parindent) and instrument names
-% it's for changing the number of instrument in one piece
-
-\let\fil@indent\empty
-\def\Contpiece{\piece@conta \piece@beginb \fil@indent \piece@beginc
- \Writ@meters\lastbarpos\lin@pos} %%% 1.21: added \lastbarpos setting
-
-
-%%% end score
-
-\let\ragg@d\empty
-\let\z@suspend@autoflag\empty % used in musixcpt only
-
-\def\z@suspend{%
- \z@suspend@autoflag % used in musixcpt only
-% cut pedal rule 1.21 RDT
- \ifdim\pdl@pos=\z@\else%
- \noport@@\z@
- \znotes\selectinstrument{\pdl@instr}\selectstaff{\pdl@staff}\pdlc@\en%
- \global\def\pdl@cut{\@one}%
- \fi
-% cutvolta
- \write@volta@hrule
- \ifx\volta@type\tw@\let\volta@set\tw@ \let\volta@type\empty
- \let\volta@cut\tw@\fi % restart volta at next line if continuous
- \ifx\volta@type\thr@@\let\volta@set\thr@@ \let\volta@type\empty
- \let\volta@cut\thr@@ \fi % restart volta at next line if continuous
-% cutoctline
- \o@loop
- \ifdim\o@x<\maxdimen \let\T@ii\n@ii \C@TO \o@x\z@ \fi
- \repeat
-% cut trill
- \tr@loop
- \ifdim\tr@x<\maxdimen \let\T@ii\n@ii \C@TR \tr@x\z@ \fi
- \repeat
-% cutslur
- \ifnum\N@s>\z@% % any pending slurs ?
- \n@viii\maxslurs % test all possible slur numbers [version 1.15] (Hiroaki)
- \advance\n@viii\m@ne
- \loop\ifnum\n@viii>\m@ne
- \s@l@ctslur\n@viii\relax
- \edef\@sense{\the\s@s}%
- \if x\@sense% % sense flag
- \else% % found slur
- \edef\@dotted{\the\s@d}% +ickd
- \y@v\lin@pos % get current position
- \advance\y@v-\s@x % slurlength = currentpos - startpos
- \let\@Ti\@ne % set flag for \writ@slur (\staffbotmarg)
- \ifnum\s@z=\maxdimen \s@z\s@y \fi % flag (\breakslur not used -> tie)
- \writ@slur\s@y\s@z\y@v\p@% avoid touching the bar rule
- \s@x\z@% reset startpos for next line
- \s@z\maxdimen% reset breakslur
- \fi
- \advance\n@viii\m@ne \repeat
- \fi\s@indent\z@
-%
- \ragg@d\par\lin@pos\z@ \endcatcodesmusic}
-
-\def\stoppiec@{\check@nopen\n@wbar\z@suspend}
-%\def\stoppiece{\stoppiec@\@nds@ction} %-simick
-\def\stoppiece{\T@bil\fi\stoppiec@\@nds@ction} %+simick
-\let\endpiece\stoppiece
-
-\def\zstoppiec@{\check@nopen\zn@wbar\z@suspend}
-%\def\zstoppiece{\zstoppiec@\@nds@ction} %-simick
-\def\zstoppiece{\T@bil\fi\zstoppiec@\@nds@ction}%+simick
-% if you need a line which appears ragged
-\def\raggedstoppiece{\ifx\ragg@d\empty \fil@{r}\fi % version 1.18 RDT (from musixext)
- \check@nopen\n@wbar\hfill\z@suspend\@nds@ction}
-\def\zendpiece{\setemptybar\raggedstoppiece} % RDT version 1.31
-
-\def\Stoppiece{\setdoubleBAR\stoppiece}
-\let\Endpiece\Stoppiece
-
-%%% short excerpts
-
-\def\startextract{\lastbarno\z@ \barno\startbarno
- \piece@begina\setbox\w@rkbox\hbox{\writ@staffs}% to compute heights
- \setbox\w@rkbox\hbox\bgroup% !! all changes are local !!
- \line@width\maxdimen
- \maxbarsinlin@\maxdimen %+simick
- \let\T@bil\iftrue \let\everyst@ff\everystaff \let\fil@spc\empty
- \let\fil@termskip\empty \let\fil@signs\empty \let\fil@barno\empty
- \let\leftrepeat\leftrepeat@II \let\leftrightrepeat\leftrightrepeat@II
-% \let\doublebar\doublebar@II % commented out by RDT version 1.32
- \piece@beginc\Writ@meters\lastbarpos\lin@pos\let\pdl@cut\empty\addspace\afterruleskip}
- %%% 1.21: added \lastbarpos and \pdl@cut settings
-
-% enable left and right extracts (e.g. for footnotes)
-
-\let\extractline\centerline
-
-\def\endextract{\let\z@suspend\write@volta@hrule
- \stoppiec@\egroup\line@width\wd\w@rkbox
- \extractline{\writ@names\writ@staffs\unhbox\w@rkbox}%
- \endcatcodesmusic}
-\def\zendextract{\let\stoppiec@\zstoppiec@ \endextract}
-
-%%
-% Redefine \t@rmskip to include a macro for writing a record to a file,
-% and define the macro
-%%
-
-\newdimen\x@skip
-\newdimen\n@skip
-
-\let\fil@termskip\empty
-\def\t@rmskip{\kern\n@skip\advance\x@skip\n@skip
- \advance\lin@pos\x@skip
- % case of \hardnotes
- \ifnum\V@sw>0\relax
- \y@v\n@skip \fil@spc
- \fi
- % end case \hardnotes
- \fil@termskip\global\n@skip\z@ \global\x@skip\z@ \let\V@sw\z@}
-
-%%
-% Define the amount of space before each barline,
-%%
-
-%\newdimen\beforeruleskip
-\newskip\beforeruleskip
-
-%%
-% We must distinguish between scalable ('soft'=1) material in the bar
-% (eg noteboxes) and absolute ('hard'=0) widths such as those from
-% barlines and clef symbols
-% Hence introduce a switch defining this attribute
-%%
-
-\newcount\widthtyp@ \widthtyp@\@ne
-
-%%% bar numbers
-
-\newcount\lastbarno
-
-\def\writethebarno{\fontbarno\the\barno\kernm\qn@width}
-\def\fontbarno{\it}
-
-\def\wbarno@x{%%%% version 1.21: RDT moved \lastbarpos\lin@pos after calls to \Writ@meters
- \ifx\volta@set\empty
- \n@iii\barno \divide\n@iii\freqbarno\relax
- \ifnum\n@iii=\lastbarno
- \else \y@\altplancher \advance\y@\systemheight \advance\y@\tw@\internote
- \raise\y@\llap{\writethebarno}\fi
- \else
- \ifx\volta@cut\empty
- \else % volta was cut, there is nothing colliding with bar number.
- \n@iii\barno \divide\n@iii\freqbarno\relax
- \ifnum\n@iii=\lastbarno
- \else \y@\altplancher \advance\y@\systemheight \advance\y@\tw@\internote
- \raise\y@\llap{\writethebarno}\fi
- \fi
- \write@volta
- \fi
- \ifx\pdl@cut\empty % 1.21 RDT
- \else% pedal rule was cut at the end of the previous line
- \global\pdl@pos\lin@pos\let\pdl@cut\empty % reset \ped@pos
- \fi
- \b@rrul@ %+simick
- \n@iii\barno \divide\n@iii\freqbarno\relax \lastbarno\n@iii }
-
-%%% pass selective scoring
-
-\newskip\cut@v % contains width of bar rule
-\newskip\init@volta@pos % start position of volta
-\newskip\volta@startcor %+simick volta start correction in case of leftrepeats
-\newskip\volta@endcor %+simick volta end correction in case of rightrepeats
-
-\def\raisevolta{\f@ur\internote}
-
-\newbox\writ@volta@box
-
-\def\voltadot{.}%
-\def\write@volta{% writes the requested |n. and moves the things for further use
- \ifx\volta@type\empty\else\errmessage{/setvolta collision!}\fi
- \y@\altplancher \advance\y@\systemheight
- \advance\y@\raisevolta
-% \setbox\writ@volta@box\rlap{\vrule % \musixfont\sixt@@n %-simick
-% \rm\ \vphantom{\^{\volta@text}\strut gq}\volta@text\voltadot}% %-simick
- \setbox\writ@volta@box\rlap{\vrule\rm\strut\ \volta@text\voltadot}% %+simick
- \xdef\thevolta@boxheight{\the\ht\writ@volta@box}%
- \xdef\thevolta@boxdepth{\the\dp\writ@volta@box}%
- \ifx\volta@cut\empty \else\setbox\writ@volta@box\null
- \fi % if continuation, make writ@volta@box null
-% \raise\y@\llap{\box\writ@volta@box}% %-simick
- \kernm\volta@startcor\raise\y@\llap{\box\writ@volta@box}\kern\volta@startcor %+simick
- \let\volta@type\volta@set
- \let\volta@set\empty
- \let\volta@cut\empty
-% \init@volta@pos\lin@pos\relax %-simick
- \init@volta@pos\lin@pos \advance\init@volta@pos-\volta@startcor %+simick
-}%
-
-\def\write@volta@hrule{% write the hrule of volta bar at its end
- \ifx\volta@type\empty
- \else
- \y@v\lin@pos \advance\y@v-\init@volta@pos
-% \global\advance\cut@v\lthick \advance\y@v-\cut@v %-simick
-% \global\advance\cut@v\lthick %-simick
- \ifnum\barsinlin@=\maxbarsinlin@ %+simick
- \y@i\z@ %+simick
- \else %+simick
- \y@i\cut@v \advance\y@i-\volta@endcor %+simick
- \fi %+simick
- \advance\y@v-\y@i %+simick
- \y@\altplancher \advance\y@\systemheight
- \advance\y@\raisevolta
- \raise\y@\llap{%
- \raise\thevolta@boxheight
-% \hbox{\vrule\@height\z@\@depth\lthick\@width\y@v}}% %-simick
- \hbox{\vrule\@height\z@\@depth\lthick\@width\y@v}\kern\y@i}% %+simick
-% check whether termination has been required
- \ifx\endvolta@set\thr@@ \let\volta@type\thr@@\fi % \endvoltabox forces type \thr@@
- \ifx\endvolta@set\empty \else \write@volta@endbox\fi
- % now set volta@type \@ne to \empty
- \ifx\volta@type\@ne \let\volta@type\empty\fi
- \fi
-}%
-
-\def\write@volta@endbox{% write the hrule of volta bar at its end
- \ifx\volta@type\empty
- \else
-% \y@v\lin@pos \advance\y@v-\init@volta@pos %-simick
-% \global\advance\cut@v\lthick \advance\y@v-\cut@v %-simick
-% \global\advance\cut@v\lthick %-simick
- \y@\altplancher \advance\y@\systemheight
- \advance\y@\raisevolta
- \ifx\volta@type\thr@@
-% \raise\y@\llap{\raise\thevolta@boxheight\hbox{\true@endvoltabox}}% %-simick
- \raise\y@\llap{\raise\thevolta@boxheight\hbox{\true@endvoltabox}\kern\y@i}%+simick
- \fi
-% now force volta@type to \empty
- \let\volta@type\empty
- \let\endvolta@set\empty
- \let\volta@cut\empty
- \fi
-}%
-
-%\check
-
-\let\writ@volta\empty % provisional for testing %
-
-\let\volta@set\empty % tells the kind of volta setting at next bar
- % \@ne = single \setvolta, \tw@ = \Setvolta
- % \thr@@ = setvoltabox
-
-\let\volta@type\empty % the current volta setting (same defs as \volta@set)
-\let\volta@cut\empty
-
-\let\endvolta@set\empty % tells the kind of volta closingg at next bar
- % \@ne = not used, \tw@ = terminate \Setvolta[box]
- % \thr@@ = terminate \Setvolta[box] with an ending hook
-
-\def\setvolta{\let\volta@set\@ne \gen@setvolta}
-\def\Setvolta{\let\volta@set\tw@ \gen@setvolta}
-\def\setvoltabox{\let\volta@set\thr@@ \gen@setvolta}
-
-\def\gen@setvolta#1{\def\volta@text{#1}}
-
-\def\setendvolta{%
- \ifx\volta@type\empty\volta@err
- \else\let\endvolta@set\tw@
- \fi}
-
-\def\setendvoltabox{%
- \ifx\volta@type\empty\volta@err
- \else\let\endvolta@set\thr@@
- \fi}
-
-\let\endvolta\setendvolta
-\let\endvoltabox\setendvoltabox
-
-\def\true@endvoltabox{\raise-\thevolta@boxheight
- \llap{\vrule\@height\thevolta@boxheight \@depth\thevolta@boxdepth}}
-
-\def\volta@err{\immediate\write16{%
- type=\ifx\volta@type\empty 0\else \number\volta@type\fi,
- set=\ifx\volta@set\empty 0\else \number\volta@set\fi}%
-\errmessage{\noexpand\endvolta, %\noexpand\contvolta,
-\noexpand\endvoltabox\space does not match opening \noexpand\S[s]volta...}}
-
-
-%%% line breaking stuff
-
-\let\@nds@ction\empty
-
-\newcount\barsinlin@
-\newcount\maxbarsinlin@
-
-%\def\@LeftRp{\stoppiec@\contpiece\addspace{\h@lf\afterruleskip}% %-simick
-% \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip} %-simick
-\def\@LeftRp{\stoppiec@\l@@ftrepeat\advance\volta@startcor-\afterruleskip %+simick
- \contpiece\addspace{\h@lf\afterruleskip}% %+simick
- \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip %+simick
- \advance\lastbarpos\afterruleskip \b@rrul@} %+simick
-
-\def\@LeftRpCont{\stoppiec@\l@@ftrepeat\advance\volta@startcor-\afterruleskip % RDT 1.28
- \let\z@sw\@ne % turn on continuation bar number
- \contpiece\addspace{\h@lf\afterruleskip}%
- \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip%
- \advance\lastbarpos\afterruleskip \b@rrul@}
-
-\def\T@bil{\advance\barsinlin@\@ne \ifnum\barsinlin@<\maxbarsinlin@}
-
-\def\barre{\T@bil \@bar\else\stoppiec@\contpiece \fi}
-\def\xbar{\@bar\advance\barsinpi@c@\m@ne}
-\def\zbar{\T@bil \zn@wbar\else\zstoppiec@\contpiece \fi}
-\def\alaligne{\stoppiece\contpiece}
-\def\zalaligne{\zstoppiece\contpiece}
-
-% ...@II means used in the *second* tex pass
-
-\def\leftrepeat@II{%
-\T@bil
- \setleftrepeat\@bar
-\else
- \@LeftRp %
-\fi}
-
-\def\zleftrepeat@II{% % RDT 1.28
-\advance\barno\m@ne%
-\T@bil
- \setleftrepeat\@bar%
-\else
- \@LeftRpCont% % RDT 1.28
-\fi}
-
-
-\let\leftrepeat\leftrepeat@II
-\let\zleftrepeat\zleftrepeat@II % RDT 1.28
-
-\def\zzleftrepeat{% % RDT 1.28
-\advance\barno\m@ne%
-\stoppiece%
-\let\z@sw\@ne%
-\contpiece%
-\advance\barno\m@ne%
-\leftrepeat%
-}
-
-\def\leftrightrepeat@II{%
-\T@bil
- \setleftrightrepeat\@bar
-\else
- \setrightrepeat\@LeftRp
-\fi}
-
-\def\zzrightrepeat{% % RDT 1.28
- \advance\barno\m@ne%
- \setrightrepeat\stoppiece
- \let\z@sw\@ne
- \contpiece
-}
-
-\def\zrightrepeat{% % RDT 1.28
-\advance\barno\m@ne
-\setrightrepeat
-\T@bil
- \@bar
-\else
- \stoppiec@
- \let\z@sw\@ne
- \contpiece
-\fi}
-
-\def\zzleftrightrepeat{% % RDT 1.28
-\advance\barno\m@ne%
-\setrightrepeat%
-\stoppiece%
-\let\z@sw\@ne%
-\contpiece%
-\advance\barno\m@ne%
-\leftrepeat% % RDT revised 1.30
-}
-
-\def\zleftrightrepeat@II{% % RDT 1.28
-\advance\barno\m@ne
-\T@bil
- \setleftrightrepeat\@bar
-\else
- \stoppiec@
- \let\z@sw\@ne
- \contpiece
-\fi}
-
-\let\leftrightrepeat\leftrightrepeat@II
-\let\zleftrightrepeat\zleftrightrepeat@II % RDT 1.28
-
-
-\def\zdoublebar{\advance\barno\m@ne\setdoublebar\xbar} % RDT revised 1.32
-
-\def\zzdoublebar{% % RDT 1.31
-\advance\barno\m@ne%
-\setdoublebar%
-\stoppiece%
-\let\z@sw\@ne%
-\contpiece%
-}
-
-\def\zzbar{% % RDT 1.31
-\advance\barno\m@ne%
-\stoppiece%
-\let\z@sw\@ne%
-\contpiece%
-}
-
-\def\alapage{\stoppiece\eject\contpiece}
-\def\zalapage{\zstoppiece\eject\contpiece}
-
-% minuscule: une seule barre
-% majuscule: double barre
-
-\let\Writ@newsigns\empty
-
-\def\updat@context{\writ@newclefs
- \T@bil \wbarno@x\Writ@newsigns\Writ@meters\addspace\afterruleskip
-%%% 1.21: added \lastbarno setting
- \else\Writ@newsigns\z@suspend\contpiece \fi}
-
-
-
-
-
-
-\def\changecontext{\showallbarrules\n@wbar\updat@context}
-\def\Changecontext{\showallbarrules\setdoublebar\changecontext}
-\def\zchangecontext{\advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip
- \zn@wbar\updat@context}
-
-\def\pchangecontext{\showallbarrules\n@wbar
- \writ@newclefs\Writ@newsigns\z@suspend\eject\contpiece}
-\def\pChangecontext{\setdoublebar\pchangecontext}
-
-%%% bars, repeatbars, ...
-
-%%
-% Change ... to add skip \beforeruleskip to the preceeding notebox,
-% and to set the 'soft' switch for the output record
-%%
-%%
-% Redefine \n@wbar to write the bar line thickness to file,
-% then reset \n@skip and \x@skip
-%%
-
-\newskip\lastbarpos
-\let\fil@barno\empty
-\let\atnextbar\empty
-
-\def\n@wbar{%
- \t@rmskip % essai DT
- \advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip
-% \ifdim\cut@v>\z@ \else\ifx\barrul@\thinrul@ \else\global\cut@v.9\Interligne \fi\fi %-simick
-% \barrul@\widthtyp@\z@ \fil@termskip\let\barrul@\thinrul@ %-simick
- \barrul@\widthtyp@\z@ \fil@termskip %+simick
- \advance\barsinpi@c@\@ne \fil@barno
- \ifx\no@b\empty \message{bar \the\barno}\fi
- \advance\barno\@ne \advance\lin@pos\x@skip \atnextbar \let\atnextbar\empty
- \write@volta@hrule %+simick
-% \global\cut@v\z@ % <===================================== inserted %-simick
- \global\n@skip\z@ \global\x@skip\z@ \let\z@sw\empty
-% \write@volta@hrule %-simick
-}%
-
-\def\@bar{\n@wbar\wbarno@x\lastbarpos\lin@pos\addspace\afterruleskip}
-
-\def\zn@wbar{\t@rmskip\advance\barsinpi@c@\@ne \let\z@sw\@ne}
-
-\def\small@spc{\addspace{\h@lf\big@spc}}
-
-\def\b@rrul@{\let\barrul@\thinrul@ %+simick
- \global\cut@v\lthick \global\volta@endcor-\thr@@\lthick \global\volta@startcor\z@} %+simick
-\def\r@ightrepeat{%
- \hbox{\writ@colons\addspace\big@spc\thinrul@\small@spc\thickrul@}}
-\def\r@@ghtrepeat{% %+simick
- \global\cut@v\big@spc \global\advance\cut@v\lthick \global\advance\cut@v\h@lf\big@spc %+simick
- \global\volta@endcor\cut@v \global\advance\cut@v\big@spc \global\volta@startcor\z@} %+simick
-\def\l@eftrepeat{%
- \hbox{\thickrul@\small@spc\thinrul@\addspace\big@spc\writ@colons}}
-\def\l@@ftrepeat{% %+simick
- \global\cut@v\big@spc \global\advance\cut@v\h@lf\big@spc \global\advance\cut@v\lthick %+simick
- \global\advance\cut@v\big@spc \global\volta@endcor\z@ \global\volta@startcor\big@spc %+simick
- \global\advance\volta@startcor\lthick \global\advance\volta@startcor\h@lf\big@spc} %+simick
-\def\l@eftrightrepeat{\hbox{\writ@colons\addspace\big@spc\thickrul@
- \small@spc\thickrul@\addspace\big@spc\writ@colons}}
-\def\l@@ftrightrepeat{% %+simick
- \global\cut@v\big@spc \global\advance\cut@v\big@spc \global\volta@endcor\cut@v %+simick
- \global\advance\cut@v\h@lf\big@spc %+simick
- \global\volta@startcor\big@spc \global\advance\volta@startcor\big@spc %+simick
- \global\advance\cut@v\volta@endcor \global\advance\volta@startcor-\lthick} %+simick
-
-\def\doublebar{\showallbarrules\setdoublebar\barre}% double barre de mesure
-%\def\setdoubleBAR{\showallbarrules\def\barrul@{\thinrul@\small@spc\thickrul@}} %-simick
-\def\setdoubleBAR{\showallbarrules\def\barrul@{\thinrul@\small@spc\thickrul@}% %+simick
- \global\cut@v\lthick \global\advance\cut@v\h@lf\big@spc \global\volta@endcor\cut@v %+simick
- \global\advance\cut@v\big@spc \global\volta@startcor\z@} %+simick
-%\def\setemptybar{\def\barrul@{\relax}} %-simick
-\def\setemptybar{\def\barrul@{\relax}% %+simick
- \global\cut@v\z@ \global\volta@endcor-\f@ur\lthick \global\volta@startcor\z@} %+simick
-\def\setdoublebar{\showallbarrules\global\cut@v.4\Interligne
- \global\advance\cut@v\tw@\lthick \global\volta@endcor\z@ \global\volta@startcor\z@ %+simick
- \def\barrul@{\thinrul@\addspace{.4\Interligne}\thinrul@}}
-
-\def\rightrepeat{\setrightrepeat\barre}
-
-%\def\setrightrepeat{\showallbarrules\let\barrul@\r@ightrepeat} %-simick
-\def\setrightrepeat{\showallbarrules\let\barrul@\r@ightrepeat \r@@ghtrepeat} %+simick
-%\def\setleftrepeat{\showallbarrules\let\barrul@\l@eftrepeat} %-simick
-\def\setleftrepeat{\showallbarrules\let\barrul@\l@eftrepeat \l@@ftrepeat} %+simick
-%\def\setleftrightrepeat{\showallbarrules\let\barrul@\l@eftrightrepeat} %-simick
-\def\setleftrightrepeat{\showallbarrules\let\barrul@\l@eftrightrepeat \l@@ftrightrepeat}%+simick
-
-% write colons on all staffs (a part of [left][right]repeat symbols
-
-%\def\writ@colons{\n@loop{\w@coli}\repeat}
-
-
-
-\def\writ@colons{\n@loop{\w@coli}\repeat}
-\def\w@coli{\p@loop
- {\ifnum\nblines=6\tabc@lsix%
- \else\ifnum\nblines=4\tabc@lfour%
- \else\raise\altportee\hbox{\raise4\internote\hbox{\keychar55}}\fi\fi}\count@portee\repeat}
-
-%%%% 1.29 RDT
-\def\tabc@lsix{\raise\altportee\hbox{%
- %\raise7\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}% uncomment if wanted
- \raise5\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}%
- \raise3\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}% comment out if unwanted
- \raise1\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}%
- %\raise-1\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}% uncomment if wanted
-}}
-
-%%%% 1.29 RDT
-\def\tabc@lfour{\raise\altportee\hbox{%
- \raise3\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}%
- \raise1\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}% comment out if unwanted
- \raise-1\internote\rlap{\kernm1.2\internote\hbox{\keychar24}}%
-}}
-%%% seperated and full barlines
-
-%\def\rul@full#1{\raise\altplancher\rlap{\vrule\@depth\hlthick
-% \@height\systemheight\@width#1}\addspace#1}
-
-\def\rul@full#1{\hbox{\raise\altplancher\rlap{\vrule\@depth\hlthick
- \@height\systemheight\@width#1}}\addspace#1}
-
-\def\rul@sep#1{\noport@@\z@\n@loop
- \edef\rul@hidden{\csname h@bl\romannumeral\noinstrum@nt\endcsname}%
- \Comp@High\hbox{\raise\altitude\rlap{%
-% \message{(tw@=\meaning\tw@\space thr@@=\meaning\thr@@\space \number\noinstrum@nt->}\expandafter\show\rul@hidden
- \expandafter
- \ifx\rul@hidden\relax % if \relax = never hidden
- \vrule\@depth\hlthick\@width#1\@height\y@v
- \else
- \expandafter
- \ifx\rul@hidden\thr@@ % if \thr@@ = not hidden one time,
- \vrule\@depth\hlthick\@width#1\@height\y@v
- \global\expandafter\let\rul@hidden\tw@ % reset to perm. hidden
- \else
- \expandafter
- \ifx\rul@hidden\tw@ % if \tw@ = always hidden
- \relax
- \else
- \expandafter
- \ifx\rul@hidden\@ne % if \@ne = hidden only one time
- \global\expandafter\let\rul@hidden\relax
- \fi
- \fi
- \fi
- \fi}}\repeat\addspace#1}
-
-%== hides (only) next bar line for specified instrument
-\def\Hidebarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\@ne}
-
-%== hides all next bar lines for specified instrument
-\def\hidebarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\tw@}
-
-%== force showing all bar lines for specified instrument
-\def\showbarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\relax}
-
-%== force showing all bar lines for all instruments
-\def\showallbarrules{%
- %\ifx\writ@rule\rul@sep\relax
- \n@loop
- \global\expandafter\let\csname h@bl\romannumeral\noinstrum@nt\endcsname\relax
- \repeat
- %\fi
-}
-
-%== force showing (only) next bar line for specified instrument
-\def\Showbarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\thr@@}
-
-% standard vrules over all instruments
-\def\stdbarrules{\let\writ@rule\rul@full }
-
-% separated vrules par instrum
-\def\sepbarrules{\let\writ@rule\rul@sep }
-\stdbarrules
-
-%%% signs
-
-\def\s@l@ctsigns{\edef\a@s{\csname a@s\romannumeral\noinstrum@nt\endcsname}%
- \edef\o@s{\csname o@s\romannumeral\noinstrum@nt\endcsname}}%
-
-\def\setsign#1#2{\noinstrum@nt#1\relax
- \let\Writ@newsigns\writ@newsigns % only write them, when they are touched
- \s@l@ctsigns % select instrument
- \a@s#2\relax %
-}
-
-\def\generalsignature#1{\let\Writ@newsigns\writ@newsigns
- \m@loop \s@l@ctsigns \a@s#1\repeat}
-
-% Inhibits writing erasing naturals at next change of context
-\def\ignorenats{\m@loop \s@l@ctsigns \o@s\z@ \repeat}
-
-\def\changesignature{\t@rmskip\Writ@newsigns}
-
-\def\writ@sign{\ifnum\a@s=\z@ \else
- \n@v\@lii
- \ifnum\a@s>\z@ \C@sig\t@n
- \C@sh\@ne\s@v@n
- \C@sh\tw@\@l@v@n
- \C@sh\thr@@\@ight
- \C@sh\f@ur\fiv@
- \C@sh\fiv@\nin@
- \C@sh\si@\si@\fi
- \n@v\@l
- \ifnum\a@s<\z@ \C@sig\si@
- \C@fl\@ne\nin@
- \C@fl\tw@\fiv@
- \C@fl\thr@@\@ight
- \C@fl\f@ur\f@ur
- \C@fl\fiv@\s@v@n
- \C@fl\si@\thr@@\fi
- \fi}
-
-\def\C@sh#1#2{\ifnum\a@s>#1\C@sig#2\fi}
-\def\C@fl#1#2{\ifnum\a@s<-#1\C@sig#2\fi}
-
-%%
-% Augment \writ@newsigns so that
-% (1) the space taken by the mid-line sign change is written to the file;
-% (2) the new value of \sign@skip is written to the file
-% Note that this is not necessarily the same value
-% as the mid-line value, which includes cancellation naturals when
-% the key signature changes from N flats to M sharps (or vice-versa)
-%%
-
-\let\fil@signs\empty
-
-\def\writ@newsigns{\sign@skip\z@
- \n@loop{\s@l@ctsigns \let\@Ti\writ@newsign \C@wsi}\repeat
- \n@skip\sign@skip \widthtyp@\z@ \t@rmskip
- \m@loop \s@l@ctsigns \o@s\a@s \repeat
- \let\Writ@newsigns\empty \fil@signs }
-
-\def\upd@width#1{\ifdim#1<\wd\toks@box \global#1\wd\toks@box \fi}
-\def\writ@box{\leavevmode\raise\altportee\rlap{\box\toks@box}}
-
-\newcount\ut@ref
-
-\def\get@refs#1#2#3#4{% #1-#4: cle correspondante 0=sol, 5-6=fa, 1-4=ut
- \ifcase\noport@@ \ut@ref\z@ \or \ut@ref#1\or \ut@ref#2\or
- \ut@ref#3\or \ut@ref#4\fi
- \relax \ifnum \ut@ref=9\relax \ut@ref-1\relax\fi
- \global\ut@ref\ut@ref }
-
- %\def\writ@newsign{\ifnum\a@s=\z@ \else\kern.4\Internote \fi
- % \ifnum\o@s<\z@ \w@flats\w@sharps\else\w@sharps\w@flats \fi}
-
-\def\writ@newsign{\ifnum\a@s=\z@ \else\kern.4\Internote \fi
- \ifnum\o@s<\z@ \w@cancelflats\w@flats\w@sharps
- \else\w@cancelsharps\w@sharps\w@flats \fi}
-
-\def\w@flats{\W@Fl\z@\si@ \W@Fl\@ne\nin@ \W@Fl\tw@\fiv@ \W@Fl\thr@@\@ight
- \W@Fl\f@ur\f@ur \W@Fl\fiv@\s@v@n \W@Fl\si@\thr@@}
-
-\def\w@cancelflats{\W@canFl\z@\si@ \W@canFl\@ne\nin@ \W@canFl\tw@\fiv@
- \W@canFl\thr@@\@ight \W@canFl\f@ur\f@ur \W@canFl\fiv@\s@v@n \W@canFl\si@\thr@@}
-
- %\def\W@Fl#1#2{%
- % \ifnum\a@s<-#1\n@v\@l \C@sig#2\else \ifnum\o@s<-#1\n@v\@liv \C@sig#2\fi \fi}
-
-\def\W@Fl#1#2{%
- \ifnum\a@s<-#1\n@v\@l \C@sig#2\else \ifnum\o@s<-#1\relax\fi \fi}
-
-\def\W@canFl#1#2{%
- \ifnum\a@s<-#1\relax\else \ifnum\o@s<-#1\n@v\@liv \C@sig#2\fi \fi}
-
-\def\w@sharps{\W@Sh\z@\t@n \W@Sh\@ne\s@v@n \W@Sh\tw@\@l@v@n
- \W@Sh\thr@@\@ight \W@Sh\f@ur\fiv@ \W@Sh\fiv@\nin@ \W@Sh\si@\si@}
-
-\def\w@cancelsharps{\W@canSh\z@\t@n \W@canSh\@ne\s@v@n \W@canSh\tw@\@l@v@n
- \W@canSh\thr@@\@ight \W@canSh\f@ur\fiv@ \W@canSh\fiv@\nin@ \W@canSh\si@\si@}
-
- %\def\W@Sh#1#2{%
- % \ifnum\a@s>#1\n@v\@lii \C@sig#2\else\ifnum\o@s>#1\n@v\@liv \C@sig#2\fi \fi}
-
-\def\W@Sh#1#2{%
- \ifnum\a@s>#1\n@v\@lii \C@sig#2\else\ifnum\o@s>#1\relax\fi \fi}
-
-\def\W@canSh#1#2{%
- \ifnum\a@s>#1\relax\else\ifnum\o@s>#1\n@v\@liv \C@sig#2\fi \fi}
-
-\def\C@wsi{\s@l@ctclefs \p@loop \count@portee \expandafter\get@refs\the\a@c
- \setbox\toks@box\hbox{\kern.4\Internote \@Ti \kern.4\Internote}%
- \upd@width\sign@skip \writ@box \repeat}
-
- %\def\C@sig#1{\n@iii#1%
- % \ifnum\ut@ref>\z@
- % \advance\n@iii\ut@ref \advance\n@iii\ut@ref
- % \ifnum\ut@ref=\si@ \advance\n@iii-\s@v@n \fi
- % \ifnum\ut@ref>\thr@@ \advance\n@iii-\s@v@n \fi
- % \ifnum\n@iii>\@l@v@n \advance\n@iii-\s@v@n \fi
- %\fi
- %\advance\n@iii-\tw@ \raise\n@iii\internote
- %\hbox\@to\tw@\internote{\hss\keychar\n@v\hss}}
-
-\def\C@sig#1{\n@iii#1% Correction by W. Icking
- \advance\n@iii\ut@ref \advance\n@iii\ut@ref
- \ifnum\ut@ref=\si@ \advance\n@iii-\fourt@@n%
- \else \ifnum\ut@ref>\z@ \advance\n@iii-\s@v@n \fi\fi
- \ifnum\n@iii<\@ne \global\advance\n@iii\s@v@n \fi
- \ifnum\n@iii<\@ne \global\advance\n@iii\s@v@n \fi
- \ifnum\n@iii>\@l@v@n \advance\n@iii-\s@v@n \fi
- \ifnum\n@iii>\@l@v@n \advance\n@iii-\s@v@n \fi
- \advance\n@iii-\tw@ \raise\n@iii\internote
- \hbox\@to\tw@\internote{\hss\keychar\n@v\hss}}
-
-%%% meterindicators
-
-\def\s@l@ctm@t{\edef\m@t{\csname m@t\romannumeral\noinstrum@nt\endcsname}}
-
-\def\setmeter#1#2{\noinstrum@nt#1\relax % select instrument
- \let\Writ@meters\writ@meters % only write them, when they are touched
- \s@l@ctm@t \m@t{#2\empty\empty\empty}}
-
-\def\generalmeter#1{\let\Writ@meters\writ@meters
- \m@loop \s@l@ctm@t \m@t{{#1}{#1}{#1}{#1}}\repeat}
-
-%%
-% Redefine \writ@meters to set the 'hard' switch for
-% \t@rmskip, indicating that this length is unscaleable
-%%
-
-% \meterskip influence the space before !first! writemeters
-\newskip\meterskip
-
-\def\writ@meters{\addspace\meterskip \meterskip\z@ \global\n@skip\z@
- \n@loop{\writ@meteri}\repeat
- \ifdim\n@skip>\z@ \advance\n@skip\big@spc
- \widthtyp@\z@ \t@rmskip \fi \let\Writ@meters\empty}
-
-\def\writ@meteri{\s@l@ctm@t \p@loop \setbox\toks@box
- \hbox{\expandafter\writ@meterp\the\m@t{}{}{}{}}\upd@width\n@skip
- \writ@box \count@portee\repeat}
-
-\def\writ@meterp#1#2#3#4{%
- \ifcase\noport@@\hbox{#1}\or \hbox{#2}\or \hbox{#3}\or \hbox{#4}\fi}
-
-\def\meterfrac#1#2{%
- \ifnum\nblines=6%
- \setbox\toks@box\vbox{\hbox{~\meterfont#1}%
- \hbox{~\meterfont #2}}\raise\internote%
- \vbox\@to\@ight\internote{\offinterlineskip%
- \vss\hbox\@to\wd\toks@box{\hss\meterfont#1\hss}\vskip1.5\internote%
- \vss\hbox\@to\wd\toks@box{\hss\meterfont#2\hss}\vss}%
- \else\ifnum\nblines=4%
- \setbox\toks@box\vbox{\hbox{\ \meterfont#1}%
- \hbox{\ \meterfont #2}}\raise-1\internote\vbox\@to\@ight\internote{\offinterlineskip
- \vss\hbox\@to\wd\toks@box{\hss\meterfont#1\hss}\vss
- \vss\hbox\@to\wd\toks@box{\hss\meterfont#2\hss}\vss}
- \else
- \setbox\toks@box\vbox{\hbox{\ \meterfont#1}%
- \hbox{\ \meterfont #2}}\vbox\@to\@ight\internote{\offinterlineskip
- \vss\hbox\@to\wd\toks@box{\hss\meterfont#1\hss}\vss
- \vss\hbox\@to\wd\toks@box{\hss\meterfont#2\hss}\vss}
- \fi\fi
-}
-\def\allabreve{% -> 2/2
- \ifnum\nblines=6\raise5\internote\hbox{\keychar82}%
- \else\ifnum\nblines=4\raise3\internote\hbox{\keychar82}%
- \else\raise4\internote\hbox{\keychar82}\fi\fi}
-\def\reverseallabreve{%
- \ifnum\nblines=6\raise5\internote\hbox{\keychar123}%
- \else\ifnum\nblines=4\raise3\internote\hbox{\keychar123}
- \else\raise4\internote\hbox{\keychar123}\fi\fi}
-\def\meterC{% -> 4/4
- \ifnum\nblines=6\raise5\internote\hbox{\musickeyfont\@lxxxiii}%
- \else\ifnum\nblines=4\raise3\internote\hbox{\musickeyfont\@lxxxiii}%
- \else\raise4\internote\hbox{\musickeyfont\@lxxxiii}\fi\fi}
-\def\reverseC{% -> 4/2
- \ifnum\nblines=6\raise5\internote\hbox{\keychar84}%
- \else\ifnum\nblines=4\raise3\internote\hbox{\keychar84}%
- \else\raise4\internote\hbox{\keychar84}\fi\fi}
-\def\meterN#1{%
- \ifnum\nblines=6\raise3\internote\hbox{\meterfont#1}%
- \else\ifnum\nblines=4\raise1\internote\hbox{\meterfont#1}%
- \else\raise2\internote\hbox{\meterfont#1}\fi\fi}
-\def\meterplus{{\keychar57}}
-
-%%% clefs
-
-\def\s@l@ctclefs{\edef\a@c{\csname a@c\romannumeral\noinstrum@nt\endcsname}%
- \edef\o@c{\csname o@c\romannumeral\noinstrum@nt\endcsname}}
-
-% why simple, when it can be done complicated ?
-
-\newtoks\t@c
-\def\@fourtoks#1#2#3#4#5+{#1#2#3#4}
-
-\def\setclef#1#2{\noinstrum@nt#1\relax
- \ifnum#1<1\errmessage{Instrument number not positive}\fi
- \s@l@ctclefs \t@c{#2000}%
- \a@c\expandafter\expandafter\expandafter{\expandafter\@fourtoks\the\t@c+}}
- \let\setclefs\setclef
-
-\let\bass\si@
-\let\alto\thr@@
-\let\treble\z@
-
-\def\setclefsymbol#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname bassc@s\romannumeral\n@v\endcsname{#2}%
- \expandafter\def\csname altoc@s\romannumeral\n@v\endcsname{#2}%
- \expandafter\def\csname treblec@s\romannumeral\n@v\endcsname{#2}%
-}%
-
-\def\setbassclefsymbol#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname bassc@s\romannumeral\n@v\endcsname{#2}%
-}%
-
-\def\setaltoclefsymbol#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname altoc@s\romannumeral\n@v\endcsname{#2}%
-}%
-
-\def\settrebleclefsymbol#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname treblec@s\romannumeral\n@v\endcsname{#2}%
-}%
-
-\def\trebleclef{\keychar71}
-\def\bassclef{\keychar73}
-\def\altoclef{\keychar75}
-
-\def\smalltrebleclef{\keychar72}
-\def\smallbassclef{\keychar74}
-\def\smallaltoclef{\keychar76}
-
-%% version 1.21: replaced \smalltype\it by \txtfont (size-dependent)
-%% and adjusted the kerns RDT
-%%
-
-\def\trebleoct{\trebleclef\raise 9\internote\hbox\@to\z@{\txtfont{\kern -3.6\internote 8}\hss}}
-\def\bassoct{\bassclef\raise 2\internote\hbox\@to\z@{\txtfont{\kern -4.6\internote 8}\hss}}
-\def\treblelowoct{\trebleclef\raise -7.5\internote\hbox\@to\z@{\txtfont{\kern -4.6\internote 8}\hss}}
-\def\basslowoct{\bassclef\raise -6\internote\hbox\@to\z@{\txtfont{\kern -5.0\internote 8}\hss}}
-
-% [version 1.15] reqest from Hermann Hinsch
-\def\smalltrebleoct{\smalltrebleclef\raise 7.2\internote\hbox\@to\z@{\txtfont{\kern -3.6\internote 8}\hss}}
-\def\smalltreblelowoct{\smalltrebleclef\raise-6.8\internote\hbox\@to\z@{\txtfont{\kern -4.2\internote 8}\hss}}
-\def\smallbassoct{\smallbassclef\raise 2\internote\hbox\@to\z@{\txtfont{\kern -4.0\internote 8}\hss}}
-\def\smallbasslowoct{\smallbassclef\raise-6.5\internote\hbox\@to\z@{\txtfont{\kern -4.4\internote 8}\hss}}
-% [version 1.15] reqest from Hermann Hinsch: end
-
-
-\newskip\clef@skip
-
-\def\changeclefs{\t@rmskip\writ@newclefs}
-\def\zchangeclefs{\t@rmskip\zwrit@newclefs}
-
-%%% version 1.21: new command to call and reset \atnextbar before outputting new clefs RDT
-\def\Changeclefs{\t@rmskip\atnextbar\let\atnextbar\empty\writ@newclefs}
-
-% since the characters are shifted by default(Metafont) they looked
-% a little bit strange when you mix several staffstaffsizes (flushleft)
-% I've introduced a hack(kern kernm), that they are (nearly) centered
-% (aehmm, really not the best way, because now they look strange
-% if you use music footnotes)
-
-\def\writ@clefi{\s@l@ctclefs
- \p@loop
- \setbox\toks@box\hbox{\expandafter\writ@clefp\the\a@c}%
- \upd@width\clef@skip\raise\altportee\rlap{%
- \ifdim\internote<\Internote \kern\thr@@\Internote\kernm\thr@@\internote \fi
- \box\toks@box}\count@portee\repeat}
-
-\def\writ@clefp#1#2#3#4{%
- \ifcase\noport@@\singl@clef#1%
- \or \singl@clef#2\or \singl@clef#3\or \singl@clef#4\fi}
-
-\def\singl@clef#1{\n@iii#1\relax
- \ifcase\n@iii
- \C@Clef\@ne\trebleclef@var\or
- \C@Clef\z@\altoclef@var\or
- \C@Clef\@ne\altoclef@var\or
- \C@Clef\tw@\altoclef@var\or
- \C@Clef\thr@@\altoclef@var\or
- \C@Clef\tw@\bassclef@var\or
- \C@Clef\thr@@\bassclef@var\or
- \C@Clef\f@ur\bassclef@var\or % 7 = subbass
- \or
- \C@Clef\z@\trebleclef@var % 9 = french violin-clef
- \fi
-}
-
-\def\C@Clef#1#2{\n@iii#1\relax\multiply\n@iii\tw@
- \raise\n@iii\internote\hbox{#2}}
-
-\def\bassclef@var{\expandafter
- \ifx\csname bassc@s\romannumeral\noinstrum@nt\endcsname\z@
- \bassclef\else \csname bassc@s\romannumeral\noinstrum@nt\endcsname \fi}
-\def\trebleclef@var{\expandafter
- \ifx\csname treblec@s\romannumeral\noinstrum@nt\endcsname\z@
- \trebleclef\else \csname treblec@s\romannumeral\noinstrum@nt\endcsname \fi}
-\def\altoclef@var{\expandafter
- \ifx\csname altoc@s\romannumeral\noinstrum@nt\endcsname\z@
- \altoclef\else \csname altoc@s\romannumeral\noinstrum@nt\endcsname \fi}
-
-\def\smallbassclef@var{\expandafter
- \ifx\csname bassc@s\romannumeral\noinstrum@nt\endcsname\z@
- \smallbassclef\else \csname bassc@s\romannumeral\noinstrum@nt\endcsname \fi}
-\def\smalltrebleclef@var{\expandafter
- \ifx\csname treblec@s\romannumeral\noinstrum@nt\endcsname\z@
- \smalltrebleclef\else \csname treblec@s\romannumeral\noinstrum@nt\endcsname \fi}
-\def\smallaltoclef@var{\expandafter
- \ifx\csname altoc@s\romannumeral\noinstrum@nt\endcsname\z@
- \smallaltoclef\else \csname altoc@s\romannumeral\noinstrum@nt\endcsname \fi}
-
-
-%%
-% Redefine \writ@newclefs similarly
-%
-% Note that \clef@skip does not change for the different clef
-% symbols (always 3.2\Interligne for normal sized clefs)
-% Hence there is no need to communicate clef changes to the
-% formatting program
-%%
-
-\def\writ@newclefs{\clef@skip\z@ \n@loop{\writ@newclefi}\repeat
- \n@skip\clef@skip \widthtyp@\z@ \t@rmskip
- \m@loop \s@l@ctclefs \o@c\a@c \repeat}
-
-% the same as \writ@newclefs, but no spacing
-
-\def\zwrit@newclefs{\clef@skip\z@
- \setbox\writ@volta@box \hbox{\n@loop{\writ@newclefi}\repeat}%
- \kern -\clef@skip \box\writ@volta@box
- \kern \clef@skip
- \clef@skip\z@ % test
- \n@skip\clef@skip
- \widthtyp@\z@
- \t@rmskip
- \m@loop \s@l@ctclefs \o@c\a@c \repeat}
-
-% Thanks to Helmut Kopka for helping me out
-\def\writ@newclefi{\s@l@ctclefs\p@loop
- \setbox\toks@box\hbox{\expandafter\expandafter\expandafter\writ@newclefp
- \the\expandafter\a@c\the\o@c}%
- \upd@width\clef@skip \writ@box \count@portee\repeat}
-
-\def\writ@newclefp#1#2#3#4#5#6#7#8{%
- \ifcase\noport@@\newsingl@clef#1#5\or \newsingl@clef#2#6\or
- \newsingl@clef#3#7\or \newsingl@clef#4#8\fi}
-
-\def\newsingl@clef#1#2{\n@iii#1\relax \n@ii#2\relax
- \ifnum\n@ii=\n@iii
- \else
- \ifcase\n@iii
- \C@Clef\@ne\smalltrebleclef@var\or
- \C@Clef\z@\smallaltoclef@var\or
- \C@Clef\@ne\smallaltoclef@var\or
- \C@Clef\tw@\smallaltoclef@var\or
- \C@Clef\thr@@\smallaltoclef@var\or
- \C@Clef\tw@\smallbassclef@var \or
- \C@Clef\thr@@\smallbassclef@var\or
- \C@Clef\f@ur\smallbassclef@var\or % 7 = subbass
- \or
- \C@Clef\z@\smalltrebleclef@var % 9 = french violin-clef
- \fi
- \fi}
-
-%%% instrumentnames
-
-%\let\Writ@names\empty
-
-\def\setname#1#2{\n@v#1\relax % select instrument
-% \let\Writ@names\writ@names
- \expandafter\def\csname instrument\romannumeral\n@v\endcsname{#2}}% [version 1.15] changed from \edef to \def (Hiroaki)
-
-\def\writ@names{\n@loop
- \setbox\toks@box\null\relax
- \ifnum\st@ffs>0\relax
- \setbox\toks@box\llap{\vbox{\hbox\@to\parindent{%
- \hss\csname instrument\romannumeral\noinstrum@nt\endcsname\hss}}\ \ }%
- \fi
- \altportee\altitude \Comp@High \advance\y@v-\ht\toks@box
- \advance\altportee\h@lf\y@v
- \writ@box
- \repeat}
-
-%%%
-
-% les notes proprement dites
-
-\newdimen\noteskip
-\newcount\transpose
-\newcount\normaltranspose
-\newdimen\locx@skip
-\newdimen\elemskip
-\newdimen\@l@mskip
-
-\def\check@staff{%
- \ifnum\noport@@>\st@ffs\relax
- \ifx\Post@Elims\undefined\else
- \immediate\write16{check@staff\space inst=\the\noinstrum@nt\space
- staff=\the\noport@@\space st@ffs=\the\st@ffs\space Elim.}\relax
- \fi
- \ifnum\st@ffs>0\relax
- \errmessage{Staff number (\the\noport@@) out of specified range (\the\st@ffs)!}\fi
- \else\relax}
-%\def\check@staff{\iftrue\relax}
-
-\let\ifactiveinstrument\check@staff
-
-\def\nextstaff{\@ndstaff\beginstaff}
-\def\nextinstrument{\@ndstaff\begininstrument}
-\def\prevstaff{\@ndstaff\advance\noport@@-2\relax\beginstaff}
-\def\selectstaff#1{\@ndstaff\noport@@#1\relax
- \advance\noport@@ -1\relax\beginstaff}
-\def\selectinstrument#1{\@ndstaff\noinstrum@nt#1\relax
- \advance\noinstrum@nt -1\relax\begininstrument}
-
-\def\begininstrument{\advance\noinstrum@nt\@ne \s@l@ctinstr
- \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
- \noport@@\z@ \beginstaff}
-
-\def\beginstaff{\leavevmode
- \altportee\altitude \advance\altportee\noport@@\interportee
- \count@portee \s@l@ctclefs \expandafter\get@refs\the\a@c
- \setbox\n@otebox\hbox\bgroup
- \let\rq\rq@ \let\lq\lq@ \let\mp\mp@ % \let\ds\ds@oup RDT 1.27
- \locx@skip\x@skip}
-
-\def\@ndstaff{\egroup % this where \transpose gets reset
- \ifdim\n@skip<\wd\n@otebox \n@skip\wd\n@otebox \fi
- \raise\altportee\rlap{\unhbox\n@otebox}}
-
-%%% shifting
-
-\def\offs@t#1{\off{-\s@o@}#1\off\s@o@}
-\def\loffset#1{\edef\s@o@{#1\qn@width}\offs@t}
-\def\roffset#1{\edef\s@o@{-#1\qn@width}\offs@t}
-\def\roff{\roffset\@ne}
-\def\loff{\loffset\@ne}
-\def\hroff{\roffset\h@lf}
-\def\hloff{\loffset\h@lf}
-
-%%% decode collective coding
-
-% les symboles de notes ou assimiles
-
-\newcount\inh@alt
-\def\getn@i{\inh@alt\z@ \xgetn@i}
-\def\inhgetn@i{\inh@alt\@ne \xgetn@i}
-
-\def\f@tok#1#2\af@tok{#1}
-\def\s@tok#1#2\af@tok{#2}
-
-% \n@viii used as flag: \n@viii=\maxdimen -> argument is no number
-
-\def\C@Get{\n@viii\maxdimen \edef\alt@suite{\noexpand\getn@i\s@uite\relax}}
-\def\C@GET{\n@viii\maxdimen \edef\alt@suite{%
- \ifnum\inh@alt=\z@ \noexpand\@TI{\s@uite}\fi \noexpand\getn@i\s@uite\relax}}
-
-\def\xgetn@i#1\relax{\n@viii\z@ \n@i\maxdimen % par defaut
-%% \edef\t@ruc{\f@tok #1\relax\af@tok}%
- \edef\t@ruc{\expandafter\f@tok #1\relax\af@tok}%
- \edef\s@uite{\s@tok #1\empty\af@tok}%
-%% pas lettre
- \ifcat a\t@ruc \n@i\expandafter`\t@ruc\relax
-%% ramener au E (position zero en clef de sol, ut@ref=0)
- \ifnum\n@i>96\advance\n@i-101%
- \else\advance\n@i-\@lxxxiii % ramener au S= E + 14
- \fi
- \advance\n@i\ut@ref \advance\n@i\ut@ref \advance\n@i\transpose
- \edef\ss@uite{\noexpand\n@fon{\s@uite}}%
-%% cas active character dont chiffre
- \else
- \let\ss@uite\empty
- \let\alt@suite\empty
- \ifcat 1\t@ruc
- \if =\t@ruc \let\@TI\na \C@GET \fi
- \if *\t@ruc \sk \C@Get \fi
- \if .\t@ruc \let\@TI\pt \C@GET \fi
- \if >\t@ruc \let\@TI\dsh \C@GET \fi
- \if <\t@ruc \let\@TI\dfl \C@GET \fi
- \if !\t@ruc \transpose\normaltranspose \C@Get \fi
- \if '\t@ruc \advance\transpose\s@v@n \C@Get \fi
- \if `\t@ruc \advance\transpose-\s@v@n \C@Get \fi
- \ifnum\n@viii<\maxdimen \n@i#1\fi
- \else
- \if ^\t@ruc \let\@TI\sh \C@GET \fi
- \if _\t@ruc \let\@TI\fl \C@GET \fi
- \fi\alt@suite
- \fi}
-
-%%% setting stems and flags
-
-\newdimen\st@bot % note stem bottom
-\newdimen\st@top % note stem top
-\newdimen\stem@skip
-
-\def\stdstemfalse{\let\stdst@m\@ne}
-
-\def\setst@m{%
- \advance\y@i\altportee
- \ifdim\st@bot>\y@i \global\st@bot\y@i \fi
- \ifdim\st@top<\y@i \global\st@top\y@i \fi
- \advance\y@i-\altportee}
-
-\def\resetst@m{%
- \global\st@bot\maxdimen \global\st@top-\maxdimen \let\stdst@m\empty}
-\resetst@m
-
-\def\minst@bot{\ifdim\st@bot>\f@ur\internote
- \ifx\stdst@m\empty \st@bot\f@ur\internote \fi \fi}
-
-\def\maxst@top{\ifdim\st@top<\f@ur\internote
- \ifx\stdst@m\empty \st@top\f@ur\internote \fi \fi}
-
-\def\stem@rule{%
- \vrule\@height\st@top\@depth-\st@bot\@width\lthick\kernm\lthick}
-
-\def\comp@stem{\advance\st@bot-\altportee \advance\st@top-\altportee}
-
-\def\C@stem{\ifdim\st@top>\st@bot
- \comp@stem\kern\stem@skip\stem@rule
- \kernm\stem@skip
- \fi\resetst@m}
-
-\def\stemlength#1{\def\stemfactor{#1}}
-\def\DefaultStemlength{4.66}
-\stemlength{\DefaultStemlength}
-
-% cut stems in extrem positions for multiple voices in one staff
-
-\def\stemcut{\let\st@mcut\empty}
-\def\nostemcut{\let\st@mcut\@ne}
-\stemcut
-
-\def\Box@Flag{\setbox\ch@box\hbox{\musixfont\char\n@vii}\y@v\ht\ch@box }
-
-\def\down@flag{\Box@Flag\advance\st@bot-\y@v
- \advance\st@bot-\stemfactor\interbeam
- \advance\st@bot\DefaultStemlength\interbeam
- \ifdim\st@top>\st@bot \comp@stem\minst@bot
- \stem@rule\raise\st@bot\box\ch@box \fi\resetst@m}
-
-\def\up@flag{\Box@Flag\advance\st@top\y@v
- \advance\st@top\stemfactor\interbeam
- \advance\st@top-\DefaultStemlength\interbeam
- \ifdim\st@top>\st@bot \comp@stem\maxst@top
- \kern\qd@skip\stem@rule\advance\st@top-\y@v \raise\st@top\box\ch@box%
- \kernm\qd@skip \fi\resetst@m}
-
-\def\cutst@l#1{%
- \ifdim\st@bot<-#1\internote \advance\st@bot\qu@rt\interbeam \fi}
-
-\def\downst@m{\stem@skip\z@
- \advance\st@bot-\stemfactor\interbeam
- \advance\st@bot-\altportee
- \ifx\st@mcut\empty
- \ifdim\st@bot<-\thr@@\internote
- \cutst@l\thr@@\cutst@l\f@ur\cutst@l\fiv@
- \cutst@l\si@\cutst@l\s@v@n\cutst@l\@ight \fi \fi
- \minst@bot\advance\st@bot\altportee
- \C@stem}
-
-\def\cutst@u#1{%
- \ifdim\st@top>#1\internote \advance\st@top-\qu@rt\interbeam \fi}
-
-\def\upst@m{\stem@skip\qd@skip
- \advance\st@top\stemfactor\interbeam
- \advance\st@top-\altportee
- \ifx\st@mcut\empty
- \ifdim\st@top>\@l@v@n\internote
- \cutst@u\@l@v@n\cutst@u\tw@lv@\cutst@u\active
- \cutst@u\fourt@@n\cutst@u\fiv@t@@n\cutst@u\sixt@@n \fi \fi
- \maxst@top\advance\st@top\altportee
- \C@stem}
-
-\newdimen\s@lope
-
-\def\comp@slope#1{\s@lope\b@p#1\divide\s@lope\tw@nty}
-
-\def\beamst@m{% queue de note vers une poutre
- \getcurpos \advance\y@v-\b@x
- \y@ii\b@p\y@v \divide\y@ii\tw@nty \advance\y@ii\b@z
- \ifdim\y@ii>\st@top % la poutre est au-dessus
- \stem@skip\qd@skip \comp@slope\stem@skip \advance\y@ii\s@lope
- \advance\y@ii .285\interbeam% version 1.18 RDT
- \ifnum\b@n>\z@ \advance\y@ii\b@n\interbeam \advance\y@ii-\interbeam \fi
- \st@top\y@ii % a mettre a jour avec la pente ulterieurement
- \else
- \advance\y@ii-.285\interbeam% version 1.18 RDT
- \stem@skip\z@
- \ifdim\y@ii<\st@bot
- \ifnum\b@n<\z@ \advance\y@ii\b@n\interbeam \advance\y@ii\interbeam \fi
- \st@bot\y@ii \fi \fi
- \C@stem}
-
-%%% writing notes inclusive lines (subsidiary lines ?) (german: Hilfslinien)
-
-\newif\ifadvance\advancetrue
-
-% Modification by Werner Icking
-% ledger lines exceed the note by: y@vi := 0.35 (noteskip - notewidth)
-% and: 0.5 qn@width > y@vi > 0.2 qn@width
-\newdimen\y@vi
-\def\h@linei{%
- \y@ii\n@v\internote
- \y@iii\y@ii
- \advance\y@ii\hlthick
- \advance\y@iii-\hlthick
- \y@vi\noteskip % noteskip
-%-\ifnum\y@vi=\z@ \y@vi\maxdimen\fi % (or maxdimen if noteskip = 0)
- \advance\y@vi-\y@v % - notewidth
- \y@vi0.7\y@vi % this may be eaten =: additional length
- \y@iv\h@lf\qn@width\ifnum\y@vi>\y@iv \y@vi\y@iv\fi % not more than 0.5 qn@width
- \y@iv0.2\qn@width \ifnum\y@vi<\y@iv \y@vi\y@iv\fi % not less than 0.2 qn@width
- \y@iv\y@v % notewidth
- \advance\y@iv\y@vi % + additional length =: total length
- \kernm\h@lf\y@vi % center the ledger line
-%-\message{noteskip = \the\noteskip, length = \the\y@iv, notewidth = \the\y@v}%
- \vrule\@height\y@ii\@depth-\y@iii\@width\y@iv
- \kernm\y@iv\kern\h@lf\y@vi}
-
-% end Werner Icking's modification of ledger lines.
-% old behaviour can be restored with musixfll.tex (or musixfll.sty)
-
-\def\writ@note{%
- \ifnum\n@i<\@c
-% help lines \n@i (position)
- \ifnum\nblines>\thr@@ % no help lines for percussion instruments
- \n@v\z@
- \ifnum\n@i<\m@ne % waste memory, but saves time
- \loop \advance\n@v\m@ne \ifnum\n@i<\n@v
- \advance\n@v\m@ne \h@linei
- \repeat
- \else
- \n@v\nblines \advance\n@v\m@ne \multiply\n@v\tw@
- \ifnum\n@i>\n@v
- \loop \advance\n@v\@ne \ifnum\n@i>\n@v
- \advance\n@v\@ne \h@linei
- \repeat
- \fi
- \fi
- \fi
-%
- \pl@base\setst@m\st@m
- \ifadvance \raise\y@i\adv@box\n@sym \else \raise\y@i\hbox{\n@sym}\fi
- \ss@uite \advancetrue
- \fi}
-
-\def\adv@box#1{\hbox\@to\noteskip{#1\hss}\advance\locx@skip\noteskip}
-
-%%% breve, longa, maxima, arbitrary notes, non spacing
-
-\def\zmaxima{\def\w@h{\musixchar36}\y@v\tw@\wn@width \advancefalse \g@w}
-\def\zlonga{\def\w@h{\musixchar39}\y@v\wn@width \advancefalse \g@w}
-\def\zbreve{\def\w@h{\musixfont\@xxxii}\y@v\wn@width \advancefalse \g@w}
-\def\zwq{\def\w@h{\musixchar56}\y@v\wn@width \advancefalse \g@w}
-\def\zwqq{\def\w@h{\musixchar127}\y@v\wn@width \advancefalse \g@w}
-
-\def\g@w#1{\let\st@m\resetst@m
- \check@staff
- \getn@i#1\relax\let\n@fon\g@w \let\n@sym\w@h \writ@note
- \fi}
-
-\def\maxima{\def\w@h{\musixchar36}\y@v\tw@\wn@width \g@w}
-\def\longa{\def\w@h{\musixchar39}\y@v\wn@width \g@w}
-\def\breve{\def\w@h{\musixfont\@xxxii}\y@v\wn@width \g@w}
-\def\wq{\def\w@h{\musixchar56}\y@v\wn@width \g@w}
-\def\wqq{\def\w@h{\musixchar127}\y@v\wn@width \g@w}
-
-%%% alternate longa (with up stem) by Ingo Struck
-%%% struck@student.uni-siegen.de
-
-\def\lngdnst@m{\stem@skip1.25\qd@skip
- \advance\st@bot-\stemfactor\interbeam
- \advance\st@bot-\altportee
- \ifx\st@mcut\empty
- \ifdim\st@bot<-\thr@@\internote
- \cutst@l\thr@@\cutst@l\f@ur\cutst@l\fiv@
- \cutst@l\si@\cutst@l\s@v@n\cutst@l\@ight \fi \fi
- \minst@bot\advance\st@bot\altportee
- \C@stem}
-
-\def\lngupst@m{\stem@skip1.25\qd@skip
- \advance\st@top\stemfactor\interbeam
- \advance\st@top-\altportee
- \ifx\st@mcut\empty
- \ifdim\st@top>\@l@v@n\internote
- \cutst@u\@l@v@n\cutst@u\tw@lv@\cutst@u\active
- \cutst@u\fourt@@n\cutst@u\fiv@t@@n\cutst@u\sixt@@n \fi \fi
- \maxst@top\advance\st@top\altportee
- \C@stem}
-
-\def\@longa#1{\getn@i#1\relax
- \ifnum\n@i>\thr@@
- \let\st@m\lngdnst@m
- \else
- \let\st@m\lngupst@m
- \fi
- \let\n@fon\@longa \let\n@sym\q@u \y@v\qn@width \writ@note}
-
-\def\l@ngasymbol{\def\q@u{\musixfont\@xxxii}}
-
-\def\longaa{\l@ngasymbol\@longa}
-
-%%% whole notes
-
-\def\C@Point#1#2{\ifodd\n@i \else#2\internote \fi\hbox{\musixchar#1}}
-
-\def\wh{\def\w@h{\musixfont\nin@}\y@v\wn@width \g@w}
-\def\whp{\def\w@h{\musixfont\nin@\roffset\qu@rt{\C@Point\z@\raise}}%
- \y@v\wn@width \g@w}
-\def\whpp{\def\w@h{\musixfont\nin@\roffset\qu@rt{\C@Point\@ne\raise}}%
- \y@v\wn@width \g@w}
-
-%%% whole noteheads, no advance
-
-\def\zw{\advancefalse\wh}
-\def\zwp{\advancefalse\whp}
-\def\zwpp{\advancefalse\whpp}
-\let\zwh\zw
-
-\def\lw#1{\kernm\wn@width\zw{#1}\kern\wn@width}
-\def\rw#1{\kern\wn@width\zw{#1}\kernm\wn@width}
-\def\lwp#1{\kernm\wn@width\zwp{#1}\kern\wn@width}
-\def\rwp#1{\kern\wn@width\zwp{#1}\kernm\wn@width}
-\def\lwpp#1{\kernm\wn@width\zwpp{#1}\kern\wn@width}
-\def\rwpp#1{\kern\wn@width\zwpp{#1}\kernm\wn@width}
-
-%%% common routines for noteheads with the same width as a quarter note
-
-\def\@qa#1{\getn@i#1\relax
- \ifnum\n@i>\thr@@
- \let\st@m\downst@m
- \else
- \let\st@m\upst@m
- \fi
- \check@staff % version 1.16
- \let\n@fon\@qa \let\n@sym\q@u \y@v\qn@width \writ@note
- \fi}
-
-\def\@qu{\let\st@m\upst@m \g@q}
-\def\@ql{\let\st@m\downst@m \g@q}
-\def\@zq{\let\st@m\setst@m \advancefalse\g@q}
-\def\@nq{\let\st@m\resetst@m \g@q}
-
-\def\g@q#1{\check@staff
- \getn@i#1\relax\let\n@fon\g@q \let\n@sym\q@u
- \y@v\qn@width \writ@note\fi}
-
-\def\@qup{\let\st@m\upst@m \g@qp}
-\def\@qlp{\let\st@m\downst@m \g@qp}
-\def\@zqp{\let\st@m\setst@m \advancefalse\g@qp}
-\def\@nqp{\let\st@m\resetst@m \g@qp}
-
-\def\q@up{\q@u\C@Point\z@\raise}
-\def\g@qp#1{\check@staff
- \getn@i#1\relax\let\n@fon\g@qp \let\n@sym\q@up
- \y@v\qn@width \writ@note\fi}
-
-\def\@qupp{\let\st@m\upst@m \g@qpp}
-\def\@qlpp{\let\st@m\downst@m \g@qpp}
-\def\@zqpp{\let\st@m\setst@m \advancefalse\g@qpp}
-\def\@nqpp{\let\st@m\resetst@m \g@qpp}
-
-\def\q@upp{\q@u\C@Point\@ne\raise}
-\def\g@qpp#1{\check@staff
- \getn@i#1\relax\let\n@fon\g@qpp \let\n@sym\q@upp
- \y@v\qn@width \writ@note\fi}
-
-\def\@lqu#1{\kernm\qn@width\advancefalse\@qu{#1}\kern\qn@width}
-\def\@rqu#1{\kern\qn@width\advancefalse\@qu{#1}\kernm\qn@width}
-
-\def\@lql#1{\kernm\qn@width\advancefalse\@ql{#1}\kern\qn@width}
-\def\@rql#1{\kern\qn@width\advancefalse\@ql{#1}\kernm\qn@width}
-
-\def\@lq#1{\kernm\qn@width\@zq{#1}\kern\qn@width}
-\def\@rq#1{\kern\qn@width\@zq{#1}\kernm\qn@width}
-
-\def\@qb#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@q}
-\def\@tqb#1{\s@l@ctbeam#1\relax \C@tb\t@bbl\lthick \let\st@m\beamst@m \g@q}
-\def\@tqh#1{\s@l@ctbeam#1\relax \C@tb\t@bbu\qn@width \let\st@m\beamst@m \g@q}
-\def\@qbp#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@qp}
-\def\@qbpp#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@qpp}
-
-\def\@ca{\n@iv\@xlv \@mca}
-\def\@cca{\n@iv46 \@mca}
-\def\@ccca{\n@iv47 \@mca}
-\def\@cccca{\n@iv48 \@mca}
-\def\@ccccca{\n@iv49 \@mca}
-
-\def\@mca#1{\getn@i#1\relax \n@vii\n@iv
- \ifnum\n@i>\thr@@
- \let\st@m\down@flag
- \else
- \let\st@m\up@flag \advance\n@vii -\fiv@\relax
- \fi
- \check@staff % version 1.16
- \let\n@fon\@mca \let\n@sym\q@u \y@v\qn@width \writ@note
- \fi}
-
-\def\@cu{\n@vii\@xl \let\st@m\up@flag \g@q}
-\def\@ccu{\n@vii\@xli \let\st@m\up@flag \g@q}
-\def\@cccu{\n@vii42\let\st@m\up@flag \g@q}
-\def\@ccccu{\n@vii43\let\st@m\up@flag \g@q}
-\def\@cccccu{\n@vii44\let\st@m\up@flag \g@q}
-
-\def\@cl{\n@vii\@xlv \let\st@m\down@flag \g@q}
-\def\@ccl{\n@vii46\let\st@m\down@flag \g@q}
-\def\@cccl{\n@vii47\let\st@m\down@flag \g@q}
-\def\@ccccl{\n@vii48\let\st@m\down@flag \g@q}
-\def\@cccccl{\n@vii49\let\st@m\down@flag \g@q}
-
-\def\@cup{\n@vii\@xl \let\st@m\up@flag \g@qp}
-\def\@ccup{\n@vii\@xli \let\st@m\up@flag \g@qp}
-\def\@clp{\n@vii\@xlv \let\st@m\down@flag \g@qp}
-\def\@cclp{\n@vii46\let\st@m\down@flag \g@qp}
-
-
-\def\@cupp{\n@vii\@xl \let\st@m\up@flag \g@qpp}
-\def\@clpp{\n@vii\@xlv \let\st@m\down@flag \g@qpp}
-
-%%% half notes
-
-\def\h@symbol{\def\q@u{\musixfont\@ight}}
-
-\def\ha{\h@symbol\@qa}
-\def\hap#1{\pt{#1}\ha{#1}} % 1.27 RDT
-\def\happ#1{\ppt{#1}\ha{#1}} % 1.27 RDT
-\def\hu{\h@symbol\@qu}
-\def\hup{\h@symbol\@qup}
-\def\hupp{\h@symbol\@qupp}
-
-\def\hl{\h@symbol\@ql}
-\def\hlp{\h@symbol\@qlp}
-\def\hlpp{\h@symbol\@qlpp}
-
-\def\hb{\h@symbol\@qb}
-\def\hbp{\h@symbol\@qbp}
-\def\hbpp{\h@symbol\@qbpp}
-
-\def\zh{\h@symbol\@zq}
-\def\zhp{\h@symbol\@zqp}
-\def\zhpp{\h@symbol\@zqpp}
-
-\def\lh{\h@symbol\@lq}
-\def\rh{\h@symbol\@rq}
-
-\def\zhu{\advancefalse\hu}
-\def\zhup{\advancefalse\hup}
-\def\zhupp{\advancefalse\hupp}
-
-\def\lhu{\h@symbol\@lqu}
-\def\rhu{\h@symbol\@rqu}
-
-\def\zhl{\advancefalse\hl}
-\def\zhlp{\advancefalse\hlp}
-\def\zhlpp{\advancefalse\hlpp}
-
-\def\lhl{\h@symbol\@lql}
-\def\rhl{\h@symbol\@rql}
-
-\def\lhp#1{\loff{\zhp{#1}}}
-\def\rhp#1{\roff{\zhp{#1}}}
-\def\lhpp#1{\loff{\zhpp{#1}}}
-\def\rhpp#1{\roff{\zhpp{#1}}}
-
-%%% quarter notes, stem up
-
-\def\q@symbol{\def\q@u{\musixfont\s@v@n}}
-
-\def\qa{\q@symbol\@qa}
-
-\def\qap#1{\pt{#1}\qa{#1}} % 1.25 RDT
-\def\qapp#1{\ppt{#1}\qa{#1}} % 1.25 RDT
-
-\def\qu{\q@symbol\@qu}
-\def\qup{\q@symbol\@qup}
-\def\qupp{\q@symbol\@qupp}
-
-%%% quarter notes, stem down
-
-\def\ql{\q@symbol\@ql}
-\def\qlp{\q@symbol\@qlp}
-\def\qlpp{\q@symbol\@qlpp}
-
-%%% quarter notes, stem up, no advance
-
-\def\zqu{\advancefalse\qu}
-\def\zqup{\advancefalse\qup}
-\def\zqupp{\advancefalse\qupp}
-
-\def\lqu{\q@symbol\@lqu}
-\def\rqu{\q@symbol\@rqu}
-
-%%% quarter notes, stem down, no advance
-
-\def\zql{\advancefalse\ql}
-\def\zqlp{\advancefalse\qlp}
-\def\zqlpp{\advancefalse\qlpp}
-
-\def\lql{\q@symbol\@lql}
-\def\rql{\q@symbol\@rql}
-
-%%% quarter noteheads, no advance
-
-\def\zq{\q@symbol\@zq}
-\def\zqp{\q@symbol\@zqp}
-\def\zqpp{\q@symbol\@zqpp}
-
-\def\lqp#1{\loff{\zqp{#1}}}%
-\def\lqpp#1{\loff{\zqpp{#1}}}%
-\def\rqp#1{\roff{\zqp{#1}}}%
-\def\rqpp#1{\roff{\zqpp{#1}}}%
-
-\def\lq@{\q@symbol\@lq}
-\def\rq@{\q@symbol\@rq}
-
-%
-% note heads without stems
-\def\nh{\h@symbol\@nq}
-\def\nq{\q@symbol\@nq}
-\def\znh{\advancefalse\nh}
-\def\znq{\advancefalse\nq}
-
-%%% 8th, 16th, 32th, 64th, (128th) notes
-
-\def\ca{\q@symbol\@ca}
-\def\cca{\q@symbol\@cca}
-\def\ccca{\q@symbol\@ccca}
-\def\cccca{\q@symbol\@cccca}
-\def\ccccca{\q@symbol\@ccccca}
-
-\def\cu{\q@symbol\@cu}
-\def\ccu{\q@symbol\@ccu}
-\def\cccu{\q@symbol\@cccu}
-\def\ccccu{\q@symbol\@ccccu}
-\def\cccccu{\q@symbol\@cccccu}
-
-\def\cup{\q@symbol\@cup}
-\def\ccup{\q@symbol\@ccup}
-\def\cupp{\q@symbol\@cupp}
-
-\def\zcu{\advancefalse\cu}
-\def\zccu{\advancefalse\ccu}
-\def\zcccu{\advancefalse\cccu}
-\def\zccccu{\advancefalse\ccccu}
-\def\zcccccu{\advancefalse\cccccu}
-
-\def\lcu#1{\kernm\qn@width\zcu{#1}\kern\qn@width}
-\def\rcu#1{\kern\qn@width\zcu{#1}\kernm\qn@width}
-
-\def\zcup{\advancefalse\cup}
-\def\zccup{\advancefalse\ccup}
-\def\zcupp{\advancefalse\cupp}
-
-\def\cl{\q@symbol\@cl}
-\def\ccl{\q@symbol\@ccl}
-\def\cccl{\q@symbol\@cccl}
-\def\ccccl{\q@symbol\@ccccl}
-\def\cccccl{\q@symbol\@cccccl}
-
-\def\clp{\q@symbol\@clp}
-\def\cclp{\q@symbol\@cclp}
-\def\clpp{\q@symbol\@clpp}
-
-\def\zcl{\advancefalse\cl}
-\def\zccl{\advancefalse\ccl}
-\def\zcccl{\advancefalse\cccl}
-\def\zccccl{\advancefalse\ccccl}
-\def\zcccccl{\advancefalse\cccccl}
-
-\def\zclp{\advancefalse\clp}
-\def\zcclp{\advancefalse\cclp}
-\def\zclpp{\advancefalse\clpp}
-
-\def\lcl#1{\kernm\qn@width\zcl{#1}\kern\qn@width}
-\def\rcl#1{\kern\qn@width\zcl{#1}\kernm\qn@width}
-
-%%% beam notes
-
-\def\qb{\q@symbol\@qb}
-\def\qbp{\q@symbol\@qbp}
-\def\qbpp{\q@symbol\@qbpp}
-
-\def\zqb{\advancefalse\qb}
-\def\zqbp{\advancefalse\qbp}
-\def\zqbpp{\advancefalse\qbpp}
-
-\def\tqh{\q@symbol\@tqh}
-\def\tqu{\q@symbol\@tqh} % version 1.16 RDT
-\def\tqb{\q@symbol\@tqb}
-\def\tql{\q@symbol\@tqb} % version 1.16 RDT
-
-\def\tqqh#1#2{\tbbu{#1}\tqh{#1}{#2}} % version 1.17 RDT
-\def\tqqu{\tqqh} % version 1.17 RDT
-\def\tqqb#1#2{\tbbl{#1}\tqb{#1}{#2}} % version 1.17 RDT
-\def\tqql{\tqqb} % version 1.17 RDT
-\def\tqqqh#1#2{\tbbbu{#1}\tqqh{#1}{#2}} % version 1.17 RDT
-\def\tqqqu{\tqqqh} % version 1.17 RDT
-\def\tqqqb#1#2{\tbbbl{#1}\tqqb{#1}{#2}} % version 1.17 RDT
-\def\tqqql{\tqqqb} % version 1.17 RDT
-
-\def\nqqh#1#2{\tbbu{#1}\qb{#1}{#2}} % version 1.27 RDT
-\def\nqqb#1#2{\tbbl{#1}\qb{#1}{#2}} % version 1.27 RDT
-\def\nqqqh#1#2{\tbbbu{#1}\qb{#1}{#2}} % version 1.27 RDT
-\def\nqqqb#1#2{\tbbbl{#1}\qb{#1}{#2}} % version 1.27 RDT
-\def\nqqu{\nqqh} % version 1.27 RDT
-\def\nqql{\nqqb} % version 1.27 RDT
-\def\nqqqu{\nqqqh} % version 1.27 RDT
-\def\nqqql{\nqqqb} % version 1.27 RDT
-
-\def\ztqh{\advancefalse\q@symbol\@tqh}
-\def\ztqu{\advancefalse\q@symbol\@tqh} % version 1.16 RDT
-\def\ztqb{\advancefalse\q@symbol\@tqb}
-\def\ztql{\advancefalse\q@symbol\@tqb} % version 1.16 RDT
-
-%%% grace notes
-
-\def\grcu{\q@symbol\@grcu}
-\def\grcl{\q@symbol\@grcl}
-
-\def\@grcu{\n@vii\tw@lv@ \let\st@m\up@flag \g@q}
-\def\@grcl{\n@vii\active \let\st@m\down@flag \g@q}
-
-%%% starting beams
-
-% \ibu{0<=numero<10}{altitude~note}{pente de -9 a +9}
-% \ibl{0<=numero<10}{altitude~note}{pente de -9 a +9}
-
-% \b@p slope (-9) - (9)
-% \b@n number of pending beamlines (-4) - (4)
-
-\def\test@beamnum{% [version 1.15] new macro to make it independent from slur
- \ifnum\n@i<\z@ \n@i\@c \fi
- \ifnum\n@i<\maxinstruments \else
- \count@\maxinstruments \advance\count@\m@ne
- \errmessage{Wrong beam reference number \the\n@i! (valid: 0 to \the\count@)}
- \n@i\z@
- \fi
- \advance\n@i\@ne}%
-
-\def\s@l@ctbeam#1\relax{%
- \n@i#1\relax\test@beamnum % [version 1.15] make it independent from slur
- \edef\b@x{\csname b@x\romannumeral\n@i\endcsname}%
- \edef\b@z{\csname b@z\romannumeral\n@i\endcsname}%
- \edef\b@n{\csname b@n\romannumeral\n@i\endcsname}%
- \edef\b@p{\csname b@p\romannumeral\n@i\endcsname}}
-
-\def\s@l@ctc{\edef\c@x{\csname c@x\romannumeral\n@i\endcsname}%
- \edef\c@z{\csname c@z\romannumeral\n@i\endcsname}}
-
-\def\s@l@ctd{\edef\d@x{\csname d@x\romannumeral\n@i\endcsname}%
- \edef\d@z{\csname d@z\romannumeral\n@i\endcsname}\s@l@ctc}
-
-\def\s@l@cte{\edef\e@x{\csname e@x\romannumeral\n@i\endcsname}%
- \edef\e@z{\csname e@z\romannumeral\n@i\endcsname}\s@l@ctd}
-
-\def\s@l@ctf{\edef\f@x{\csname f@x\romannumeral\n@i\endcsname}%
- \edef\f@z{\csname f@z\romannumeral\n@i\endcsname}\s@l@cte}
-
-\def\s@l@ctg{\edef\g@x{\csname g@x\romannumeral\n@i\endcsname}%
- \edef\g@z{\csname g@z\romannumeral\n@i\endcsname}\s@l@ctf}
-
-\def\ibu#1{\s@l@ctbeam#1\relax \i@bu}
-\def\ibbu#1{\s@l@ctbeam#1\relax \s@l@ctc \i@bbu}
-\def\ibbbu#1{\s@l@ctbeam#1\relax \s@l@ctd \i@bbbu}
-\def\ibbbbu#1{\s@l@ctbeam#1\relax \s@l@cte \i@bbbbu}
-\def\ibbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctf \i@bbbbbu}
-
-\def\ibl#1{\s@l@ctbeam#1\relax \i@bl}
-\def\ibbl#1{\s@l@ctbeam#1\relax \s@l@ctc \i@bbl}
-\def\ibbbl#1{\s@l@ctbeam#1\relax \s@l@ctd \i@bbbl}
-\def\ibbbbl#1{\s@l@ctbeam#1\relax \s@l@cte \i@bbbbl}
-\def\ibbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctf \i@bbbbbl}
-
-\def\i@bu#1#2{%\check@staff
- \ifnum\b@n=\z@ \else \C@tb\t@bbu\qn@width \fi \global\b@n\m@ne
- \inhgetn@i#1\relax \n@v#2 \C@ib+\global\advance\b@x\qd@skip}
-
-\def\i@bl#1#2{%\check@staff
- \ifnum\b@n=\z@ \else \C@tb\t@bbl\lthick \fi \global\b@n\@ne
- \inhgetn@i#1\relax \n@v#2 \C@ib-}
-
-\def\C@ib#1{\max@n@v\nin@\min@n@v{-\nin@}\global\b@p\n@v % clip slope number
- \getcurpos \global\b@x\y@v \b@z#14.333\interbeam \advance\b@z\altportee
- \pl@base \global\advance\b@z\y@i}
-
-\def\C@ba#1#2{\global\advance#1#2\interbeam}
-
-\def\i@bbu#1#2{\ifnum\b@n=\z@ \i@bu{#1}{#2}\C@ba\b@z\@ne \fi\n@bbu}
-\def\i@bbl#1#2{\ifnum\b@n=\z@ \i@bl{#1}{#2}\C@ba\b@z\m@ne \fi\n@bbl}
-
-\def\i@bbbu#1#2{\ifnum\b@n=\z@
- \i@bbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne \fi\n@bbbu}
-\def\i@bbbl#1#2{\ifnum\b@n=\z@
- \i@bbl{#1}{#2}\C@ba\b@z\m@ne \C@ba\c@z\m@ne \fi\n@bbbl}
-
-\def\i@bbbbu#1#2{\ifnum\b@n=\z@
- \i@bbbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne \C@ba\d@z\@ne \fi\n@bbbbu}
-\def\i@bbbbl#1#2{\ifnum\b@n=\z@
- \i@bbbl{#1}{#2}\C@ba\b@z\m@ne \C@ba\c@z\m@ne \C@ba\d@z\m@ne \fi\n@bbbbl}
-
-\def\i@bbbbbu#1#2{\ifnum\b@n=\z@
- \i@bbbbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne \C@ba\d@z\@ne \C@ba\e@z\@ne \fi\n@bbbbbu}
-\def\i@bbbbbl#1#2{\ifnum\b@n=\z@
- \i@bbbbl{#1}{#2}\C@ba\b@z\m@ne \C@ba\c@z\m@ne \C@ba\d@z\m@ne \C@ba\e@z\m@ne \fi\n@bbbbbl}
-
-%%% changing beams
-
-\def\Dec@b#1#2{\ifnum\b@n=#1#2\fi\ifnum\b@n=-#1#2\fi}
-
-%!\def\nbbu#1{\s@l@ctbeam#1\relax \s@l@ctc \ifnum\b@n>-\tw@ \ifnum\b@n<\tw@ \n@bbu \fi \fi }
-%!\def\nbbl#1{\s@l@ctbeam#1\relax \s@l@ctc \ifnum\b@n>-\tw@ \ifnum\b@n<\tw@ \n@bbl \fi \fi }
-
-\def\nbbu#1{\s@l@ctbeam#1\relax \s@l@ctc \n@bbu}
-\def\nbbl#1{\s@l@ctbeam#1\relax \s@l@ctc \n@bbl}
-
-\def\nbbbu#1{\s@l@ctbeam#1\relax \s@l@ctd \Dec@b\@ne\n@bbu \Dec@b\tw@\n@bbbu}
-\def\nbbbl#1{\s@l@ctbeam#1\relax \s@l@ctd \Dec@b\@ne\n@bbl \Dec@b\tw@\n@bbbl}
-
-\def\nbbbbu#1{\s@l@ctbeam#1\relax \s@l@cte
- \Dec@b\@ne\n@bbu \Dec@b\tw@\n@bbbu \Dec@b\thr@@\n@bbbbu}
-\def\nbbbbl#1{\s@l@ctbeam#1\relax \s@l@cte
- \Dec@b\@ne\n@bbl \Dec@b\tw@\n@bbbl \Dec@b\thr@@\n@bbbbl}
-
-\def\nbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctf
- \Dec@b\@ne\n@bbu \Dec@b\tw@\n@bbbu \Dec@b\thr@@\n@bbbbu \Dec@b\f@ur\n@bbbbbu}
-\def\nbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctf
- \Dec@b\@ne\n@bbl \Dec@b\tw@\n@bbbl \Dec@b\thr@@\n@bbbbl \Dec@b\f@ur\n@bbbbbl}
-
-\def\n@bbu{\C@nb\c@z\c@x\@ne\qd@skip}
-\def\n@bbl{\C@nb\c@z\c@x\@ne\z@}
-\def\n@bbbu{\C@nb\d@z\d@x\tw@\qd@skip}
-\def\n@bbbl{\C@nb\d@z\d@x\tw@\z@}
-\def\n@bbbbu{\C@nb\e@z\e@x\thr@@\qd@skip}
-\def\n@bbbbl{\C@nb\e@z\e@x\thr@@\z@}
-\def\n@bbbbbu{\C@nb\f@z\f@x\f@ur\qd@skip}
-\def\n@bbbbbl{\C@nb\f@z\f@x\f@ur\z@}
-
-\def\C@nb#1#2#3#4{%
- \global#1\b@z
- \ifnum\b@n<\z@ \global\advance\b@n\m@ne \global\advance#1-#3\interbeam \fi
- \ifnum\b@n>\z@ \global\advance\b@n\@ne \C@ba#1#3\fi
- {\advance\locx@skip#4\getcurpos \global#2\y@v
- \advance\y@v-\b@x \comp@slope\y@v \global\advance#1\s@lope}}
-
-%%% beam termination
-
-\def\b@adjust{\ifdim\y@ii>\tw@\y@ \advance\y@\y@ \advance\n@vi\@ne \fi}
-
-\def\@beam{% \y@ii : longueur, \b@p : pente, \y@i : altitude
- \ifnum\b@p=\z@
-% slope zero
- \y@iii\y@i\y@iv\y@i
- \advance\y@iii-\b@amthick \advance\y@iv\b@amthick
- \vrule\@height\y@iv\@depth-\y@iii\@width\y@ii
- \else\n@vi\z@
-% slope offset
- \ifnum\b@p>\z@ \n@vi\b@p \multiply\n@vi\si@ \advance\n@vi-\si@ \fi
- \ifnum\b@p<\z@ \n@vi-\b@p \multiply\n@vi\si@ \advance\n@vi58\fi
-% find longest possible character to avoid patchwork
- \y@\tw@\p@
- \b@adjust \b@adjust \b@adjust \b@adjust \b@adjust
- \advance\n@vi\@cxxviii
- \chardef\b@alk\n@vi\musixfont
-%
-% \curwidth=0pt \curheight=\y@i \curxpos=\completewidth
-% \loop\ifdim\curwidth<\completewidth
-% \advance\curxpos by -\beamwidth
-% \ifdim\curxpos<0pt
-% \comp@slope\curxpos
-% \advance\curheight by \s@lope \kern\curxpos \fi
-% \raise\curheight\hbox{\b@alk}%
-% \advance\curwidth by \beamwidth
-% \comp@slope\beamwidth
-% \advance\curheight by \s@lope
-% \repeat \fi
-%
- \y@iv\z@ \y@iii\y@i \y@v\y@ii
- \loop\ifdim\y@iv<\y@ii
- \advance\y@v-\y@
- \ifdim\y@v<\z@ \comp@slope\y@v \advance\y@iii\s@lope \kern\y@v \fi
- \raise\y@iii\hbox{\b@alk}%
- \advance\y@iv\y@ \comp@slope\y@ \advance\y@iii\s@lope
- \repeat \fi}
-
-\def\s@l@ctcde{\s@l@ctc \s@l@ctd \s@l@cte \s@l@ctf }
-
-\def\tbu#1{\s@l@ctbeam#1\relax \C@tb\t@bbu\qn@width }
-\def\tbbu#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbu}
-\def\tbbbu#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbbu}
-\def\tbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbbbu}
-\def\tbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbbbbu}
-
-\def\tbl#1{\s@l@ctbeam#1\relax \C@tb\t@bbl\lthick }
-\def\tbbl#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbl}
-\def\tbbbl#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbbl}
-\def\tbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbbbl}
-\def\tbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctcde \t@bbbbbl}
-
-\def\beam@pos#1{\getcurpos\y@ii\y@v\advance\y@ii-#1}
-
-\def\C@tb#1#2{%
- \n@ii\b@n \ifnum\n@ii<\z@ \n@ii-\n@ii \fi
- \ifcase\n@ii \or \or \s@l@ctc \or \s@l@ctd \or \s@l@cte \or \s@l@ctf \or \s@l@ctg\fi
- \ifnum\b@n<\m@ne #1\fi
- \ifnum\b@n>\@ne #1\fi
- \y@i\b@z \advance\y@i-\altportee \beam@pos\b@x
- \advance\y@ii#2\relax
- \check@staff
- \llap{\@beam\kernm#2}\relax
- \fi\global\b@n\z@}
-
-\def\t@bbu{\n@v\tw@ \C@b\t@bbbu\n@bbu\y@i\c@z \beam@pos\c@x \t@xbu}
-\def\t@bbl{\n@v\tw@ \C@b\t@bbbl\n@bbl\y@i\c@z \beam@pos\c@x \t@xbl}
-
-\def\t@bbbu{\n@v\thr@@ \C@b\t@bbbbu\n@bbbu\y@i\d@z \beam@pos\d@x \t@xbu}
-\def\t@bbbl{\n@v\thr@@ \C@b\t@bbbbl\n@bbbl\y@i\d@z \beam@pos\d@x \t@xbl}
-
-\def\t@bbbbu{\n@v\f@ur \C@b\t@bbbbbu\n@bbbbu\y@i\e@z \beam@pos\e@x \t@xbu}
-\def\t@bbbbl{\n@v\f@ur \C@b\t@bbbbbl\n@bbbbl\y@i\e@z \beam@pos\e@x \t@xbl}
-
-\def\t@bbbbbu{\n@v\fiv@ \C@b\empty\n@bbbbbu\y@i\f@z \beam@pos\f@x \t@xbu}
-\def\t@bbbbbl{\n@v\fiv@ \C@b\empty\n@bbbbbl\y@i\f@z \beam@pos\f@x \t@xbl}
-
-\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-\qn@width#2}\fi
- \ifnum\n@v>\@ne \repeat}
-
-\def\t@xbu{\C@txb\qn@width\interbeam\b@amthick\qd@skip>}
-\def\t@xbl{\C@txb\lthick\b@amthick\interbeam\hlthick<}
-
-\def\C@txb#1#2#3#4#5{\advance\y@i-\altportee
- \advance\y@ii#1\relax
- \check@staff
- \llap{\@beam\kernm#1}%
- \ifnum\b@n#5\z@ \comp@slope\y@ii \advance\y@i\s@lope
- \raise\y@i\rlap{\kern#4\vrule\@height#3\@depth#2\@width\lthick}\relax
- \fi
- \fi
- \ifnum\b@n<\z@ \global\advance\b@n\@ne \fi
- \ifnum\b@n>\z@ \global\advance\b@n\m@ne \fi}
-
-%%% semiautomatic beams
-
-% adjustable beam slopes
-% #1: beam number
-% #2: starting pitch
-% #3: ending pitch,
-% #4: extension (number of \noteskip's)
-
-\def\Ibu#1{\s@l@ctbeam#1\relax\I@bu\i@bu}
-\def\Ibl#1{\s@l@ctbeam#1\relax\I@bl\i@bl}
-\def\Ibbu#1{\s@l@ctbeam#1\relax \s@l@ctc \I@bu\i@bbu}
-\def\Ibbl#1{\s@l@ctbeam#1\relax \s@l@ctc \I@bl\i@bbl}
-\def\Ibbbu#1{\s@l@ctbeam#1\relax \s@l@ctd \I@bu\i@bbbu}
-\def\Ibbbl#1{\s@l@ctbeam#1\relax \s@l@ctd \I@bl\i@bbbl}
-\def\Ibbbbu#1{\s@l@ctbeam#1\relax \s@l@cte \I@bu\i@bbbbu}
-\def\Ibbbbl#1{\s@l@ctbeam#1\relax \s@l@cte \I@bl\i@bbbbl}
-\def\Ibbbbbu#1{\s@l@ctbeam#1\relax \s@l@cte \I@bu\i@bbbbbu}
-\def\Ibbbbbl#1{\s@l@ctbeam#1\relax \s@l@cte \I@bl\i@bbbbbl}
-
-% compute altitude difference of tried beam in \y@iv
-% and compare with notes altitude difference
-
-\def\@@chk{\y@iv.05\y@v \multiply\y@iv\n@viii}
-
-\def\I@buuchk{\@@chk
- \ifdim\y@iv>\n@ii\internote \advance\n@viii\m@ne \I@buuchk \fi
- \ifnum\n@viii>\nin@ \advance\n@i\@ne \advance\n@ii\m@ne \I@buuchk \fi}
-
-\def\I@bldchk{\@@chk
- \ifdim\y@iv<\n@ii\internote \advance\n@viii\@ne \I@bldchk \fi
- \ifnum\n@viii<-\nin@ \advance\n@i\m@ne \advance\n@ii\@ne \I@bldchk \fi}
-
-\def\I@budchk{\@@chk
- \ifdim\y@iv<\n@ii\internote \advance\n@viii\@ne \I@budchk \fi}
-
-\def\I@bluchk{\@@chk
- \ifdim\y@iv>\n@ii\internote \advance\n@viii\m@ne \I@bluchk \fi}
-
-\def\I@bu{\let\@Ti\I@buuchk \let\@Tii\I@budchk \C@Ib}
-\def\I@bl{\let\@Ti\I@bluchk \let\@Tii\I@bldchk \C@Ib}
-
-\def\C@Ib#1#2#3#4{{\n@v#4\relax \min@n@v\@ne
- \inhgetn@i#3\relax\n@ii\n@i
- \inhgetn@i#2\relax\advance\n@ii-\n@i
- \y@v\noteskip \multiply\y@v\n@v
- \ifnum\n@ii=\z@ #1{#2}0%
- \else
- \ifnum\n@ii>\z@ \n@viii\t@n \@Ti\else\n@viii-\t@n \@Tii \fi
- \edef\I@boper{\noexpand#1{\the\n@i}{\the\n@viii}\relax}\I@boper
- \fi}}
-
-% sets of double notes with computed slopes
-
-\def\B@h{\let\B@ii\tqh}
-\def\B@b{\let\B@ii\tqb}
-
-\def\Dqbu{\let\B@i\Ibu \B@h\C@Dq}
-\def\Dqbl{\let\B@i\Ibl \B@b\C@Dq}
-\def\Dqbbu{\let\B@i\Ibbu \B@h\C@Dq}
-\def\Dqbbl{\let\B@i\Ibbl \B@b\C@Dq}
-
-\def\C@Dq#1#2{\B@i0{#1}{#2}1\qb0{#1}\B@ii0{#2}}
-
-% sets of triple notes with computed slopes
-
-\def\Tqbu{\let\B@i\Ibu \B@h\C@Tq}
-\def\Tqbl{\let\B@i\Ibl \B@b\C@Tq}
-\def\Tqbbu{\let\B@i\Ibbu \B@h\C@Tq}
-\def\Tqbbl{\let\B@i\Ibbl \B@b\C@Tq}
-
-\def\C@Tq#1#2#3{\B@i0{#1}{#3}2\qb0{#1#2}\B@ii0{#3}}
-
-% sets of quadruple notes with computed slopes
-
-\def\Qqbu{\let\B@i\Ibu \B@h\C@Qq}
-\def\Qqbl{\let\B@i\Ibl \B@b\C@Qq}
-\def\Qqbbu{\let\B@i\Ibbu \B@h\C@Qq}
-\def\Qqbbl{\let\B@i\Ibbl \B@b\C@Qq}
-
-\def\C@Qq#1#2#3#4{\B@i0{#1}{#4}3\qb0{#1#2#3}\B@ii0{#4}}
-
-%%% duration points
-
-\def\pt{\g@pt\@ne\z@}
-\def\ppt{\g@pt\@ne\@ne}
-\def\pppt{\g@pt\@ne\tw@}
-
-\def\lpt{\g@pt\m@ne\z@}
-\def\lppt{\g@pt\m@ne\@ne}
-\def\lpppt{\g@pt\m@ne\tw@}
-
-
-% Shifted, pointed chord notes
-%
-\def\lhp#1{\loff{\zhp{#1}}}
-\def\rhp#1{\roff{\zhp{#1}}}
-\def\lqp#1{\loff{\zqp{#1}}}
-\def\rqp#1{\roff{\zqp{#1}}}
-\def\rhpp#1{\roff{\zhpp{#1}}}
-\def\lhpp#1{\loff{\zhpp{#1}}}
-\def\rqpp#1{\roff{\zqpp{#1}}}
-\def\lqpp#1{\loff{\zqpp{#1}}}
-
-\def\g@pt#1#2#3{\check@staff
- \inhgetn@i#3\relax \relax % two \relax since the first one
- \ifnum\n@i<\@c % in swallowed by \inhgetn@i
- \ifodd\n@i \else\advance\n@i#1\fi
- \pl@base \raise\y@i\hbox{\musixchar#2}\fi\fi}
-
-%%% rests
-
-\def\wholeshift#1{\roffset{\p@ne25}{#1}}
-
-\def\centerbar#1{\y@ii\lin@pos \advance\y@ii-\lastbarpos \advance\y@ii\cut@v
- \kern-\h@lf\y@ii\lrlap{#1}\kern\h@lf\y@ii}%
-
-
-\def\cpause{\hbox{\ccn{6}{\musixchar61}}}
-\def\chpause{\hbox{\ccn{4}{\musixchar60}}}
-\def\cPAuse{\hbox{\ccn{0}{\musixchar58}}}
-\def\cPAUSe{\hbox{\ccn{0}{\musixchar59}}}
-
-\def\cHpause#1{% 1.21 RDT
-\y@ii\lin@pos \advance\y@ii-\lastbarpos%
-\def\v@rtpart{\hbox{\vrule width.6pt height1.5\internote depth1.5\internote}}%
-\def\h@rizpart{\hbox{\vrule width0.35\y@ii height.5\internote depth.5\internote}}%
-\raise4\internote\hbox{\v@rtpart\h@rizpart\ccn5{\meterfont{#1}}\h@rizpart\v@rtpart}}%
-
-\def\centerpause{\centerbar{\cpause}}
-\def\centerhpause{\centerbar{\chpause}}
-\def\centerPAuse{\centerbar{\cPAuse}}
-\def\centerPAUSe{\centerbar{\cPAUSe}}
-\def\centerHpause#1{\centerbar{\cHpause{#1}}}
-
-\def\C@ps#1#2#3{\n@viii#3\multiply\n@viii\tw@
- \advance\n@viii#2\raise\n@viii\internote \hbox{\musixchar#1}}
-\def\C@pspt#1#2#3{\n@viii#3\multiply\n@viii\tw@
- \advance\n@viii#2\raise\n@viii\internote \hbox{\musixchar#1\relax
- \ifnum #1=\t@n\relax \raise 0.7\internote\hbox{\kern 0.2\qn@width\musixchar0}%
- \else \raise -0.7\internote\hbox{\kern 0.2\qn@width\musixchar0}%
- \fi}%
- }
-
-\def\PAUSe{\adv@box{\musixchar59}}
-\def\PAuse{\adv@box{\musixchar58}}
-
-\def\pause{\check@staff
- \adv@box{\raise\si@\internote\hbox{\musixchar61}}\fi}
-\def\pausep{\wholeshift{\pt5}\pause}
-\def\liftpause{\C@ps\@l@v@n\si@}
-\def\liftpausep{\C@pspt\@l@v@n\si@}
-
-\def\hpause{\check@staff
- \adv@box{\raise\f@ur\internote\hbox{\musixchar60}}\fi}
-\let\hp\hpause
-\def\hpausep{\wholeshift{\pt5}\hpause}
-\let\hpp\hpausep
-\def\lifthpause{\C@ps\t@n\f@ur}
-\def\lifthpausep{\C@pspt\t@n\f@ur}
-
-\newdimen\lift@rest
-\def\adv@restbox#1{\hbox{\lift@rest 5\internote
- \advance\lift@rest -2.5\fontdimen\fiv@\musixfont
- \raise\lift@rest\hbox\@to\noteskip{#1\hss}}\advance\locx@skip\noteskip}
-
-\def\qp{\adv@restbox{\check@staff\musixchar62\fi}}
-\let\soupir\qp
-
-%\def\ds@oup{\adv@restbox{\check@staff\musixchar63\fi}} % why? RDT 1.27
-\def\ds{\adv@restbox{\check@staff\musixchar63\fi}}
-\def\qs{\adv@restbox{\check@staff\musixchar64\fi}}
-\def\hs{\adv@restbox{\check@staff\musixchar65\fi}}
-\def\qqs{\adv@restbox{\check@staff\musixchar66\fi}}
-
-% pointed rests version 1.16 RDT
-\def\qpp{\adv@restbox{\check@staff\pt5\musixchar62\fi}}
-\def\dsp{\adv@restbox{\check@staff\pt5\musixchar63\fi}}
-\def\qsp{\adv@restbox{\check@staff\pt5\musixchar64\fi}}
-\def\hsp{\adv@restbox{\check@staff\pt5\musixchar65\fi}}
-\def\qqsp{\adv@restbox{\check@staff\pt5\musixchar66\fi}}
-
-% double-dotted rests version 1.17 RDT
-
-\def\pausepp{\wholeshift{\ppt5}\pause}
-\def\hpausepp{\wholeshift{\ppt5}\hpause}
-\let\hppp\hpausepp
-\def\qppp{\adv@restbox{\check@staff\ppt5\musixchar62\fi}}
-\def\dspp{\adv@restbox{\check@staff\ppt5\musixchar63\fi}}
-\def\qspp{\adv@restbox{\check@staff\ppt5\musixchar64\fi}}
-\def\hspp{\adv@restbox{\check@staff\ppt5\musixchar65\fi}}
-\def\qqspp{\adv@restbox{\check@staff\ppt5\musixchar66\fi}}
-
-% copied from musixlit.tex: version 1.21 RDT
-
-\def\Hpause#1#2{\zcharnote{#1}{\def\s@r{%
-\vrule\@width.6\p@\@height1\h@lf\internote\@depth1\h@lf\internote}\s@r%
-\vrule\@width#2\noteskip\@height\h@lf\internote\@depth\h@lf\internote\s@r}}
-
-%%% accidentals
-
-\newskip\accshift
-
-\def\bigaccid{\let\small@test\iftrue}
-\def\smallaccid{\let\small@test\iffalse}
-\def\varaccid{\def\small@test{\ifdim\noteskip>1\p@seven\qn@width}}
-
-\varaccid % accidents de taille variable
-
-\def\na#1{\small@test\bigna{#1}\else\smallna{#1}\fi}
-\def\fl#1{\small@test\bigfl{#1}\else\smallfl{#1}\fi}
-\def\sh#1{\small@test\bigsh{#1}\else\smallsh{#1}\fi}
-\def\dfl#1{\small@test\bigdfl{#1}\else\smalldfl{#1}\fi}
-\def\dsh#1{\small@test\bigdsh{#1}\else\smalldsh{#1}\fi}
-
-% n@vi char pos of cautionpar (normal=5, doubleflat=6)
-% n@v offset to char pos (flat=0, dflat=1, sharp=2, dsharp=3, natural=4)
-% n@vi offset to char pos (big=0, small=60)
-% n@vii =maxdimen -> cautionacctrue
-
-\def\writ@ba{\pl@base\raise\y@i\llap{\musixchar\n@v\kern\accshift}}
-\def\set@ba{\let\@Ti\writ@ba \n@vi\z@}
-
-\def\bigna{\set@ba \let\@Tii\@Na \n@v\f@ur \C@acc}
-\def\bigfl{\set@ba \let\@Tii\@Fl \n@v\z@ \C@acc}
-\def\bigsh{\set@ba \let\@Tii\@Sh \n@v\tw@ \C@acc}
-\def\bigdfl{\set@ba \let\@Tii\@dFl \n@v\@ne \C@acc}
-\def\bigdsh{\set@ba \let\@Tii\@dSh \n@v\thr@@ \C@acc}
-
-\def\@sa{\ifnum\n@vii=\maxdimen \C@ChaR \musixchar\n@v \kern.3\qn@width
- \else \musixchar\n@v \fi \n@vii\z@}
-
-\def\smallna{\set@sa \let\@Tii\@Na \n@v\f@ur \C@acc}
-\def\smallfl{\set@sa \let\@Tii\@Fl \n@v\z@ \C@acc}
-\def\smallsh{\set@sa \let\@Tii\@Sh \n@v\tw@ \C@acc}
-\def\smalldfl{\set@sa \n@iv\si@ \let\@Tii\@dFl \n@v\@ne \C@acc}
-\def\smalldsh{\set@sa \let\@Tii\@dSh \n@v\thr@@ \C@acc}
-
-\def\cna{\set@ca \let\@Tii\@Na \n@v\f@ur \C@acc} % version 1.16 HM
-\def\cfl{\set@ca \let\@Tii\@Fl \n@v\z@ \C@acc}
-\def\csh{\set@ca \let\@Tii\@Sh \n@v\tw@ \C@acc}
-\def\cdfl{\set@ca \n@iv\si@ \let\@Tii\@dFl \n@v\@ne \C@acc}
-\def\cdsh{\set@ca \let\@Tii\@dSh \n@v\thr@@ \C@acc}
-%
-\def\writ@sa{\pl@base\raise\y@i\llap{\musixchar\n@v\kern\accshift}}
-\def\set@sa{\let\@Ti\writ@sa \n@iv\fiv@ \n@vi\@xl }
-\def\writ@ca{\pl@base\raise\y@i\llap{\C@ChaR \musixchar\n@v\kern.3\qn@width\kern\accshift}}
-\def\set@ca{\let\@Ti\writ@ca \n@iv\fiv@ \n@vi\@xl }
-
-\def\writ@ua{\advance\n@i\thr@@ \zchar\n@i{\kern\qu@rt\qn@width\@sa}}
-\def\set@upper{\let\@Ti\writ@ua \n@iv\fiv@ \n@vi\@xl }
-
-\def\upperna{\set@upper \let\@Tii\@Na \n@v\f@ur \C@acc}
-\def\upperfl{\set@upper \let\@Tii\@Fl \n@v\z@ \C@acc}
-\def\uppersh{\set@upper \let\@Tii\@Sh \n@v\tw@ \C@acc}
-
-\def\@Na{\ifcase\n@ii \n@v\tw@ \or \n@v\f@ur \or \n@v\z@ \fi}
-\def\@Fl{\ifcase\n@ii \n@v\f@ur \or \n@v\z@ \or \n@v\@ne \fi}
-\def\@Sh{\ifcase\n@ii \n@v\thr@@ \or \n@v\tw@ \or \n@v\f@ur \fi}
-\def\@dFl{\ifcase\n@ii \n@v\z@ \or \n@v\@ne \or
- \message{\@nod flatten \noexpand\dfl \t@ruc}\let\@Ti\empty \fi}
-\def\@dSh{\ifcase\n@ii
- \message{\@nod sharpen \noexpand\dsh \t@ruc}\let\@Ti\empty
- \or \n@v\thr@@ \or \n@v\tw@ \fi}
-
-\def\C@acc#1{%
- \check@staff
- \inhgetn@i#1\relax
- \ifx\rel@sw\@ne
- \s@l@ctsigns \n@iii\n@i
- \advance\n@iii-\ut@ref \advance\n@iii-\ut@ref
- \loop\ifnum\n@iii>\si@ \advance\n@iii-\s@v@n \repeat
- \loop\ifnum\n@iii<\z@ \advance\n@iii\s@v@n \repeat
- \ifcase\n@iii
- \n@ii\si@ % mi
- \or\n@ii\@ne % fa
- \or\n@ii\thr@@ % sol
- \or\n@ii\fiv@ % la
- \or\n@ii\s@v@n % si
- \or\n@ii\tw@ % do
- \or\n@ii\f@ur % re
- \fi
-% \n@ii positive signature limit, \n@ii-8 negative signature limit
- \advance\n@ii-\a@s \advance\n@ii\si@ \divide\n@ii\s@v@n
- \@Tii
- \fi \advance\n@v\@l \advance\n@v\n@vi \expandafter\@Ti % [version 1.15] (Hiroaki)
- \fi}
-
-\def\@nod{Can't double }
-
-\def\relativeaccid{\let\rel@sw\@ne }
-\def\absoluteaccid{\let\rel@sw\empty }
-\absoluteaccid
-
-\def\lna#1{\loffset\smallvalue{\na{#1}}}
-\def\lfl#1{\loffset\smallvalue{\fl{#1}}}
-\def\lsh#1{\loffset\smallvalue{\sh{#1}}}
-\def\ldfl#1{\loffset\smallvalue{\dfl{#1}}}
-\def\ldsh#1{\loffset\smallvalue{\dsh{#1}}}
-
-%%% arpeggio
-
-\def\arpeggio#1#2{\zcharnote{#1}{%
- \uplap{\leaders\hbox{\musixchar70}\vskip#2\Interligne}}}
-\def\larpeggio#1#2{\loffset\smallvalue{\arpeggio{#1}{#2}}}
-
-%%% ornaments, special signs
-
-\def\@Char#1{\zcharnote{#1}\C@ChaR}
-
-\def\backturn{\n@iv67\@Char}
-\def\turn{\n@iv68\@Char}
-\def\duevolte{{\keychar78}}
-\def\caesura{\llap{\musixchar79\kern\h@lf\noteskip}}
-\def\coda{\n@iv85\C@coda}
-\def\Coda{\n@iv105\C@coda}
-\def\C@coda#1{\llap{\@Char{#1}\kern\afterruleskip}}
-\def\segno{\n@iv86\@Char}
-\def\Segno{{\keychar110}}
-\def\shake{\n@iv87\@Char}
-\def\Shake{\n@iv88\@Char}
-\def\Shakel{\n@iv106\@Char}
-\def\Shakenw{\n@iv107\@Char}
-\def\Shakesw{\n@iv108\@Char}
-\def\Shakene{\n@iv109\@Char}
-\def\mordent{\n@iv89\@Char}
-\def\Mordent{\n@iv119\@Char}
-\def\doublethumb{\n@iv121\@Char}
-\def\trt#1{\loffset{0.65}{\shake{#1}}\roffset{0.65}{\mordent{#1}}}
-
-
-\def\tr#1{\loffset{0.15}{\zcn{#1}{\ppff tr}}} % \loffset added version 1.23 RDT
-\def\xtr#1{\raise1.25\internote\hbox{\n@iv111\zcn{#1}\C@ChaR}} % added version 1.23 RDT
-\def\ptr#1{\raise1.25\internote\hbox{\n@iv117\zcn{#1}\C@ChaR}} % added version 1.23 RDT
-%\def\Xtr#1{\wholeshift{\xtr{#1}}} % unnecessary?
-
-%%% accents
-
-\def\upbow{{\musixfont\@xxiii}}
-\def\downbow{{\musixchar22}}
-
-\def\flageolett{\n@iv120\uacc@Char}
-\def\usfz{\n@iv\tw@nty \uacc@Char}
-\def\lsfz{\n@iv21\lacc@Char}
-\def\dsfz{\lsfz}
-\def\upz{\n@iv\@xxiv \uacc@Char}
-\def\lpz{\n@iv\@xxv \lacc@Char}
-\def\dpz{\lpz}
-\def\ust{\n@iv\@xxvi \uacc@Char}
-\def\lst{\n@iv\@xxvii \lacc@Char}
-\def\dst{\lst}
-\def\uppz{\n@iv28\uacc@Char}
-\def\lppz{\n@iv\@xxix \lacc@Char}
-\def\dppz{\lppz}
-\def\usf{\n@iv30\uacc@Char}
-\def\lsf{\n@iv31\lacc@Char}
-\def\dsf{\lsf}
-\def\upzst{\n@iv18\uacc@Char}
-\def\lpzst{\n@iv19\lacc@Char}
-\def\dpzst{\lpzst}
-
-\def\uacc@Char#1{\check@staff
- \inhgetn@i#1\relax \relax
- \ifnum\n@i<\@ight \ifodd\n@i \else\advance\n@i\@ne \fi \fi
- \zchar\n@i\C@ChaR
- \fi}
-
-\def\lacc@Char#1{\check@staff
- \inhgetn@i#1\relax \relax
- \ifnum\n@i>\@ne \ifodd\n@i \else\advance\n@i\m@ne \fi \fi
- \zchar\n@i\C@ChaR
- \fi}
-
-\def\C@ChaR{\musixfont\char\n@iv}
-
- %%% accents on beams (correction proposed by Klaus Bechert)
-
-\def\acc@ubalk{\acc@balk>\@ne}
-\def\acc@lbalk{\acc@balk<\m@ne}
-\def\acc@balk#1#2#3{\s@l@ctbeam#3\relax \getcurpos \advance\y@v\txt@ff
- \advance\y@v-\b@x \y@ii\b@p\y@v \divide\y@ii\tw@nty \advance\y@ii\b@z
- \ifnum\b@n#1#2\relax \advance\y@ii\b@n\interbeam
- \advance\y@ii-#2\interbeam \fi
- \advance\y@ii-\altportee \raise\y@ii\rlap\balk@accent}
-\let\balk@accent\C@ChaR
-
-%\def\bflageolett{\n@iv120\acc@ubalk}
-\def\busfz{\n@iv\tw@nty \acc@ubalk}
-\def\blsfz{\n@iv21\acc@lbalk}
-%\def\bdownbow{\n@iv22\acc@ubalk}
-%\def\bupbow{\n@iv\@xxiii \acc@lbalk}
-\def\bupz{\n@iv\@xxiv \acc@ubalk}
-\def\blpz{\n@iv\@xxv \acc@lbalk}
-\def\bust{\n@iv\@xxvi \acc@ubalk}
-\def\blst{\n@iv\@xxvii \acc@lbalk}
-\def\buppz{\n@iv28\acc@ubalk}
-\def\blppz{\n@iv\@xxix \acc@lbalk}
-\def\busf{\n@iv30\acc@ubalk}
-\def\blsf{\n@iv31\acc@lbalk}
-%\def\bupzst{\n@iv18\acc@ubalk}
-%\def\blpzst{\n@iv19\acc@lbalk}
-
-% The next macros puts triplets (and others def'd with \txt) on beams
-
-\def\butext#1{\txt@ff\qn@width
- \def\balk@accent{\uplap{\lrlap{\kern\tw@\txt@ff\txtfont\txt}\kern\internote}}%
- \acc@ubalk{#1}\txt@ff\h@lf\qn@width \let\balk@accent\C@ChaR}
-
-\def\bltext#1{\txt@ff\z@
- \def\balk@accent{\vbox\@to\z@{\kern\internote\txtfont\lrlap\txt\vss}}%
- \acc@lbalk{#1}\txt@ff\h@lf\qn@width \let\balk@accent\C@ChaR}
-
-%%% end of accents on beams (correction proposed by Klaus Bechert)
-
-%%% crescendo, decrescendo
-
-% These macros puts variable size (de)crescendo marks.
-% \(de)crescendo{#1} #1=length (any TeX dimension, max 192pt(\simeq 68mm))
-
-\def\C@cresc#1{\y@iv#1\n@v\y@iv
- \sp@pt\@ne \advance\n@v\thr@@ % sp->pt round up
- \divide\n@v\si@ % the next is 6pt(notehead) wider
- \max@n@v\@xxxii
- \min@n@v\@ne % clip to extremities
- \advance\n@v\n@ii % first character position (-1)
- \mxsps\char\n@v}
-
-\def\crescendo{\n@ii\@lxxxiii \C@cresc}
-\def\decrescendo{\n@ii\@cxv \C@cresc}
-
-\newskip\@icresc
-\def\icresc{\getcurpos\global\@icresc\y@v }
-\def\tcresc{\n@ii\@lxxxiii \C@cre}
-\def\tdecresc{\n@ii\@cxv \C@cre}
-\def\C@cre{\getcurpos\advance\y@v-\@icresc \kernm\y@v\C@cresc\y@v\kern\y@v}
-
-%%% pedal signs
-
-\def\raiseped{-5}
-
-\def\sPed{\musixchar34}
-\def\sPED{%
-\zchar\raiseped\sPed%
-\getcurpos\advance\y@v1.6ex\global\pdl@pos\y@v%
-\xdef\pdl@instr{\the\noinstrum@nt}\xdef\pdl@staff{\the\noport@@}% save current instrument and staff
-}
-
-\def\Ped{\musixchar35}
-\def\PED{%
-\zchar\raiseped\Ped%
-\getcurpos\advance\y@v2.8ex\global\pdl@pos\y@v%
-\xdef\pdl@instr{\the\noinstrum@nt}\xdef\pdl@staff{\the\noport@@}% save current instrument and staff
-}
-\def\Dep{\musixchar33}
-\def\DEP{%
-\zchar\raiseped\Dep%
-\global\pdl@pos\z@%
-}
-\def\sDep{\musixchar104}
-\def\sDEP{%
-\zchar\raiseped\sDep%
-\global\pdl@pos\z@%
-}
-
-%%% pedal brackets version 1.21 RDT
-%%
-%% \pdld pedal down
-%% \pdlu pedal up
-%% \pdlud pedal up and immediately down
-
-\newdimen\pdl@pos % cursor position for pedal down
-\global\pdl@pos\z@
-
-\def\pdld{\hbox{\hroff{%
-\raise\raiseped\internote\hbox{\vrule height2ex depth0.5pt width0.5pt}%
-\getcurpos\global\pdl@pos\y@v%
-% save current instrument and staff
-\xdef\pdl@instr{\the\noinstrum@nt}\xdef\pdl@staff{\the\noport@@}%
-}}}%
-
-\def\pdlu{\hbox{\hroff{\getcurpos\advance\y@v-\pdl@pos%% compute length of horizontal rule
-\kern-\y@v%
-\raise\raiseped\internote\hbox{%
-\vrule height-0.5pt depth1pt width\y@v%
-\vrule height2ex depth0.5pt width0.5pt %% pedal up
-}}}%
-\global\pdl@pos\z@}%
-
-\newbox\bigwedgebox % 1.22 RDT
-\def\pdlud{\hbox{\hroff{\getcurpos\advance\y@v-\pdl@pos%% compute length of horizontal rule
-\kern-\y@v%
-\thinmuskip=2mu%
-\setbox\bigwedgebox=\hbox{$\!\bigwedge\!$}%
-\def\halfwidthbigwedge{0.5\wd\bigwedgebox}%
-\advance\y@v-\halfwidthbigwedge%
-\raise\raiseped\internote%
-\hbox{%
-\vrule height-0.5pt depth1pt width\y@v% draw horizontal rule
-\kern\halfwidthbigwedge%
-\raise0.33ex\lrlap{$\bigwedge$}% pedal up and down
-}%
-\getcurpos\advance\y@v\halfwidthbigwedge\global\pdl@pos\y@v%
-}}}%
-
-%% cut pedal rule at line end
-%%
-% compute length of horizontal rule
-\def\pdlc@{\getcurpos\advance\y@v-\pdl@pos%
-\kern-\y@v\raise\raiseped\internote\hbox{%
-\vrule height-0.5pt depth1pt width\y@v %% draw horizontal rule
-}}%
-
-%%% fermata
-
-\def\fermataup{\n@iv80\@Char}
-\def\fermatadown{\n@iv81\@Char}
-% center on whole note
-\def\Fermataup#1{\wholeshift{\fermataup{#1}}}
-\def\Fermatadown#1{\wholeshift{\fermatadown{#1}}}
-
-%%% trills
-
-\def\trilleX{\let\T@i\empty \C@trille}
-\let\trille\trilleX
-\def\TrilleX{\def\T@i{\ppff tr }\C@trille} % 1.24 changed from \it RDT
-\let\Trille\TrilleX
-\def\C@trille#1#2{\zcharnote{#1}{\y@v#2\noteskip \trill@}}
-
-\let\maxtrilles\si@
-% \maxtrilles and \@itrille[i] are only for obsolete Legacy \trillC
-% and \TrillC; not related with new register allocation code. Leave
-% it as-is. [version 1.15]
-
-\newskip\@itrillei
-\newskip\@itrilleii
-\newskip\@itrilleiii
-\newskip\@itrilleiv
-\newskip\@itrillev
-\newskip\@itrillevi
-
- %\def\s@l@cttrille#1\relax{%
- % \n@i#1\relax \ifnum\n@i<\z@ \n@i\@c \fi
- % \ifnum\n@i<\maxtrilles \else
- % \n@i\z@ \errmessage{Wrong trill number!}\fi
- % \advance\n@i\@ne
- % \edef\@itrille{\csname @itrille\roman@n@i}% dimen (altportee)
- % }% select trill
-
-
-\def\itrille{\itrill@old{0}}
-\def\ttrille{\ttrill@old{0}}
-\def\tTrille{\tTrill@old{0}}
-
-\def\itrill@old#1{\s@l@cttrill#1\relax
- \ifdim\tr@x < \maxdimen\errmessage{\@mis \noexpand\Ttrille \number #1}\fi
- \getcurpos\global\tr@y\y@v}
-\def\ttrill@old#1{\s@l@cttrill#1\relax
- \message{\noexpand\tr@x=\the\tr@x, No. #1}%
- \ifdim\tr@x < \maxdimen\else\errmessage{\@mis \noexpand\Itrille \number #1}\fi
- \let\T@i\empty \C@tri}
-\def\tTrill@old#1{\s@l@cttrill#1\relax
- \message{\noexpand\tr@x=\the\tr@x, No. #1}%
- \ifdim\tr@x < \maxdimen\else\errmessage{\@mis \noexpand\Itrille \number #1}\fi
- \def\T@i{\ppff tr }\C@tri} % 1.24 changed from \it RDT
-
-\def\C@tri#1{\getcurpos\advance\y@v-\tr@y \kernm\y@v
- \zcharnote{#1}\trill@\kern\y@v\let\T@i\empty\let\@itrille\undefined}
-\def\trill@{\hbox\@to\y@v{\T@i\leaders\hbox{\musixchar69}\hfill}}
-
-%%%%%%
-
-% \let\maxtrills\si@ % here disabled to avoid conflict with new register allocation code
-% [version 1.15] moved out to the new register allocation code
-% \newskip\tr@xi \tr@xi\maxdimen\relax % starting horizontal pos
-% \newtoks\tr@swi % heading of trill
-% \newskip\tr@yi % height of trill
-
-\newcount\tr@number
-
-\def\tr@loop{\tr@number\z@ \loop\ifnum\tr@number<\maxtrills
- \s@l@cttrill\tr@number\relax
- \advance\tr@number\@ne }
-
-\def\s@l@cttrill#1\relax{%
- \n@i#1\relax \ifnum\n@i<\z@ \n@i\@c \fi
- \ifnum\n@i<\maxtrills \else
- \count@\maxtrills \advance\count@\m@ne
- \errmessage{Wrong trill reference number \the\n@i! (valid: 0 to \the\count@)}% [version 1.15]
- \n@i\z@ % [version 1.15]
- \fi
- \advance\n@i\@ne
- \xdef\tr@x{\csname tr@x\roman@n@i}%
- \xdef\tr@y{\csname tr@y\roman@n@i}%
- \xdef\tr@sw{\csname tr@sw\roman@n@i}%
- }% select octiaviation line
-
-%\newskip\tr@x \tr@x\maxdimen\relax % starting horizontal pos
-%\newskip\tr@y % height of trill
-
-\def\Itrille#1{\s@l@cttrill#1\relax
- \ifdim\tr@x < \maxdimen\errmessage{\@mis \noexpand\Ttrille \number #1}\fi
- \global\tr@sw={\relax}%
- \C@T}
-\def\ITrille#1{\s@l@cttrill#1\relax
- \ifdim\tr@x < \maxdimen\errmessage{\@mis \noexpand\Ttrille \number #1}\fi
- \global\tr@sw={{\ppff tr }}% 1.24 changed from \it RDT
- \C@T}
-
-\def\C@T#1{%
- \getcurpos\global\tr@x\y@v % store horizontal pos
- \inhgetn@i#1\relax\pl@base\advance\y@i\altportee % get absolute height
- \global\tr@y\y@i }
-
-\def\Ttrille#1{\s@l@cttrill#1\relax
- \ifdim\tr@x < \maxdimen\else\errmessage{\@mis \noexpand\Itrille \number #1}\fi
- \advance\tr@y-\altportee \let\T@ii\char \C@TR \global\tr@x\maxdimen }
- \let\TTrille\Ttrille
-
-\def\C@TR{%
- \ifx\T@ii\n@ii \y@v\lin@pos \else \getcurpos \fi
- \advance\y@v-\tr@x \kernm\y@v \raise\tr@y\hbox\@to\y@v{%
-% \the\tr@sw\xleaders\hbox{\musixchar69}\hfill\T@ii\n@ii}}%
-% Correction by Julian Gilbey
- \the\tr@sw\xleaders\hbox{\musixchar69}\hfill}}%
-
-%%% tremolos version 1.19 RDT
-%%% based on code by Werner Icking and Andre van Ryckeghem
-%%% version 1.20 RDT re-defined using \raise, suggested by JPC
-%%% version 1.21
-%%% RDT changed beam numbers to 5, suggested by JPC
-%%% RDT adjusted the vertical positions for 16th and 32nd tremolos
-%%% version 1.24
-%%% RDT use new counter \tr@nspose to preserve changes to \transpose in an \hbox
-
-\newcount\tr@nspose % used to restore value of \transpose after closing an \hbox
-\def\trml#1{\raise2\internote\hbox{\loffset{0.5}{\ibl5{#1}9}\roffset{0.5}{\tbl5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\trmu#1{\raise-3\internote\hbox{\loffset{0.5}{\ibu5{#1}9}\roffset{0.5}{\tbu5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\trrml#1{\raise3\internote\hbox{\loffset{0.5}{\ibbl5{#1}9}\roffset{0.5}{\tbl5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\trrmu#1{\raise-4\internote\hbox{\loffset{0.5}{\ibbu5{#1}9}\roffset{0.5}{\tbu5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\trrrml#1{\raise3\internote\hbox{\loffset{0.5}{\ibbbl5{#1}9}\roffset{0.5}{\tbl5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\trrrmu#1{\raise-4\internote\hbox{\loffset{0.5}{\ibbbu5{#1}9}\roffset{0.5}{\tbu5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-
-% whole notes are wider than quarter/half notes:
-% version 1.21 RDT adjusted the offsets and vertical positions
-
-\def\Trml#1{\raise3\internote\hbox{\ibl5{#1}9\roffset{1.25}{\tbl5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\Trmu#1{\raise-4\internote\hbox{\loffset{1.1}{\ibu5{#1}9}\roffset{0.15}{\tbu5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\Trrml#1{\raise3\internote\hbox{\ibbl5{#1}9\roffset{1.25}{\tbl5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\Trrmu#1{\raise-4\internote\hbox{\loffset{1.1}{\ibbu5{#1}9}\roffset{0.15}{\tbu5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\Trrrml#1{\raise3\internote\hbox{\ibbbl5{#1}9\roffset{1.25}{\tbl5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-\def\Trrrmu#1{\raise-4\internote\hbox{\loffset{1.1}{\ibbbu5{#1}9}\roffset{0.15}{\tbu5}\global\tr@nspose\transpose}\transpose\tr@nspose}%
-
-%%% octave lines
-
-\def\octnumberup{\octnumberdefault\vrule width 0pt height2ex}
-\def\octnumberdefault{\smallppff8} % version 1.17 RDT
-\def\octnumberdown{\octnumberdefault$^a$\txtfont\kern 0.3em bassa\vrule width 0pt depth \Internote}
-
-\def\octfinup{\check@staff
- \n@v\@xxiii\n@ii\@xxiv\global\o@swz={\@ne}\fi
- \C@of}
-\def\octfindown{\check@staff
- \n@v\@xxv \n@ii\@xxvi\global\o@swz={\z@}\fi
- \C@of}
-\def\C@of#1#2{\check@staff
- \y@v#2\noteskip\zcharnote{#1}{\hbox\@to\y@v{%
- \xdef\o@sw{\csname o@swz\endcsname}\relax
- \octnumber\mxsps\xleaders\hbox{\char\n@v}\hfill\char\n@ii}}%
- \fi}
-
-%%%%%%
-% selecting \octnumber??? according to \o@sw
-\def\octnumber{% \show\o@sw
- \setbox\w@rkbox\hbox{%
- \ifnum \@ne=\the\o@sw\relax \octnumberup
- \else \octnumberdown
- \fi}%
- \ifdim \wd\w@rkbox>\y@v\setbox\w@rkbox\hbox{\octnumberdefault}\fi
- \box\w@rkbox
-}
-
-
-%%%%%%
-
-% \let\maxoctlines\si@ % here disabled to avoid conflict with new register allocation code, except for \o@swz
-% [version 1.15] moved out to the new register allocation code
-% \newskip\o@xi \o@xi\maxdimen\relax % starting horizontal pos
-% \newskip\o@yi % height of octline
-\newtoks\o@swz % sense of octline for \octfin[up][down] without number
-% \newtoks\o@swz % sense of octline for \octfin[up][down] without number
-
-\newcount\o@number
-
-\def\o@loop{\o@number\z@ \loop\ifnum\o@number<\maxoctlines
- \s@l@ctoctline\o@number\relax
- \advance\o@number\@ne }
-
-\def\s@l@ctoctline#1\relax{%
- \n@i#1\relax \ifnum\n@i<\z@ \n@i\@c \fi
- \ifnum\n@i<\maxoctlines \else
- \count@\maxoctlines \advance\count@\m@ne
- \errmessage{Wrong octaviation line reference number \the\n@i! (valid: 0 to \the\count@)}% [version 1.15]
- \n@i\z@% [version 1.15]
- \fi
- \advance\n@i\@ne
- \xdef\o@x{\csname o@x\roman@n@i}%
- \xdef\o@y{\csname o@y\roman@n@i}%
- \xdef\o@sw{\csname o@sw\roman@n@i}%
- }% select octiaviation line
-
-%\newskip\o@x \o@x\maxdimen\relax % starting horizontal pos
-%\newskip\o@y % height of octline
-
-\def\ioctfinup{\Ioctfinup0}
-\def\ioctfindown{\Ioctfindown0}
-\def\Ioctfinup#1{\check@staff
- \s@l@ctoctline#1\relax
- \ifdim\o@x < \maxdimen\errmessage{\@mis \noexpand\Toctfin \number #1}\fi
- \global\o@sw={\@ne}\fi
- \C@O}
-\def\Ioctfindown#1{\check@staff
- \s@l@ctoctline#1\relax
- \ifdim\o@x < \maxdimen\errmessage{\@mis \noexpand\Toctfin \number #1}\fi
- \global\o@sw={\z@}\fi
- \C@O}
-
-\def\C@O#1{\check@staff
- \getcurpos\global\o@x\y@v % store horizontal pos
- \inhgetn@i#1\relax\pl@base\advance\y@i\altportee % get absolute height
- \global\o@y\y@i
- \fi} % clise check@staff in Ioctfinup/down
-
-\def\toctfin{\Toctfin0}
-\def\Toctfin#1{\check@staff
- \s@l@ctoctline#1\relax
- \advance\o@y-\altportee \let\T@ii\char \C@TO \global\o@x\maxdimen
- \fi}
-
-\def\C@TO{\check@staff
- \ifnum \@ne=\the\o@sw
- \n@v\@xxiii \n@ii\@xxiv \else \n@v\@xxv \n@ii\@xxvi \fi
- \ifx\T@ii\n@ii \y@v\lin@pos \else \getcurpos \fi
- \advance\y@v-\o@x \kernm\y@v \raise\o@y\hbox\@to\y@v{%
- \octnumber\mxsps\xleaders\hbox{\char\n@v}\hfill\T@ii\n@ii}\relax
- \fi}%
-
-% Liftoctline #1 refnumber #2 lift[steps of internote]
-
-\def\Liftoctline#1#2{\n@i#1\advance\n@i\@ne
- \advance\csname o@y\roman@n@i#2\internote}
-
-%%% some specials
-
-% \def\metron#1#2{{\stemlength\f@ur\noteskip\t@n\p@ #1 1\ = #2}}
-% version 1.19 RDT:
-\let\lyricson\relax
-\let\lyricsoff\relax
-\def\metron#1#2{{\lyricsoff\stemlength\f@ur\noteskip\t@n\p@ #1 1\ = #2\lyricson}}
-\def\metronequiv#1#2{{\lyricsoff\stemlength\f@ur\noteskip\t@n\p@ #1 1\ = #2 1\lyricson}}
-
-
-\def\txt{3}
-\def\xtuplet#1#2{\n@iv#1\advance\n@iv\m@ne {\sign@skip=\n@iv\noteskip
- \sign@skip=0.5\sign@skip \xdef\half@sign@skip{\the\sign@skip}}%
- \zcharnote{#2}{\kern\h@lf\qn@width\kern \half@sign@skip\lrlap{\txtfont#1\/\/}}}
-\def\triolet{\xtuplet\txt} % version 1.17 RDT
-\def\xxtuplet#1:#2#3{\n@iv#1\advance\n@iv\m@ne {\sign@skip=\n@iv\noteskip
- \sign@skip=0.5\sign@skip \xdef\half@sign@skip{\the\sign@skip}}%
- \zcharnote{#3}{\kern\h@lf\qn@width\kern \half@sign@skip\lrlap{\txtfont{#1:#2\/\/}}}}
-
-%
-% Following definitions based on tuplet.tex - conventional tuplet brackets for MusiXTeX.
-% Col. G. L. Sicherman. Last revised 2003-05-17.
-%
-% Added to musixtex.tex version 1.16 by RDT.
-%
-% Standard MusiXTeX uses \uptrio and \downtrio to print tuplet brackets.
-% We define \uptuplet and \downtuplet, with the same arguments:
-%
-% #1 : starting pitch
-% #2 : width of bracket, in (\noteskip)s
-% #3 : slope of bracket, in multiples of 1-1/8 degrees
-%
-% The user defines the text to appear in the opening as \tuplettxt.
-% This is to avoid conflicting with the \txt in standard MusiXTeX.
-%
-% Examples:
-%
-% Draw a triplet bracket over the notes, starting at pitch "p",
-% 1.25\noteskip wide, with a slope up of 3-3/8 degrees:
-%
-% \uptuplet p{1.25}3
-%
-% Draw a sextuplet bracket under the notes, starting at pitch "a",
-% 2.5\noteskip wide, with a slope down of 4-1/2 degrees:
-%
-% \def\tuplettxt{6\/\/}
-% \downtuplet{a}{2.5}{-4}
-%
-% Send comments, complaints, and bouquets to the Colonel at
-% <colonel@monmouth.com>.
-%
-
-% Standard MusiXTeX prints a small "3" (or other number) within
-% the bracket. Here we print the "3" in an opening in the bracket,
-% so we need not use a small font.
-%
-% The double italic correction compensates for centering the number
-% on the bracket line.
-
-\def\tuplettxt{3\/\/}
-
-%%% The rest is adapted from standard MusixTeX.
-
-\newdimen\y@vii % x of right end of left part of bracket.
-\newdimen\y@viii % x of left end of right part of bracket.
-\newdimen\y@ix
-\newbox\tuptxtb@x
-
-% v@rline #1=height[dimen] #2=length[dimen] #3=slope (1\eqiv 1.125degree)
-% (comments and ideas from Ian Collier) (from -20 upto 20 )
-% This macro is used by some of the others which follow,
-% using it directly it must be set in zero box
-
-\def\v@rline#1#2#3{\n@v#3\y@i#2%
- \setbox\tuptxtb@x\hbox{\hskip1pt\txtfont\tuplettxt\hskip1pt}%
- \y@vii=\h@lf\y@i\advance\y@vii-\h@lf\wd\tuptxtb@x%
- \n@ii-\tw@nty \min@n@v\n@ii
- \max@n@v\tw@nty \n@iii\n@v
- \ifnum\n@v<\z@ \n@v-\n@v \advance\n@v\tw@nty \fi % offset to lower linechars
- \advance\n@v\@xxix
- \setbox\ch@box\hbox{\mxsps\char\n@v}%
- \ifdim\y@vii<\wd\ch@box \y@vii\wd\ch@box\fi% At least one whole segment!
- \y@viii=\y@i\advance\y@viii-\y@vii%
- \y@iv\wd\ch@box \y@ii\qu@rt\p@ \y@ii\n@iii\y@ii \y@iii\z@
- \raise#1\internote\hbox{\mxsps\char\n@iv
-%
-% Build bracket with slanted line segments of width 10pt.
-% Left part of bracket:
-%
- \loop\ifdim\y@iv<\y@vii\raise\y@iii\copy\ch@box
- \advance\y@iv\wd\ch@box \advance\y@iii\y@ii \repeat
-%
-% last element
-%
-% \finalheight=2.5\completewidth
-% \finalheight=\n@iii\finalheight
-% \divide\finalheight by 100
-% \advance\overlapwidth by -\completewidth
-% \stepheight=-2.5\overlapwidth
-% \stepheight=\n@iii\stepheight
-% \divide\stepheight by 100
-% \advance\curheight by \stepheight
-% \kern -\overlapwidth \raise\curheight \box\ch@box
-%
- \y@ix=\y@vii\advance\y@ix-\y@iv\hbox to\y@ix{\hss}%
- \y@ix\y@vii\advance\y@ix-\wd\ch@box%
- \y@iii\n@iii\y@ix\y@iii2\h@lf\y@iii\divide\y@iii\@c\raise\y@iii\copy\ch@box%
-%
-% Text:
-%
- \y@v2\h@lf\y@i \y@v\n@iii\y@v \divide\y@v\@c%
- \y@ix=-\y@vii \advance\y@ix\h@lf\y@i \advance\y@ix-\h@lf\wd\tuptxtb@x%
- \hbox to\y@ix{\hss}%
- \y@iii\h@lf\y@v \raise\y@iii\vbox to\z@{%
- \vss{\copy\tuptxtb@x}\vss}
- \y@ix=\y@viii \advance\y@ix-\h@lf\y@i \advance\y@ix-\h@lf\wd\tuptxtb@x
- \hbox to\y@ix{\hss}% To start of right part. No-op unless bracket is short.
-%
-% Right part of bracket:
-%
- \y@iii2\h@lf\y@viii \y@iii\n@iii\y@iii \divide\y@iii\@c%
- \y@iv=\y@viii \advance\y@iv\wd\ch@box%
- \loop\ifdim\y@iv<\y@i\raise\y@iii\copy\ch@box%
- \advance\y@iv\wd\ch@box \advance\y@iii\y@ii \repeat
-%
-% Finish off the right part:
-%
- \y@iii\y@i\advance\y@iii-\wd\ch@box\y@iii2\h@lf\y@iii\y@iii\n@iii\y@iii%
- \y@ix=\y@i\advance\y@ix-\y@iv\hbox to\y@ix{\hss}%
- \divide\y@iii\@c%
- \raise\y@iii\copy\ch@box%
-%
- \raise\y@v\hbox{\mxsps\char\n@iv}}}
-%
-% y@i =complete length
-% y@ii =height of linechar
-% y@iii =current height
-% y@iv =current width
-% y@v =height of ending line
-% y@vii =width of left segment of bracket
-% y@viii=y@vii + width of opening
-% y@ix =adjustment register
-%
-% n@iii=slope
-% n@iv =(number of char for hooks)
-% n@v =slope (number of linechar)
-
-\def\X@bkt#1#2#3{\y@v#2\noteskip \advance\y@v\wn@width
- \inhgetn@i#1\relax \rlap{\kernm\p@ne\qn@width\v@rline\n@i\y@v{#3}}}
-
-\def\uptuplet{\n@iv22\X@bkt}
-\def\downtuplet{\n@iv21\X@bkt}
-
-%\check
-
-\def\zbreath{\check@staff\raise\si@\internote\rlap{\BIGtype'}\fi}
-\def\cbreath{\check@staff\adv@box{\raise\si@\internote
- \hbox\@to\noteskip{\hss\BIGtype'\hss}}\fi}
-
-% The following macros can be used to surround a note by parentheses
-% \l[r]par p produces a left[right] parenthesis at pitch p (Ian Collier)
-
-\def\lpar{\n@iv\thr@@ \@Char}
-\def\rpar{\n@iv\f@ur \@Char}
-
-% \bracket pn draws a square bracket [ to bracket an interval
-% of an n-th whose lowest note is p (Ian Collier)
-
-\def\bracket#1#2{\y@iv#2\internote \advance\y@iv\tw@\internote
- \inhgetn@i#1\relax\pl@base \advance\y@i-1\h@lf\internote
- \raise\y@i\llap{\uplap{\offinterlineskip\hbox{\mxsps\@xxvii}%
- \hbox{\vrule\@height\y@iv}\hbox{\mxsps\@xxvii}}}}
-
-%%% dynamics
-
-\def\f@kern{\kernm\p@ne ex}
-\def\p@kern{\kernm\p@ne5ex}
-
-\def\f{{\ppff f}}
-\def\ff{{\ppff f\f@kern f}}
-\def\fp{{\ppff f\f@kern p}}
-\def\sF{{\ppff s\ppff \p@kern f}} % changed \it to \ppff 1.24 RDT
-\def\fff{{\ppff f\f@kern f\f@kern f}}
-\def\ffff{{\ppff f\f@kern f\f@kern f\f@kern f}}
-\def\mf{{\ppff m\p@kern\f@kern f}}
-\def\mp@{{\ppff m\p@kern p}}
-\let\mezzopiano\mp@
-\def\p{{\ppff p}}
-\def\pp{{\ppff p\p@kern p}}
-\def\ppp{{\ppff p\p@kern p\p@kern p}}
-\def\pppp{{\ppff p\p@kern p\p@kern p\p@kern p}}
-\def\sfz{{\ppff s\p@kern f\f@kern z}} % version 1.16
-\def\sfzp{{\ppff s\p@kern f\f@kern z\p@kern p}} % version 1.16
-
-%%% spacings
-
-% if you want to reduce the space behind e.g. \changecontext, use
-% \addspace{dim} ! Only scaleable values are allowed !
-
-\def\addspace#1{\kern#1\global\advance\x@skip#1}
-
-% \hardspace inserts (reduces) outside of \notes..\en unscaleable space
-
-\let\fil@spc\empty
-\def\hardspace#1{\check@nopen\t@rmskip\y@v#1\addspace\y@v\fil@spc}
-
-\def\off#1{\advance\locx@skip#1\kern#1}
-\def\sk{\off\noteskip}
-\def\hsk{\off{\h@lf\noteskip}}
-\def\bsk{\off{-\noteskip}}
-\def\hbsk{\off{-\h@lf\noteskip}} % version 1.27 RDT
-
-%%
-% Redefine \qsk to be scaleable softwidth rather than a fixed kern
-% Otherwise, over/underfull boxes will occur on rescaled (pass 2) material
-%%
-
-\def\qqsk{\off{\qu@rt\@l@mskip}} % version 1.16 RDT
-\def\hqsk{\off{\h@lf\@l@mskip}}
-\def\tqsk{\off{\p@seven\@l@mskip}} % version 1.25 RDT
-\def\qsk{\off\@l@mskip}
-\def\bhsk{\off{-\h@lf\@l@mskip}} % version 1.27 RDT
-\def\btsk{\off{-\p@seven\@l@mskip}} % version 1.27 RDT
-\def\bqsk{\off-\@l@mskip} % version 1.27 RDT
-
-\def\nspace{\hardspace{\h@lf\qn@width}}
-\def\qspace{\hardspace\qn@width}
-
-%%% notes spacing
-
-\def\arithmeticskipscale{%
- \def\znotes{\vnotes0\elemskip}
- \def\notes{\vnotes2\elemskip}% 16th
- \def\notesp{\vnotes2\h@lf\elemskip}% 16th point=8 trio
- \def\Notes{\vnotes3\elemskip}% 8th
- \def\Notesp{\vnotes3\h@lf\elemskip}% 8th point=4 trio
- \def\NOtes{\vnotes4\elemskip}% 4th
- \def\NOtesp{\vnotes4\h@lf\elemskip}% 4th point
- \def\NOTes{\vnotes5\elemskip}% 2th
- \def\NOTesp{\vnotes5\h@lf\elemskip}% 2th point
- \def\NOTEs{\vnotes6\elemskip}% 1th
- \def\NOTEsp{\undefined}%
- \def\NOTES{\undefined}%
-}%
-
-\def\geometricskipscale{%
- \def\znotes{\vnotes0\elemskip}
- \def\notes{\vnotes2\elemskip}% 16th
- \def\notesp{\vnotes2.38\elemskip}% 16th point=8 trio
- \def\Notes{\vnotes2.83\elemskip}% 8th
- \def\Notesp{\vnotes3.36\elemskip}% 8th point=4 trio
- \def\NOtes{\vnotes4\elemskip}% 4th
- \def\NOtesp{\vnotes4.76\elemskip}% 4th point
- \def\NOTes{\vnotes5.66\elemskip}% 2th
- \def\NOTesp{\vnotes6.72\elemskip}% 2th point
- \def\NOTEs{\vnotes8\elemskip}% 1th
- \def\NOTEsp{\vnotes9.52\elemskip}% 1th
- \def\NOTES{\vnotes11.32\elemskip}% 1th
-}%
-
-\def\nnotes{\vnotes1.6\elemskip} % version 1.16 RDT (corrected 2015-03-31)
-\def\nnnotes{\vnotes1.28\elemskip} % version 1.16 RDT (corrected 2015-03-31)
-
-\arithmeticskipscale
-
-\def\scale#1{\def\scalenoteskip{#1}}
-\let\scalenoteskip\normalvalue
-
-\def\multnoteskip#1{\noteskip#1\noteskip}
-
-\def\vnotes#1\elemskip{\noteskip#1\@l@mskip \@vnotes}
-
-\let\V@sw\z@
-%\def\varnotes#1{\t@rmskip \let\V@sw\@ne
-% \setbox\ch@box\hbox{#1}\noteskip\wd\ch@box \@vnotes}
-
-\def\hardnotes#1\notes{\t@rmskip \let\V@sw\@ne
- \noteskip#1\relax \@vnotes}
-
-\let\thelyrics\empty
-%\def\hardlyrics#1\notes{\t@rmskip \let\V@sw\@ne \def\thelyrics{\hbox{#1}}%
-% \setbox\ch@box\thelyrics \noteskip\wd\ch@box \@vnotes}
-\def\softlyrics#1{\def\thelyrics{\hbox{#1}}}%
-\def\hardlyrics#1\notes{\t@rmskip \let\V@sw\@ne
- \let\save@noteskip\noteskip
- \def\noteskip{\z@\relax\errmessage{You cannot use \noexpand\noteskip
- in \noexpand\hardlyrics's 1st argument!}}%
- \def\thelyrics{\hbox{#1}}%
- \setbox\ch@box\thelyrics \let\noteskip\save@noteskip
- \noteskip\wd\ch@box \@vnotes}
-
-
-\def\@vnotes{\multnoteskip\scalenoteskip
- \def|{\nextstaff}\def&{\nextinstrument}\normaltranspose\transpose
- \check@nopen\notes@open\@ne
- \kern\n@skip\advance\x@skip\n@skip \locx@skip\x@skip
- \n@skip\noteskip \noinstrum@nt\z@ \begininstrument}
-
-\def\en{\@ndstaff\notes@open\z@
- \ifnum\V@sw>0\t@rmskip
- \fi
- \let\thelyrics\empty}
-\let\enotes\en
-
-\newcount\notes@open
-
-\def\check@nopen{%
- \ifnum\notes@open>\z@ \en\errmessage{\@mis\noexpand\enotes ->}\fi}
-
-%%% text, lyrics, free positioning of chars
-
-\def\pl@base{\y@i\n@i\internote}
-\def\lrlap#1{\rlap{\hss#1}}
-\def\hard@box#1{\rlap{\hbox\@to\noteskip{#1\hfil}}}
-\def\dhard@box#1{\rlap{\hbox\@to\tw@\noteskip{#1\hfil}}}
-\def\thard@box#1{\rlap{\hbox\@to\thr@@\noteskip{#1\hfil}}}
-
-\def\zcharnote{\let\@Ti\rlap \C@ch}
-\def\lcharnote{\let\@Ti\llap \C@ch}
-\def\ccharnote{\let\@Ti\lrlap \C@ch}
-\def\hcharnote{\let\@Ti\hard@box \C@ch}
-\def\charnote#1#2{\zcharnote{#1}{#2}\sk}
-
-\def\zcn{\zcharnote} % version 1.16
-\def\ccn{\ccharnote}
-\def\lcn{\lcharnote}
-
-\def\C@ch#1#2{\check@staff\inhgetn@i#1\relax\pl@base\raise\y@i\@Ti{#2}\fi}
-
-\def\zmidstaff{\let\@Ti\rlap \C@mid}
-\def\lmidstaff{\let\@Ti\llap \C@mid}
-\def\cmidstaff{\let\@Ti\lrlap \C@mid}
-
-\def\C@mid#1{\check@staff\y@v\interportee \advance\y@v\f@ur\Interligne \divide\y@v\tw@
- \raise\y@v\uplap{\@Ti{\strut#1}\vss}\fi}
-
-\def\zchar#1#2{\check@staff\raise#1\internote\rlap{#2}\fi}
-\def\lchar#1#2{\check@staff\raise#1\internote\llap{#2}\fi}
-\def\cchar#1#2{\check@staff\raise#1\internote\lrlap{#2}\fi}
-\def\hchar#1#2{\check@staff\raise#1\internote\hard@box{#2}\fi}
-
-\def\uptext#1{\check@staff\zchar\t@n{#1}\fi}
-\def\Uptext#1{\check@staff\zchar\fourt@@n{#1}\fi}
-
-\def\setsongraise#1#2{\n@v#1\relax % select instrument
- \expandafter\def\csname T@R\romannumeral\n@v\endcsname{#2}}
-
-% [version 1.15] moved out to the new register allocation code
-% \let\T@Ri\z@
-
-\def\qlrlap#1{\rlap{\hbox to \qn@width{\hss#1\hss}}}
-\def\zsong{\let\@Ti\rlap \C@t}
-\def\lsong{\let\@Ti\llap \C@t}
-\def\csong{\let\@Ti\qlrlap \C@t}
-\def\hsong{\let\@Ti\hard@box \C@t}
-\def\dhsong{\let\@Ti\dhard@box \C@t}
-\def\thsong{\let\@Ti\thard@box \C@t}
-
-\def\C@t#1{\C@tx{\@Ti{\strut#1}\vss}}
-
-\def\C@tx{%
- \ifnum\noinstrum@nt=\@ne \y@iv\staffbotmarg \else
- \advance\noinstrum@nt\m@ne
- \y@iv\csname interinstrument\romannumeral\noinstrum@nt\endcsname
- \C@Inter \advance\y@iv\stem@skip \divide\y@iv\tw@
- \advance\noinstrum@nt\@ne \fi
- \advance\y@iv-\csname T@R\romannumeral\noinstrum@nt\endcsname
-%% \advance\noinstrum@nt\@ne \fi
- \lower\y@iv\uplap}
-
-%%% slope lines and brackets
-
-% varline #1=height[dimen] #2=length[dimen] #3=slope (1\eqiv 1.125degree)
-% (comments and ideas from Ian Collier) (from -20 upto 20 )
-% This macro is used by some of the others which follow,
-% using it directly it must be set in zero box
-
-\def\varline#1#2#3{\n@v#3\y@i#2%
- \n@ii-\tw@nty \min@n@v\n@ii
- \max@n@v\tw@nty \n@iii\n@v
- \ifnum\n@v<\z@ \n@v-\n@v \advance\n@v\tw@nty \fi % offset to lower linechars
- \advance\n@v\@xxix
- \setbox\ch@box\hbox{\mxsps\char\n@v}%
- \y@iv\wd\ch@box \y@ii\qu@rt\p@ \y@ii\n@iii\y@ii \y@iii\z@
- \raise#1\internote\hbox{\ifx\@hook\@ne \mxsps\char\n@iv \fi
-% main loop
- \loop\ifdim\y@iv<\y@i
- \raise\y@iii\copy\ch@box\advance\y@iv\wd\ch@box \advance\y@iii\y@ii \repeat
-% last element
-%
-% \finalheight=2.5\completewidth
-% \finalheight=\n@iii\finalheight
-% \divide\finalheight by 100
-% \advance\overlapwidth by -\completewidth
-% \stepheight=-2.5\overlapwidth
-% \stepheight=\n@iii\stepheight
-% \divide\stepheight by 100
-% \advance\curheight by \stepheight
-% \kern -\overlapwidth \raise\curheight \box\ch@box
-%
- \y@v2\h@lf\y@i \y@v\n@iii\y@v \divide\y@v\@c \advance\y@iv-\y@i
- \y@ii-2\h@lf\y@iv \y@ii\n@iii\y@ii \divide\y@ii\@c \advance\y@iii\y@ii
- \kernm\y@iv\raise\y@iii\box\ch@box%
- \ifx\@hook\@ne \raise\y@v\hbox{\mxsps\char\n@iv}\fi
-% text in the middle
- \ifx\@text\@ne \ifnum\n@vi=\@ne \y@iii\p@ \else\y@iii-\p@ \fi
- \advance\y@iii\h@lf\y@v \kernm\h@lf\y@i\raise\y@iii\vbox\@to\z@{%
- \ifnum\n@vi=\@ne \vss \fi\lrlap{\txtfont\txt}\ifnum\n@vi=\@ne \else\vss \fi}\fi}%
- \let\@hook\empty \let\@text\empty}
-%
-% y@i =complete length
-% y@ii =height of linechar
-% y@iii=current height
-% y@iv =current width
-% y@v =height of ending line
-%
-% n@iii=slope
-% n@iv =(number of char for hooks)
-% n@v =slope (number of linechar)
-% n@vi =1 -> text above
-% @hook=\@ne -> draws hookrules at begin and end of line
-% @text=\@ne -> puts text at the middle of the line (def'd with \txt)
-
-% \ov[un]bkt{p}{n}{s} draws a bracket over the music starting at the
-% current position at pitch p, width n\noteskip and slope s, causing no space
-% #1=height (note), #2=length (noteskips) #3=slope (1\eqiv 1.125[degree])
-
-\def\ovbkt{\n@iv22\C@bkt}
-\def\unbkt{\n@iv21\C@bkt}
-
-\def\C@bkt#1#2#3{\y@v#2\noteskip \advance\y@v\wn@width \let\@hook\@ne
- \inhgetn@i#1\relax \rlap{\kernm\p@ne\qn@width\varline\n@i\y@v{#3}}}
-
-% \up[down]trio{p}{n}{s} same as above,
-% draws \txt (default \eightit 3) above[below] in the middle
-% #1=height (note), #2=length (noteskips) #3=slope (1\eqiv 1.125[degree])
-
-\def\uptrio{\n@vi\z@ \let\@text\@ne \ovbkt}
-\def\downtrio{\n@vi\@ne \let\@text\@ne \unbkt}
-
-%
-% slide #1=height #2=number of elements #3=slope(-8 to 8 [step 10degree])
-%
-\def\slide#1#2#3{\n@ii#3\relax\inhgetn@i#1\relax%
- \ifnum\n@ii>\m@ne \advance\n@ii\m@ne\let\@Ti\raise
- \else \n@ii-\n@ii \advance\n@ii\s@v@n\let\@Ti\lower \fi
- \setbox\toks@box\hbox{\mxsps\char\n@ii}\n@iii\z@
- \raise\n@i\internote\rlap{\hbox{\loop\ifnum\n@iii<#2%
- \@Ti\n@iii\ht\toks@box\copy\toks@box\advance\n@iii\@ne\repeat}}}
-
-%%% standard settings
-% [115] make them compatible to >12 instruments
-\def\resetlayout{\def\interfacteur{9}%
- \stafftopmarg\thr@@\Interligne \staffbotmarg\thr@@\Interligne
- \count@\z@ \loop
- \advance\count@ by\@ne
- \expandafter \let\csname n@l\roman@c@\endcsname \fiv@
-% \expandafter\def\csname interfacteur\roman@c@\endcsname{\interfacteur} % RDT deleted 1.26
- \ifnum\count@<\maxinstruments\repeat
- \resetclefsymbols}
-
-\def\resetclefsymbols{%
- \count@\z@ \loop
- \advance\count@ by\@ne
- \expandafter \let\csname treblec@s\roman@c@\endcsname \z@
- \expandafter \let\csname altoc@s\roman@c@\endcsname \z@
- \expandafter \let\csname bassc@s\roman@c@\endcsname \z@
- \ifnum\count@<\maxinstruments\repeat
-}
-
-% [version 1.15] setup the default maximum element numbers to the same values of T.114
-\setmaxinstruments\si@
-\setmaxcxxviiibeams\si@ % 128th beam
-\setmaxcclvibeams\z@ % 256th beam
-\setmaxgroups\thr@@ % groups of inst's or choirs
-\setmaxslurs\maxinstruments
-\setmaxtrills\maxinstruments
-\setmaxoctlines\maxinstruments
-%
-
-% [version 1.15] new register allocation code requires some changes
-%\resetlayout % no need
-%\let\nbinstruments\maxinstruments % no need
-%\normalnotesize % already executed in \setmaxinstruments
-\normalmusicsize
-\normalnotesize % important: execute it again after the first execute of \normalmusicsize --- to initialize \metron stem length. but why?
-%\resetlayout % no need
-\def\nbinstruments{1}
-\noinstrum@nt1\s@l@ctinstr\internote\Internote
-\def\tabstringfnt{\ifdim\internote<.95\Internote \fivess % 1.29 RDT
-\else\ifdim\internote<1.19\Internote \sevenss % 1.37 RDT
-\else\ifdim\internote<1.43\Internote \eightss
-\else\niness\fi\fi\fi}%
-
-%%%
-%
-% This is muflex.tex version 1.00 , January 1993
-%
-% Macro library for MusicTeX `flexiline' operations: MuFlex.
-% The idea is to set up a two pass system.
-% On the first pass, information about each bar is written to the file
-% jobname.mx1.
-% After the first pass, an external (non TeX) routine is run to
-% determine optimal values of the elemental spacing (\elemskip)
-% for each line, so as to properly fill each line, and to lead to
-% the piece filling an integral number of lines.
-% The relevant parameters are written onto the file
-% jobname.mx2.
-% On the second pass, the .mx2 file is read in, and the information
-% used as described above.
-%
-% Ross Mitchell, January 1993.
-%
-%%%
-
-\newwrite\outmux
-\def\fil@{\immediate\write\outmux}
-
-%%
-% \mulooseness is the MuFlex analog of TeX's \looseness parameter:
-% the increment to the natural number of lines in the section just
-% ended.
-%%
-
-\newcount\mulooseness
-% Alternative \linegoal
-\newcount\linegoal
-
-%%
-% Invoke \startmuflex before \startpiece to find out the pass number
-% and generally get things going.
-%%
-% !!! If you want (have) to override the .mx1, delete the .mx2 before !!!
-% !! You have to change the mx1, if you change the spacing inbetween !!
-
-\newif\ifstartmuflex@done
-\def\startmuflex{%
- \ifstartmuflex@done
- \immediate\write16{Warning: \noexpand\startmuflex\space
- already done, ignored.}%
- \else
- \startmuflex@donetrue
-% \global\let\ifstartmuflex@done\iftrue
- \openin\inmux\jobname.mx2\relax
- \ifeof\inmux
- \immediate\openout\outmux\jobname.mx1\relax
- \fil@{\mufl@x}%
- \pass@I
- \else
- \message{(\jobname.mx2)}\pass@II
- \fi
- \fi}
-
-\let\endmuflex\empty
-
-\newbox\l@eftrightbox
-
-\def\leftrightrepeat@I{%
- % \setbox\toks@box\l@eftrightrepeat\y@v\wd\toks@box
- % \setbox\toks@box\l@eftrepeat\y@iv\wd\toks@box
- % \advance\y@v\y@iv \global\advance\x@skip-\y@v
- %
- \setleftrightrepeat\@bar
- \edef\thex@skip{\the\x@skip}%
- \setbox\l@eftrightbox\l@eftrightrepeat
- \edef\they@v{\the\wd\l@eftrightbox}%
- \setbox\l@eftrightbox\l@eftrepeat
- \edef\they@iv{\the\wd\l@eftrightbox}%
- \global\x@skip\thex@skip
- \fil@{l \they@v\space\they@iv}}
-
-\def\leftrepeat@I{%
-% \setbox\toks@box\l@eftrepeat\y@iv\wd\toks@box
-% \global\advance\x@skip-\y@iv
- \setleftrepeat\@bar
- \edef\thex@skip{\the\x@skip}%
- \setbox\l@eftrightbox\l@eftrepeat
- \edef\they@iv{\the\wd\l@eftrightbox}%
- \global\x@skip\thex@skip
- \fil@{L \they@iv}}
-
-% \akkoladen from: "Rainer Dunker" <rainer.dunker@ebe-online.de>
-
-
-\def\akkoladen#1{%
- \def\akk@count{0}% avoid occupying yet another count register
- \ifx\empty#1\else\@akkoladen#1\@nd\fi
- % deactivate all remaining \grouptop...bottom items
- \loop
- \ifnum\akk@count<\maxgroups
- \incr@akk@count
- \expandafter\groupbottom\expandafter{\akk@count}\maxdimen
- \expandafter\grouptop\expandafter{\akk@count}\z@
- \repeat}
-\def\@akkoladen#1#2#3\@nd{%
- \incr@akk@count
- \expandafter\groupbottom\expandafter{\akk@count}{#1}%
- \expandafter\grouptop\expandafter{\akk@count}{#2}%
- \ifx\empty#3\else\@akkoladen#3\@nd\fi}
-\def\incr@akk@count{%
- \count@\akk@count\relax \advance\count@\@ne \edef\akk@count{\the\count@}}
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% This is MusiXTex code for multiple left curly brackets %
-% %
-% submitted by Mthimkhulu Molekwa %
-% to the mutex list on 19 May 1999 %
-% %
-% %
-% usage: %
-% \curlybrackets{<instrument1lower><instrument1upper> %
-% <instrument2lower><instrument2upper> %
-% ... %
-% <instrument_n_lower><instrument_n_upper> %
-% } %
-% %
-% %
-% %
-% This version corrected 07/23/2007 by Rainer Dunker to make it %
-% insensitive to changes in \interstaff by PMX %
-% %
-% Added to musixtex.tex version 1.16 by RDT %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% Macros for Tablature. They put numbers on or above the staff lines. %
-% Based on tabdefs.tex by R.J. Gelten %
-% %
-% 1.33 RDT %
-% replace ledger lines by slashes (/) for string numbers > number of staff lines %
-% %
-% 1.33a RDT %
-% replace 4-7 slashes by numbers 4-7 %
-% decrement number of slashes if tabstylespace is true %
-% %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcount\stringraise
-\newif\iftabstylespace\tabstylespacefalse
-
-% \tabbox ensures a white background for the tab number in the ps-file
-% so the stafflines don't overwrite the number. Symbols are centered.
-\def\tabbox#1#2{%
- \setbox0=\hbox{\tabfnt #2}%
- \stringraise\nblines
- \advance\stringraise by -#1
- \multiply\stringraise by 2
- \advancefalse\def\q@u{}\loffset{0.45}{\@nq{\the\stringraise}}%
- \iftabstylespace\else\advance\stringraise-1\fi
- \special{ps: 1 setgray}%
- \ccharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
- \special{ps: 0 setgray}%
- \ccharnote{\the\stringraise}{\box0}%
-}
-% \ltabbox does the same as \tabbox, except that it produces
-% left-outlined symbols
-\def\ltabbox#1#2{\setbox0=\hbox{\tabfnt #2}%
- \stringraise\nblines
- \advance\stringraise by -#1
- \multiply\stringraise by 2
- \advancefalse\def\q@u{}\loffset{0.2}{\@nq{\the\stringraise}}%
- \iftabstylespace\else\advance\stringraise-1\fi
- \special{ps: 1 setgray}%
- \zcharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
- \special{ps: 0 setgray}%
- \zcharnote{\the\stringraise}{\box0}%
-}
-% \rtabbox does the same as \tabbox, except that it produces
-% right-outlined symbols
-\def\rtabbox#1#2{\setbox0=\hbox{\tabfnt #2}%
- \stringraise\nblines
- \advance\stringraise by -#1
- \multiply\stringraise by 2
- \advancefalse\def\q@u{}\loffset{0.75}{\@nq{\the\stringraise}}%
- \iftabstylespace\else\advance\stringraise-1\fi
- \special{ps: 1 setgray}%
- \lcharnote{\the\stringraise}{\vrule height \ht0 width \wd0 depth \dp0}%
- \special{ps: 0 setgray}%
- \lcharnote{\the\stringraise}{\box0}%
-}
-
-\newcount\stringnum
-\newcount\nslashes
-
-% \tab takes two arguments.
-% #1 is the string number
-% #2 is the symbol to be put on the string
-% the symbols are horizontally centered and a \sk is put behind it,
-% to jump to the position of the next symbol.
-% if the string number > \nblines, ledger lines are replaced by slashes (/)
-\def\tab#1#2{%
-\stringnum=#1
-\ifnum\stringnum>\nblines
-\nslashes=\stringnum
-\advance\nslashes by -\nblines
-\iftabstylespace\advance\nslashes by -1\fi
-\def\numslashes{\the\nslashes}
-\ifcase\numslashes\tabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
-\else\tabbox{#1}{#2}\fi\sk}
-
-% left spilling \tab
-\def\ltab#1#2{%
-\stringnum=#1
-\ifnum\stringnum>\nblines
-\nslashes=\stringnum
-\advance\nslashes by -\nblines
-\iftabstylespace\advance\nslashes by -1\fi
-\def\numslashes{\the\nslashes}
-\ifcase\numslashes\ltabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
-\else\ltabbox{#1}{#2}\fi\sk}
-
-% right spilling \tab
-\def\rtab#1#2{%
-\stringnum=#1
-\ifnum\stringnum>\nblines
-\nslashes=\stringnum
-\advance\nslashes by -\nblines
-\iftabstylespace\advance\nslashes by -1\fi
-\def\numslashes{\the\nslashes}
-\ifcase\numslashes\rtabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
-\else\rtabbox{#1}{#2}\fi\sk}
-
-% \chord-tab symbol. Same as \tab, but no \sk is given, so multiple
-% symbols can be placed above one another
-\def\ztab#1#2{%
-\stringnum=#1
-\ifnum\stringnum>\nblines
-\nslashes=\stringnum
-\advance\nslashes by -\nblines
-\iftabstylespace\advance\nslashes by -1\fi
-\def\numslashes{\the\nslashes}
-\ifcase\numslashes\tabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
-\else\tabbox{#1}{#2}\fi}
-
-% left spilling \ztab
-\def\zltab#1#2{%
-\stringnum=#1
-\ifnum\stringnum>\nblines
-\nslashes=\stringnum
-\advance\nslashes by -\nblines
-\iftabstylespace\advance\nslashes by -1\fi
-\def\numslashes{\the\nslashes}
-\ifcase\numslashes\ltabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
-\else\ltabbox{#1}{#2}\fi}
-
-% right spilling \ztab
-\def\zrtab#1#2{%
-\stringnum=#1
-\ifnum\stringnum>\nblines
-\nslashes=\stringnum
-\advance\nslashes by -\nblines
-\iftabstylespace\advance\nslashes by -1\fi
-\def\numslashes{\the\nslashes}
-\ifcase\numslashes\rtabbox{#1}{#2}\or\zcn{-3}{\tabfnt/#2}\or\zcn{-3}{\tabfnt//#2}\or\zcn{-3}{\tabfnt///#2}\or\zcn{-3}{\tabfnt 4}\or\zcn{-3}{\tabfnt 5}\or\zcn{-3}{\tabfnt 6}\or\zcn{-3}{\tabfnt 7}\fi%
-\else\rtabbox{#1}{#2}\fi}
-
-%
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% define a new clefsymbol \tabclef for tablature %
-% 1.29 RDT
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\def\tabclef{%
- \setbox0=\hbox{\tabcleffnt T}
- \setbox1=\vbox{\baselineskip=0.5\baselineskip
- \hbox to 2\wd0{{\tabcleffnt T}\hfil}
- \hbox to 2\wd0{{\tabcleffnt A}\hfil}
- \hbox to 2\wd0{{\tabcleffnt B}\hfil}
- }
- \ifnum\nblines=6\lower1.5\internote\box1
- \else\ifnum\nblines=4\lower3.5\internote\box1\else\lower2.5\internote\box1\fi\fi}
-
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-% tiny duration notes placed above tablature staff %
-% 1.33a RDT %
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
-\newcount\tiny@hgt % = 2 * \nblines + 1
-
-% need to suppress ledger lines and prevent raising dots in dotted notes
-
-\def\settiny@hgt{\tiny@hgt=\nblines\multiply\tiny@hgt by 2\advance\tiny@hgt by1}
-
-\def\tzwh{%
-\settiny@hgt
-\tinynotesize\advancefalse\def\w@h{\musixfont\nin@}\y@v\wn@width
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@w \let\n@sym\w@h
-\pl@base\setst@m\resetst@m\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-\def\tzwhp{%
-\settiny@hgt
-\tinynotesize\advancefalse\def\w@h{\musixfont\nin@}\y@v\wn@width
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@w \let\n@sym\w@h
-\pl@base\setst@m\resetst@m\raise\y@i\hbox{\n@sym\musixchar\z@}\advancetrue\fi}
-
-\def\tzhu{%
-\settiny@hgt
-\tinynotesize\advancefalse
-\check@staff\getn@i{\the\tiny@hgt}\relax\y@v\qn@width
-\pl@base\setst@m\upst@m\raise\y@i\hbox{\musixfont\@ight}\advancetrue\fi}
-
-\def\tzhup{%
-\settiny@hgt
-\tinynotesize\advancefalse
-\check@staff\getn@i{\the\tiny@hgt}\relax\y@v\qn@width
-\pl@base\setst@m\upst@m\raise\y@i\hbox{\musixfont{\@ight}\musixchar\z@}\advancetrue\fi}
-
-\def\tzqu{%
-\settiny@hgt
-\tinynotesize\advancefalse
-\check@staff\getn@i{\the\tiny@hgt}\relax\y@v\qn@width
-\pl@base\setst@m\upst@m\raise\y@i\hbox{\musixfont\s@v@n}\advancetrue\fi}
-
-\def\tzqup{%
-\settiny@hgt
-\tinynotesize\advancefalse
-\check@staff\getn@i{\the\tiny@hgt}\relax\y@v\qn@width
-\pl@base\setst@m\upst@m\raise\y@i\hbox{\musixfont{\s@v@n}\musixchar\z@}\advancetrue\fi}
-
-\def\tzcu{%
-\settiny@hgt
-\tinynotesize\advancefalse\q@symbol\n@vii\@xl
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@q \let\n@sym\q@u\y@v\qn@width
-\pl@base\setst@m\up@flag\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-\def\tzcup{%
-\settiny@hgt
-\tinynotesize\advancefalse\q@symbol\n@vii\@xl
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@qp \let\n@sym\q@up\y@v\qn@width
-\pl@base\setst@m\up@flag\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-\def\tzccu{%
-\settiny@hgt
-\tinynotesize\advancefalse\q@symbol\n@vii\@xli
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@q \let\n@sym\q@u\y@v\qn@width
-\pl@base\setst@m\up@flag\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-\def\tzccup{%
-\settiny@hgt
-\tinynotesize\advancefalse\q@symbol\n@vii\@xli
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@qp \let\n@sym\q@up\y@v\qn@width
-\pl@base\setst@m\up@flag\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-\def\tzcccu{%
-\settiny@hgt
-\tinynotesize\advancefalse\q@symbol\n@vii42
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@q \let\n@sym\q@u\y@v\qn@width
-\pl@base\setst@m\up@flag\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-\def\tzcccup{%
-\settiny@hgt
-\tinynotesize\advancefalse\q@symbol\n@vii42
-\check@staff\getn@i{\the\tiny@hgt}\relax\let\n@fon\g@qp \let\n@sym\q@up\y@v\qn@width
-\pl@base\setst@m\up@flag\raise\y@i\hbox{\n@sym}\advancetrue\fi}
-
-
-%%%%%%%% end of tablature support %%%%%%%%%%%%
-
-\let\origin@lwrit@staffs\writ@staffs
-\def\writ@staffs{%
- \origin@lwrit@staffs
- \ifx\br@cks\empty\else\expandafter\@bracks\br@cks\ende\fi}
-
-\let\br@cks\empty
-\def\curlybrackets#1{\def\br@cks{#1}}
-
-\def\@bracks#1#2#3\ende{%
- \ifnum #1<#2 %=========================== inserted by D.S.(?)
- \noinstrum@nt=#1\s@l@ctinstr\b@zi\altitude
- \noinstrum@nt=#2\s@l@ctinstr\b@zii\altitude
- \advance\b@zii-\b@zi
- \C@Inter
- \advance\b@zii\nblines\internote
- \advance\b@zii\nblines\internote
- \advance\b@zii-2\internote
- \n@v\b@zii \sp@pt\tw@ \advance\n@v\@cxxviii
- \divide\b@zii\tw@
- \advance\b@zi\b@zii
- \raise\b@zi\rlap{\mxsps\char\n@v\kern\instrum@in@group}%
- \fi %==================================== inserted by D.S.(?)
- \ifx\empty#3\else\@bracks#3\ende\fi}
-
-
-%%
-% Define \pass@I to perform the following functions:
-%
-% (a) set line and page breaking for the first pass by setting
-% rigid values for \elemskip (#1),
-% \maxbarsinlin@ (#2)
-%
-% (b) Redefine \t@rmskip so that it writes to the .mx1 file;
-%
-% (c) Redefine part of \debutmorceau to open the output (.mx1) file
-% and write the following parameters to the .mx1 file:
-% \line@width
-% \parindent
-% \beforeruleskip
-% \afterruleskip
-% \elemskip
-% \clef@skip
-% \sign@skip;
-%
-% (d) redefine various other macros so that length measures will be
-% written to the .mx1 file
-%%
-
-\def\pass@I{\def\@nds@ction{\fil@{*\space\the\mulooseness\space\the\linegoal}%
- \mulooseness\z@\relax \linegoal\z@}%
-
-%\def\pass@I{\def\@nds@ction{\fil@{*\space\the\mulooseness}\mulooseness\z@}%
-%%
-% Redefine \t@rmskip to include a macro for writing a record to a file,
-% and define the macro
-%%
- \def\fil@termskip{%
- \fil@{\the\barsinpi@c@\space\the\widthtyp@\space\the\x@skip}%
- \widthtyp@\@ne}%
-%%
-% Redefine part of debutmorceau to write header information to file
-%%
- \def\fil@begin{%
- \fil@{S}% Startindicator
- \fil@{\the\line@width}%
- \fil@{\the\parindent}%
- \fil@{\the\beforeruleskip}%
- \fil@{\the\afterruleskip}%
- \fil@{\the\@l@mskip}%
- \fil@{\the\clef@skip}%
- \fil@{\the\sign@skip}}%
-%
-% -> \writ@newsigns
-%
- \def\fil@signs{%
- \maxsign@skip\z@
- \n@loop \s@l@ctsigns
- \sign@skip\tw@\Internote
- \sign@skip\a@s\sign@skip
- \ifdim\sign@skip<\z@ \sign@skip-\sign@skip \fi
- \global\advance\sign@skip\smallvalue\Internote
- \ifdim\maxsign@skip<\sign@skip \global\maxsign@skip\sign@skip
- \fi
- \repeat
- \global\sign@skip\maxsign@skip
- \fil@{s\space\the\sign@skip}}%
-%
-% -> \Contpiece
-%
- \def\fil@indent{\fil@{\the\barsinpi@c@\space0 \the\parindent}}%
-%
-% when a line is stopped with a zbar, to the next bar is added the amount
-% of afterruleskip
-% -> no line break during Pass 1 and indicate musixflx a zbar
-%
- \def\zbar{\zn@wbar\fil@{z \the\barno}}%
-%
-% \leftrightrepeat behaves different in mid of line and end of line
-% -> no line break during Pass 1, get the widths and
-% indicate musixflx a leftrightrepeat
-%
- \let\leftrightrepeat\leftrightrepeat@I
- \let\zleftrightrepeat\leftrightrepeat@I % RDT 1.28
-%
-% s.a.
-%
- \let\leftrepeat\leftrepeat@I
- \let\zleftrepeat\leftrepeat@I % RDT 1.28
-%
-% -> \hardspace
-%
- \def\fil@spc{\fil@{h \the\y@v}}%
-%
-% makes the .mx2 more transparent
-%
- \def\fil@barno{\fil@{b \the\barno}}%
-%
-% break line if value of \lin@pos (exclusive parindent, signs and clefs)
-% is larger than 0.5\hsize
-%
- \def\T@bil{\getcurpos \ifdim\y@v<\h@lf\line@width}%
-%
-% close the file
-%
- \def\endmuflex{\immediate\closeout\outmux}}%
-
-%%
-% Macros to set up the second pass
-%%
-
-\newread\inmux
-
-%%
-% Main macro: \pass@II
-% Function: %%%(a) Open the .mx2 file
-% %%%(b) Set the number of lines per page to #1
-% (c) Set the \everystaff macro to read and decode line
-% parameter settings
-% %%%(d) Define end of bar, end of line and repeat macros
-% %%% according to \autolines
-%%
-
-\def\pass@II{\def\ragg@d{\hfilneg\ }%
-% \def\everyst@ff{\everystaff\read\inmux\@to\inline \inline}} % ancient
- \def\everyst@ff{\read\inmux\@to\inline \inline\relax \everystaff}}
-
-%%
-% \inline expands to \lineset#1#2#3#4#5, so define the latter
-%%
-
-\def\lineset#1#2#3#4#5{\ifx\no@l\empty \message{<#1>}\fi
- \maxbarsinlin@#2%
- \@l@mskip#3%
- \elemskip\@l@mskip
- \afterruleskip#4%
- \beforeruleskip#5}
-
-\def\musicparskip{\parskip\z@ plus\fiv@\Interligne minus\Interligne}
-
-\def\endcatcodesmusic{%
- \catcode`\&\catcode@and
- \catcode`\|\catcode@vert
- \catcode`\>\catcode@gt
- \catcode`\<\catcode@lt
- \catcode`\!\catcode@excl
- \catcode`\*\catcode@star
- \catcode`\:\catcode@sc
- \catcode`\.\catcode@pt
- \let\bar\@@bar
- \catcodesmusicfalse}
-
-\endcatcodesmusic
-
-%...\let\wlog=\@wloG
-
-\catcode`\@=\catcodeat
-\endinput
-