summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/musixtex/musixtex.tex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/generic/musixtex/musixtex.tex')
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtex.tex474
1 files changed, 348 insertions, 126 deletions
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtex.tex b/Master/texmf-dist/tex/generic/musixtex/musixtex.tex
index fc6c4fa3253..618711cfa53 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixtex.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtex.tex
@@ -16,6 +16,19 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
+% New in this version
+% macros: \lwp \lwpp \rwp \rwpp \lhp \rhp \lhpp \rhpp
+%
+% Correction of signature spacing at change of the music size (l.1428-35)rev2
+%
+% Correction of a bug in the definition of choir bracket (l.1690-1700)
+%
+% Correction of a bug in the macro \rul@sep (l. 2259)(l.2273)
+%
+% \cclp, \zccup, \zcclp from musixpoi.tex (l.3254)rev3 typo correction
+%
+% Correction of a historical bug of stem length (l.4460)
+%
\ifx\undefined\startpiece \else \endinput \fi
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
@@ -23,8 +36,8 @@
\ifx\makeatother\undefined\def\makeatother{\catcode`\@=12\relax}\fi
\def\mufl@x{0.83}%
-\def\mxversion{T.103}
-\def\mxdate{8 July 2001}
+\def\mxversion{T.114}
+\def\mxdate{1 Feb 2009} % T.114-rev.4
\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}%
\everyjob{\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}}%
@@ -188,6 +201,8 @@
\newdimen\i@nv
\newdimen\i@nvi
+\def\i@n{\z@} % safety in case of....
+
% positions x et z de debut des poutres
\newdimen\b@xi \newdimen\b@zi
@@ -197,19 +212,19 @@
\newdimen\b@xv \newdimen\b@zv
\newdimen\b@xvi \newdimen\b@zvi
-\newdimen\c@xi \newdimen\c@zi
-\newdimen\c@xii \newdimen\c@zii
-\newdimen\c@xiii\newdimen\c@ziii
-\newdimen\c@xiv \newdimen\c@ziv
-\newdimen\c@xv \newdimen\c@zv
-\newdimen\c@xvi \newdimen\c@zvi
+\newdimen\c@xi \newskip\c@zi
+\newdimen\c@xii \newskip\c@zii
+\newdimen\c@xiii\newskip\c@ziii
+\newdimen\c@xiv \newskip\c@ziv
+\newdimen\c@xv \newskip\c@zv
+\newdimen\c@xvi \newskip\c@zvi
-\newdimen\d@xi \newdimen\d@zi
-\newdimen\d@xii \newdimen\d@zii
-\newdimen\d@xiii\newdimen\d@ziii
-\newdimen\d@xiv \newdimen\d@ziv
-\newdimen\d@xv \newdimen\d@zv
-\newdimen\d@xvi \newdimen\d@zvi
+\newdimen\d@xi \newskip\d@zi
+\newdimen\d@xii \newskip\d@zii
+\newdimen\d@xiii\newskip\d@ziii
+\newdimen\d@xiv \newskip\d@ziv
+\newdimen\d@xv \newskip\d@zv
+\newdimen\d@xvi \newskip\d@zvi
\newdimen\e@xi \newskip\e@zi
\newdimen\e@xii \newskip\e@zii
@@ -218,6 +233,13 @@
\newdimen\e@xv \newskip\e@zv
\newdimen\e@xvi \newskip\e@zvi
+\newdimen\f@xi \newskip\f@zi
+\newdimen\f@xii \newskip\f@zii
+\newdimen\f@xiii\newskip\f@ziii
+\newdimen\f@xiv \newskip\f@ziv
+\newdimen\f@xv \newskip\f@zv
+\newdimen\f@xvi \newskip\f@zvi
+
% pentes des poutres ( entier de -9 a +9 )
% multiplicite des poutres ( de -5 a +5 . 0= inactive )
@@ -301,11 +323,14 @@
% Find current font prefix (cm, dc, ec)
%%
\def\@onetoks#1#2+{#1}
+\def\@secondtoks#1#2#3+{#2}
\def\@twotoks#1#2#3+{#1#2}
\def\@svntoks#1#2#3#4#5#6#7#8+{#7}
\rm
\edef\fontid{\expandafter\@twotoks\fontname\the\font+}
+\edef\DynFontId{\fontid}
\edef\fontfid{\expandafter\@onetoks\fontname\the\font+}
+\edef\fontsid{\expandafter\@secondtoks\fontname\the\font+}
%
% Find out whether \rm font name of the form dcr1000 , i.e. with a digit at
% 7th position
@@ -329,6 +354,13 @@
\longECfontnamestrue
\longDCfontnamesfalse
\fi
+ \if\fontfid r
+ \if\fontsid x
+ \longECfontnamestrue
+ \longDCfontnamesfalse
+ \def\DynFontId{cm}
+ \fi
+ \fi
\fi
%%
@@ -418,53 +450,78 @@
%%
% Large fonts for titles: boldface only.
%%
-
+\ifx\bigfont\undefined
\iflongDCfontnames
\font\bigfont=\fontid bx1440 % 14pt, formerly \moyen.
-\font\Bigfont=\fontid bx1728 % 17pt, formerly \gros.
-\font\BIgfont=\fontid bx2074 % 20pt, formerly \gros.
-\font\BIGfont=\fontid bx2488 % 25pt, formerly \enorme.
\else\iflongECfontnames
\font\bigfont=\fontid bx1440 % 14pt, formerly \moyen.
-\font\Bigfont=\fontid bx1728 % 17pt, formerly \gros.
-\font\BIgfont=\fontid bx2074 % 20pt, formerly \gros.
-\font\BIGfont=\fontid bx2488 % 25pt, formerly \enorme.
\else
\font\bigfont=\fontid bx12 scaled \magstep1 % 14pt, formerly \moyen.
+\fi
+\fi
+\fi
+
+\ifx\Bigfont\undefined
+\iflongDCfontnames
+\font\Bigfont=\fontid bx1728 % 17pt, formerly \gros.
+\else\iflongECfontnames
+\font\Bigfont=\fontid bx1728 % 17pt, formerly \gros.
+\else
\font\Bigfont=\fontid bx12 scaled \magstep2 % 17pt, formerly \gros.
+\fi
+\fi
+\fi
+
+\ifx\BIgfont\undefined
+\iflongDCfontnames
+\font\BIgfont=\fontid bx2074 % 20pt, formerly \gros.
+\else\iflongECfontnames
+\font\BIgfont=\fontid bx2074 % 20pt, formerly \gros.
+\else
\font\BIgfont=\fontid bx12 scaled \magstep3 % 20pt.
+\fi
+\fi
+\fi
+
+\ifx\BIGfont\undefined
+\iflongDCfontnames
+\font\BIGfont=\fontid bx2488 % 25pt, formerly \enorme.
+\else\iflongECfontnames
+\font\BIGfont=\fontid bx2488 % 25pt, formerly \enorme.
+\else
\font\BIGfont=\fontid bx12 scaled \magstep4 % 25pt, formerly \emorme.
\fi
\fi
+\fi
%%
% Bold italic fonts for dynamic markings.
%%
\iflongDCfontnames
-\font\ppffsixteen=\fontid bi1000
-\font\ppfftwenty=\fontid bi1200
-\font\ppfftwentyfour=\fontid bi1440
-\font\ppfftwentynine=\fontid bi1728
-\font\smallppff=\fontid bi1000
-\font\normppff=\fontid bi1200
-\font\medppff=\fontid bi1440
+\font\ppffsixteen=\DynFontId bi1000
+\font\ppfftwenty=\DynFontId bi1200
+\font\ppfftwentyfour=\DynFontId bi1440
+\font\ppfftwentynine=\DynFontId bi1728
+\font\smallppff=\DynFontId bi1000
+\font\normppff=\DynFontId bi1200
+\font\medppff=\DynFontId bi1440
\else\iflongECfontnames
-\font\ppffsixteen=\fontid bi1000
-\font\ppfftwenty=\fontid bi1200
-\font\ppfftwentyfour=\fontid bi1440
-\font\ppfftwentynine=\fontid bi1728
-\font\smallppff=\fontid bi1000
-\font\normppff=\fontid bi1200
-\font\medppff=\fontid bi1440
+\font\ppffsixteen=\DynFontId bi1000
+\font\ppfftwenty=\DynFontId bi1200
+\font\ppfftwentyfour=\DynFontId bi1440
+\font\ppfftwentynine=\DynFontId bi1728
+\font\smallppff=\DynFontId bi1000
+\font\normppff=\DynFontId bi1200
+\font\medppff=\DynFontId bi1440
\else
-\font\ppffsixteen=\fontid bxti10
-\font\ppfftwenty=\fontid bxti10 scaled \magstep1
-\font\ppfftwentyfour=\fontid bxti10 scaled \magstep2
-\font\ppfftwentynine=\fontid bxti10 scaled \magstep3
-\font\smallppff=\fontid bxti10
-\font\normppff=\fontid bxti10 scaled \magstep1
-\font\medppff=\fontid bxti10 scaled \magstep2
+\font\ppffsixteen=\DynFontId bxti10
+\font\ppfftwenty=\DynFontId bxti10 scaled \magstep1
+\font\ppfftwentyfour=\DynFontId bxti10 scaled \magstep2
+\font\ppfftwentynine=\DynFontId bxti10 scaled \magstep3
+\font\smallppff=\DynFontId bxti10
+\font\normppff=\DynFontId bxti10 scaled \magstep1
+\font\medppff=\DynFontId bxti10 scaled \magstep2
\fi
\fi
@@ -736,7 +793,7 @@
% #1 start pitch #2 end pitch #3 length #4 right hoffset
\newcount \meet@minus@n@iv
-\def\writ@slur#1#2#3#4{% modified: sld... into slurd... 12.04.95 ick
+\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
@@ -807,9 +864,9 @@
\def\@slope{z}\n@i\z@
\else
\ifnum\n@ii<\n@i % Slope is negative
- \C@csl\n@i\n@ii\def\@slope{d}%
+ \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
+ \C@csl\n@ii\n@i\def\@slope{u}\n@i\n@ii % compute @meet height for slurs
\fi
\fi
%%
@@ -839,11 +896,13 @@
% 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
@@ -1008,7 +1067,8 @@
\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
+\fi} % end writ@slur
\def\sp@pt#1{\divide\n@v65536\divide\n@v#1}
@@ -1080,13 +1140,20 @@
% #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}\fi}
+ \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}\fi}
+\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
@@ -1121,6 +1188,11 @@
\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
@@ -1132,11 +1204,12 @@
\def\dotted{\let\dott@d\@ne}\let\dott@d\empty %+ickd
-% #1 hoffset #2 voffset #3 sense (u,d) #4 reference number #5 start note
-
\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
@@ -1151,7 +1224,8 @@
\global\s@a\altportee % store altportee of current slur
\getcurpos
\advance\y@v#1\qn@width
- \global\s@x\y@v}% start hpos (current pos including hoffset)
+ \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
@@ -1164,8 +1238,11 @@
\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}
+% \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
@@ -1177,6 +1254,7 @@
% #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}%
@@ -1202,17 +1280,28 @@
\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}% update slur counter
+ \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}}
+ \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}
@@ -1224,7 +1313,7 @@
% #1 start pitch #2 final pitch #3 sense(u,d) #4 length[noteskip]
-\def\C@slur#1#2#3#4{%
+\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
@@ -1237,7 +1326,8 @@
\advance\y@v\y@iii
\kern\y@iv
\writ@slur\n@ii\n@i\y@v\z@
- \kernm\y@iv}
+ \kernm\y@iv
+ \fi}
\def\sslur{%
\let\s@N\undefined % do not store instrument number
@@ -1338,13 +1428,13 @@
%%%
\def\normalmusicsize{\musicsize\tw@nty \comput@specifics
- \afterruleskip\@ight\p@ \elemskip\fontdimen\si@\musicnorfont}
+ \afterruleskip\@ight\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
\def\smallmusicsize{\musicsize\sixt@@n \comput@specifics
- \afterruleskip\si@\p@ \elemskip\fontdimen\si@\musicnorfont}
+ \afterruleskip\si@\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
\def\largemusicsize{\musicsize\@xxiv \comput@specifics
- \afterruleskip\t@n\p@ \elemskip\fontdimen\si@\musicnorfont}
+ \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}
+ \afterruleskip\t@n\p@ \elemskip\fontdimen\si@\musicnorfont \clef@skip\z@}
\def\comput@fonts{%
\ifnum\musicsize=\sixt@@n
@@ -1615,10 +1705,11 @@
\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
- \hbox{\musixfont\fourt@@n}\hbox{\vrule\@height\g@h
+ \set@normalnotesize\hbox{\musixfont\fourt@@n}\hbox{\vrule\@height\g@h
\@width\internote}\hbox{\musixfont\fiv@t@@n}}\kern\internote}%
\fi
\repeat
@@ -2182,7 +2273,7 @@
\def\rul@full#1{\hbox{\raise\altplancher\rlap{\vrule\@depth\hlthick
\@height\systemheight\@width#1}}\addspace#1}
-\def\rul@sep#1{\n@loop
+\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
@@ -2576,10 +2667,15 @@
\expandafter\edef\csname instrument\romannumeral\n@v\endcsname{#2}}
\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}
+ \advance\altportee\h@lf\y@v
+ \writ@box
+ \repeat}
%%%
@@ -2592,8 +2688,26 @@
\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
@@ -2848,7 +2962,9 @@
\def\zwqq{\def\w@h{\musixchar127}\y@v\wn@width \advancefalse \g@w}
\def\g@w#1{\let\st@m\resetst@m
- \getn@i#1\relax\let\n@fon\g@w \let\n@sym\w@h \writ@note}
+ \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}
@@ -2910,6 +3026,10 @@
\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
@@ -2926,8 +3046,9 @@
\def\@zq{\let\st@m\setst@m \advancefalse\g@q}
\def\@nq{\let\st@m\resetst@m \g@q}
-\def\g@q#1{\getn@i#1\relax\let\n@fon\g@q \let\n@sym\q@u
- \y@v\qn@width \writ@note}
+\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}
@@ -2935,8 +3056,9 @@
\def\@nqp{\let\st@m\resetst@m \g@qp}
\def\q@up{\q@u\C@Point\z@\raise}
-\def\g@qp#1{\getn@i#1\relax\let\n@fon\g@qp \let\n@sym\q@up
- \y@v\qn@width \writ@note}
+\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}
@@ -2944,8 +3066,9 @@
\def\@nqpp{\let\st@m\resetst@m \g@qpp}
\def\q@upp{\q@u\C@Point\@ne\raise}
-\def\g@qpp#1{\getn@i#1\relax\let\n@fon\g@qpp \let\n@sym\q@upp
- \y@v\qn@width \writ@note}
+\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}
@@ -2980,14 +3103,19 @@
\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}
@@ -3028,6 +3156,11 @@
\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}}
@@ -3089,40 +3222,49 @@
\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}
@@ -3181,20 +3323,30 @@
\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{\ifnum\b@n=\z@ \else \C@tb\t@bbu\qn@width \fi \global\b@n\m@ne
+\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{\ifnum\b@n=\z@ \else \C@tb\t@bbl\lthick \fi \global\b@n\@ne
+\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
@@ -3212,10 +3364,15 @@
\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}
+ \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}
@@ -3234,12 +3391,19 @@
\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
@@ -3288,27 +3452,32 @@
\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 }
+\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 \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\llap{\@beam\kernm#2}\global\b@n\z@}
+ \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}
@@ -3316,8 +3485,11 @@
\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\empty\n@bbbbu\y@i\e@z \beam@pos\e@x \t@xbu}
-\def\t@bbbbl{\n@v\f@ur \C@b\empty\n@bbbbl\y@i\e@z \beam@pos\e@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
@@ -3331,9 +3503,13 @@
\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\llap{\@beam\kernm#1}%
+ \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}\fi
+ \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}
@@ -3353,6 +3529,8 @@
\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
@@ -3426,10 +3604,11 @@
\def\lppt{\g@pt\m@ne\@ne}
\def\lpppt{\g@pt\m@ne\tw@}
-\def\g@pt#1#2#3{\inhgetn@i#3\relax \relax % two \relax since the first one
+\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}
+ \pl@base \raise\y@i\hbox{\musixchar#2}\fi\fi}
%%% rests
@@ -3457,14 +3636,18 @@
\def\PAUSe{\adv@box{\musixchar59}}
\def\PAuse{\adv@box{\musixchar58}}
-\def\pause{\adv@box{\raise\si@\internote\hbox{\musixchar61}}}
-\def\pausep{\wholeshift{\pt5}\pause}
+\def\pause{\check@staff
+ \adv@box{\raise\si@\internote\hbox{\musixchar61}}\fi}
+\def\pausep{%\check@staff
+ \wholeshift{\pt5}\pause}
\def\liftpause{\C@ps\@l@v@n\si@}
\def\liftpausep{\C@pspt\@l@v@n\si@}
-\def\hpause{\adv@box{\raise\f@ur\internote\hbox{\musixchar60}}}
+\def\hpause{\check@staff
+ \adv@box{\raise\f@ur\internote\hbox{\musixchar60}}\fi}
\let\hp\hpause
-\def\hpausep{\wholeshift{\pt5}\hpause}
+\def\hpausep{%\check@staff
+ \wholeshift{\pt5}\hpause}
\def\lifthpause{\C@ps\t@n\f@ur}
\def\lifthpausep{\C@pspt\t@n\f@ur}
@@ -3473,11 +3656,14 @@
\advance\lift@rest -2.5\fontdimen\fiv@\musixfont
\raise\lift@rest\hbox\@to\noteskip{#1\hss}}\advance\locx@skip\noteskip}
-\def\qp{\adv@restbox{\musixchar62}}
+\def\qp{\check@staff
+ \adv@restbox{\musixchar62}\fi}
\let\soupir\qp
-\def\ds@oup{\adv@restbox{\musixchar63}}
-\def\qs{\adv@restbox{\musixchar64}}
+\def\ds@oup{\check@staff
+ \adv@restbox{\musixchar63}\fi}
+\def\qs{\check@staff
+ \adv@restbox{\musixchar64}\fi}
\def\hs{\adv@restbox{\musixchar65}}
\def\qqs{\adv@restbox{\musixchar66}}
@@ -3544,7 +3730,9 @@
\message{\@nod sharpen \noexpand\dsh \t@ruc}\let\@Ti\empty
\or \n@v\thr@@ \or \n@v\tw@ \fi}
-\def\C@acc#1{\inhgetn@i#1\relax \relax
+\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
@@ -3562,7 +3750,8 @@
% \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 \@Ti}
+ \fi \advance\n@v\@l \advance\n@v\n@vi \@Ti
+ \fi}
\def\@nod{Can't double }
@@ -3638,13 +3827,17 @@
\def\lpzst{\n@iv19\lacc@Char}
\def\dpzst{\lpzst}
-\def\uacc@Char#1{\inhgetn@i#1\relax \relax
+\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}
+ \zchar\n@i\C@ChaR
+ \fi}
-\def\lacc@Char#1{\inhgetn@i#1\relax \relax
+\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}
+ \zchar\n@i\C@ChaR
+ \fi}
\def\C@ChaR{\musixfont\char\n@iv}
@@ -3849,12 +4042,33 @@
%%% octave lines
-\def\octnumber{\ppffsixteen8}
+\def\octnumberup{\octnumberdefault\vrule width 0pt height2ex}
+\def\octnumberdefault{\ppffsixteen8}
+\def\octnumberdown{\octnumberdefault$^a$\eightit\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}
-\def\octfinup{\n@v\@xxiii\n@ii\@xxiv\C@of}
-\def\octfindown{\n@v\@xxv \n@ii\@xxvi \C@of}
-\def\C@of#1#2{\y@v#2\noteskip\zcharnote{#1}{\hbox\@to\y@v{%
- \octnumber\mxsps\xleaders\hbox{\char\n@v}\hfill\char\n@ii}}}
+%%%%%%
+% 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
+}
+
%%%%%%
@@ -3874,6 +4088,7 @@
\newskip\o@yv % height of octline
\newskip\o@yvi % height of octline
+\newtoks\o@swz % sense of octline for \octfin[up][down] without number
\newtoks\o@swi % sense of octline
\newtoks\o@swii % sense of octline
\newtoks\o@swiii % sense of octline
@@ -3902,32 +4117,36 @@
\def\ioctfinup{\Ioctfinup0}
\def\ioctfindown{\Ioctfindown0}
-\def\Ioctfinup#1{\s@l@ctoctline#1\relax
+\def\Ioctfinup#1{\check@staff
+ \s@l@ctoctline#1\relax
\ifdim\o@x < \maxdimen\errmessage{\@mis \noexpand\Toctfin \number #1}\fi
-% \global\expandafter\let\o@sw\@ne
- \global\o@sw={\@ne}%
+ \global\o@sw={\@ne}\fi
\C@O}
-\def\Ioctfindown#1{\s@l@ctoctline#1\relax
+\def\Ioctfindown#1{\check@staff
+ \s@l@ctoctline#1\relax
\ifdim\o@x < \maxdimen\errmessage{\@mis \noexpand\Toctfin \number #1}\fi
-% \global\expandafter\let\o@sw\empty
- \global\o@sw={\z@}%
+ \global\o@sw={\z@}\fi
\C@O}
-\def\C@O#1{%
+\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 }
+ \global\o@y\y@i
+ \fi} % clise check@staff in Ioctfinup/down
\def\toctfin{\Toctfin0}
-\def\Toctfin#1{\s@l@ctoctline#1\relax
- \advance\o@y-\altportee \let\T@ii\char \C@TO \global\o@x\maxdimen }
+\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{%
+\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}}%
+ \octnumber\mxsps\xleaders\hbox{\char\n@v}\hfill\T@ii\n@ii}\relax
+ \fi}%
% Liftoctline #1 refnumber #2 lift[steps of internote]
@@ -3937,6 +4156,7 @@
%%% some specials
\def\metron#1#2{{\stemlength\f@ur\noteskip\t@n\p@ #1 1\ = #2}}
+\def\metronequiv#1#2{{\stemlength\f@ur\noteskip\t@n\p@ #1 1\ = #2 1}}
\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}}%
@@ -3945,9 +4165,9 @@
%\check
-\def\zbreath{\raise\si@\internote\rlap{\BIGfont'}}
-\def\cbreath{\adv@box{\raise\si@\internote
- \hbox\@to\noteskip{\hss\BIGfont'\hss}}}
+\def\zbreath{\check@staff\raise\si@\internote\rlap{\BIGfont'}\fi}
+\def\cbreath{\check@staff\adv@box{\raise\si@\internote
+ \hbox\@to\noteskip{\hss\BIGfont'\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)
@@ -4101,22 +4321,22 @@
\def\hcharnote{\let\@Ti\hard@box \C@ch}
\def\charnote#1#2{\zcharnote{#1}{#2}\sk}
-\def\C@ch#1#2{\inhgetn@i#1\relax\pl@base\raise\y@i\@Ti{#2}}
+\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{\y@v\interportee \advance\y@v\f@ur\Interligne \divide\y@v\tw@
- \raise\y@v\uplap{\@Ti{\strut#1}\vss}}
+\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{\raise#1\internote\rlap{#2}}
-\def\lchar#1#2{\raise#1\internote\llap{#2}}
-\def\cchar#1#2{\raise#1\internote\lrlap{#2}}
-\def\hchar#1#2{\raise#1\internote\hard@box{#2}}
+\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{\zchar\t@n{#1}}
-\def\Uptext#1{\zchar\fourt@@n{#1}}
+\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}}
@@ -4224,6 +4444,7 @@
\stafftopmarg\thr@@\Interligne \staffbotmarg\thr@@\Interligne
\let\n@li\fiv@ \let\n@lii\fiv@ \let\n@liii\fiv@
\let\n@liv\fiv@ \let\n@lv\fiv@ \let\n@lvi\fiv@
+ \noinstrum@nt1\s@l@ctinstr\internote\Internote
\resetclefsymbols}
\def\resetclefsymbols{%
@@ -4239,10 +4460,10 @@
\let\nbinstruments\maxinstruments
\normalnotesize
\normalmusicsize
+\normalnotesize% needs rerun to initialize \metron stem length (a very historical bug since T.103 or earlier) (T.114, Hiroaki)
\resetlayout
\def\nbinstruments{1}
-
%%%
%
% This is muflex.tex version 1.00 , January 1993
@@ -4503,3 +4724,4 @@
\catcode`\@=\catcodeat
\endinput
+