summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/musixtex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2010-10-31 23:59:08 +0000
committerKarl Berry <karl@freefriends.org>2010-10-31 23:59:08 +0000
commitf4500709457661ea04dfb225ac2a311bb5f9941c (patch)
tree0dec5afc16c92acbe51fab22574fa71a37519d42 /Master/texmf-dist/tex/generic/musixtex
parent6028598eadf5dc99c7cc0eac3327563363caf852 (diff)
musixtex (30oct10)
git-svn-id: svn://tug.org/texlive/trunk@20275 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/musixtex')
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/curly.tex44
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixadd.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixbar.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixbbm.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixblx.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixbm.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixcho.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixcpt.tex33
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixdat.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixdbr.tex250
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixdia.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixeng.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixesf.tex79
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixevo.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixext.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixfll.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixgre.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixgui.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixhor.tex3
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixhou.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixlex.tex1201
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixlit.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixltx.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixlyr.tex1162
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixmad.tex7
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixper.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixpoi.tex19
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixps.tex961
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixstr.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixsty.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtex.ins7
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtex.tex474
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtmr.tex74
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtri.tex4
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/tuplet.tex147
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/underbracket.sty190
36 files changed, 4518 insertions, 177 deletions
diff --git a/Master/texmf-dist/tex/generic/musixtex/curly.tex b/Master/texmf-dist/tex/generic/musixtex/curly.tex
new file mode 100644
index 00000000000..dfe75653818
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/curly.tex
@@ -0,0 +1,44 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is curly.tex, MusiXTex code for multiple left curly brackets %
+% %
+% submitted by Mthimkhulu Molekwa <MMolekwa@rrs.co.za> %
+% to the mutex list on 19 May 1999 %
+% %
+% %
+% usage: %
+% \curlybrackets{<instrument1lower><instrument1upper> %
+% <instrument2lower><instrument2upper> %
+% ... %
+% <instrument_n_lower><instrument_n_upper> %
+% } %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\ifx\undefined\curlybrackets \else \endinput\fi
+\makeatletter
+
+\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}
+
+\makeatother
+%%%%%%%%%%%%%%%%%%%%%%%%%% End of curly.tex %%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixadd.tex b/Master/texmf-dist/tex/generic/musixtex/musixadd.tex
index a899905acac..f5cc37edf18 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixadd.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixadd.tex
@@ -18,7 +18,7 @@
%
\ifx\staffspacingix\undefined\else\endinput\fi
-\immediate\write10{MusiXADDitional instruments T.99\space<24 March 2000>}%
+\immediate\write16{MusiXADDitional instruments T.99\space<24 March 2000>}%
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixbar.tex b/Master/texmf-dist/tex/generic/musixtex/musixbar.tex
index bedcb1ebbb4..5e748aae6d3 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixbar.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixbar.tex
@@ -7,7 +7,7 @@
\ifx\indivbarrules\undefined\else\endinput\fi
-\immediate\write10{MusiXBAR printing or hiding seperate bar lines 1.01\space<23 Februar 2000>}%
+\immediate\write16{MusiXBAR printing or hiding seperate bar lines 1.01\space<23 Februar 2000>}%
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex b/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex
index c5e08da155f..538bf4a089d 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex
@@ -21,7 +21,7 @@
\input musixbm
\fi
-\immediate\write10{MusiXBBeaM T.405\space<30 October 1995>}% 256th beams
+\immediate\write16{MusiXBBeaM T.405\space<30 October 1995>}% 256th beams
\ifx\undefined\ibbbbbbu \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixblx.tex b/Master/texmf-dist/tex/generic/musixtex/musixblx.tex
index bcb76f5e02d..d40de4cb68e 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixblx.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixblx.tex
@@ -18,7 +18,7 @@
%
% (Nicolas Brouard)
-\immediate\write10{MusiXBigLateX 0.36\space<1 March 1995>}%
+\immediate\write16{MusiXBigLateX 0.36\space<1 March 1995>}%
\ifx\undefined\largevaugment \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixbm.tex b/Master/texmf-dist/tex/generic/musixtex/musixbm.tex
index c5e7a344b78..ba986ac83d9 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixbm.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixbm.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXBeaM T.94\space<11 May 1999>}%
+\immediate\write16{MusiXBeaM T.94\space<11 May 1999>}%
\ifx\undefined\ibbbbbu \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixcho.tex b/Master/texmf-dist/tex/generic/musixtex/musixcho.tex
index a0da766ed4d..55b5e482ebe 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixcho.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixcho.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXCHOir T.89\space<24 March 1998>}%
+\immediate\write16{MusiXCHOir T.89\space<24 March 1998>}%
\ifx\undefined\braceheight \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex b/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex
index bed7c70f173..3883c0b6060 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex
@@ -21,7 +21,7 @@
\ifx\undefined\DIMin \else \endinput \fi
-\immediate\write10{MusiXComPaTible T.67\space<7 January 1997>}%
+\immediate\write16{MusiXComPaTible T.109\space<7 July 2002>}%
\ifx\undefined\mxversion \errmessage{MusiXcpt input before MusiXTeX !}\fi
@@ -182,7 +182,9 @@
\chardef\@liii=53
\newif\ifcautionacc
-\def\@acc#1{\inhgetn@i#1\relax\@BigAcc}
+\def\@acc#1{\check@staff
+ \inhgetn@i#1\relax\@BigAcc
+ \fi}
\def\@BigAcc{\pl@base\raise\y@i\llap{\musixchar\n@v\kern\accshift}}
\def\bigfl{\n@v\@l \@acc}
@@ -191,16 +193,23 @@
\def\bigdsh{\n@v\@liii \@acc}
\def\bigna{\n@v\@liv \@acc}
-\def\@smallacc#1{\inhgetn@i#1\relax\n@iv\fiv@ \@SmallACC}
-\def\@SmallACC{\pl@base\raise\y@i\llap{\@SmallAcc\kern\accshift}}
-\def\@SmallAcc{\ifcautionacc\C@ChaR \fi \musixchar\n@v
- \ifcautionacc\kern.3\qn@width \fi\global\cautionaccfalse}
+\def\@smallacc#1{\check@staff
+ \inhgetn@i#1\relax\n@iv\fiv@ \@SmallACC
+ \fi}
+\def\@SmallACC{\check@staff
+ \pl@base\raise\y@i\llap{\@SmallAcc\kern\accshift}\fi}
+\def\@SmallAcc{\check@staff
+ \ifcautionacc\C@ChaR \fi \musixchar\n@v
+ \ifcautionacc\kern.3\qn@width \fi
+ \fi\global\cautionaccfalse}
\def\smallna{\n@v94\@smallacc}
\def\smallfl{\n@v90\@smallacc}
\def\smallsh{\n@v92\@smallacc}
\def\smalldsh{\n@v93\@smallacc}
-\def\smalldfl#1{\n@v91\inhgetn@i#1\relax\n@iv\si@ \@SmallACC}
+\def\smalldfl#1{\check@staff
+ \n@v91\inhgetn@i#1\relax\n@iv\si@ \@SmallACC
+ \fi}
\def\csh{\cautionacctrue\smallsh}
\def\cdsh{\cautionacctrue\smalldsh}
@@ -256,7 +265,9 @@
% \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 \n@iv\fiv@}
-\def\C@aacc{\advance\n@v\n@vi \@Ti}
+\def\C@aacc{\check@staff
+ \advance\n@v\n@vi \@Ti
+ \fi }
\def\@Flat#1{\sign@diff#1\relax
\ifcase\n@ii \n@v\@liv \or\n@v\@l \or\n@v\@li \fi \C@aacc}
@@ -621,9 +632,11 @@
\def\zmidtwotext{\zmidstaff}
\def\lmidtwotext{\let\@Ti\hss \let\@Tii\empty \C@midcpt}
-\def\C@midcpt#1{\y@v\interportee \advance\y@v\f@ur\Interligne \divide\y@v\tw@
+\def\C@midcpt#1{\check@staff
+ \y@v\interportee \advance\y@v\f@ur\Interligne \divide\y@v\tw@
\raise\y@v\uplap{\hbox\@to\noteskip{\@Ti\strut#1\@Tii}\vss}%
- \advance\locx@skip\noteskip}
+ \advance\locx@skip\noteskip
+ \fi}
% for what ?
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixdat.tex b/Master/texmf-dist/tex/generic/musixtex/musixdat.tex
index fda6ebd8f7c..16541a6e5c9 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixdat.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixdat.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXDATes 0.36\space<1 March 1995>}%
+\immediate\write16{MusiXDATes 0.36\space<1 March 1995>}%
\ifx\undefined\dategerman \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixdbr.tex b/Master/texmf-dist/tex/generic/musixtex/musixdbr.tex
new file mode 100644
index 00000000000..2ad82ca6620
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixdbr.tex
@@ -0,0 +1,250 @@
+\ifx\indivbarrules\undefined\else\endinput\fi
+
+\immediate\write10{MusiXDashed and Dotted BaRlines 1.0\space<23 February 2002>}%
+% by Rainer Dunker
+% Ideas and code based on musixbar.tex
+% by Mthimkhulu Molekwa <MMolekwa@rrs.co.za>
+
+\makeatletter
+
+\newdimen\barline@depth
+
+\def\barlinedash#1{\vskip.5\Internote
+ \hrule\@width#1\@height\Internote
+ \vskip.5\Internote}
+\def\barlinedots#1{\vskip.5\Internote
+ \hbox to #1{\hss\tenrm.\hss}
+ \vskip.5\Internote}
+
+\def\rul@indiv#1{%
+ \n@loop
+ \Comp@High
+ \multiply\barline@depth -1\relax
+ \advance\barline@depth\altitude
+ \expandafter\ifx\csname s@b\romannumeral\noinstrum@nt\endcsname\relax
+ % normal barline below instrument
+ \raise\altitude\rlap{\vrule\@depth\barline@depth\@width#1\@height0pt }%
+ \else
+ \expandafter\ifx\csname s@b\romannumeral\noinstrum@nt\endcsname 2%
+ % dashed barline below instrument
+ \raise\altitude\hbox{%
+ \lower\barline@depth\rlap{%
+ \vbox to \barline@depth{%
+ \xleaders\vbox{\barlinedash{#1}}\vfill}}}%
+ \else
+ \expandafter\ifx\csname s@b\romannumeral\noinstrum@nt\endcsname 3%
+ % dotted barline below instrument
+ \raise\altitude\hbox{%
+ \lower\barline@depth\rlap{%
+ \vbox to \barline@depth{%
+ \xleaders\vbox{\barlinedots{#1}}\vfill}}}%
+ \fi
+ \fi
+ \fi
+ \ifnum\st@ffs>1 % multi-staff instrument
+ \multi@instrum@bars{#1}%
+ \else % single-staff instrument
+ \expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname\relax
+ % normal barline through instrument
+ \raise\altitude\rlap{\vrule\@depth0pt \@width#1\@height\y@v}%
+ \else
+ \expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname 2%
+ % dashed barline through instrument
+ \raise\altitude\rlap{%
+ \vbox to \y@v{%
+ \cleaders\vbox to 2\internote{\vss
+ \hrule\@width#1\@height\internote
+ \vss}%
+ \vfill}}%
+ \else
+ \expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname 3%
+ % dotted barline through instrument
+ \raise\altitude\rlap{%
+ \vbox to \y@v{%
+ \cleaders\vbox to 2\internote{\vss
+ \hbox to #1{\hss\tenrm.\hss}%
+ \vss}%
+ \vfill}}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \barline@depth\altitude
+ \advance\barline@depth\y@v
+ \repeat
+ \addspace#1}
+
+\def\multi@instrum@bars#1{%
+ \begingroup
+ % retrieve staff height
+ \count@=\nblines \advance\count@ -1 \multiply\count@ 2
+ \dimen@=\count@\internote
+ \p@loop
+ % barline within staff
+ \expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname\relax
+ % normal barline through staff
+ \raise\altportee\rlap{\vrule\@depth0pt \@width#1\@height\dimen@}%
+ \else
+ \expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname 2%
+ % dashed barline through staff
+ \raise\altportee\rlap{%
+ \vbox to \dimen@{%
+ \cleaders\vbox to 2\internote{\vss
+ \hrule\@width#1\@height\internote
+ \vss}%
+ \vfill}}%
+ \else
+ \expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname 3%
+ % dotted barline through staff
+ \raise\altportee\rlap{%
+ \vbox to \dimen@{%
+ \cleaders\vbox to 2\internote{\vss
+ \hbox to #1{\hss\tenrm.\hss}%
+ \vss}%
+ \vfill}}%
+ \fi
+ \fi
+ \fi
+ \count@portee
+ % barline above staff
+ \ifnum\noport@@<\st@ffs % not for topmost staff
+ \barline@depth\interportee
+ \advance\barline@depth -\dimen@
+ \raise\altportee\hbox{\raise\dimen@\rlap{%
+ \expandafter\ifx\csname s@mb\romannumeral\noinstrum@nt\endcsname
+ \relax
+ % normal barline
+ \vrule\@height\barline@depth\@width#1\relax
+ \else
+ \expandafter\ifx\csname s@mb\romannumeral\noinstrum@nt\endcsname 2%
+ % dashed barline
+ \vbox to \barline@depth{%
+ \xleaders\vbox{\barlinedash{#1}}\vfill}%
+ \else
+ \expandafter\ifx\csname s@mb\romannumeral\noinstrum@nt\endcsname
+ 3% dotted barline
+ \vbox to \barline@depth{%
+ \xleaders\vbox{\barlinedots{#1}}\vfill}%
+ \fi
+ \fi
+ \fi}}%
+ \fi
+ \repeat
+ \endgroup}
+
+
+% Activate individual barline processing
+\def\indivbarrules{%
+ \let\writ@rule\rul@indiv
+ \sepbarrule 1}
+
+%== separates bar line of specified instrument from one of previous instrument
+\def\sepbarrule#1{\expandafter\let\csname s@b\romannumeral#1\endcsname 1}
+
+%== connects bar line of specified instrument to one of previous instrument
+% with dashed line
+\def\condashbarrule#1{%
+ \ifnum#1>1 \expandafter\let\csname s@b\romannumeral#1\endcsname 2\fi}
+
+%== connects bar line of specified instrument to one of previous instrument
+% with dotted line
+\def\condotbarrule#1{%
+ \ifnum#1>1 \expandafter\let\csname s@b\romannumeral#1\endcsname 3\fi}
+
+%== connects bar line of specified instrument to one of previous instrument
+\def\conbarrule#1{%
+ \ifnum#1>1 \expandafter\let\csname s@b\romannumeral#1\endcsname\relax\fi}
+
+%== hides bar line for specified instrument
+\def\hidebarrule#1{\expandafter\let\csname h@bl\romannumeral#1\endcsname 1}
+
+%== dashes bar line for specified instrument
+\def\showdashbarrule#1{\expandafter\let\csname h@bl\romannumeral#1\endcsname 2}
+
+%== dots bar line for specified instrument
+\def\showdotbarrule#1{\expandafter\let\csname h@bl\romannumeral#1\endcsname 3}
+
+%== shows bar line for specified instrument
+\def\showbarrule#1{\expandafter\let\csname h@bl\romannumeral#1\endcsname\relax}
+
+%== separates bar line within multistaff instrument
+\def\sepmultibarrule#1{\expandafter\let\csname s@mb\romannumeral#1\endcsname 1}
+
+%== dashes bar line between staves of multistaff instrument
+\def\condashmultibarrule#1{%
+ \expandafter\let\csname s@mb\romannumeral#1\endcsname 2}
+
+%== dots bar line between staves of multistaff instrument
+\def\condotmultibarrule#1{%
+ \expandafter\let\csname s@mb\romannumeral#1\endcsname 3}
+
+%== shows bar line between staves of multistaff instrument
+\def\conmultibarrule#1{%
+ \expandafter\let\csname s@mb\romannumeral#1\endcsname\relax}
+
+% set barlines for all instruments together
+\def\allbarrules#1{\n@loop#1\noinstrum@nt\repeat}
+
+
+\makeatother
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Here comes an example of how to use these macros
+
+\input musixtex
+\input musixdbr
+
+\instrumentnumber4
+\setstaffs23
+\setstaffs32
+\setlines14
+\setsize2\tinyvalue
+
+\indivbarrules
+
+\startpiece
+ % normal barlines
+ \bar
+ % barlines on staves
+ \allbarrules\sepbarrule
+ \allbarrules\sepmultibarrule
+ \allbarrules\showbarrule
+ \bar
+ % barlines between staves
+ \allbarrules\conbarrule
+ \allbarrules\conmultibarrule
+ \allbarrules\hidebarrule
+ \bar
+ % dashed barlines on staves
+ \allbarrules\sepbarrule
+ \allbarrules\sepmultibarrule
+ \allbarrules\showdashbarrule
+ \bar
+ % dashed barlines between staves
+ \allbarrules\condashbarrule
+ \allbarrules\condashmultibarrule
+ \allbarrules\hidebarrule
+ \bar
+ % dotted barlines on staves
+ \allbarrules\sepbarrule
+ \allbarrules\sepmultibarrule
+ \allbarrules\showdotbarrule
+ \bar
+ % dotted barlines between staves
+ \allbarrules\condotbarrule
+ \allbarrules\condotmultibarrule
+ \allbarrules\hidebarrule
+ \bar
+ % a wild mixture of all
+ \showdotbarrule1\hidebarrule2\showdashbarrule3\showbarrule4%
+ \condashbarrule2\conbarrule3\condotbarrule4%
+ \condashmultibarrule2\sepmultibarrule3%
+ \bar
+ % conventional ending
+ \allbarrules\showbarrule
+ \allbarrules\conbarrule
+ \allbarrules\conmultibarrule
+\Endpiece
+\bye
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixdia.tex b/Master/texmf-dist/tex/generic/musixtex/musixdia.tex
index 87120f00b47..05839eea01f 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixdia.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixdia.tex
@@ -17,7 +17,7 @@
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXDIAmond T.40\space<12 September 1995>}%
+\immediate\write16{MusiXDIAmond T.40\space<12 September 1995>}%
\ifx\undefined\dqu \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixeng.tex b/Master/texmf-dist/tex/generic/musixtex/musixeng.tex
index 747fdf691e0..0f35e0984b5 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixeng.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixeng.tex
@@ -19,7 +19,7 @@
% suggested by Ross Mitchell
-\immediate\write10{MusiX ENGlish rests T.404\space<31 October 1995>}%
+\immediate\write16{MusiX ENGlish rests T.404\space<31 October 1995>}%
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixesf.tex b/Master/texmf-dist/tex/generic/musixtex/musixesf.tex
new file mode 100644
index 00000000000..0fa6fd0829e
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixesf.tex
@@ -0,0 +1,79 @@
+%%
+%% musixesf.tex : efont-serif series fonts definition for MusiXTeX
+%%
+%% usage:
+%% \input musixtex
+%% \input musixesf
+%% ...
+%%
+%% This file is public domain.
+%%
+%% Author:
+%% Hiroaki MORIMOTO <CQX05646 at nifty dot com>
+%% Tokyo, Japan
+%% URL(en): http://homepage1.nifty.com/kuuku/pub/musixtex/index-e.html
+%% (jp): http://homepage1.nifty.com/kuuku/pub/musixtex/index.html
+%%
+%% reference: musixtex.tex (T.99) 268-508
+%% MusiXTeX: (c) Daniel Taupin, et al.
+%%
+%% efont-serif:
+%% (c) /efont/ <efont\atmark ring.gr.jp>
+%% The Electronic Font Open Laboratory
+%% http://openlab.ring.gr.jp/efont/dist/serif/efont-serif-tex-20010312-p3.tar.gz
+%% http://openlab.ring.gr.jp/efont/serif/index.html.en
+%% http://openlab.ring.gr.jp/efont/index.html.en
+%%
+%% History: see trailer.
+%
+\immediate\write16{MusiXTeX efont-serif\space<2009/10/15>}
+%
+% 8pt roman, bold, and italic
+\font\eightrm=esfr7t at 8pt
+\font\eightbf=esfb7t at 8pt
+\font\eightit=esfri7t at 8pt
+%
+% 9pt
+\font\ninerm=esfr7t at 9pt
+\font\ninebf=esfb7t at 9pt
+\font\nineit=esfri7t at 9pt
+%
+% 10pt
+\font\tenrm=esfr7t
+\font\tenbf=esfb7t
+\font\tenit=esfri7t
+%
+% 12pt
+\font\twelverm=esfr7t scaled \magstep 1
+\font\twelvebf=esfb7t scaled \magstep 1
+\font\twelveit=esfri7t scaled \magstep 1
+%
+% Large fonts for titles
+% (If you prefer efont-serif-bold, use esfb7t instead of esfr7t)
+\font\bigfont=esfr7t scaled \magstep2 % 14pt
+\font\Bigfont=esfr7t scaled \magstep3 % 17pt
+\font\BIgfont=esfr7t scaled \magstep4 % 20pt
+\font\BIGfont=esfr7t scaled \magstep5 % 25pt
+%
+% PMX changes font assignment in pmx.tex
+% \BIGfont=\fontid bx10 scaled\magstep4
+% \Bigfont=\fontid bx10 scaled\magstep2
+\ifx\pmxversion\undefined\relax\else
+ \font\Bigfont=esfr7t scaled \magstep2 % 14pt
+ \font\BIGfont=esfr7t scaled \magstep4 % 20pt
+\fi
+%
+\normtype
+\endinput
+%%
+%% History
+%%
+%% 2006/05/13
+%% first publish
+%% 2007/06/11
+%% no functional change. (email protection, real address change, URL change)
+%% 2008/08/01
+%% Font assignment change on PMX.
+%% 2009/10/15
+%% small update for MusiXTeX T.114 final release.
+%%
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixevo.tex b/Master/texmf-dist/tex/generic/musixtex/musixevo.tex
index 64fc9881ae5..dd6c1e5ffc7 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixevo.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixevo.tex
@@ -1,4 +1,4 @@
-\immediate\write10{MusiXEVenOdd T.53\space<1 April 1996>}%
+\immediate\write16{MusiXEVenOdd T.53\space<1 April 1996>}%
% enables
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixext.tex b/Master/texmf-dist/tex/generic/musixtex/musixext.tex
index a68d2a2053d..4f95d9eacc6 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixext.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixext.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXEXTra 0.36\space<1 March 1995>}%
+\immediate\write16{MusiXEXTra 0.36\space<1 March 1995>}%
\ifx\undefined\centerskip \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixfll.tex b/Master/texmf-dist/tex/generic/musixtex/musixfll.tex
index 532a296eccb..7cb9e44faec 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixfll.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixfll.tex
@@ -19,7 +19,7 @@
\ifx\undefined\longledgerlines \else \endinput \fi
-\immediate\write10{MusiXFormerLedgerLines T.74\space<06 April 1997>}%
+\immediate\write16{MusiXFormerLedgerLines T.74\space<06 April 1997>}%
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixgre.tex b/Master/texmf-dist/tex/generic/musixtex/musixgre.tex
index eb5e02f1c51..a7272fb30ce 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixgre.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixgre.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXGREgorian T.67\space<3 January 1997>}%
+\immediate\write16{MusiXGREgorian T.67\space<3 January 1997>}%
\ifx\undefined\gregorianCclef \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixgui.tex b/Master/texmf-dist/tex/generic/musixtex/musixgui.tex
index 569e21d2a29..103360b2694 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixgui.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixgui.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXGUItar 0.36\space<1 March 1995>}%
+\immediate\write16{MusiXGUItar 0.36\space<1 March 1995>}%
\ifx\undefined\guitar \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixhor.tex b/Master/texmf-dist/tex/generic/musixtex/musixhor.tex
index 7b603966f30..fbc73393e1b 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixhor.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixhor.tex
@@ -21,7 +21,7 @@
\input musixsty.tex
\fi
-\immediate\write10{MusiXtextSTYle-horizontal T.98\space<21 October 1999>}%
+\immediate\write16{MusiXtextSTYle-horizontal T.98\space<21 October 1999>}%
\vsize=185mm
\hsize=275mm
@@ -29,6 +29,7 @@
\advance\hoffset -\hsize
\divide\hoffset 2\relax
\advance\hoffset -2.54cm
+\voffset -3mm
\tenpoint
\def\horizontalscore{\relax}
%%%%%%%%%%%%%%%%%%%%%%%%% local adjust to be tuned %%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixhou.tex b/Master/texmf-dist/tex/generic/musixtex/musixhou.tex
index bdf07ab6549..d0eb65d23b1 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixhou.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixhou.tex
@@ -17,7 +17,7 @@
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXHOUsestyles T.64\space<8 October 1996>}%
+\immediate\write16{MusiXHOUsestyles T.64\space<8 October 1996>}%
\ifx\undefined\Metron \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixlex.tex b/Master/texmf-dist/tex/generic/musixtex/musixlex.tex
new file mode 100644
index 00000000000..7d243763c80
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixlex.tex
@@ -0,0 +1,1201 @@
+\begin{theindex}
+
+ \item {\tt\char37}, 12
+ \item *, 34
+ \item \&, 6, 16, 82
+ \item \^{}M, 99
+ \item {\tt\char'174}, 6, 81, 82
+
+ \indexspace
+
+ \item {\tt a4wide}, 81
+ \item {\Bslash AB}, 96
+ \item {\Bslash absoluteaccid}, 38
+ \item {\Bslash accshift}, 35
+ \item acute accent, 35
+ \item {\Bslash addspace}, 34
+ \item {\Bslash afterruleskip}, 22, 34
+ \item {\Bslash akkoladen}, 20
+ \item {\Bslash alaligne}, 10, 12, 49, 52, 63, 84
+ \item {\Bslash alapage}, 10, 12, 49, 52, 63, 84
+ \item {\Bslash allabreve}, 18
+ \item {\Bslash altitude}, 68
+ \item {\Bslash alto}, 18
+ \item alto clef, 18, 51
+ \item {\Bslash altplancher}, 68
+ \item {\Bslash altportee}, 68
+ \item anonymous ftp, 99
+ \item apostropha, 87
+ \item {\Bslash apostropha}, 87
+ \item apostropha aucta, 87
+ \item {\Bslash apostropha aucta}, 87
+ \item {\Bslash arithmeticskipscale}, 22
+ \item {\Bslash arpeggio}, 58
+ \item {\Bslash atnextline}, 63, 69
+ \item {\Bslash AUF}, 96
+ \item {\Bslash author}, 97
+ \item author names, 96
+ \item {\Bslash autoledgerlines}, 86
+ \item {\Bslash autolines}, 12, 84
+
+ \indexspace
+
+ \item {\sc Bach, J.S.}, 104
+ \item {\Bslash backturn}, 60
+ \item {\Bslash bar}, 45, 49, 52, 53
+ \item {\Bslash bar} \ital{(original meaning)}, 45
+ \item bar numbering, 45
+ \item {\Bslash barno}, 46
+ \item {\Bslash barnumbers}, 46
+ \item baroque, 62
+ \item {\Bslash barre}, 83
+ \item {\Bslash barsinline}, 84
+ \item {\Bslash bass}, 18
+ \item bass clef, 18, 51
+ \item {\Bslash basslowoct}, 78
+ \item {\Bslash bassoct}, 78
+ \item beams, 8, 17
+ \item {\Bslash beforeruleskip}, 22, 34
+ \item {\Bslash begin{\tt \char '173}bigmusic{\tt \char '175}}, 81
+ \item {\Bslash begin{\tt \char '173}music{\tt \char '175}}, 70
+ \item {\Bslash bf}, 56, 96
+ \item {\Bslash bigaccid}, 35
+ \item {\Bslash bigfl}, 35
+ \item Big\LaTeX, 81, 82
+ \item {\Bslash biglbrace}, 84
+ \item {\Bslash bigrbrace}, 84
+ \item {\Bslash bigsh}, 35
+ \item Big\TeX, 82
+ \item {\Bslash BIGtype}, 56
+ \item {\Bslash BIgtype}, 56
+ \item {\Bslash Bigtype}, 56
+ \item {\Bslash bigtype}, 56
+ \item {\Bslash bistropha}, 88
+ \item {\Bslash bivirga}, 88
+ \item {\Bslash blppz}, 58
+ \item {\Bslash blpz}, 58
+ \item {\Bslash blsf}, 58
+ \item {\Bslash blsfz}, 58
+ \item {\Bslash blst}, 58
+ \item {\Bslash bltext}, 58
+ \item {\Bslash boxit}, 46, 54
+ \item {\Bslash boxitsep}, 54
+ \item {\Bslash bporrectus}, 90
+ \item {\Bslash braceheight}, 84
+ \item {\Bslash bracket}, 62
+ \item {\sc Brahms, J.}, 30, 51
+ \item {\Bslash breakslur}, 43
+ \item {\Bslash breath}, 60
+ \item breathing, 60
+ \item {\Bslash breve}, 23
+ \item {\sc Brouard, N.}, 81
+ \item {\Bslash bsk}, 33
+ \item {\Bslash buppz}, 58
+ \item {\Bslash bupz}, 58
+ \item {\Bslash busf}, 58
+ \item {\Bslash busfz}, 58
+ \item {\Bslash bust}, 58
+ \item {\Bslash butext}, 58
+ \item {\Bslash bye}, 21, 50
+
+ \indexspace
+
+ \item {\Bslash ca}, 23
+ \item cadenzas, 64
+ \item {\Bslash caesura}, 61
+ \item {\Bslash catcode}, 16, 81, 82
+ \item {\Bslash catcodes}, 81
+ \item {\Bslash catcodesmusic}, 82
+ \item cautionary accidental, 35
+ \item {\Bslash cbreath}, 60
+ \item {\Bslash cca}, 23
+ \item {\Bslash ccca}, 24
+ \item {\Bslash ccccca}, 84
+ \item {\Bslash cccccl}, 84
+ \item {\Bslash cccccu}, 84
+ \item {\Bslash ccccl}, 24
+ \item {\Bslash cccclp}, 96
+ \item {\Bslash cccclpp}, 96
+ \item {\Bslash ccccu}, 24
+ \item {\Bslash ccccup}, 96
+ \item {\Bslash ccccupp}, 96
+ \item {\Bslash cccl}, 24
+ \item {\Bslash ccclp}, 96
+ \item {\Bslash ccclpp}, 96
+ \item {\Bslash cccu}, 23
+ \item {\Bslash cccup}, 96
+ \item {\Bslash cccupp}, 96
+ \item {\Bslash cchar}, 55, 71
+ \item {\Bslash ccharnote}, 54, 55
+ \item {\Bslash ccl}, 23
+ \item {\Bslash cclp}, 96
+ \item {\Bslash cclpp}, 96
+ \item {\Bslash ccu}, 23
+ \item {\Bslash ccup}, 96
+ \item {\Bslash ccupp}, 96
+ \item {\Bslash cdfl}, 35
+ \item {\Bslash cdsh}, 35
+ \item {\Bslash centerbar}, 32
+ \item {\Bslash centerhpause}, 32
+ \item {\Bslash centerPAUSe}, 32
+ \item {\Bslash centerPAuse}, 32
+ \item {\Bslash centerpause}, 32
+ \item {\Bslash cfl}, 35
+ \item {\Bslash changeclefs}, 51
+ \item {\Bslash Changecontext}, 51, 52
+ \item {\Bslash changecontext}, 34, 49, 51, 52
+ \item {\Bslash changesignature}, 51
+ \item {\Bslash chl}, 94
+ \item chords, 17
+ \item {\Bslash ChroirStrut}, 85
+ \item {\Bslash chu}, 94
+ \item {\Bslash circleit}, 54
+ \item {\Bslash cl}, 23, 65
+ \item clef d'ut, 17, 51
+ \item clef de fa, 17, 51
+ \item clef de sol, 17, 51
+ \item clefs (empty), 77
+ \item {\Bslash climacus}, 90
+ \item {\Bslash climacusauctdown}, 92
+ \item {\Bslash climacusdeminut}, 93
+ \item {\Bslash climacusresupinus}, 90
+ \item {\Bslash clivis}, 88
+ \item {\Bslash clivisauctdown}, 91
+ \item {\Bslash clivisauctup}, 91
+ \item {\Bslash clivisdeminut}, 92
+ \item {\Bslash clp}, 26
+ \item {\Bslash clpp}, 26
+ \item {\Bslash clppp}, 97
+ \item {\Bslash cmidstaff}, 55
+ \item {\Bslash cna}, 35
+ \item {\Bslash cnhl}, 94
+ \item {\Bslash cnhu}, 94
+ \item {\Bslash cnql}, 94
+ \item {\Bslash cnqu}, 94
+ \item {\Bslash Coda}, 54
+ \item {\Bslash coda}, 54
+ \item {\Bslash Contpiece}, 49
+ \item {\Bslash contpiece}, 49, 52, 69
+ \item {\Bslash cql}, 94
+ \item {\Bslash cqu}, 94
+ \item {\Bslash crescendo}, 61
+ \item crescendos, 103
+ \item {\Bslash csh}, 35
+ \item {\Bslash csong}, 72
+ \item {\Bslash cu}, 23, 65
+ \item {\Bslash cup}, 26
+ \item {\Bslash cupp}, 26
+ \item {\Bslash cuppp}, 97
+ \item {\Bslash curve}, 42
+
+ \indexspace
+
+ \item {\Bslash dateaustrian}, 85
+ \item {\Bslash dateenglish}, 85
+ \item {\Bslash datefrench}, 85
+ \item {\Bslash dategerman}, 85
+ \item {\Bslash dateUSenglish}, 85
+ \item {\Bslash dccccl}, 85
+ \item {\Bslash dccccu}, 85
+ \item {\Bslash dcccl}, 85, 95
+ \item {\Bslash dcccu}, 85, 95
+ \item {\Bslash dccl}, 85, 95
+ \item {\Bslash dccu}, 85, 95
+ \item {\Bslash dcl}, 85
+ \item {\Bslash dclp}, 85
+ \item {\Bslash dclpp}, 85
+ \item {\Bslash dcqb}, 95
+ \item {\Bslash dcql}, 95
+ \item {\Bslash dcqu}, 95
+ \item {\Bslash dcu}, 85
+ \item {\Bslash dcup}, 85
+ \item {\Bslash dcupp}, 85
+ \item {\Bslash dczq}, 95
+ \item {\sc Debussy, C.}, 103
+ \item {\Bslash debutmorceau}, 83
+ \item {\Bslash decrescendo}, 61
+ \item default values, 70
+ \item {\Bslash demisoupir}, 84
+ \item {\Bslash DEP}, 59, 60
+ \item {\Bslash Dep}, 60
+ \item {\Bslash dfl}, 34, 37
+ \item {\Bslash dgroff}, 88
+ \item {\Bslash dhccl}, 95
+ \item {\Bslash dhccu}, 95
+ \item {\Bslash dhcl}, 95
+ \item {\Bslash dhcu}, 95
+ \item {\Bslash dhqb}, 95
+ \item {\Bslash dhql}, 95
+ \item {\Bslash dhqu}, 95
+ \item {\Bslash dhsong}, 73
+ \item {\Bslash dhzq}, 95
+ \item {\Bslash diapunc}, 87
+ \item {\Bslash diapunctumauctdown}, 87
+ \item dictionnaire, 5
+ \item {\Bslash dimen}, 15
+ \item distribution, 14
+ \item {\Bslash dnq}, 85
+ \item {\Bslash doccl}, 95
+ \item {\Bslash doccu}, 95
+ \item {\Bslash docl}, 95
+ \item {\Bslash docu}, 95
+ \item {\Bslash documentstyle}, 81
+ \item {\Bslash doqb}, 95
+ \item {\Bslash doql}, 95
+ \item {\Bslash doqu}, 95
+ \item {\Bslash dotted}, 41
+ \item {\Bslash doublebar}, 49
+ \item {\Bslash doublethumb}, 62
+ \item {\Bslash downbow}, 57, 96
+ \item {\Bslash downtrio}, 62
+ \item {\Bslash dozq}, 95
+ \item dpi, 100
+ \item {\Bslash dqb}, 85
+ \item {\Bslash Dqbbl}, 31
+ \item {\Bslash Dqbbu}, 31
+ \item {\Bslash Dqbl}, 31
+ \item {\Bslash Dqbu}, 31
+ \item {\Bslash dql}, 85
+ \item {\Bslash dqlp}, 85
+ \item {\Bslash dqlpp}, 85
+ \item {\Bslash dqu}, 85
+ \item {\Bslash dqup}, 85
+ \item {\Bslash dqupp}, 85
+ \item {\Bslash Drtx}, 84
+ \item drum clef, 78
+ \item {\Bslash drumclef}, 78, 95
+ \item {\Bslash ds}, 31, 86
+ \item {\Bslash dsh}, 34, 37
+ \item {\Bslash dsoupir}, 84
+ \item {\Bslash Dtx}, 84
+ \item {\Bslash duevolte}, 55
+ \item {\Bslash Dwr}, 86
+ \item {\Bslash dznq}, 85
+ \item {\Bslash dzq}, 85
+ \item {\Bslash dzqp}, 85
+ \item {\Bslash dzqpp}, 85
+
+ \indexspace
+
+ \item {\Bslash eeeer}, 86
+ \item {\Bslash eeer}, 86
+ \item {\Bslash eer}, 86
+ \item {\Bslash eightpoint}, 96
+ \item {\Bslash eject}, 49, 50
+ \item {\Bslash elemskip}, 9, 21, 22, 34, 50
+ \item em\TeX, 82
+ \item {\Bslash en}, 6
+ \item {\Bslash end}, 21
+ \item {\Bslash endcatcodesmusic}, 82
+ \item {\Bslash endextract}, 70, 82
+ \item {\Bslash endmuflex}, 21
+ \item {\Bslash Endpiece}, 10, 49, 83
+ \item {\Bslash endpiece}, 10, 49, 52, 69, 82, 83
+ \item {\Bslash endvolta}, 54
+ \item {\Bslash endvoltabox}, 54
+ \item {\Bslash end{\tt \char '173}music{\tt \char '175}}, 70
+ \item {\Bslash enotes}, 6
+ \item {\Bslash er}, 86
+ \item {\Bslash everystaff}, 63
+ \item {\Bslash extractline}, 70
+
+ \indexspace
+
+ \item {\Bslash f}, 61
+ \item FAQ, 98
+ \item fermata, 60
+ \item {\Bslash Fermatadown}, 60
+ \item {\Bslash fermatadown}, 60
+ \item {\Bslash Fermataup}, 60
+ \item {\Bslash fermataup}, 60
+ \item {\Bslash ff}, 61
+ \item {\Bslash fff}, 61
+ \item {\Bslash ffff}, 61
+ \item {\Bslash finmorceau}, 83
+ \item {\Bslash fl}, 34, 37
+ \item {\Bslash flageolett}, 57
+ \item flats, 18
+ \item {\Bslash flushbottom}, 49
+ \item {\Bslash fontbarno}, 46
+ \item fonts, 100
+ \item {\Bslash Footnote}, 97
+ \item {\Bslash footnote}, 97
+ \item footnotes, 97
+ \item format, 100
+ \item {\Bslash fp}, 61
+ \item {\Bslash FR}, 96
+ \item french violin clef, 18
+ \item french.sty, 82
+ \item {\tt french.sty}, 81
+ \item {\Bslash freqbarno}, 45
+ \item {\Bslash frtpoint}, 96
+ \item full rest, 32
+ \item {\Bslash fullauthor}, 97
+ \item {\Bslash fulltitle}, 97
+
+ \indexspace
+
+ \item {\sc Gaulle, B.}, 82
+ \item {\Bslash GB}, 96
+ \item {\Bslash Gb}, 96
+ \item {\Bslash gbarre}, 93
+ \item {\Bslash gdot}, 93
+ \item general staff size, 65
+ \item {\Bslash generalmeter}, 18, 19
+ \item {\Bslash generalsignature}, 13, 18, 38, 49, 50
+ \item {\Bslash geometricskipscale}, 22
+ \item glossaire, 5
+ \item glossary, 5
+ \item {\sc Gounod, C.}, 66, 103
+ \item {\sc Gouzes, A.}, 104
+ \item grave accent, 35
+ \item {\Bslash grcl}, 65
+ \item {\Bslash grcu}, 65
+ \item gregorian clefs, 76
+ \item gregorian music, 69, 76, 86
+ \item {\Bslash gregorianCclef}, 87
+ \item {\Bslash gregorianFclef}, 87
+ \item {\sc Grieg, E.}, 30
+ \item {\Bslash groff}, 88
+ \item {\Bslash groupbottom}, 19
+ \item {\Bslash grouptop}, 19
+ \item guillemets, 82
+ \item {\Bslash guitar}, 93
+ \item guitar tablature, 70
+ \item guitar tablatures, 93
+ \item GUTenberg, 82
+
+ \indexspace
+
+ \item {\Bslash ha}, 23
+ \item {\sc Haendel, G.F.}, 104
+ \item half rest, 32
+ \item hard spacing, 12, 34, 73
+ \item hard width, 9
+ \item {\Bslash hardlyrics}, 73, 104
+ \item {\Bslash hardnotes}, 73
+ \item {\Bslash hardspace}, 34, 71
+ \item harmonic notes, 79
+ \item {\sc Haydn, J.}, 64
+ \item {\Bslash hb}, 29
+ \item {\Bslash hbox}, 32
+ \item {\Bslash hf}, 84
+ \item {\Bslash Hidebarrule}, 47
+ \item {\Bslash hidebarrule}, 47
+ \item hihat, 95
+ \item {\Bslash hl}, 21, 23, 25
+ \item {\Bslash hloff}, 33
+ \item {\Bslash Hlonga}, 95
+ \item {\Bslash hlp}, 26
+ \item {\Bslash hlpp}, 26
+ \item {\Bslash hlppp}, 97
+ \item {\Bslash hoffset}, 50, 96, 103
+ \item {\Bslash Hpause}, 95
+ \item {\Bslash hpause}, 31, 86
+ \item {\Bslash hpausep}, 31, 86
+ \item {\Bslash hqsk}, 33
+ \item {\Bslash hr}, 86
+ \item {\Bslash hroff}, 33
+ \item {\Bslash hrp}, 86
+ \item {\Bslash hs}, 31, 86
+ \item {\Bslash hsize}, 50, 96
+ \item {\Bslash hsk}, 30, 33
+ \item {\Bslash hskip}, 33
+ \item {\Bslash hsong}, 73
+ \item {\Bslash hu}, 23
+ \item {\Bslash hup}, 26
+ \item {\Bslash hupp}, 26
+ \item {\Bslash huppp}, 97
+
+ \indexspace
+
+ \item {\Bslash Ibbbbbbl}, 84
+ \item {\Bslash ibbbbbbl}, 84
+ \item {\Bslash Ibbbbbbu}, 84
+ \item {\Bslash ibbbbbbu}, 84
+ \item {\Bslash Ibbbbbl}, 84
+ \item {\Bslash ibbbbbl}, 84
+ \item {\Bslash Ibbbbbu}, 84
+ \item {\Bslash ibbbbbu}, 84
+ \item {\Bslash Ibbbbl}, 31
+ \item {\Bslash ibbbbl}, 26
+ \item {\Bslash Ibbbbu}, 31
+ \item {\Bslash ibbbbu}, 26
+ \item {\Bslash Ibbbl}, 31
+ \item {\Bslash ibbbl}, 26
+ \item {\Bslash Ibbbu}, 31
+ \item {\Bslash ibbbu}, 26, 27
+ \item {\Bslash Ibbl}, 31
+ \item {\Bslash ibbl}, 26
+ \item {\Bslash Ibbu}, 31
+ \item {\Bslash ibbu}, 26
+ \item {\Bslash Ibl}, 31
+ \item {\Bslash ibl}, 26, 27
+ \item {\Bslash ibslurd}, 39
+ \item {\Bslash ibsluru}, 39
+ \item {\Bslash Ibu}, 31
+ \item {\Bslash ibu}, 26
+ \item {\sc Icking, W.}, 96
+ \item {\Bslash icresc}, 61
+ \item {\Bslash ignorenats}, 51
+ \item INITEX, 100
+ \item {\Bslash input}, 84, 103
+ \item instrument, 17
+ \item instrument number, 13
+ \item {\Bslash instrumentnumber}, 17
+ \item {\Bslash interbarrules}, 95
+ \item {\Bslash interbeam}, 61, 68, 69
+ \item {\Bslash interfacteur}, 69
+ \item {\Bslash interinstrument}, 68, 69, 71, 72
+ \item {\Bslash interinstrumentiii}, 68
+ \item {\Bslash Interligne}, 67, 69
+ \item {\Bslash Internote}, 67
+ \item {\Bslash internote}, 67, 94
+ \item {\Bslash interportee}, 68
+ \item {\Bslash interportee+\tt \char '134interinstrument}, 68
+ \item {\Bslash interstaff}, 68--70
+ \item {\Bslash invertslur}, 43
+ \item {\Bslash Ioctfindown}, 36
+ \item {\Bslash ioctfindown}, 37
+ \item {\Bslash Ioctfinup}, 36
+ \item {\Bslash ioctfinup}, 37
+ \item {\Bslash islurd}, 38, 39
+ \item {\Bslash Islurdbreak}, 44
+ \item {\Bslash isluru}, 38, 39
+ \item {\Bslash Islurubreak}, 44
+ \item {\Bslash isslurd}, 39
+ \item {\Bslash issluru}, 39
+ \item {\Bslash it}, 56, 96
+ \item {\Bslash itenl}, 40
+ \item {\Bslash itenu}, 40
+ \item {\Bslash itied}, 39
+ \item {\Bslash itieu}, 39
+ \item {\Bslash ITrille}, 59
+ \item {\Bslash Itrille}, 58
+ \item {\Bslash itrille}, 59
+
+ \indexspace
+
+ \item {\Bslash kccl}, 95
+ \item {\Bslash kccu}, 95
+ \item {\Bslash kcl}, 95
+ \item {\Bslash kcu}, 95
+ \item {\Bslash kern}, 33
+ \item {\sc Kneifl, S.}, 100
+ \item {\Bslash kqb}, 95
+ \item {\Bslash kql}, 95
+ \item {\Bslash kqu}, 95
+ \item {\Bslash kzq}, 95
+
+ \indexspace
+
+ \item {\Bslash Largemusicsize}, 17, 65, 70
+ \item {\Bslash largemusicsize}, 17, 65, 70
+ \item {\Bslash Largevalue}, 66
+ \item {\Bslash largevalue}, 66
+ \item {\Bslash larpeggio}, 58
+ \item \LaTeX, 81
+ \item \protect\LaTeX, 97
+ \item {\Bslash lchar}, 55, 71
+ \item {\Bslash lcharnote}, 55
+ \item {\Bslash lcl}, 25
+ \item {\Bslash lclimacus}, 90
+ \item {\Bslash lclivis}, 89
+ \item {\Bslash lcu}, 25
+ \item {\Bslash ldfl}, 34
+ \item {\Bslash ldsh}, 34
+ \item ledger lines, 86
+ \item {\Bslash leftrepeat}, 52, 53
+ \item {\Bslash leftrightrepeat}, 52
+ \item legal, 96
+ \item {\Bslash let\tt \char '134extractline\tt \char '134hbox}, 70
+ \item {\Bslash let\tt \char '134extractline\tt \char '134leftline},
+ 70
+ \item lexique, 5
+ \item {\Bslash lfl}, 34
+ \item {\Bslash lh}, 24
+ \item {\Bslash lhl}, 25
+ \item {\Bslash lhu}, 25
+ \item {\Bslash lifthpause}, 32, 86
+ \item {\Bslash lifthpausep}, 32
+ \item {\Bslash lifthr}, 86
+ \item lifting rests, 31
+ \item {\Bslash Liftoctline}, 37
+ \item {\Bslash liftpause}, 32, 86
+ \item {\Bslash liftpausep}, 32
+ \item {\Bslash Liftslur}, 43
+ \item {\Bslash liftwr}, 86
+ \item {\Bslash linegoal}, 11
+ \item {\Bslash linesinpage}, 84
+ \item liquescens neumes, 91
+ \item {\Bslash llap}, 32
+ \item {\Bslash lmidstaff}, 55
+ \item {\Bslash lna}, 34
+ \item {\Bslash loff}, 30, 33
+ \item {\Bslash loffset}, 33
+ \item {\Bslash longa}, 23
+ \item {\Bslash longaa}, 23
+ \item {\Bslash longledgerlines}, 86
+ \item {\Bslash lpar}, 62
+ \item {\Bslash lpodatus}, 89
+ \item {\Bslash lpppt}, 97
+ \item {\Bslash lppt}, 26
+ \item {\Bslash lppz}, 57
+ \item {\Bslash lpt}, 26
+ \item {\Bslash lpz}, 57
+ \item {\Bslash lpzst}, 57
+ \item {\Bslash lq}, 24
+ \item {\Bslash lql}, 25
+ \item {\Bslash lqu}, 25
+ \item {\Bslash lreprmorceau}, 83
+ \item {\Bslash lsf}, 57
+ \item {\Bslash lsfz}, 57
+ \item {\Bslash lsh}, 34
+ \item {\Bslash lsong}, 72
+ \item {\Bslash lsqu}, 87
+ \item {\Bslash lst}, 57
+ \item {\Bslash lw}, 24
+ \item lyrics, 68, 70, 82
+
+ \indexspace
+
+ \item mailing list, 98
+ \item {\Bslash maketitle}, 97
+ \item {\sc Marcello, B.}, 104
+ \item {\Bslash maxbarsinline}, 84
+ \item {\Bslash maxlinesinpage}, 84
+ \item {\Bslash maxoctlines}, 36
+ \item {\Bslash maxtrills}, 58
+ \item {\Bslash medtype}, 56
+ \item meter, 7, 18
+ \item {\Bslash meterC}, 18
+ \item {\Bslash meterplus}, 18
+ \item {\Bslash meterskip}, 19
+ \item Metric (TFM) not found, 100
+ \item {\Bslash metron}, 57
+ \item {\Bslash mf}, 61
+ \item {\Bslash MI}, 96
+ \item {\Bslash Mi}, 96
+ \item {\Bslash midslur}, 41
+ \item {\Bslash Mordent}, 60
+ \item {\Bslash mordent}, 60
+ \item {\sc Mozart, W.A.}, 8
+ \item {\Bslash mp}, 61
+ \item MS-DOS, 14, 99, 102
+ \item {\Bslash mulooseness}, 10, 11, 13, 50, 73, 76
+ \item {\Bslash multnoteskip}, 22
+ \item musical footnotes, 70
+ \item {\Bslash musicparskip}, 50
+ \item {\tt musixadd.tex}, 38
+ \item {\tt musixadd.tex}, 16
+ \item {\tt musixblx.tex}, 81
+ \item {\tt musixcpt.tex}, 12, 59, 62, 83
+ \item {\tt musixdat.tex}, 85
+ \item {\tt musixdoc\underscoreSymbol lj.zip}, 99
+ \item {\tt musixdoc\underscoreSymbol ps.zip}, 99
+ \item {\tt musixexa.zip}, 99, 103
+ \item {\tt musixfll.tex}, 86
+ \item {\tt musixflx}, 11, 12, 22
+ \item {\tt musixgui.tex}, 93
+ \item {\tt musixltx.tex}, 81
+ \item {\tt musixmad.tex}, 95
+ \item {\tt musixper.tex}, 80
+ \item {\tt musixpk.zip}, 99
+ \item {\tt musixpk3.zip}, 99
+ \item {\tt musixpk6.zip}, 99
+ \item {\tt musixstr.tex}, 96
+ \item {\tt musixsty.tex}, 96
+ \item {\tt musixtex.sty}, 81
+ \item {\tt musixtex.tex}, 16
+ \item {\tt musixtri.tex}, 97
+ \item \protect\mutex, 15
+ \item {\Bslash mxversion}, 83
+
+ \indexspace
+
+ \item {\Bslash na}, 34, 37
+ \item name of the instrument, 19
+ \item name of the voice, 19
+ \item {\Bslash nbbbbbbl}, 84
+ \item {\Bslash nbbbbbbu}, 84
+ \item {\Bslash nbbbbbl}, 84
+ \item {\Bslash nbbbbbu}, 84
+ \item {\Bslash nbbbbl}, 27
+ \item {\Bslash nbbbbu}, 27
+ \item {\Bslash nbbbu}, 27
+ \item {\Bslash nbbl}, 27
+ \item {\Bslash nbbu}, 27
+ \item neumes, 76, 86, 88, 94
+ \item newsgroups, 98
+ \item {\Bslash nextinstrument}, 82
+ \item {\Bslash nextstaff}, 82
+ \item {\Bslash nh}, 25
+ \item {\Bslash nobarmessage}, 47
+ \item {\Bslash nobarnumbers}, 45
+ \item {\Bslash nolinemessages}, 47
+ \item {\Bslash normalbottom}, 49
+ \item {\Bslash normalmusicsize}, 17, 22, 65, 70
+ \item {\Bslash normalnotesize}, 64
+ \item {\Bslash normaltranspose}, 35
+ \item {\Bslash normalvalue}, 66, 67
+ \item {\Bslash normtype}, 56
+ \item {\Bslash nostartrule}, 18
+ \item {\Bslash nostemcut}, 62
+ \item {\Bslash NOTEs}, 21
+ \item {\Bslash NOTes}, 21
+ \item {\Bslash NOtes}, 21, 22
+ \item {\Bslash Notes}, 21
+ \item {\Bslash notes}, 21, 22
+ \item {\Bslash noteskip}, 21, 23, 26, 31, 33, 34, 50, 83, 95
+ \item {\Bslash NOTesp}, 21
+ \item {\Bslash NOtesp}, 21
+ \item {\Bslash Notesp}, 21
+ \item {\Bslash notesp}, 21
+ \item {\Bslash nq}, 25
+ \item {\Bslash nspace}, 33
+
+ \indexspace
+
+ \item octave clefs, 78
+ \item octaviation, 35
+ \item {\Bslash octfindown}, 36
+ \item {\Bslash octfinup}, 36
+ \item {\Bslash octnumber}, 36
+ \item {\Bslash OD}, 96
+ \item {\Bslash Od}, 96
+ \item {\Bslash off}, 34
+ \item {\Bslash OH}, 96
+ \item {\Bslash Oh}, 96
+ \item {\Bslash oldGclef}, 94
+ \item oriscus, 87
+ \item {\Bslash oriscus}, 87
+ \item ornament codings, 62
+ \item ornaments, 60, 64
+ \item {\Bslash othermention}, 97
+ \item {\Bslash ovbkt}, 62, 63
+ \item {\Bslash oxccl}, 95
+ \item {\Bslash oxccu}, 95
+ \item {\Bslash oxcl}, 95
+ \item {\Bslash oxcu}, 95
+ \item {\Bslash oxqb}, 95
+ \item {\Bslash oxql}, 95
+ \item {\Bslash oxqu}, 95
+ \item {\Bslash oxzq}, 95
+
+ \indexspace
+
+ \item {\Bslash p}, 61
+ \item page and line layout (global), 50
+ \item {\Bslash parindent}, 19, 21, 49, 50
+ \item {\Bslash parskip}, 49
+ \item {\Bslash PAUSe}, 31, 86
+ \item {\Bslash PAuse}, 31, 86
+ \item {\Bslash pause}, 31, 86
+ \item {\Bslash pausep}, 31, 86
+ \item PC end of line coding, 99
+ \item {\Bslash PED}, 59, 60
+ \item {\Bslash Ped}, 60
+ \item percussion music, 65, 69, 77, 80
+ \item {\Bslash pesquassus}, 89
+ \item {\Bslash pesquassusauctdown}, 91
+ \item {\Bslash piececont}, 97
+ \item {\Bslash Pizz}, 96
+ \item {\Bslash podatus}, 89
+ \item {\Bslash podatusauctdown}, 91
+ \item {\Bslash podatusauctup}, 91
+ \item {\Bslash podatusdeminut}, 92
+ \item {\Bslash podatusinitiodebilis}, 89
+ \item {\Bslash Porrectus}, 89
+ \item {\Bslash Porrectusauctdown}, 92
+ \item {\Bslash Porrectusdeminut}, 93
+ \item {\Bslash Porrectusflexus}, 90
+ \item portato, 57
+ \item {\Bslash pp}, 61
+ \item {\Bslash ppff}, 56
+ \item {\Bslash ppffsixteen}, 56
+ \item {\Bslash ppfftwenty}, 56
+ \item {\Bslash ppfftwentyfour}, 56
+ \item {\Bslash ppp}, 61
+ \item {\Bslash pppp}, 61
+ \item {\Bslash pppt}, 26
+ \item {\Bslash ppt}, 26
+ \item {\Bslash preprmorceau}, 83
+ \item {\Bslash pt $p$}, 26
+ \item punctum, 87
+ \item {\Bslash punctum}, 87
+ \item punctum auctum, 87
+ \item punctum deminutum, 87
+ \item {\Bslash punctumauctdown}, 87
+ \item {\Bslash punctumauctup}, 87
+ \item {\Bslash punctumdeminutum}, 87
+
+ \indexspace
+
+ \item {\Bslash qa}, 23
+ \item {\Bslash qb}, 21, 27
+ \item {\Bslash qbp}, 26
+ \item {\Bslash qbpp}, 26
+ \item {\Bslash qbppp}, 97
+ \item {\Bslash qh}, 83
+ \item {\Bslash ql}, 23
+ \item {\Bslash qlp}, 26
+ \item {\Bslash qlpp}, 26
+ \item {\Bslash qlppp}, 97
+ \item {\Bslash qp}, 31, 86
+ \item {\Bslash Qqbbl}, 31
+ \item {\Bslash Qqbbu}, 31
+ \item {\Bslash Qqbl}, 31
+ \item {\Bslash Qqbu}, 31
+ \item {\Bslash qqs}, 31, 86
+ \item {\Bslash qr}, 86
+ \item {\Bslash Qrtx}, 84
+ \item {\Bslash qs}, 31, 86
+ \item {\Bslash qsk}, 33, 34
+ \item {\Bslash qsoupir}, 84
+ \item {\Bslash qspace}, 33
+ \item {\Bslash Qtx}, 84
+ \item {\Bslash qu}, 21, 23
+ \item quilisma, 87
+ \item {\Bslash quilisma}, 87
+ \item {\Bslash quilismapes}, 89
+ \item {\Bslash quilismapesauctdown}, 92
+ \item {\Bslash qup}, 26
+ \item {\Bslash qupp}, 26
+ \item {\Bslash quppp}, 97
+ \item {\Bslash Qwr}, 86
+
+ \indexspace
+
+ \item {\Bslash raggedbottom}, 49
+ \item {\Bslash raggedstoppiece}, 86
+ \item {\Bslash raise}, 31
+ \item {\Bslash raisebarno}, 46
+ \item {\Bslash raiseguitar}, 94
+ \item {\Bslash raiseped}, 60
+ \item {\Bslash raisevolta}, 54
+ \item {\Bslash rcl}, 25
+ \item {\Bslash rcu}, 25
+ \item relative accidentals, 13
+ \item {\Bslash relativeaccid}, 38
+ \item {\Bslash relax}, 12
+ \item repeated patterns, 29
+ \item {\Bslash reprmorceau}, 83
+ \item {\Bslash resetclefsymbols}, 76, 78
+ \item {\Bslash resetlayout}, 70
+ \item rest lifting, 31
+ \item {\Bslash reverseallabreve}, 18
+ \item {\Bslash reverseC}, 18
+ \item {\Bslash rh}, 24
+ \item {\Bslash rhl}, 25
+ \item {\Bslash rhu}, 25
+ \item {\Bslash rightrepeat}, 52, 53
+ \item {\Bslash rlap}, 32
+ \item {\Bslash rm}, 56, 96
+ \item {\Bslash roccl}, 95
+ \item {\Bslash roccu}, 95
+ \item {\Bslash rocl}, 95
+ \item {\Bslash rocu}, 95
+ \item {\Bslash roff}, 30, 33
+ \item {\Bslash roffset}, 33
+ \item {\Bslash roqb}, 95
+ \item {\Bslash roql}, 95
+ \item {\Bslash roqu}, 95
+ \item {\Bslash rozq}, 95
+ \item {\Bslash rpar}, 62
+ \item {\Bslash rq}, 24
+ \item {\Bslash rql}, 25
+ \item {\Bslash rqu}, 25
+ \item {\Bslash rsqu}, 87
+ \item {\Bslash rtx}, 84
+ \item {\Bslash rw}, 24
+
+ \indexspace
+
+ \item {\Bslash salicus}, 91
+ \item {\Bslash salicusauctdown}, 92
+ \item {\Bslash salicusflexus}, 91
+ \item {\sc Satie, E.}, 104
+ \item scalable dimension, 34
+ \item scalable values, 34
+ \item {\Bslash scale}, 22
+ \item {\Bslash scalenoteskip}, 22
+ \item {\Bslash scandicus}, 90
+ \item {\Bslash scandicusauctdown}, 92
+ \item {\Bslash scandicusdeminut}, 93
+ \item {\sc Schofer, A.}, 15
+ \item {\sc Schumann, R.}, 103
+ \item {\Bslash sDEP}, 59, 60
+ \item {\Bslash sDep}, 60
+ \item {\Bslash Segno}, 54
+ \item {\Bslash segno}, 54
+ \item {\Bslash sepbarrules}, 47
+ \item {\Bslash setaltoclefsymbol}, 76, 78, 87
+ \item {\Bslash setbassclefsymbol}, 76, 78
+ \item {\Bslash setclef}, 17, 18, 51, 63, 76
+ \item {\Bslash setclefsymbol}, 77, 78
+ \item {\Bslash setdoubleBAR}, 49
+ \item {\Bslash setdoublebar}, 49
+ \item {\Bslash setemptybar}, 49
+ \item {\Bslash setendvolta}, 53
+ \item {\Bslash setendvoltabox}, 53, 54
+ \item {\Bslash setinterinstrument}, 68, 69, 71
+ \item {\Bslash setleftrepeat}, 52
+ \item {\Bslash setleftrightrepeat}, 52
+ \item {\Bslash setlines}, 70
+ \item {\Bslash setmeter}, 19, 52
+ \item {\Bslash setname}, 19
+ \item {\Bslash setrightrepeat}, 52
+ \item {\Bslash setsign}, 13, 50
+ \item {\Bslash setsign$n$}, 38
+ \item {\Bslash setsize}, 66
+ \item {\Bslash setsize$n$}, 67
+ \item {\Bslash setsongraise}, 72
+ \item {\Bslash setstaffs}, 17, 71
+ \item {\Bslash settrebleclefsymbol}, 78
+ \item {\Bslash Setvolta}, 53
+ \item {\Bslash setvolta}, 53
+ \item {\Bslash setvoltabox}, 54
+ \item {\Bslash sF}, 61
+ \item sforzando, 57
+ \item {\Bslash sh}, 34, 37
+ \item {\Bslash Shake}, 60
+ \item {\Bslash shake}, 60
+ \item {\Bslash Shakel}, 60
+ \item {\Bslash Shakene}, 60
+ \item {\Bslash Shakenw}, 60
+ \item {\Bslash Shakesw}, 60
+ \item sharps, 18
+ \item {\Bslash shiftbarno}, 46
+ \item {\Bslash shortauthor}, 97
+ \item {\Bslash shortbarrules}, 95
+ \item {\Bslash shorttitle}, 97
+ \item {\Bslash showallbarrules}, 48
+ \item {\Bslash Showbarrule}, 47
+ \item {\Bslash showbarrule}, 47
+ \item signatures, 17
+ \item sizes, 17
+ \item {\Bslash sk}, 24, 33, 34
+ \item {\Bslash sl}, 96
+ \item {\Bslash slide}, 86
+ \item {\Bslash slur}, 44
+ \item {\Bslash smallaccid}, 35
+ \item {\Bslash smallfl}, 35
+ \item {\Bslash smallmusicsize}, 17, 22, 65, 70
+ \item {\Bslash smallnotesize}, 64
+ \item {\Bslash smallsh}, 35
+ \item {\Bslash smalltype}, 56
+ \item {\Bslash smallvalue}, 66
+ \item soft width, 9
+ \item {\Bslash softlyrics}, 73
+ \item {\Bslash songbottom}, 19
+ \item {\Bslash songtop}, 19
+ \item {\Bslash soupir}, 31
+ \item {\Bslash SP}, 96
+ \item spacing, 7
+ \item spacing note, 21
+ \item {\Bslash sPED}, 59, 60
+ \item {\Bslash sPed}, 60
+ \item {\Bslash squ}, 87
+ \item {\Bslash sslur}, 45
+ \item staccato, 57
+ \item staff line number, 69
+ \item staff size, 65, 66
+ \item staff spacing, 66
+ \item {\Bslash staffbotmarg}, 49, 68--72
+ \item {\Bslash staffspacing}, 66
+ \item {\Bslash stafftopmarg}, 49, 68, 70, 94
+ \item standard musical notation, 5
+ \item {\Bslash startbarno}, 46
+ \item {\Bslash startextract}, 70, 82
+ \item {\Bslash startmuflex}, 20
+ \item {\Bslash startpiece}, 21, 49, 52, 69, 70, 82--84, 97
+ \item {\Bslash startrule}, 18
+ \item {\Bslash stdbarrules}, 47
+ \item {\Bslash stdstemfalse}, 62
+ \item {\Bslash stdstemtrue}, 62
+ \item {\sc Steinbach, A.}, 15
+ \item {\Bslash stemcut}, 62
+ \item {\Bslash stemfactor}, 69
+ \item {\Bslash stemlength}, 61, 62, 69
+ \item stems, 17
+ \item {\Bslash stie}, 45
+ \item {\Bslash Stoppiece}, 10, 49, 83
+ \item {\Bslash stoppiece}, 10, 11, 49, 52, 69, 82, 83, 97
+ \item string instruments, 96
+ \item style, 81
+ \item subbass, 17
+ \item {\Bslash subtitle}, 97
+ \item {\Bslash suspmorceau}, 83
+ \item {\Bslash svtpoint}, 96
+ \item {\Bslash systemheight}, 68
+ \item {\Bslash systemnumbers}, 46
+ \item {\sc Szukics, B.}, 87
+
+ \indexspace
+
+ \item tabulation, 82
+ \item {\Bslash tbbbbbbl}, 84
+ \item {\Bslash tbbbbbbu}, 84
+ \item {\Bslash tbbbbbl}, 84
+ \item {\Bslash tbbbbbu}, 84
+ \item {\Bslash tbbbbl}, 28
+ \item {\Bslash tbbbbu}, 28
+ \item {\Bslash tbbbl}, 28
+ \item {\Bslash tbbbu}, 28
+ \item {\Bslash tbbl}, 28
+ \item {\Bslash tbbu}, 28
+ \item {\Bslash tbl}, 27
+ \item {\Bslash tbslurd}, 39
+ \item {\Bslash tbsluru}, 39
+ \item {\Bslash tbu}, 27
+ \item {\Bslash tcresc}, 61
+ \item {\Bslash tdecresc}, 61
+ \item {\Bslash temps}, 84
+ \item tenor violin clef, 63
+ \item {\Bslash tenpoint}, 96
+ \item {\Bslash tgccl}, 95
+ \item {\Bslash tgccu}, 95
+ \item {\Bslash tgcl}, 95
+ \item {\Bslash tgcu}, 95
+ \item {\Bslash tgqb}, 95
+ \item {\Bslash tgql}, 95
+ \item {\Bslash tgqu}, 95
+ \item {\Bslash tgzq}, 95
+ \item {\Bslash thelyrics}, 73
+ \item {\Bslash thsong}, 73
+ \item {\Bslash tie}, 45
+ \item ties, 39
+ \item {\Bslash tinynotesize}, 64
+ \item {\Bslash tinyvalue}, 66
+ \item {\Bslash title}, 97
+ \item titles, 96
+ \item {\Bslash Toctfin}, 36
+ \item {\Bslash today}, 85
+ \item {\Bslash torculus}, 89
+ \item {\Bslash torculusauctdown}, 92
+ \item {\Bslash torculusdebilis}, 93
+ \item {\Bslash torculusdeminut}, 92
+ \item {\Bslash torculusinitiodebilis}, 89
+ \item {\Bslash tqb}, 27
+ \item {\Bslash Tqbbl}, 31
+ \item {\Bslash Tqbbu}, 31
+ \item {\Bslash Tqbl}, 31
+ \item {\Bslash Tqbu}, 31
+ \item {\Bslash tqh}, 27
+ \item traduction, 5
+ \item {\Bslash transpose}, 13, 35, 37
+ \item {\Bslash treble}, 18
+ \item {\Bslash treblelowoct}, 78
+ \item {\Bslash trebleoct}, 78
+ \item {\Bslash trigonus}, 91
+ \item {\Bslash Trille}, 58
+ \item {\Bslash trille}, 58
+ \item {\Bslash TrilleC}, 59
+ \item {\Bslash trilleC}, 59
+ \item {\Bslash TrilleX}, 59
+ \item {\Bslash trilleX}, 59
+ \item trills, 58
+ \item {\Bslash triolet}, 58
+ \item {\Bslash tristropha}, 88
+ \item {\Bslash trivirga}, 88
+ \item {\Bslash Trtx}, 84
+ \item {\Bslash tslur}, 38, 39
+ \item {\Bslash Tslurbreak}, 44
+ \item {\Bslash tsslur}, 39
+ \item {\Bslash tten}, 40
+ \item {\Bslash ttie}, 39
+ \item {\Bslash Ttrille}, 59
+ \item {\Bslash tTrille}, 59
+ \item {\Bslash ttrille}, 59
+ \item {\Bslash Ttx}, 84
+ \item {\Bslash turn}, 60
+ \item {\Bslash twfvpoint}, 96
+ \item {\Bslash twlpoint}, 96
+ \item {\Bslash twtypoint}, 96
+ \item {\Bslash tx}, 84
+ \item {\Bslash txt}, 58, 62
+
+ \indexspace
+
+ \item {\Bslash UD}, 96
+ \item {\Bslash Ud}, 96
+ \item {\Bslash UH}, 96
+ \item {\Bslash Uh}, 96
+ \item {\Bslash unbkt}, 62, 63
+ \item {\Bslash upbow}, 57, 96
+ \item {\Bslash upperfl}, 35
+ \item {\Bslash upperna}, 35
+ \item {\Bslash uppersh}, 35
+ \item {\Bslash uppz}, 57
+ \item {\Bslash Uptext}, 54, 55, 57
+ \item {\Bslash uptext}, 55
+ \item {\Bslash uptrio}, 62
+ \item {\Bslash upz}, 57
+ \item {\Bslash upzst}, 57
+ \item {\Bslash usf}, 57
+ \item {\Bslash usfz}, 57
+ \item {\Bslash ust}, 57
+
+ \indexspace
+
+ \item {\Bslash vadjust}, 63
+ \item {\Bslash varaccid}, 35
+ \item {\Bslash varline}, 62
+ \item {\Bslash vfootnote}, 97
+ \item violin, 96
+ \item violin clef, 18, 51
+ \item violin harmonic notes, 65
+ \item virga, 87
+ \item {\Bslash virga}, 87
+ \item {\Bslash voffset}, 50, 96, 103
+ \item voices, 68
+ \item {\Bslash voltadot}, 54
+ \item {\Bslash vsize}, 50, 96
+
+ \indexspace
+
+ \item {\Bslash wh}, 23
+ \item {\Bslash wholeshift}, 57
+ \item {\Bslash whp}, 26
+ \item {\Bslash whpp}, 26
+ \item {\Bslash whppp}, 97
+ \item {\sc Widor, C.M.}, 104
+ \item {\Bslash wq}, 23
+ \item {\Bslash wqq}, 23
+ \item {\Bslash wr}, 86
+ \item {\Bslash writebarno}, 46
+ \item {\Bslash writethebarno}, 46
+ \item {\Bslash writezbarno}, 46
+ \item {\Bslash wrp}, 86
+
+ \indexspace
+
+ \item {\Bslash xbar}, 49
+ \item {\Bslash xccl}, 95
+ \item {\Bslash xccu}, 95
+ \item {\Bslash xcl}, 95
+ \item {\Bslash xcu}, 95
+ \item {\Bslash xqb}, 95
+ \item {\Bslash xql}, 95
+ \item {\Bslash xqu}, 95
+ \item {\Bslash xtuplet}, 58
+ \item {\Bslash xzq}, 95
+
+ \indexspace
+
+ \item {\Bslash yccccl}, 85
+ \item {\Bslash yccccu}, 85
+ \item {\Bslash ycccl}, 85
+ \item {\Bslash ycccu}, 85
+ \item {\Bslash yccl}, 85
+ \item {\Bslash yccu}, 85
+ \item {\Bslash ycl}, 85
+ \item {\Bslash yclp}, 85
+ \item {\Bslash yclpp}, 85
+ \item {\Bslash ycu}, 85
+ \item {\Bslash ycup}, 85
+ \item {\Bslash ycupp}, 85
+ \item {\Bslash ynq}, 85
+ \item {\Bslash yqb}, 85
+ \item {\Bslash yql}, 85
+ \item {\Bslash yqlp}, 85
+ \item {\Bslash yqlpp}, 85
+ \item {\Bslash yqu}, 85
+ \item {\Bslash yqup}, 85
+ \item {\Bslash yqupp}, 85
+ \item {\Bslash yzq}, 85
+ \item {\Bslash yzqp}, 85
+ \item {\Bslash yzqpp}, 85
+
+ \indexspace
+
+ \item {\Bslash zalaligne}, 10, 49
+ \item {\Bslash zalapage}, 10, 49
+ \item {\Bslash zapostropha}, 87
+ \item {\Bslash zbar}, 49
+ \item {\Bslash zbreath}, 60
+ \item {\Bslash zbreve}, 25
+ \item {\Bslash zcccccl}, 84
+ \item {\Bslash zcccccu}, 84
+ \item {\Bslash zccccl}, 25
+ \item {\Bslash zcccclp}, 96
+ \item {\Bslash zcccclpp}, 96
+ \item {\Bslash zccccu}, 25
+ \item {\Bslash zccccup}, 96
+ \item {\Bslash zccccupp}, 96
+ \item {\Bslash zcccl}, 25
+ \item {\Bslash zccclp}, 96
+ \item {\Bslash zccclpp}, 96
+ \item {\Bslash zcccu}, 25
+ \item {\Bslash zcccup}, 96
+ \item {\Bslash zcccupp}, 96
+ \item {\Bslash zccl}, 25
+ \item {\Bslash zcclp}, 96
+ \item {\Bslash zcclpp}, 96
+ \item {\Bslash zccu}, 25
+ \item {\Bslash zccup}, 96
+ \item {\Bslash zccupp}, 96
+ \item {\Bslash zchangeclefs}, 51
+ \item {\Bslash zchangecontext}, 51, 52
+ \item {\Bslash zchar}, 54, 55, 60, 71
+ \item {\Bslash zcharnote}, 8, 54, 55, 60, 63, 71
+ \item {\Bslash zcl}, 25
+ \item {\Bslash zclp}, 26
+ \item {\Bslash zclpp}, 26
+ \item {\Bslash zclppp}, 97
+ \item {\Bslash zcu}, 25
+ \item {\Bslash zcup}, 26
+ \item {\Bslash zcupp}, 26
+ \item {\Bslash zcuppp}, 97
+ \item {\Bslash zdiapunc}, 87
+ \item {\Bslash zendextract}, 70
+ \item {\Bslash zh}, 24
+ \item {\Bslash zhl}, 25
+ \item {\Bslash zhlp}, 26
+ \item {\Bslash zhlpp}, 26
+ \item {\Bslash zhlppp}, 97
+ \item {\Bslash zhp}, 26
+ \item {\Bslash zhpp}, 26
+ \item {\Bslash zhppp}, 97
+ \item {\Bslash zhu}, 25
+ \item {\Bslash zhup}, 26
+ \item {\Bslash zhupp}, 26
+ \item {\Bslash zhuppp}, 97
+ \item {\Bslash zlonga}, 25
+ \item {\Bslash zlsqu}, 87
+ \item {\Bslash zmaxima}, 23, 25
+ \item {\Bslash zmidstaff}, 55
+ \item {\Bslash znh}, 25
+ \item {\Bslash znotes}, 21
+ \item {\Bslash znq}, 25
+ \item {\Bslash zoriscus}, 87
+ \item {\Bslash zq}, 7, 24
+ \item {\Bslash zqb}, 25
+ \item {\Bslash zqbp}, 26
+ \item {\Bslash zqbpp}, 26
+ \item {\Bslash zqbppp}, 97
+ \item {\Bslash zql}, 25
+ \item {\Bslash zqlp}, 26
+ \item {\Bslash zqlpp}, 26
+ \item {\Bslash zqlppp}, 97
+ \item {\Bslash zqp}, 26
+ \item {\Bslash zqpp}, 26
+ \item {\Bslash zqppp}, 97
+ \item {\Bslash zqu}, 25
+ \item {\Bslash zqup}, 26
+ \item {\Bslash zqupp}, 26
+ \item {\Bslash zquppp}, 97
+ \item {\Bslash zrsqu}, 87
+ \item {\Bslash zsong}, 72
+ \item {\Bslash zsqu}, 87
+ \item {\Bslash zstoppiece}, 10, 49
+ \item {\Bslash ztqb}, 27
+ \item {\Bslash ztqh}, 27
+ \item {\Bslash zw}, 25
+ \item {\Bslash zwp}, 26
+ \item {\Bslash zwpp}, 26
+ \item {\Bslash zwppp}, 97
+ \item {\Bslash zwq}, 25
+ \item {\Bslash zynq}, 85
+
+\end{theindex}
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixlit.tex b/Master/texmf-dist/tex/generic/musixtex/musixlit.tex
index 9aab23b20b9..bee5ab5edbc 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixlit.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixlit.tex
@@ -17,7 +17,7 @@
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXLITurgical 0.36\space<1 March 1995>}%
+\immediate\write16{MusiXLITurgical 0.36\space<1 March 1995>}%
\ifx\undefined\oldGclef \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixltx.tex b/Master/texmf-dist/tex/generic/musixtex/musixltx.tex
index 18bb6083f4b..f4eff2cf23c 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixltx.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixltx.tex
@@ -18,7 +18,7 @@
%
\ifx\undefined\music \else \endinput \fi
-\immediate\write10{MusiXLaTeX T.61\space<25 September 1996>}%
+\immediate\write16{MusiXLaTeX T.61\space<25 September 1996>}%
\newenvironment{music}{\@afterindenttrue\parskip0pt\catcodesmusic
\resetlayout}{}%
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixlyr.tex b/Master/texmf-dist/tex/generic/musixtex/musixlyr.tex
new file mode 100644
index 00000000000..753928bf99c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixlyr.tex
@@ -0,0 +1,1162 @@
+%%
+%% musixlyr.tex: Convenient lyrics handling for MusiXTeX T.52 or later
+%%
+%% Copyright (C) 1996-2003 Rainer Dunker
+%%
+%% This program 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 of the License, or
+%% any later version.
+%%
+%% This program 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 this program; if not, write to the Free Software
+%% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%
+%% Author:
+%% Rainer Dunker
+%% Wachtelweg 31
+%% 85591 Vaterstetten
+%% Germany
+%%
+%% E-mail: rainer.dunker@web.de
+%%
+\ifx\undefined\lyr\else\endinput\fi
+\immediate\write10{MusiXLYRics 2.1c\space<June 10, 2003>}
+\def\musixlyrversion{2.12}
+
+\makeatletter
+
+%%%%%%%%%%
+%
+% register allocation
+%
+%%%%%%%%%%
+\newtoks\alle@texte
+
+% internal parameters for setting text
+\let\evtl@klein\empty
+\let\evtl@komma\empty
+\let\evtl@punktweg\empty
+\let\evtl@offset\empty
+\let\evtl@next@lyr\empty
+\newif\if@strich
+\newif\iflyr@processing
+\newif\if@pmx@nextvoice
+\newif\if@lyrmode
+\newif\if@hyphen
+\newif\ifaux@active
+\newif\if@single@token
+\newdimen\lyr@shift
+\newbox\lyr@box
+\newbox\lyr@hyphen@box
+\newbox\lyr@linkbox
+\newbox\lyr@linkdepthbox
+\def\ma@sw{lyr@m} % "main/aux switch"
+
+% helpers for shuffling data around
+\newtoks\@rohtext
+\newtoks\@textvar
+
+\let\text@name\empty
+
+% public parameters
+\newif\ifleftlyr
+\newif\ifforcelyrhyphens
+\newif\ifshowlyrshift
+\newdimen\minlyrrulelength \minlyrrulelength=2mm
+\newdimen\minmulthyphens \minmulthyphens=1.5cm
+\newdimen\minlyrspace \minlyrspace=3pt
+\def\lyrhyphenchar{-}
+\newbox\lyrstrutbox
+\def\lyrlinestartpos{-10cm }
+\def\oldlyrlinestart{\def\lyrlinestartpos{0pt }} % to restore 2.1 behaviour
+
+\def\lyrlog#1{\immediate\write16{#1}} % just for debugging convenience
+
+% for testing token lists for emptyness with \ifx
+\def\emp@tst{\empty@test@errmsg}
+\def\empty@test@errmsg{%
+ \errmessage{This shouldn't happen; you have found a musixlyr bug}}
+
+%%%%%%%%%%
+%
+% lyrics definition
+%
+%%%%%%%%%%
+% set up text completely
+\def\setlyrics#1#2{% iterative variant
+ % Parameter:
+ % #1 - lyrics line name
+ % #2 - text
+ \@rohtext={#2 -}%
+ \@textvar={}%
+ %\lyrlog{setlyrics{#1}, raw text: \the\@rohtext}%
+ \loop
+ \expandafter\ifx\expandafter\emp@tst\the\@rohtext\emp@tst % no more text
+ \let\@weiter n\else \let\@weiter j%
+ \fi
+ \ifx\@weiter j%
+ \expandafter\split@lyr@by@hyphens\the\@rohtext\@end
+ \repeat
+ \expandafter\xdef\csname dertext@#1\endcsname{\the\@textvar}%
+ \expandafter\xdef\csname nochtext@#1\endcsname{\the\@textvar}%
+ %\lyrlog{setlyrics{#1}: \the\@textvar}%
+ \initialize@verse{#1}}
+
+\def\appendlyrics#1#2{% iterative variant
+ % Parameter:
+ % #1 - lyrics line name
+ % #2 - text
+ % test whether lyrics line name already defined
+ \expandafter\ifx\csname stp@#1\endcsname\relax
+ % if not: set it up newly
+ \setlyrics{#1}{#2}%
+ \else
+ % if yes: preprocess new material, then append it to existing stuff
+ \@rohtext={#2 -}%
+ \@textvar={}%
+ %\lyrlog{appendlyrics{#1}, raw text: \the\@rohtext}%
+ \loop
+ \expandafter\ifx\expandafter\emp@tst\the\@rohtext\emp@tst % no more text
+ \let\@weiter n\else \let\@weiter j%
+ \fi
+ \ifx\@weiter j%
+ \expandafter\split@lyr@by@hyphens\the\@rohtext\@end
+ \repeat
+ %
+ % properly append new material to \dertext@#1
+ \toks@=\expandafter\expandafter\expandafter{\csname dertext@#1\endcsname}%
+ \expandafter\test@final@hyphen@i\the\toks@\@end
+ \expandafter\xdef\csname dertext@#1\endcsname{\the\toks@\the\@textvar}%
+ %
+ % properly append new material to \nochtext@#1
+ \toks@=\expandafter\expandafter\expandafter{\csname nochtext@#1\endcsname}%
+ \expandafter\ifx\expandafter\emp@tst\the\toks@\emp@tst
+ % pending text empty - don't call \test@final@hyphen
+ \else
+ \expandafter\test@final@hyphen@i\the\toks@\@end
+ \fi
+ \expandafter\xdef\csname nochtext@#1\endcsname{\the\toks@\the\@textvar}%
+ %\lyrlog{appendlyrics{#1}: \the\@textvar}%
+ \fi}
+
+% separate hyphens from syllables
+\def\split@lyr@by@hyphens#1-#2\@end{%
+ % #1: text before first hyphen
+ % #2: text after first hyphen; may be empty
+ \ifx\emp@tst#2\emp@tst % -> no hyphen present
+ \@textvar=\expandafter{\the\@textvar#1}%
+ \else % -> hyphen present
+ \@textvar=\expandafter{\the\@textvar#1 @}%
+ \fi
+ \@rohtext={#2}%
+ %\lyrlog{splitlyrics 1: \the\@textvar}%
+ %\lyrlog{splitlyrics 2: \the\@rohtext}%
+ }
+
+% helper macros for \appendlyrics, handling the case that pre-existing
+% lyrics material ends with an open hyphen
+\def\test@final@hyphen@i#1 \@end{%
+ % truncate trailing space, then proceed with detecting a trailing @
+ \test@final@hyphen@ii#1@@\@end}
+\def\test@final@hyphen@ii#1@@#2\@end{%
+ \ifx\emp@tst#2\emp@tst
+ % no trailing, open hyphen
+ %\lyrlog{No trailing hyphen: #1}%
+ \else
+ % reset \toks@ so that trailing @ is not longer followed by a space
+ \toks@={#1@}%
+ %\lyrlog{Trailing hyphen: #1}%
+ \fi}
+
+% copy whole text under different name
+\def\copylyrics#1#2{%
+ % #1 - existing text name
+ % #2 - new text name
+ % text still undefined?
+ \expandafter\ifx\csname dertext@#1\endcsname\relax
+ \errmessage{Trying to copy undefined verse "#1" to "#2"}%
+ \setlyrics{#2}{UNDEFINED}%
+ \else
+ \expandafter\let\expandafter\text@copy\csname dertext@#1\endcsname
+ \global\expandafter\let\csname dertext@#2\endcsname\text@copy
+ \global\expandafter\let\csname nochtext@#2\endcsname\text@copy
+ \initialize@verse{#2}%
+ \fi}
+
+% at 1st definition of a text name
+\def\initialize@verse#1{%
+ % test whether lyrics line name already defined
+ \expandafter\ifx\csname stp@#1\endcsname\relax
+ \expandafter\xdef\csname stp@#1\endcsname{\lyrlinestartpos}% tracks horizontal progress
+ \global\expandafter\let\csname cont@#1\endcsname\relax% context stuff
+ \expandafter\gdef\csname zwr@#1\endcsname{0}% flag for hyphen/rule status
+ % for layout definitions
+ \global\expandafter\let\csname llay@#1\endcsname\relax
+ % switch on auto-text
+ {\def\text@name{#1}\lyricson}%
+ % insert in list of all defined text names
+ \global\alle@texte=\expandafter{\the\alle@texte#1,}%
+ \fi}
+
+% just for more elegance ...
+\def\if@multistaff{\ifnum\st@ffs>1 }
+
+\def\set@texte#1#2{%
+ % assign assigned lyrics lines to \@texte
+ % or \empty in case they are empty
+ % #1: instrument number
+ % #2: staff number of instrument
+ \expandafter\let\expandafter\@texte\csname\ma@sw#1-#2\endcsname
+ \ifx\@texte\relax\let\@texte\empty\fi}
+
+\def\set@texte@current#1{%
+ % apply \set@texte to current context
+ % using PMX, automatically switch to aux lyrics where required
+ \switch@pmx@aux{%
+ % get the verses
+ \ifnum\st@ffs>1 % multi-staff instrument
+ \set@texte{\the\noinstrum@nt}{\the\noport@@}%
+ \else
+ \set@texte{\the\noinstrum@nt}{1}%
+ \fi
+ % perform given action
+ #1}}
+
+\def\loop@texte#1\@repeat{%
+ % assumption: \@texte is already set properly, may be empty
+ % #1: action to be executed
+ \ifx\@texte\empty\else
+ \expandafter\loop@texte@step\@texte\@end{#1}%
+ \fi}
+
+\def\loop@texte@step#1,#2\@end#3{%
+ % assumption: text list is not empty, #1 contains list head
+ % #1: text list head
+ % #2: text list tail
+ % #3: action to be executed
+ %
+ % perform action on first text
+ \def\text@name{#1}%
+ #3\relax
+ %
+ % prepare iteration
+ \ifx\emp@tst#2\emp@tst % list tail empty
+ \let\@iterate \empty % stop looping
+ \let\text@name\empty % reset working environment
+ \else
+ \def\@iterate{\loop@texte@step#2\@end{#3}}%
+ \fi
+ \@iterate}
+
+% assign text name to staff
+\def\assignlyrics#1{% for single-staff instruments
+ % #1: instrument number
+ \assignlyricsmulti{#1}1}
+
+\def\assignlyricshere#1{% assign lyrics to current instrument/staff context
+ % #1: comma-separated list of text names
+ \switch@pmx@aux{%
+ \ifnum\st@ffs>1 % multi-staff instrument
+ \assignlyricsmulti{\the\noinstrum@nt}{\the\noport@@}{#1}%
+ \else
+ \assignlyrics{\the\noinstrum@nt}{#1}%
+ \fi}}
+
+\def\assignlyricsmulti#1#2#3{%
+ % #1: instrument number
+ % #2: staff number of instrument
+ % #3: comma-separated list of text names
+ % gather farthest right current position
+ % of currently assigned lyrics lines
+ \y@v=\lyrlinestartpos
+ \set@texte{#1}{#2}%
+ \loop@texte
+ % starting position greater than retrieved so far?
+ \ifdim\csname stp@\text@name\endcsname > \y@v
+ \y@v=\csname stp@\text@name\endcsname % advance maximum
+ \fi
+ \@repeat
+ %
+ % new text names list non-empty -> append comma
+ \ifx\emp@tst#3\emp@tst
+ \expandafter\global\expandafter\let\csname\ma@sw#1-#2\endcsname\relax
+ \else
+ \expandafter\gdef\csname\ma@sw#1-#2\endcsname{#3,}%
+ \fi
+ % set parameters according to newly assigned lyrics lines
+ \set@texte{#1}{#2}%
+ \loop@texte
+ % check for existence
+ \expandafter\ifx\csname stp@\text@name\endcsname\relax
+ \errmessage{Trying to assign undefined verse "\text@name"}%
+ \expandafter\setlyrics\expandafter{\text@name}{EMPTY}%
+ \fi
+ \reset@params
+ \@repeat}
+
+
+\def\reset@params{%
+ \expandafter\xdef\csname stp@\text@name\endcsname{\the\y@v}%
+ \expandafter\gdef\csname zwr@\text@name\endcsname{0}}
+
+
+%
+% reset horizontal positioning parameters of all lyrics lines
+%
+\def\resetlyrics{%
+ \edef\@texte{\the\alle@texte}%
+ \y@v=\lyrlinestartpos
+ \loop@texte \reset@params \@repeat}
+
+
+%%%%%%%%%%
+%
+% process lyrics verse-wise
+%
+%%%%%%%%%%
+% same action for all assigned verses
+\def\forall@verses#1{%
+ % #1: action to be executed
+ \ifx\text@name\empty
+ % perform action for all assigned verses
+ \set@texte@current{%
+ \ifx\@texte\empty\else
+ \vplace@lyrics{\loop@texte \hbox{\lyr@strut #1}\@repeat}%
+ \fi}%
+ \else
+ % text name already selected -> perform action for this one only
+ #1%
+ \fi}
+
+
+% specify separate actions per verse
+\def\verses#1{%
+ % #1: comma-separated list of actions (from top to bottom)
+ \set@texte@current{%
+ \def\@param{#1}% running variable for per-text actions
+ \vplace@lyrics{%
+ \loop@texte \expandafter\one@verse\@param,\@end \@repeat}}}
+
+\def\one@verse#1,#2\@end{%
+ % #1: action list head = action for current verse
+ % #2: action list tail = actions for remaining verses
+ \def\@param{#2}%
+ % perfrom action
+ \hbox{\lyr@strut #1}}
+
+
+%%%%%%%%%%
+%
+% line spacing for multiple verses
+%
+%%%%%%%%%%
+\def\lyr@strut{\copy\lyrstrutbox}
+\def\setlyrstrut{% set up strut according to currently active font
+ \setbox0=\hbox{()}%
+ \setbox\lyrstrutbox=\hbox{\vrule height 1.1\ht0 depth 1.1\dp0 width\z@}}
+\setlyrstrut % initialize
+
+
+%%%%%%%%%%
+%
+% retrieve text by syllable
+%
+%%%%%%%%%%
+\def\next@lyr{%
+ \expandafter\let\expandafter\@nochtext\csname nochtext@\text@name\endcsname
+ %\show\@nochtext
+ \ifx\@nochtext\empty
+ % no more text
+ \@hyphenfalse\@lyric{???}%
+ \else
+ \@textvar=\expandafter{\@nochtext}%
+ \expandafter\next@syllable\the\@textvar\relax\relax
+ \fi}
+
+\def\next@syllable#1 #2#3\relax{%
+ % #1 - first syllable
+ % #2 - either hyphenation symbol @
+ % or \relax (if text ends after #2)
+ % or 1st char/group of rest text
+ % #3 - rest text, may be empty
+ \parse@melisma{#2}{#3}#1_\@end}
+
+\def\test@single@token#1#2\@end{%
+ % #2 is empty if argument consists of a single token
+ \ifx\emp@tst#2\emp@tst
+ \@single@tokentrue
+ \else
+ \@single@tokenfalse
+ \fi}
+
+\def\parse@melisma#1#2#3_#4\@end{% parse trailing underscores
+ % #1: either hyphenation indicator @
+ % or \relax (if text ends after #1),
+ % or 1st char/group of rest text
+ % #2: rest text, may be empty
+ % #3: current syllable; may be empty if melisma pending
+ % #4: trailing underscores, if any, or
+ % melisma notes number followed by single underscore, or
+ % empty if no melisma
+ %
+ % evaluate hyphenation sign
+ \ifx @#1%
+ \@hyphentrue
+ \@textvar={#2}% may be empty
+ \else
+ \@hyphenfalse
+ % decide rest text (#1 was no hyphen sign)
+ \ifx\relax#1% current syllable is final syllable
+ \@textvar={}%
+ \else
+ \test@single@token#1\@end % #1 may have been grouped
+ \if@single@token
+ \@textvar={#1#2}%
+ \else
+ \@textvar={{#1}#2}%
+ \fi
+ \fi
+ \fi
+ %
+ % melisma pending?
+ \ifx\emp@tst#4\emp@tst % no melisma
+ \let\melisma@spec\empty
+ \@lyric{\evtl@klein{\evtl@punktweg{#3}}\evtl@komma}%
+ \else % melisma
+ \ifx\emp@tst#3\emp@tst % syllable empty, d.i. in mid-melisma
+ \parse@melisma@tail#4\@end
+ \ifx\melisma@spec\empty % final melisma note
+ \lyrruleend
+ \fi
+ \else % syllable non-empty, d.i. at melisma start
+ \leftlyrtrue\@strichtrue
+ \parse@melisma@start#4\@end
+ \@lyric{\evtl@klein{\evtl@punktweg{#3}}\evtl@komma}%
+ \fi % at melisma start
+ \fi % in melisma
+ %
+ % set remaining text
+ \expandafter\xdef
+ \csname nochtext@\text@name\endcsname{\melisma@spec\the\@textvar}}
+
+\def\parse@melisma@start#1_\@end{%
+ % Cut trailing underscore and attach it at argument head.
+ % For underscore sequences, the effect is void.
+ % For numbers, it converts "num_" to "_num".
+ % Moreover, append a single space.
+ \def\melisma@spec{_#1 }}
+
+\def\parse@melisma@tail#1_\@end{%
+ % #1: either trailing underscores minus one
+ % or melisma notes number
+ % or empty
+ \ifx\emp@tst#1\emp@tst % no more underscores
+ \let\melisma@spec\empty
+ \else
+ \parse@melisma@tail@ii#1\@end
+ \fi}
+
+\def\parse@melisma@tail@ii#1#2\@end{% helper for deciding melisma spec type
+ % #1#2: either trailing underscores minus one
+ % or melisma notes number
+ \if#1_% % underscore sequence given
+ \def\melisma@spec{#1#2 }%
+ \else % number given
+ \ifnum#1#2>1 % more melisma notes pending
+ \count@=#1#2
+ \advance\count@\m@ne
+ \edef\melisma@spec{_\the\count@\space}%
+ \else % no more melisma notes
+ \let\melisma@spec\empty
+ \fi
+ \fi}
+
+\def\@lyric#1{%
+ % #1: Text
+ \evtl@offset
+ % Alles Folgende ist Argument fuer obiges \evtl@offset:
+ {\csname llay@\text@name\endcsname% Layoutkontext abrufen
+ \lyr@processingtrue
+ \setbox\lyr@box=\hbox{#1}%
+ \setbox\lyr@hyphen@box=\hbox{\lyrhyphenchar}%
+ % Zwischenraum zu voriger Silbe ermitteln:
+ \get@lyrspace
+ \ifleftlyr\else
+ % Silbe zentriert -> Zwischenraum entspr. kleiner:
+ \advance\y@v -0.5\wd\lyr@box
+ \advance\y@v 0.5\qn@width % halbe Notenkopfbreite dazu
+ \fi
+ % Bindestrich von voriger Silbe anhaengig?
+ \expandafter\ifnum\csname zwr@\text@name\endcsname=2
+ % Minimalzwischenraum entsprechend aendern:
+ \ifforcelyrhyphens
+ % Min. Zw.-R. mindestens so breit wie Bindestrich:
+ \ifdim\minlyrspace < \wd\lyr@hyphen@box
+ \minlyrspace=\wd\lyr@hyphen@box
+ \fi
+ \else
+ \minlyrspace=0pt % % kein Zwischenraum noetig
+ \fi
+ \fi
+ \ifdim\y@v < \minlyrspace % Zwischenraum zu klein?
+ \lyr@shift=\minlyrspace % Silbe um Differenz nach rechts verschieben
+ \advance\lyr@shift -\y@v
+ \y@v=\minlyrspace % Zwischenraumbreite = geg. Minimum
+ \else
+ \expandafter\ifnum\csname zwr@\text@name\endcsname=2 % Bindestrich anhaengig?
+ \ifforcelyrhyphens\else % Bindestrich nicht erzwungen?
+ \ifdim\y@v < \wd\lyr@hyphen@box % Zwischenraum zu schmal?
+ \advance\lyr@shift -\y@v % => Zw.raum ganz wegnehmen
+ % Dank an Sebastian Clauss fuer diese Verbesserung
+ \fi
+ \fi
+ \fi
+ \fi
+ \rlap{%
+ \hskip\lyr@shift
+ {\ifleftlyr
+ \aftergroup\rlap % linksbuendig
+ \else
+ \aftergroup\qlrlap % zentriert
+ \fi}%
+ % Alles Folgende ist Argument fuer obiges \qlrlap bzw. \rlap:
+ {% Ist von voriger Silbe noch ein Bindestrich anhaengig?
+ \expandafter\ifnum\csname zwr@\text@name\endcsname=2
+ % limit hyphens at line beginning to zero position
+ \ifdim\csname stp@\text@name\endcsname < \z@
+ \advance\y@v \csname stp@\text@name\endcsname \fi
+ % Bindestrich nur setzen, wenn Platz genug vorhanden:
+ \ifdim\y@v < \wd\lyr@hyphen@box\else
+ \print@hyphen
+ \fi
+ \fi
+ \ifshowlyrshift
+ % Mit Rechteck Wortverschiebung zeigen:
+ \llap{\vrule width \lyr@shift height \ht\strutbox}%
+ \fi
+ \unhcopy\lyr@box % Wort setzen
+ % Startposition des nachfolgenden Zwischenraums festhalten:
+ \getcurpos
+ \advance\y@v by \lyr@shift
+ \ifleftlyr
+ \advance\y@v \wd\lyr@box
+ \else
+ \advance\y@v 0.5\wd\lyr@box
+ \advance\y@v 0.5\qn@width % halbe Notenkopfbreite dazu
+ \fi
+ \expandafter\xdef\csname stp@\text@name\endcsname{\the\y@v}% Startposition setzen
+ \if@hyphen % Bindestrich gefordert?
+ \expandafter\gdef\csname zwr@\text@name\endcsname{2}%
+ \else
+ \if@strich % Verlaengerungs-Strich gefordert?
+ \expandafter\gdef\csname zwr@\text@name\endcsname{1}%
+ \else % nichts gefordert
+ \expandafter\gdef\csname zwr@\text@name\endcsname{0}%
+ \fi
+ \fi}}}}
+
+\def\print@hyphen{%
+ \llap{\hbox to \y@v{%
+ % Zwischenraum mit "Strich-Kette" ausfuellen:
+ \loop
+ \hfil\lyrhyphenchar\hss% rechter Raum darf am Systemende negativ werden
+ \advance\y@v by -\minmulthyphens
+ \ifdim\y@v > 0pt%
+ \repeat}}}
+
+\def\get@lyrspace{%
+ \getcurpos
+ \advance\y@v by -\csname stp@\text@name\endcsname
+ \relax}
+
+% set lyrpos to zero if less than that
+\def\limit@lyrpos{%
+ \ifdim\csname stp@\text@name\endcsname < \z@
+ \expandafter\xdef\csname stp@\text@name\endcsname{\the\z@}\fi}
+
+% Verlaengerungs-Striche abschliessen:
+\def\lyrruleend{\forall@verses\lyrrule@end}
+
+\def\lyrrule@end{%
+ \expandafter\ifcase\csname zwr@\text@name\endcsname
+ % 0 -> kommt nicht vor
+ \or
+ % 1 -> Strich anhaengig:
+ \roff{% Zum rechten Notenkopf-Rand
+ \limit@lyrpos\get@lyrspace \print@lyr@rule
+ % Zwischenraum-Startposition festhalten, wenn Wort nicht nach
+ % rechts darueber hinausragt:
+ \getcurpos
+ \ifdim\csname stp@\text@name\endcsname < \y@v
+ \expandafter\xdef\csname stp@\text@name\endcsname{\the\y@v}%
+ \fi}%
+ % Einstellung zuruecksetzen:
+ \expandafter\gdef\csname zwr@\text@name\endcsname{0}%
+ \or
+ % 2 -> Bindestrich anhaengig -> nichts tun
+ \or
+ % 3 -> fortgesetzter Bindestrich anhaengig
+ % -> Einstellung fuer Bindestrich-Einfuegen an nächster Note setzen
+ \expandafter\gdef\csname zwr@\text@name\endcsname{2}%
+ \fi}
+
+\def\print@lyr@rule{%
+ % Kleiner Zwischenraum zur vorherigen Silbe:
+ \advance\y@v -2pt
+ \ifdim \y@v > \minlyrrulelength
+ \llap{\vrule\@width\y@v\@height\lthick\@depth0pt}%
+ \fi}
+
+
+%%%%%%%%%%
+%
+% Textstellen per Label anspringen
+%
+%%%%%%%%%%
+\def\llabel#1{}% Damit Kennzeichnung bei der Ausgabe ohne Effekt bleibt
+
+\def\golyr#1{\forall@verses{\@golyr{#1}}}
+
+\def\@golyr#1{{%
+ \expandafter\let\expandafter\@nochtext\csname dertext@\text@name\endcsname
+ \def\query@label{#1}%
+ \loop
+ \expandafter\find@llabel\@nochtext\ende
+ \ifx\query@label\cur@label\let\@weiter n\else \let\@weiter j\fi
+ \if\@weiter j\repeat
+ \expandafter\global\expandafter\let
+ \csname nochtext@\text@name\endcsname\@nochtext}}
+
+\def\find@llabel#1\llabel#2#3\ende{%
+ % #1 - Text vor erstem \llabel
+ % #2 - naechstfolgender \llabel-Name
+ % #3 - Resttext
+ \def\cur@label{#2}%
+ \def\@nochtext{#3}}
+
+
+%%%%%%%%%%
+%
+% Offene Silbentrennungen und -verlaengerungen am Systemende abschliessen
+%
+%%%%%%%%%%
+\let\@orig@z@suspend\z@suspend
+\def\z@suspend{%
+ \znotes\sysend@lyrics\empty\en
+ \znotes\sysend@lyrics\auxlyr\en
+ \@orig@z@suspend}
+
+\def\sysend@verse{%
+ % Flag auswerten:
+ \ifnum\csname zwr@\text@name\endcsname = 1 % Verlaengerungs-Strich anhaengig
+ % Platz zum rechten Systemrand, damit Strich nicht in Taktstrich ragt
+ \loffset{0.3}{\limit@lyrpos\get@lyrspace\print@lyr@rule}%
+ \else\ifnum\csname zwr@\text@name\endcsname > 1 % Bindestrich anhaengig:
+ \csname llay@\text@name\endcsname% Layoutkontext abrufen
+ \limit@lyrpos\get@lyrspace\print@hyphen
+ % als forgesetzten Bindestrich fortfuehren
+ \expandafter\gdef\csname zwr@\text@name\endcsname{3}%
+ \fi\fi
+ % Startposition fuer naechstes System zuruecksetzen:
+ \expandafter\xdef\csname stp@\text@name\endcsname{\lyrlinestartpos}}
+
+\def\sysend@lyrics#1{%
+ % #1: \auxlyr or \empty
+ #1{\let\switch@pmx@aux\empty \forall@verses\sysend@verse}%
+ \if@multistaff
+ % loop over staves of instrument
+ \ifnum \noport@@ < \st@ffs
+ \def\@next{\nextstaff\sysend@lyrics#1}%
+ \else % staves of instrument finished; continue with next instrument
+ \sysend@lyrics@instrum@loop#1%
+ \fi
+ \else % single-staff instrument
+ \sysend@lyrics@instrum@loop#1%
+ \fi
+ % iterate
+ \@next}
+
+\def\sysend@lyrics@instrum@loop#1{%
+ % prepare instruments loop
+ \ifnum \noinstrum@nt < \nbinstruments
+ \def\@next{\nextinstrument\sysend@lyrics#1}%
+ \else % \noinstrum@nt >= \nbinstruments
+ \let\@next\empty
+ \fi}
+
+
+%%%%%%%%%%
+%
+% Zeilenspezifisches Layout festlegen
+%
+%%%%%%%%%%
+\def\lyrlayout#1{%
+ \forall@verses{%
+ \expandafter\gdef\csname llay@\text@name\endcsname{#1}%
+ % Wenn gerade Text verarbeitet wird, Kontext sofort abrufen:
+ \iflyr@processing #1\fi}}
+
+%
+% Kontextbehandlung fuer Textnamen:
+%
+% Aktion zu Kontext hinzufuegen:
+\def\add@context#1{%
+ \toks@=\expandafter\expandafter\expandafter
+ {\csname cont@\text@name\endcsname #1}%
+ \expandafter\xdef\csname cont@\text@name\endcsname{\the\toks@}}
+
+% Kontext abrufen:
+\def\@context{%
+ \expandafter\let\expandafter\der@kontext\csname cont@\text@name\endcsname
+ \clear@context
+ \der@kontext}
+
+% Kontext loeschen:
+\def\clear@context{%
+ \global\expandafter\let\csname cont@\text@name\endcsname\empty}
+
+
+%%%%%%%%%%
+%
+% Zusaetzliche Textzeilen oberhalb der Notenzeile (auxiliary lyrics)
+%
+%%%%%%%%%%
+\let\enableauxlyrics\empty % just for backward compatibility
+
+% Befehle auf auxlyrics beziehen:
+\def\auxlyr#1{{%
+ \def\ma@sw{lyr@a}%
+ \aux@activetrue
+ #1}}
+
+
+%%%%%%%%%%
+%
+% vertical lyrics positioning
+%
+%%%%%%%%%%
+\def\lyrraise#1{%
+ % #1: instrument number
+ \lyrraisemulti{#1}1}
+
+\def\lyrraisehere#1{%
+ % #1: position/offset
+ \switch@pmx@aux{%
+ \ifnum\st@ffs>1 % multi-staff instrument
+ \lyrraisemulti{\the\noinstrum@nt}{\the\noport@@}{#1}%
+ \else
+ \lyrraise{\the\noinstrum@nt}{#1}%
+ \fi}}
+
+\def\lyrraisemulti#1#2#3{%
+ % #1: instrument number
+ % #2: staff of instrument
+ % #3: position/offset
+ \toks@=\expandafter{\csname l@raise#1-#2\endcsname}%
+ \expandafter\ifx\the\toks@\relax
+ % raise parameter still unset
+ \expandafter\lyrraise@init\the\toks@
+ \fi
+ % now set raise parameter
+ \expandafter\expandafter\expandafter
+ \lyr@raise@multii\the\toks@\@end{#1}{#2}{#3}%
+ %\lyrlog{raise #1-#2: \expandafter\empty\the\toks@}%
+}
+
+\def\lyr@raise@multii#1@#2\@end#3#4#5{%
+ % #1: current main position/offset
+ % #2: current aux position/offset
+ % #3: instrument number
+ % #4: staff of instrument
+ % #5: new position/offset
+ \expandafter\xdef\csname l@raise#3-#4\endcsname{%
+ \ifaux@active #1@#5\else #5@#2\fi}}
+
+% be backward compatible
+\let\setsongraise@orig\setsongraise
+\def\setsongraise#1#2{\setsongraise@orig{#1}{#2}\lyrraise{#1}{b#2}}
+\def\auxsetsongraise#1#2{\auxlyr{\lyrraise{#1}{b#2}}}
+
+
+\def\lyrraise@init#1{%
+ % #1: control sequence to be set to default value
+ \gdef#1{b0pt@a0pt}}
+
+
+% vertically place lyrics columns
+% replaces MusiXTeX's \C@tx
+\def\vplace@lyrics#1{%
+ % find out applicable positioning settings
+ \edef\placelyr@staff{\ifnum\st@ffs>1 \the\noport@@ \else 1\fi}%
+ \toks@=\expandafter
+ {\csname l@raise\the\noinstrum@nt-\placelyr@staff\endcsname}%
+ % eventually initialize lyrraise setting first
+ \expandafter\ifx\the\toks@\relax % lyrraise still unset
+ \expandafter\lyrraise@init\the\toks@
+ \fi
+ \expandafter\expandafter\expandafter\vplace@lyricsii\the\toks@\@end{#1}}
+
+\def\vplace@lyricsii#1#2@#3#4\@end#5{%
+ % #1: main lyrics positioning switch (a/b)
+ % #2: main lyrics raise value
+ % #3: aux lyrics positioning switch (a/b)
+ % #4: aux lyrics raise value
+ % #5: lyrics material to be issued
+ %
+ % decice main/aux context
+ %
+ \ifaux@active \let\lyr@ab#3\toks@={#4}%
+ \else \let\lyr@ab#1\toks@={#2}%
+ \fi
+ %
+ % decide placement situation: above/below/in-mid of system or instrument
+ %
+ \if\lyr@ab a% above staff
+ \ifnum\placelyr@staff<\st@ffs % non-highest staff of multiple staves
+ \vplaceLyricsAboveMultistaff{#5}%
+ \else % single or highest staff of instrument
+ \ifnum\noinstrum@nt<\nbinstruments % lyrics go above instrument
+ \vplaceLyricsAboveInstrument{#5}%
+ \else % lyrics go into top margin
+ \vplaceLyricsTopMargin{#5}%
+ \fi
+ \fi
+ \else % below staff
+ \ifnum\placelyr@staff>1 % non-lowest staff of multiple staves
+ \vplaceLyricsBelowMultistaff{#5}%
+ \else % single or lowest staff of instrument
+ \ifnum\noinstrum@nt>1 % lyrics go below instrument
+ \vplaceLyricsBelowInstrument{#5}%
+ \else % lyrics go into bottom margin
+ \vplaceLyricsBottomMargin{#5}%
+ \fi
+ \fi
+ \fi}
+
+%
+% user-supersedable placement calculations
+%
+\def\vplaceLyricsBelowMultistaff#1{%
+ % #1: lyrics material
+ % reduced \C@Tx algorithm
+ \y@iv=\the\toks@\relax
+ \C@Inter % compute \stem@skip (?)
+ \advance\y@iv -0.5\stem@skip
+ \raise\y@iv\vbox\@to\z@{\vss\offinterlineskip#1\vss}}
+
+\def\vplaceLyricsAboveMultistaff#1{%
+ % #1: lyrics material
+ % reduced \C@Tx algorithm
+ \y@iv=\the\toks@\relax
+ \C@Inter % compute \stem@skip (?)
+ \advance\y@iv -0.5\stem@skip
+ % add height difference to base line of upper staff
+ \advance\y@iv \interportee
+ \raise\y@iv\vbox\@to\z@{\vss\offinterlineskip#1\vss}}
+
+\def\vplaceLyricsBottomMargin#1{%
+ % #1: lyrics material
+ % based on \C@tx
+ \y@iv=\the\toks@\relax
+ \advance\y@iv -\staffbotmarg
+ \raise\y@iv\vbox\@to\z@{\vss\offinterlineskip#1\vss}}
+
+\def\vplaceLyricsTopMargin#1{%
+ % #1: lyrics material
+ % based on \C@tx, "mirrored" bottom margin situation
+ \begingroup % seems to be necessary to make \Comp@High local;
+ % problem occurred with helper lines for low/high notes
+ \y@iv=\the\toks@\relax
+ \advance\y@iv \stafftopmarg
+ \Comp@High \advance\y@iv\y@v % \y@v = total height of instrument
+ \advance\y@iv \altitude % for multi-staff:
+ \advance\y@iv-\altportee % reduce by base height of current staff
+ \raise\y@iv\vbox\@to\z@{\vss\offinterlineskip#1\vss}%
+ \endgroup}
+
+\def\vplaceLyricsBelowInstrument#1{%
+ % #1: lyrics material
+ % assumption: \noinstrum@nt > 1
+ % based on \C@tx
+ \y@iv=\the\toks@\relax
+ \multiply\y@iv 2 % balance division by 2 below
+ \advance\noinstrum@nt\m@ne
+ \advance\y@iv -\csname interinstrument\romannumeral\noinstrum@nt\endcsname
+ \C@Inter % compute \stem@skip (?)
+ \advance\y@iv -\stem@skip
+ \divide\y@iv\tw@
+ \advance\noinstrum@nt\@ne
+ \raise\y@iv\vbox\@to\z@{\vss\offinterlineskip#1\vss}}
+
+\def\vplaceLyricsAboveInstrument#1{%
+ % #1: lyrics material
+ % assumption: \noinstrum@nt < \nbinstruments
+ % analogous to \C@tx, but refers to upper instrument instead
+ \y@iv=\the\toks@\relax
+ \multiply\y@iv 2 % balance division by 2 below
+ \advance\y@iv -\csname interinstrument\romannumeral\noinstrum@nt\endcsname
+ \C@Inter % compute \stem@skip (?)
+ \advance\y@iv -\stem@skip
+ \divide\y@iv\tw@
+ % add height difference to base line of upper instrument
+ \begingroup
+ \advance\y@iv-\altportee \advance\noinstrum@nt\@ne \s@l@ctinstr
+ \advance\y@iv \altitude
+ \raise\y@iv\vbox\@to\z@{\vss\offinterlineskip#1\vss}%
+ \endgroup}
+
+
+%\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 % compute \stem@skip
+% \advance\y@iv\stem@skip
+% \divide\y@iv\tw@
+% \advance\noinstrum@nt\@ne
+% \fi
+% \advance\y@iv-\csname T@R\romannumeral\noinstrum@nt\endcsname
+% \lower\y@iv\uplap}
+%\def\uplap#1{\vbox\@to\z@{\vss#1}}
+
+
+%%%%%%%%%%
+%
+% Textsatz-Automatik
+%
+%%%%%%%%%%
+% Text automatisch unter alle "spacing"-Noten eines Systems:
+\let\orig@writ@note\writ@note
+\def\writ@note{%
+ \ifnum\n@i<\@c % Bedingung fuer's Notenschreiben in \writ@note (warum?)
+% \ifx\st@m\beamst@m
+% \uptext{\csname s@bl\balken@nr\endcsname}%
+% \else
+ \decide@lyrmode
+ \main@aux@or@not{\forall@verses{\@context\evtl@next@lyr}}%
+% \fi
+ \fi
+ \orig@writ@note}
+
+\def\lyrmode@no {\def\main@aux@or@not##1{}}
+\def\lyrmode@main{\def\main@aux@or@not##1{##1}}
+\def\lyrmode@aux {\let\main@aux@or@not\auxlyr}
+\let\pmx@auxmode\lyrmode@aux
+
+% Feststellen, ob Haupt- oder Nebentext oder gar nichts gesetzt werden soll:
+\ifx\nextvoice\undefined % ohne PMX
+ \def\decide@lyrmode{%
+ \call@lyrmode
+ \if@lyrmode \decide@stem@direction % Notenhals-Automatik
+ \else % manuell, nur "spacing"-Noten
+ \ifadvance \lyrmode@main
+ \else \lyrmode@no
+ \fi
+ \fi}
+ \def\decide@stem@direction{%
+ \ifx\st@m\upst@m \lyrmode@aux \else
+ \ifx\st@m\up@flag \lyrmode@aux \else
+ \ifx\st@m\downst@m \lyrmode@main\else
+ \ifx\st@m\down@flag\lyrmode@main\else
+ \ifx\st@m\setst@m \lyrmode@no \else % kein Hals
+ \ifx\st@m\resetst@m\lyrmode@no \else
+ \ifx\st@m\beamst@m
+ \expandafter\ifx\csname s@bl\balken@nr\endcsname o\lyrmode@aux
+ \else\lyrmode@main
+ \fi
+ \else\errmessage{invalid \string\st@m\space setting}%
+ \fi\fi\fi\fi\fi\fi\fi}
+\else % mit PMX
+ \def\decide@lyrmode{%
+ \ifadvance % nur "spacing"-Noten
+ \call@lyrmode
+ \if@pmx@nextvoice % Oberstimme
+ \if@lyrmode\lyrmode@main \else\pmx@auxmode \fi
+ \else % Unterstimme
+ \if@lyrmode\pmx@auxmode \else\lyrmode@main \fi
+ \fi
+ \else
+ \lyrmode@no % non-spacing Note
+ \fi}
+ \let\orig@nextvoice\nextvoice % \nextvoice erweitern
+ \def\nextvoice{\orig@nextvoice\@pmx@nextvoicetrue}
+\fi
+
+\def\call@lyrmode{% activate lyrmode setting of current staff/instrument
+ \ifnum\st@ffs>1 % multi-staff instrument
+ \csname zlm@\the\noinstrum@nt-\the\noport@@\endcsname
+ \else % single-staff instrument
+ \csname zlm@\the\noinstrum@nt-1\endcsname
+ \fi}
+
+\def\switch@pmx@aux#1{%
+ % using PMX, automatically activate auxlyr context for #1 after \nextvoice
+ \ifx\nextvoice\undefined % not using PMX
+ #1%
+ \else % using PMX
+ \call@lyrmode
+ \if@pmx@nextvoice % upper PMX voice
+ \if@lyrmode\lyrmode@main \else\pmx@auxmode \fi
+ \else % lower PMX voice
+ \if@lyrmode\pmx@auxmode \else\lyrmode@main \fi
+ \fi
+ \main@aux@or@not{#1}%
+ \fi}
+
+
+
+% lyrmode umschalten:
+\def\switch@lyrmode#1#2#3{%
+ % #1: instrument number
+ % #2: staff-of-instrument number
+ % #3: lyrmode setting
+ \ifnum#1=0 % % alle Zeilen einbeziehen
+ \switch@lyrmode@all@instrum#3%
+ \else % nur 1 Zeile
+ \global\expandafter\let\csname zlm@#1-#2\endcsname=#3%
+ \fi}
+
+% loop over all possible instruments
+\def\switch@lyrmode@all@instrum#1{%
+ \m@loop \switch@lyrmode@all@staves#1\repeat}
+
+% loop over 4 possible staves of instrument
+\def\switch@lyrmode@all@staves#1{%
+ \begingroup
+ \count@=0
+ \loop
+ \advance\count@ 1
+ \switch@lyrmode{\the\noinstrum@nt}{\the\count@}#1%
+ \ifnum\count@<4 \repeat
+ \endgroup}
+% ... nicht wahnsinnig effizient, zugegeben ...
+
+
+\def\lyrmodenormal#1{\lyrmodenormalmulti{#1}1}
+\def\lyrmodealter #1{\lyrmodealtermulti {#1}1}
+
+\def\lyrmodenormalmulti#1#2{\switch@lyrmode{#1}{#2}\@lyrmodefalse}
+\def\lyrmodealtermulti #1#2{\switch@lyrmode{#1}{#2}\@lyrmodetrue }
+
+\def\lyrmodenormalhere{\lyrmode@here\@lyrmodefalse}
+\def\lyrmodealterhere {\lyrmode@here\@lyrmodetrue }
+
+\def\lyrmode@here#1{% apply lyrmode to current instrument/staff context
+ % #1: lyrmode switch
+ \if@multistaff
+ \switch@lyrmode{\the\noinstrum@nt}{\the\noport@@}#1%
+ \else
+ \switch@lyrmode{\the\noinstrum@nt}1#1%
+ \fi}
+
+\lyrmodenormal0 % auf "normal" initialisieren
+
+% fuer Halsrichtungs-Automatik: Balkenlage in \s@bl<nr> vermerken
+\def\balk@nlage#1{\global\expandafter\let
+ \csname s@bl\balken@nr\endcsname #1\relax}
+\let\orig@i@bu\i@bu \def\i@bu{\balk@nlage o\orig@i@bu}% <o>ben
+\let\orig@i@bl\i@bl \def\i@bl{\balk@nlage u\orig@i@bl}% <u>nten
+
+\let\orig@s@l@ctbeam\s@l@ctbeam
+\def\s@l@ctbeam#1\relax{\orig@s@l@ctbeam#1\relax \xdef\balken@nr{\number\n@i}}
+
+
+% Auto-Text ein- und ausschalten (innerhalb \notes...\enotes):
+\def\lyricson{\forall@verses{\add@context\verse@on@context}}
+\def\verse@on@context{%
+ \let\evtl@next@lyr\next@lyr
+ \add@context\verse@on@context}
+
+\def\lyricsoff{\forall@verses\clear@context}
+
+\def\lyric {\let\evtl@hyph\@hyphenfalse\futurelet\ast@risk\lyric@i}
+\def\lyrich{\let\evtl@hyph\@hyphentrue \futurelet\ast@risk\lyric@i}
+
+\def\lyric@i{%
+ \ifx\ast@risk*%
+ \let\evtl@nolyr\relax \let\@next\lyric@ii
+ \else
+ \let\evtl@nolyr\nolyr \def\@next{\nolyr\lyric@ii*}%
+ \fi
+ \@next}
+
+% Silben abseits vom Haupttext ausgeben:
+\def\lyric@ii*#1{\forall@verses{\@context\evtl@hyph\@lyric{#1}}\evtl@nolyr}
+
+% Manipulationen einzelner Haupttext-Silben:
+\def\forall@context#1{\forall@verses{\add@context{#1}}}
+
+% 1 Silbe ausgeben:
+\def\lyr{\forall@verses{\@context\next@lyr}}
+
+% Linksbuendig:
+\def\llyr{\forall@context{\leftlyrtrue}}
+
+% Verlaengerungs-Strich:
+\def\lyrrule{\forall@context{\@strichtrue}}
+
+% Horizontale Verschiebung (analog \roffset):
+\def\lyroffset#1{\forall@context{\def\evtl@offset{\roffset{#1}}}}
+
+% Kein automatischer Text:
+\def\nolyr{\forall@context{\let\evtl@next@lyr\empty}}
+
+% Kleinbuchstaben:
+\def\lclyr{\forall@context{\let\evtl@klein\@klein}}
+\def\@klein#1{\lowercase\expandafter{#1}}
+
+% Satzzeichen anhaengen:
+\def\lyrpt#1{\forall@context{\def\evtl@komma{#1}}}
+
+% Punkt vom Ende abschneiden:
+\def\lyrnop{\forall@context{\let\evtl@punktweg\@punktweg}}
+\def\@punktweg#1{{\punktweg@rek#1\ende}}
+\def\punktweg@rek#1#2\ende{%
+ \def\par@ii{#2}%
+ \ifx\par@ii\empty\else
+ \aftergroup#1%
+ \expandafter\punktweg@rek\par@ii\ende
+ \fi}
+
+% Melisma beginnen und abschliessen:
+\def\beginmel{\forall@verses{\llyr\lyrrule\add@context\lyricsoff}}
+\def\endmel{\forall@verses{\lyrruleend\add@context\lyricson}}
+
+%
+% Bindebogen unter zwei Silben derselben Note:
+%
+\def\lyrlink {\lyr@link0}
+\def\lowlyrlink{\lyr@link1}
+
+\def\lyr@link#1{%
+ % Bogen erstellen:
+ \setbox\lyr@linkbox=\hbox{$\smile$}%
+ % In Box der Breite eines Wortzwischenraums einsetzen:
+ \setbox\lyr@linkbox=\hbox to\the\fontdimen2\the\font{%
+ \hss
+ % Unter die Grundlinie druecken:
+ \lower\ht\lyr@linkbox\hbox{%
+ % Zusaetzlicher vertikaler Abstand zur Wortunterseite:
+ \lower1pt\hbox{%
+ \if#10\relax
+ \hbox{$\smile$}%
+ \else
+ % Buchstabe mit Unterlaenge -> auch darunter druecken:
+ \setbox\lyr@linkdepthbox=\hbox{y}%
+ \lower\dp\lyr@linkdepthbox\hbox{$\smile$}%
+ \fi}}%
+ \hss}%
+ % Keine zusaetzliche Tiefe fuer Bogen anrechnen:
+ \dp\lyr@linkbox=0pt
+ % Bogen setzen:
+ \box\lyr@linkbox}
+
+\makeatother
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixmad.tex b/Master/texmf-dist/tex/generic/musixtex/musixmad.tex
index 850597a269d..18b705c2e96 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixmad.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixmad.tex
@@ -19,11 +19,12 @@
\ifx\staffspacingxii\undefined\else\endinput\fi
-\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+% input musixadd before changing \catcode`\@ to avoid macro collision
+\ifnum\maxinstruments<9 \input musixadd \fi
-\ifnum\maxinstruments<\nin@ \input musixadd \fi
+\immediate\write16{MusiXMore ADditional instruments T.113\space<28 June 2005>}%
-\immediate\write10{MusiXMore ADditional instruments T.99\space<24 March 2000>}%
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
%\ifx\undefined\documentstyle \else
% \errmessage{MusiXMAD+LaTeX will need too many dimension registers, it's
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixper.tex b/Master/texmf-dist/tex/generic/musixtex/musixper.tex
index 22a365726d9..39dd908fca7 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixper.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixper.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXPERcussion T.60\space<23 September 1996>}%
+\immediate\write16{MusiXPERcussion T.60\space<23 September 1996>}%
\ifx\undefined\drumclef \else \endinput \fi
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex b/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex
index c48cd536ebc..dcf33f4f956 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex
@@ -17,16 +17,18 @@
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXPOInted shorties 0.36\space<1 March 1995>}
+%\immediate\write16{MusiXPOInted shorties 0.36\space<1 March 1995>}
+\immediate\write16{MusiXPOInted shorties T.114\space<16 June 2008>}
-\ifx\undefined\ccup \else \endinput \fi
+%\ifx\undefined\ccup \else \endinput \fi % conflicts since musixtex.tex T.111 defines \ccup
+\ifx\undefined\zcccclpp \else \endinput \fi
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
-\def\@ccup{\n@vii\@xli \let\st@m\up@flag \g@qp}
+%\def\@ccup{\n@vii\@xli \let\st@m\up@flag \g@qp}% moved into musixtex.tex since T.111
\def\@cccup{\n@vii42\let\st@m\up@flag \g@qp}
\def\@ccccup{\n@vii43\let\st@m\up@flag \g@qp}
-\def\@cclp{\n@vii46\let\st@m\down@flag \g@qp}
+%\def\@cclp{\n@vii46\let\st@m\down@flag \g@qp}% moved into musixtex.tex at T.114
\def\@ccclp{\n@vii47\let\st@m\down@flag \g@qp}
\def\@cccclp{\n@vii48\let\st@m\down@flag \g@qp}
\def\@ccupp{\n@vii\@xli \let\st@m\up@flag \g@qpp}
@@ -35,10 +37,10 @@
\def\@cclpp{\n@vii46\let\st@m\down@flag \g@qpp}
\def\@ccclpp{\n@vii47\let\st@m\down@flag \g@qpp}
\def\@cccclpp{\n@vii48\let\st@m\down@flag \g@qpp}
-\def\ccup{\q@symbol\@ccup}
-\def\zccup{\advancefalse\ccup}
-\def\cclp{\q@symbol\@cclp}
-\def\zcclp{\advancefalse\cclp}
+%\def\ccup{\q@symbol\@ccup}% moved into musixtex.tex since T.111
+%\def\zccup{\advancefalse\ccup}% moved into musixtex.tex at T.114
+%\def\cclp{\q@symbol\@cclp}% moved into musixtex.tex since T.111
+%\def\zcclp{\advancefalse\cclp}% moved into musixtex.tex at T.114
\def\ccupp{\q@symbol\@ccupp}
\def\zccupp{\advancefalse\ccupp}
\def\cclpp{\q@symbol\@cclpp}
@@ -62,3 +64,4 @@
\catcode`\@=\catcodeat
\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixps.tex b/Master/texmf-dist/tex/generic/musixtex/musixps.tex
new file mode 100644
index 00000000000..c2a392c80be
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixps.tex
@@ -0,0 +1,961 @@
+%% PostScript slurs, ties and crescendos
+% Coded by Stanislav Kneifl
+
+\ifx\undefined\liftcresc\else\endinput\fi
+
+\immediate\write16{MusiXPS PostScript slurs, ties and crescendos 0.92 (12.5.2002)}%
+
+\catcode`\@=11
+
+
+%%%% remove the next line if you include this file into a format (see endnotes!).
+
+\special{header=psslurs.pro}%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\font\mxsk=mxsk
+
+% you can change these values if you want...
+% Offsets are in \internotes measured vertically from the center and
+% horizontally from the left edge of the notehead.
+% see the doc at the end for (short) explanation
+
+\def\psslurraise{1.6} % vertical offset of the slur beginnings/endings
+\def\psbslurraise{2} % vert. offset for slurs on beams
+
+\def\psLslurskip{-0.2} % horiz. offset of slurs shifted more to the left
+\def\pslslurskip{0.4} % horiz. offset of slurs shifted to the left
+\def\psislurskip{1.4} % horiz. offset of the slur beginnings
+\def\pstslurskip{1.2} % horiz. offset of the slur endings
+\def\psrslurskip{2.8} % horiz. offset of slurs shifted to the right
+
+\def\psfslurhgt{0.7} % height coeficient of the 'f'lat slurs
+\def\psslurhgt{1} % height coeficient of normal slurs
+\def\pshslurhgt{1.6} % height coeficient of 'h'igh slurs
+\def\psHslurhgt{2.2} % height coeficient of 'H'igh slurs
+\def\psHHslurhgt{2.8} % height coeficient of 'HH'igh slurs
+\def\psslurmaxhgt{40} % maximal height of the slur
+ % (before multiplication by \...slurhgt !!)
+
+\def\psslurangul{0.17} % angularity of normal, flat and high slurs
+\def\psHslurangul{0.15} % angularity of High slurs
+\def\psHHslurangul{0.13} % angularity of HHigh slurs
+
+\def\pstieraise{1.3} % vertical offset of the ties
+\def\psitieskip{2.6} % horiz. offset of the tie beginnings
+\def\psttieskip{0.3} % horiz. offset of the tie endings
+\def\psltieskip{-0.2} % horiz. offset of ties shifted to the left
+\def\psrtieskip{3} % horiz. offset of ties shifted to the right
+
+\def\pstiehgt{0.7} % height coeficient of the ties
+\def\pstiemaxhgt{30} % maximal height if the ties
+\def\pstieflathgt{20} % maximal height if the ties between staff lines
+\def\pstieangul{0.14} % angularity of the ties
+
+%%%%
+
+\def\d@nh{-5} % default altitude of the crescendos in \internote
+\def\setcrescheight{\def@it\d@nh}
+
+\def\sl@space{-3pt} % neg. space before continued slurs, ties and crescs.
+\def\h@tielim{15pt} % limit for drawing half continued ties
+
+\def\nohalfties{\def\h@tielim{\z@}}
+\def\halfties{\def\h@tielim{15pt}}
+\newif\ifslopebrkslurs
+\slopebrkslursfalse
+
+\def\dotted{\def\d@sh{1}} % the '1' is important!
+\def\solid{\def\d@sh{0}}
+\def\Dotted{\def\D@sh{1}}
+\def\Solid{\def\D@sh{0}}
+\Solid\solid
+
+\def\nosluradjust{\gdef\s@adj{0}}
+\def\sluradjust{\gdef\s@adj{1}}
+\def\Nosluradjust{\gdef\S@adj{0}\gdef\s@adj{0}}
+\def\Sluradjust{\gdef\S@adj{1}\gdef\s@adj{1}}
+\Sluradjust
+
+\def\notieadjust{\gdef\t@adj{0}}
+\def\tieadjust{\gdef\t@adj{1}}
+\def\Notieadjust{\gdef\T@adj{0}\gdef\t@adj{0}}
+\def\Tieadjust{\gdef\T@adj{1}\gdef\t@adj{1}}
+\Notieadjust
+
+\newif\ifdangermessages\dangermessagestrue
+
+\def\@clr#1{\let#1\empty}
+\def\def@it#1#2{\def#1{#2}}
+\def\slurtext{\def@it\s@tx}
+\let\s@tx\empty
+\def\lr@lap#1{\rlap{\hss#1}}
+
+% how many slurs will be stored into the TeX's registers?
+% => how many slurs can go across the page break?
+% determines also the needed amount of the following registers.
+\let\max@slurs\t@n
+
+\let\slur@alt=\s@xi \let\slur@hgt=\s@Yv \let\slur@lift=\s@yi
+\let\slur@alti=\s@xii \let\slur@hgti=\s@Yvi \let\slur@lifti=\s@yii
+\let\slur@altii=\s@xiii \newdimen\slur@hgtii \let\slur@liftii=\s@yiii
+\let\slur@altiii=\s@xiv \newdimen\slur@hgtiii \let\slur@liftiii=\s@yiv
+\let\slur@altiv=\s@xv \newdimen\slur@hgtiv \let\slur@liftiv=\s@yv
+\let\slur@altv=\s@Y \newdimen\slur@hgtv \let\slur@liftv=\s@yvi
+\let\slur@altvi=\s@Yi \newdimen\slur@hgtvi \let\slur@liftvi=\s@Ni
+\let\slur@altvii=\s@Yii \newdimen\slur@hgtvii \let\slur@liftvii=\s@Nii
+\let\slur@altviii=\s@Yiii \newdimen\slur@hgtviii \let\slur@liftviii=\s@Niii
+\let\slur@altix=\s@Yiv \newdimen\slur@hgtix \let\slur@liftix=\s@Niv
+
+% in the 'lift' register is coded the altitude of the ending point of the slur
+% at the end of a line (y1) and the relative alt. of the starting point at the
+% beginning of a line (y2): y1=(reg div 65536)-16384, y2=(reg mod 65536)-16384
+
+\newdimen\tie@alt \newdimen\tie@hgt
+\newdimen\tie@alti \newdimen\tie@hgti
+\newdimen\tie@altii \newdimen\tie@hgtii
+\newdimen\tie@altiii \newdimen\tie@hgtiii
+\newdimen\tie@altiv \newdimen\tie@hgtiv
+\newdimen\tie@altv \newdimen\tie@hgtv
+\newdimen\tie@altvi \newdimen\tie@hgtvi
+\newdimen\tie@altvii \newdimen\tie@hgtvii
+\newdimen\tie@altviii \newdimen\tie@hgtviii
+\newdimen\tie@altix \newdimen\tie@hgtix
+
+\newdimen\cresc@alt
+\newdimen\cresc@alti
+\newdimen\cresc@altii
+\newdimen\cresc@altiii
+\newdimen\cresc@altiv
+\newdimen\cresc@altv
+\newdimen\cresc@altvi
+\newdimen\cresc@altvii
+\newdimen\cresc@altviii
+\newdimen\cresc@altix
+
+\newcount\pss@rega \pss@rega=\z@ % PS slurs
+\newcount\pss@regb \pss@regb=\z@
+\newcount\pst@rega \pss@rega=\z@ % PS ties
+\newcount\pst@regb \pss@regb=\z@
+\newcount\psc@rega \pss@rega=\z@ % PS [de]crescendos
+\newcount\psc@regb \pss@regb=\z@
+
+\newif\if@up
+\newif\if@dash
+
+% information in these registers is binary coded:
+% a: lower bit is set ( 2^2i ): there is a pending slur number i
+% upper bit is set ( 2^(2i+1) ): slur number i already went across line break
+% b: lower bit is set: slur/tie is dotted
+% upper bit is set: slur/tie is lower / decrescendo
+
+% everything else is stored in PostScript variables. If you run out
+% of the PostScript dictionary used for slurs, you can increase its size
+% by changing the number 200 in the first line of psslurs.pro to anything
+% reasonable. (The number says how many tokens can be defined.)
+
+%%%%%%%
+
+% input is i for 2^i and register to extract the bits from
+% in reg. n@i will be only the bits 2^2i and 2^(2i+1)
+% in n@vi will be these bits shifted to 2^0 and 2^1,
+% n@ii will be set to 2^2i
+\def\get@bits#1#2{\n@i=#1\relax\n@ii\@ne
+ \loop\ifnum\n@i>\z@\multiply\n@ii\f@ur\advance\n@i\m@ne\repeat
+ \n@i=\n@ii\multiply\n@i\f@ur\n@iii #2\relax
+ \divide\n@iii\n@i\multiply\n@iii\n@i\n@i=#2\relax
+ \advance\n@i-\n@iii\divide\n@i\n@ii\n@vi\n@i\multiply\n@i\n@ii\relax}
+
+\def\s@l@slur#1{\xdef\th@salt{\csname slur@alt\romannumeral#1\endcsname}%
+ \xdef\th@shgt{\csname slur@hgt\romannumeral#1\endcsname}%
+ \xdef\th@slift{\csname slur@lift\romannumeral#1\endcsname}}
+
+\def\s@l@tie#1{\xdef\th@salt{\csname tie@alt\romannumeral#1\endcsname}%
+ \xdef\th@shgt{\csname tie@hgt\romannumeral#1\endcsname}}
+
+\def\s@l@cresc#1{\xdef\th@salt{\csname cresc@alt\romannumeral#1\endcsname}}
+
+\def\gt@pssb#1#2{\s@l@ctbeam#1\relax\getcurpos\advance\y@v#2\relax % \y@v = hpos
+ \advance\y@v-\b@x
+ \y@ii\b@p\y@v \divide\y@ii\tw@nty \advance\y@ii\b@z
+ \advance\y@ii-\altportee\n@ii=\internote \divide\n@ii6553
+ \n@i=\y@ii\divide\n@i\n@ii\divide\n@i6554\relax}
+
+\def\t@bslur#1#2#3#4{\n@vii\n@i\ifnum#3<\fiv@t@@n\get@bits{#3}\pss@regb\n@i\n@vii
+ \ifnum\n@vi>\@ne\gt@pssb{#4}\z@\T@slur{#3}{\psbslurraise}{0}{#1}{#2}%
+ \else\gt@pssb{#4}{\tw@\qn@width}\T@slur{#3}{\psbslurraise}{2.4}{#1}{#2}\fi
+ \else\gt@pssb{#4}\z@\T@slur{#3}{1.7}{0}{#1}{#2}\fi}
+
+
+%%%%%% slurs %%%%%%%%%%%%%%%%%%%
+
+% ID, pitch, voffset, hoffset
+% all offsets are in \internote, the slur direction is determined
+% by the sign of the vertical offset.
+
+\def\iSlur#1#2{\inhgetn@i#2\relax\I@slur{#1}}
+
+% ID, voffset, hoffset; \n@i = pitch
+\def\I@slur#1#2#3{\y@i=\n@i\internote
+ \ifdim#2\internote<\z@\@upfalse\else\@uptrue\fi
+ \advance\y@i#2\internote\raise\y@i\rlap{\hskip #3\internote
+ \special{ps: slur@Dict begin CP /S#1y1 ED /S#1x1 ED
+ /S#1hgt (\the\y@i) GD N /S#1brk S#1hgt (\the\internote) GD
+ \ifslopebrkslurs 3 \else 1 \fi\if@up 1 \else -1 \fi M M A N /S#1lift 0 N
+ /S#1alt (\the\altportee) GDAR N /S#1dir \if@up1\else-1\fi\space N
+ /S#1dash \d@sh\space N /S#1adj \s@adj\space N end}}%
+ \ifnum#1>\fourt@@n
+ \ifnum#1=99\relax\else
+ \ifdangermessages\message{Danger! Slur with ID >14.}\fi\fi
+ \else\n@iv\n@i\get@bits{#1}\pss@rega
+ \ifcase\n@i\else\message{Slur #1 was re-opened.}%
+ \advance\pss@rega-\n@i\fi % clear the bits
+ \global\advance\pss@rega\n@ii % and set the lower bit
+ \get@bits{#1}\pss@regb\global\advance\pss@regb-\n@i % clear the bits
+ \ifnum\d@sh=1\relax\global\advance\pss@regb\n@ii\fi
+ \if@up\else\multiply\n@ii\tw@\global\advance\pss@regb\n@ii\fi
+ \ifnum#1<\max@slurs\s@l@slur{#1}%
+ \global\th@salt\altportee\global\th@shgt\y@i\th@slift\n@iv
+ \if@up\advance\th@slift\fiv@\else\advance\th@slift-\fiv@\fi
+ \advance\th@slift 16384\relax\multiply\th@slift65536\relax
+ \global\advance\th@slift16384\relax
+ \fi\fi\gdef\d@sh{\D@sh}\gdef\s@adj{\S@adj}}
+
+% ID, height, voffset, hoffset, curvature, angularity
+\def\tSlur#1#2{\inhgetn@i#2\relax\T@slur{#1}}
+
+\def\T@slur#1#2#3#4#5{\n@vii\n@i\n@ii\@ne
+ \ifnum#1<\fiv@t@@n
+ \get@bits{#1}\pss@rega
+ \global\advance\pss@rega-\n@i
+ \ifcase\n@i\message{Not opened slur #1 was closed.}\n@ii\z@
+ \else
+ \ifnum\n@vi>\@ne % the slur was breaked
+ \get@bits{#1}\pss@regb % it's not necessary to clear this register
+ \ifnum\n@vi>\@ne\@upfalse\else\@uptrue\fi
+ \ifodd\n@vi\@dashtrue\else\@dashfalse\fi
+ \y@ii=\lin@pos\advance\y@ii\locx@skip\advance\y@ii#3\internote
+ \advance\y@ii\sl@space
+ \y@i=\n@vii\internote\advance\y@i\if@up\else-\fi#2\internote
+ \ifnum#1<\max@slurs
+ \s@l@slur{#1}\n@ii\th@slift\divide\n@ii65536\relax
+ \multiply\n@ii65536\relax\n@iii\th@slift\advance\n@iii-\n@ii
+ \advance\n@iii-16384\y@iii=\n@iii\internote\advance\y@iii\th@shgt
+ \raise\y@i\rlap{\hskip #3\internote\special{ps: slur@Dict begin
+ CP S (\the\y@ii) GDAR SB /S#1x1 ED
+ (\the\y@i) GD (\the\y@iii) GD SB 4 AR M A /S#1y1 ED
+ (\the\internote) GD (\the\th@shgt) GD (\the\y@i) GD
+ S#1x1 S#1y1 CP #4 \if@up\else neg \fi #5 30
+ \if@dash1\else0\fi\space \s@adj\space 90 DS end}}%
+ \else
+ \raise\y@i\rlap{\hskip #3\internote\special{ps: slur@Dict begin
+ CP S (\the\y@ii) GDAR SB /S#1x1 ED
+ S#1hgt S#1lift (\the\internote) GD M A 4 AR M
+ (\the\y@i) GDAR SB SB /S#1y1 ED
+ (\the\internote) GD S#1hgt (\the\y@i) GD
+ S#1x1 S#1y1 CP #4 \if@up\else neg \fi #5 30
+ S#1dash \s@adj\space 90 DS end}}%
+ \fi\n@ii\z@
+ \fi
+ \fi
+ \fi
+ \ifcase\n@ii\else\y@ii=#2\internote\setbox\z@=\hbox{\s@tx}%
+ \y@i=\n@vii\internote\raise\y@i\rlap{\hskip #3\internote
+ \special{ps: slur@Dict begin (\the\internote) GD S#1hgt (\the\y@i) GD
+ #2 (\the\internote) GD M S#1dir M A
+ S#1x1 S#1y1 CP (\the\y@ii) GDAR S#1dir M SB
+ #4 S#1dir M #5 \psslurmaxhgt\space S#1dash S#1adj 90 DS
+ /ay1 ay1 (\the\ht\z@) GDAR -10 AR add dir mul add def}%
+ \lr@lap{\box\z@}\special{ps: end}}%
+ \fi\@clr\s@tx}
+
+\def\liftslur#1#2{\special{ps: slur@Dict begin /S#1lift #2 N end}%
+ \ifnum#1<\t@n\s@l@slur{#1}\divide\th@slift65536\relax
+ \multiply\th@slift65536 \advance\th@slift16384\relax
+ \advance\th@slift#2\relax\fi}
+
+\def\breakslur#1#2{\inhgetn@i#2\relax\y@i=\n@i\internote\special
+ {ps: slur@Dict begin /S#1brk (\the\y@i) GD N end}%
+ \ifnum#1<\t@n\s@l@slur{#1}\n@ii\th@slift\divide\n@ii65536\relax
+ \multiply\n@ii65536 \advance\th@slift-\n@ii\advance\n@i16384\relax
+ \multiply\n@i65536 \global\advance\th@slift\n@i\fi}
+
+%%%%% [de]crescendos %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ID, height, hoffset
+
+\def\Icresc{\i@cresc0}
+\def\Idecresc{\i@cresc2}
+
+\def\i@cresc#1#2#3#4{\y@i=#3\internote\raise\y@i\rlap
+ {\hskip#4\internote\advance\y@i\altportee\special{ps: slur@Dict begin
+ CP /C#2y1 ED /C#2x1 ED /C#2alt (\the\y@i) GD N
+ /C#2dir #1 N end}}%
+ \ifnum#2>\fourt@@n
+ \ifdangermessages\message{Danger! [De]crescendo with ID >14.}\fi
+ \else\get@bits{#2}\psc@rega
+ \ifcase\n@i\else\message{[De]crescendo #2 was re-opened.}%
+ \advance\psc@rega-\n@i\fi
+ \global\advance\psc@rega\n@ii
+ \get@bits{#2}\psc@regb\advance\psc@regb-\n@i
+ \multiply\n@ii#1\relax
+ \global\advance\psc@regb\n@ii\relax
+ \ifnum#2<\max@slurs\s@l@cresc{#2}%
+ \advance\y@i\altportee\global\th@salt\y@i\fi\fi}
+
+\def\Tcresc#1#2#3{\n@ii\@ne\n@i=#1\relax
+ \ifnum\n@i<\fiv@t@@n
+ \get@bits{#1}\psc@rega\global\advance\psc@rega-\n@i
+ \ifcase\n@i\message{Not opened crescendo #1 was closed.}\n@ii\z@
+ \else
+ \ifnum\n@vi>\@ne % the crescendo was breaked
+ \get@bits{#1}\psc@regb % it's not necessary to clear this register
+ \y@ii=\lin@pos\advance\y@ii\locx@skip\advance\y@ii#3\internote
+ \advance\y@ii\sl@space
+ \zchar{#2}{\hskip #3\internote\special{ps: slur@Dict begin
+ CP S (\the\y@ii) GDAR SB S CP 4 \the\n@vi\space R
+ \the\n@vi\space 0 eq { DHC } { DC } ifelse end}}%
+ \global\n@ii\z@\fi
+ \fi\fi
+ \ifcase\n@ii\else\zchar{#2}{\hskip#3\internote\special{ps: slur@Dict begin
+ C#1x1 C#1y1 CP 4 C#1dir R DC end}}\fi}
+
+\def\liftcresc#1#2{\y@i=#2\internote\ifnum#1<\max@slurs\s@l@cresc{#1}%
+ \global\advance\th@salt\y@i\else\special{ps: slur@Dict begin
+ /C#1alt (\the\y@i) GDAR C#1alt A N end}\fi}
+
+
+%%%% ties %%%%%%%%%%%%%%%%%%%%%%
+
+\def\iTieu{\i@tie{1}}
+\def\iTied{\i@tie{-1}}
+
+% 1/-1, ID, height, hoffset
+\def\i@tie#1#2#3#4{\inhgetn@i#3\relax\y@i=\pstieraise\internote
+ \multiply\y@i#1\relax\advance\y@i\n@i\internote\raise\y@i\rlap
+ {\hskip #4\internote\special{ps: slur@Dict begin
+ /S#1alt (\the\altportee) GDAR N
+ CP /T#2y1 ED /T#2x1 ED /T#2hgt (\the\y@i) GD N
+ /T#2dir #1 N /T#2dash \d@sh\space N
+ /T#2adj \t@adj\space N end}}%
+ \ifnum #2>\fourt@@n
+ \ifnum#2=99\relax\else
+ \ifdangermessages\message{Danger! Tie with ID >14.}\fi\fi
+ \else\get@bits{#2}\pst@rega
+ \ifcase\n@i\else\message{Tie #2 was re-opened.}%
+ \global\advance\pst@rega-\n@i\fi
+ \global\advance\pst@rega\n@ii
+ \get@bits{#2}\pst@regb\global\advance\pst@regb-\n@i % clear the bits
+ \ifnum\d@sh=1\relax\global\advance\pst@regb\n@ii\fi
+ \ifnum#1=1\relax\else\multiply\n@ii\tw@\global\advance\pst@regb\n@ii\fi
+ \ifnum#2<\max@slurs\s@l@tie{#2}%
+ \global\th@salt\altportee\global\th@shgt\y@i\fi
+ \fi\gdef\d@sh{\D@sh}\gdef\t@adj{\T@adj}}
+
+% ID, hoffset
+\def\tTie#1#2{\n@ii\@ne
+ \ifnum#1<\fiv@t@@n
+ \get@bits{#1}\pst@rega
+ \global\advance\pst@rega-\n@i
+ \ifcase\n@i\message{Not opened tie #1 was closed.}\n@ii\z@
+ \else
+ \ifnum\n@vi>\@ne % the tie was breaked
+ \get@bits{#1}\pst@regb % it's not necessary to clear this register
+ \ifnum\n@vi>\@ne\@upfalse\else\@uptrue\fi
+ \ifodd\n@vi\@dashtrue\else\@dashfalse\fi
+ \y@ii=\lin@pos\advance\y@ii\locx@skip\advance\y@ii#2\internote
+ \advance\y@ii\sl@space
+ \ifnum#1<\max@slurs\s@l@tie{#1}%
+ \ifdim\y@ii<\h@tielim
+ \raise\th@shgt\rlap{\hskip-0.3\internote
+ \ifdim\internote>.9\Internote\n@i=\z@\else
+ \ifdim\internote<.7\Internote \n@i=\@cxxviii
+ \else\n@i=64\fi\fi\if@up\else\advance\n@i\@ne\fi
+ \mxsk\char\n@i}%
+ \else
+ \rlap{\hskip #2\internote\special{ps: slur@Dict begin
+ (\the\internote) GD (\the\th@shgt) GD DP
+ CP S (\the\y@ii) GDAR SB S (\the\th@shgt)
+ GDAR SB DP CP P S \if@up \pstiehgt\space
+ \else -\pstiehgt\space \fi \pstieangul\space \pstiemaxhgt\space
+ \if@dash 1 \else 0 \fi \t@adj\space 40 DS end}}%
+ \fi
+ \else
+ \rlap{\hskip #2\internote\special{ps: slur@Dict begin
+ (\the\internote) GD T#1hgt GD DP
+ CP S (\the\y@ii) GDAR SB S T#1hgt GDAR SB DP CP P S
+ \if@up -\pstiehgt\space \else \pstiehgt\space \fi
+ \pstieangul\space \pstiemaxhgt\space \if@dash 1 \else 0 \fi
+ \t@adj\space 40 DS end}}%
+ \fi
+ \global\n@ii=\z@
+ \fi
+ \fi
+ \fi
+ \ifcase\n@ii\else
+ \rlap{\hskip#2\internote
+ \special{ps: slur@Dict begin (\the\internote) GD T#1hgt DP
+ T#1x1 T#1y1 CP P T#1y1
+ \pstiehgt\space T#1dir M \pstieangul\space \pstiemaxhgt\space T#1dash T#1adj 40 DS end}}%
+ \fi}
+
+
+%%%%%%% simple slurs %%%%%%%%%%%%%%%%%
+
+% #1 start pitch #2 final pitch #3 sense(u,d) #4 length[noteskip]
+
+% \s@Y = vert. offset, \y@ii = horiz. offset at the end, \y@iii add to length
+% \y@v = length
+
+\def\C@sl#1#2#3#4{\inhgetn@i#1\relax \n@ii\n@i\inhgetn@i#2\relax
+ \if d#3 \s@vy-\s@vy \ifx\@ne\nxt \y@ii\z@\fi \fi
+ \y@v#4\noteskip\advance\y@v\y@iii\advance\y@ii-\y@iii
+ \rlap{\hskip\y@ii\y@i=\n@ii\internote\advance\y@i\s@vy
+ \y@ii=\n@i\internote\advance\y@ii\s@vy\setbox\z@=\hbox{\s@tx}%
+ \ifx\s@tx\empty\def\tx@sp{1}\else\ifdim\y@v<\tw@nty\internote\def\tx@sp{1.5}%
+ \else\ifdim\y@v<\@l\internote\def\tx@sp{1.2}\else\def\tx@sp{1}\fi\fi\fi
+ \special{ps: slur@Dict begin (\the\internote) GD
+ (\the\y@i) GD (\the\y@ii) GD CP (\the\y@i) GDAR swub
+ CP exch (\the\y@v) GDAR add exch (\the\y@ii) GDAR sub
+ \if d#3 -1 \else 1 \fi \tx@sp\space mul \psslurangul\space
+ \psslurmaxhgt\space \d@sh\space \s@adj\space 90 DS
+ /ax1 ax1 (\the\y@v) GDAR add def /ay1 ay1 (\the\y@ii) GDAR sub
+ (\the\ht\z@) GDAR dir mul add def}\lr@lap{\unhbox\z@}\special{ps: end}}%
+ \@clr\s@tx\gdef\d@sh{\D@sh}\gdef\s@adj{\S@adj}}
+
+
+%%%%%%% breaking the line %%%%%%%%%%%%%%%%%
+
+\def\br@slur{\divide\n@v\tw@
+ \ifodd\n@v % the slur was breaked again
+ \y@i=\lin@pos\advance\y@i\x@skip\advance\y@i-\tw@\p@
+ \advance\y@i\sl@space
+ \ifnum\n@iv<\max@slurs\s@l@slur\n@iv\n@i\th@slift\divide\n@i65536%
+ \n@ii\n@i\advance\n@ii-16384\y@iii=\n@ii\internote
+ \multiply\n@i65536 \n@ii\th@slift\advance\n@ii-\n@i
+ \advance\n@ii-16384\y@ii=\n@ii\internote\advance\y@ii\th@shgt
+ \ifnum\n@vi>\@ne\@upfalse\else\@uptrue\fi
+ \raise\th@salt\rlap{\hskip -2pt\special
+ {ps: slur@Dict begin /in (\the\internote) GD N
+ in (\the\y@ii) GD (\the\y@iii) GD CP S (\the\y@i) GD
+ 4 AR M SB S (\the\y@ii) GDAR SB
+ CP (\the\y@iii) GDAR SB \if@up1\else-1\fi\space
+ 0.13 30 \ifodd\n@vi 1 \else 0 \fi \s@adj\space 90 DS end}}%
+ \else
+ \rlap{\hskip -2pt\special{ps: slur@Dict begin
+ /in (\the\internote) GD N in S\the\n@iv hgt
+ S\the\n@iv lift in M A S\the\n@iv brk
+ CP S (\the\y@i) GDAR SB in 10 AR M A S
+ S\the\n@iv hgt S\the\n@iv lift in M A 4 AR M SB
+ S\the\n@iv alt 4 AR M SB CP S\the\n@iv brk
+ S\the\n@iv alt A 4 AR M SB S\the\n@iv dir
+ 0.13 30 S\the\n@iv dash S\the\n@iv adj 90 DS end}}%
+ \fi
+ \else % the slur was breaked the first time
+ \rlap{\hskip-2pt\special{ps: slur@Dict begin (\the\internote) GD
+ S\the\n@iv hgt S\the\n@iv brk S\the\n@iv x1 S\the\n@iv y1 CP P
+ S\the\n@iv y1 S\the\n@iv hgt S\the\n@iv brk SB 4 AR M A
+ S\the\n@iv dir 0.17 \psslurmaxhgt\space S\the\n@iv dash S\the\n@iv adj 90 DS end}}%
+ \get@bits\n@iv\pss@rega
+ \multiply\n@ii\tw@\global\advance\pss@rega\n@ii\fi}
+
+
+\def\br@cresc{\divide\n@v\tw@
+ \ifodd\n@v % the crescendo was breaked again
+ \y@i=\lin@pos\advance\y@i\x@skip\advance\y@i-\tw@\p@
+ \advance\y@i\sl@space
+ \ifnum\n@iv<\max@slurs\s@l@cresc\n@iv
+ \rlap{\hskip-2pt\divide\n@vi\tw@\special{ps: slur@Dict begin CP S
+ (\the\y@i) GDAR SB S (\the\th@salt) GDAR SB DP CP P S
+ 4 \ifodd\n@vi 2 \else 0 \fi R DHC end}}%
+ \else
+ \rlap{\hskip-2pt\divide\n@vi\tw@\special{ps: slur@Dict begin CP S
+ (\the\y@i) GDAR SB (\the\internote) GD 10 AR M A S
+ C\the\n@iv alt GDAR SB DP CP P S
+ 4 C\the\n@iv dir R DHC end}}\fi
+ \else % the crescendo was breaked the first time
+ \rlap{\hskip-2pt\special{ps: slur@Dict begin
+ C\the\n@iv x1 C\the\n@iv y1 DP CP P S
+ 4 C\the\n@iv dir R C\the\n@iv dir 0 eq
+ { DC } { DHC } ifelse end}}%
+ \get@bits\n@iv\psc@rega
+ \multiply\n@ii\tw@\global\advance\psc@rega\n@ii\fi}
+
+
+\def\br@tie{\divide\n@v\tw@
+ \ifodd\n@v % the tie was breaked again
+ \y@i=\lin@pos\advance\y@i\x@skip\advance\y@i-\tw@\p@
+ \advance\y@i\sl@space
+ \ifnum\n@iv<\max@slurs\s@l@tie\n@iv
+ \ifnum\n@vi>\@ne\@upfalse\else\@uptrue\fi
+ \y@ii\th@salt\advance\y@ii\th@shgt
+ \raise\y@ii\rlap{\hskip-2pt\special{ps: slur@Dict begin
+ (\the\internote) GD (\the\th@shgt) GD DP CP S (\the\y@i) GDAR SB S
+ CP \if@up \pstiehgt\space \else -\pstiehgt\space \fi \pstieangul\space
+ \pstiemaxhgt\space \ifodd\n@vi 1 \else 0 \fi \t@adj\space 40 DS end}}%
+ \else
+ \rlap{\hskip-2pt\special{ps: slur@Dict begin
+ (\the\internote) GD T\the\n@iv hgt DP CP S (\the\y@i)
+ GDAR SB (\the\internote) GD 10 AR M A S
+ T\the\n@iv alt T\the\n@iv hgt A 4 AR M SB DP
+ CP P S \pstiehgt\space T\the\n@iv dir M
+ \pstieangul\space \pstiemaxhgt\space T\the\n@iv dash T\the\n@iv adj 40 DS end}}\fi
+ \else % the tie was breaked the first time
+ \rlap{\hskip-2pt\special{ps: slur@Dict begin
+ (\the\internote) GD T\the\n@iv hgt DP
+ T\the\n@iv x1 T\the\n@iv y1 DP CP P S
+ \pstiehgt\space T\the\n@iv dir M \pstieangul\space \pstiemaxhgt\space
+ T\the\n@iv dash 40 T\the\n@iv adj DS end}}%
+ \get@bits\n@iv\pst@rega
+ \multiply\n@ii\tw@\global\advance\pst@rega\n@ii\fi}
+
+\let\mxps@oldsuspend=\z@suspend
+
+\def\z@suspend{%
+% cut PostScript slurs
+ {\n@iv\z@\n@v\pss@rega\n@vi\pss@regb
+ \loop\ifnum\n@v>\z@
+ \ifodd\n@v{\br@slur}\fi\divide\n@v\f@ur
+ \advance\n@iv\@ne\divide\n@vi\f@ur
+ \repeat}%
+% cut PostScript [de]crescendos
+ {\n@iv=\z@\n@v=\psc@rega\n@vi\psc@regb
+ \loop\ifnum\n@v>\z@
+ \ifodd\n@v{\br@cresc}\fi\divide\n@v\f@ur
+ \advance\n@iv\@ne\divide\n@vi\f@ur
+ \repeat}%
+% cut PostScript ties
+ {\n@iv=\z@\n@v=\pst@rega\n@vi\pst@regb
+ \loop\ifnum\n@v>\z@
+ \ifodd\n@v{\br@tie}\fi\divide\n@v\f@ur
+ \advance\n@iv\@ne\divide\n@vi\f@ur
+ \repeat}%
+ \special{ps: slur@Dict begin /pss@rega \the\pss@rega\space N
+ /psc@rega \the\psc@rega\space N /pst@rega \the\pst@rega\space N end }%
+% do all other mxtex stuff
+ \mxps@oldsuspend}
+
+% checking for lost slurs
+
+\def\checkslurs{
+ \ifcase\pss@rega\else\message{Warning! Opened slur(s) at checkpoint!}\fi
+ \ifcase\psc@rega\else\message{Warning! Opened crescendo(s) at checkpoint!}\fi
+ \ifcase\pst@rega\else\message{Warning! Opened tie(s) at checkpoint!}\fi}
+
+
+%%%%%% common abbreviations %%%%%%%%%%%%%%%%%%%%
+
+\def\isluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\psislurskip}}
+\def\islurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\psislurskip}}
+\def\irsluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\psrslurskip}}
+\def\irslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\psrslurskip}}
+\def\ilsluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\pslslurskip}}
+\def\ilslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\pslslurskip}}
+\def\iLsluru#1#2{\iSlur{#1}{#2}{\psslurraise}{\psLslurskip}}
+\def\iLslurd#1#2{\iSlur{#1}{#2}{-\psslurraise}{\psLslurskip}}
+
+\def\tfslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\psfslurhgt}{\psslurangul}}
+\def\tslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\psslurhgt}{\psslurangul}}
+\def\thslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\pshslurhgt}{\psslurangul}}
+\def\tHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\psHslurhgt}{\psHslurangul}}
+\def\tHHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pstslurskip}{\psHHslurhgt}{\psHHslurangul}}
+
+\def\trfslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psrslurskip}{\psfslurhgt}{\psslurangul}}
+\def\trslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psrslurskip}{\psslurhgt}{\psslurangul}}
+\def\trhslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psrslurskip}{\pshslurhgt}{\psslurangul}}
+\def\trHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psrslurskip}{\psHslurhgt}{\psHslurangul}}
+\def\trHHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psrslurskip}{\psHHslurhgt}{\psHHslurangul}}
+
+\def\tlfslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pslslurskip}{\psfslurhgt}{\psslurangul}}
+\def\tlslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pslslurskip}{\psslurhgt}{\psslurangul}}
+\def\tlhslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pslslurskip}{\pshslurhgt}{\psslurangul}}
+\def\tlHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pslslurskip}{\psHslurhgt}{\psHslurangul}}
+\def\tlHHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\pslslurskip}{\psHHslurhgt}{\psHHslurangul}}
+
+\def\tLfslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psfslurhgt}{\psslurangul}}
+\def\tLslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psslurhgt}{\psslurangul}}
+\def\tLhslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\pshslurhgt}{\psslurangul}}
+\def\tLHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psHslurhgt}{\psHslurangul}}
+\def\tLHHslur#1#2{\tSlur{#1}{#2}{\psslurraise}{\psLslurskip}{\psHHslurhgt}{\psHHslurangul}}
+
+% slur ID, beam ID
+\def\iBsluru#1#2{\gt@pssb{#2}{\tw@\qn@width}\I@slur{#1}{\psbslurraise}{2.4}}
+\def\iBslurd#1#2{\gt@pssb{#2}\z@\I@slur{#1}{-\psbslurraise}0}
+\def\tBfslur{\t@bslur\psfslurhgt\psslurangul}
+\def\tBslur{\t@bslur\psslurhgt\psslurangul}
+\def\tBhslur{\t@bslur\pshslurhgt\psslurangul}
+\def\tBHslur{\t@bslur\psHslurhgt\psHslurangul}
+\def\tBhHslur{\t@bslur\psHHslurhgt\psHHslurangul}
+
+
+\def\itieu#1#2{\iTieu{#1}{#2}{\psitieskip}}
+\def\itied#1#2{\iTied{#1}{#2}{\psitieskip}}
+\def\iltieu#1#2{\iTieu{#1}{#2}{\pslslurskip}}
+\def\iltied#1#2{\iTied{#1}{#2}{\pslslurskip}}
+\def\irtieu#1#2{\iTieu{#1}{#2}{\psrslurskip}}
+\def\irtied#1#2{\iTied{#1}{#2}{\psrslurskip}}
+\def\ttie#1{\tTie{#1}{\psttieskip}}
+\def\tltie#1{\tTie{#1}{\psltieskip}}
+\def\trtie#1{\tTie{#1}{\psrtieskip}}
+
+\def\icresc#1{\Icresc{#1}{\d@nh}{0}}
+\def\idecresc#1{\Idecresc{#1}{\d@nh}{0}}
+\def\tcresc#1{\Tcresc{#1}{\d@nh}{2}}
+\let\tdecresc\tcresc
+
+\def\ilcresc#1{\Icresc{#1}{\d@nh}{-4}}
+\def\ildecresc#1{\Idecresc{#1}{\d@nh}{-4}}
+\def\tlcresc#1{\Tcresc{#1}{\d@nh}{-2}}
+\let\tldecresc\tlcresc
+
+\def\ircresc#1{\Icresc{#1}{\d@nh}{4}}
+\def\irdecresc#1{\Idecresc{#1}{\d@nh}{4}}
+\def\trcresc#1{\Tcresc{#1}{\d@nh}{-6}}
+\let\trdecresc\trcresc
+
+% for compatibility with old MusiXTeX slurs ...
+\let\Tslur\tslur
+\let\Ttie\ttie
+\let\issluru\irsluru
+\let\isslurd\irslurd
+\let\tsslur\tLslur
+\def\ibsluru#1#2{\iSlur{#1}{#2}8{\psrslurskip}}
+\def\ibslurd#1#2{\iSlur{#1}{#2}{-8}{\psrslurskip}}
+\def\tubslur#1#2{\tSlur{#1}{#2}8{\psrslurskip}{\psslurhgt}{\psslurangul}}
+\def\tdbslur#1#2{\tSlur{#1}{#2}8{\pslslurskip}{\psslurhgt}{\psslurangul}}
+\let\tbsluru=\tubslur
+\let\tbslurd=\tdbslur
+\let\istieu\irtieu
+\let\istied\irtied
+\let\itenu\irtieu
+\let\itenl\irtied
+\let\tstie\tltie
+\let\tten\tltie
+\let\Itenu\istieu
+\let\Itenl\istied
+\let\Liftslur\liftslur
+% p1 p2 sense len
+\def\slur#1#2#3#4{\csname islur#3\endcsname{99}{#1}%
+ \rlap{\hskip#4\noteskip\tslur{99}{#2}}}
+\def\tie#1#2#3{\csname itie#2\endcsname{99}{#1}%
+ \rlap{\hskip#3\noteskip\ttie{99}}}
+
+\catcode`\@=\catcodeat
+
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+USAGE:
+~~~~~~
+Basic usage is:
+
+\isluru0g - starts upper slur with ID 0 above the note 'g'
+\tslur0i - terminates slur with ID 0. It will end above or below
+ the note 'i' with respect to the slur direction
+
+You can shift the starting or ending point slightly to the left
+or right using \ilsluru, \ilslurd, \irsluru, \irslurd, \trslur and \tlslur.
+
+And finally you can make the slur a bit more flat than default
+( \tfslur0f ), higher ( \thslur0f ), more higher ( \tHslur0f ) or
+even more higher ( \tHHslur0f ). All combinations with shifting are
+allowed (see the abbreviations above). These commands act like
+\midslur for standard slurs.
+
+If this is not sufficient, you can use the \iSlur and \tSlur and adjust the
+parameter as you want (see comments above their definitions) or even change
+the default parameters.
+
+NOTE 1: The identification parameter should be a number greater
+ or equal to 0 and lower than 10. You can use even higher
+ numbers, but slurs, ties and crescendos with ID >10
+ can not go over page break but can go across line break.
+ Slurs, ties and crescendos with ID >14 can't be breaked at all
+ (these slurs also can not be exactly positioned at a beam, so
+ don't use for example \tbslur{16}0; \ibslur{16}0 is safe).
+ If you know that a line break can not occur inside the slur
+ (probably inside a bar) you can happily use numbers
+ up to 2^31-1, which is also the maximal number of
+ simultaneously opened slurs :-). Such slurs will be also
+ a bit faster...
+
+NOTE 2: You can start a slur, tie and crescendo with the same ID,
+ the ID's are independent. This is not true for crescendos
+ and decrescendos. That means you can say \isluru0f\icresc0,
+ but not \icresc0\idecresc0, in which case you'll get a warning
+ message and the first crescendo will be forgotten.
+
+There are also macros for slurs begining or ending at a beam:
+
+\iBsluru{slur ID}{beam ID}
+\iBslurd{slur ID}{beam ID}
+\tBslur{slur ID}{beam ID}
+
+They are NOT THE SAME as for the original slurs, but a bit smarter...
+
+for example:
+
+\Notes\ibu0i0\iBsluru00\qb0{eh}\tbu0\qb0i\ibu0j0\qb0{jl}\tbu0%
+ \setslurtext{6}\tBslur00\qb0e\en
+
+The \slurtext works for PostScript slurs exactly the same way as
+for the bitmapped ones. When you say '\slurtext3', a number '3' will
+be typeset in the middle of the next closed slur.
+The position of the reference point of the box with text will be
+exactly in the middle horizontally and adjusted according to the
+height of the box in case of upper slur.
+
+This works only for non-breaked slurs, if the slur is breaked,
+the text disappears.
+
+The placing of the slur text is done with a very dirty PostScript
+hack, so I am not really sure that everything you want to typeset
+will be placed at the correct position (if you are interested, see
+the end of psslurs.pro for details). If you find something that won't
+work, let me know.
+
+There is also an unpleasant side-effect: when you look at the
+DVI-file with some standard (non-PostScript) driver, the figure will
+be placed at the end of the slur instead of the middle. From obvious
+reasons this can't be fixed --- TeX can't know where the middle is,
+as the slur shape is defined by a PostScript program.
+
+
+General coding is very simple:
+
+\i[h.shift]slur[u|d]{slur ID}{note height}
+\t[h.shift][slur height]slur{slur ID}{note height}
+
+\iBslur[u|d]{slur ID}{beam ID}
+\tB[slur height]slur{slur ID}{beam ID}
+
+where h. shift can be 'l', 'r' or nothing
+and slur height can be 'f', nothing, 'h', 'H' or 'HH'
+
+Mnemonics: \tlfslur means 'terminate left flat slur'.
+
+
+There are also simple slurs with same invocation and parameters as the
+original ones.
+
+
+Similarly the ties:
+~~~~~~~~~~~~~~~~~~~
+\itieu0e
+\ttie0
+
+\i[h.shift]tie[u|d]{ID}{note height}
+\t[h.shift]tie{ID}
+
+
+And crescendos:
+~~~~~~~~~~~~~~~
+\icresc0
+\tcresc0 draws a crescendo at a default position (defined with
+ \setcrescheight)
+
+NOTE 1: \tcresc is the same as \tdecresc.
+
+NOTE 2: The coding of crescendos is incompatible with original crescendos.
+ The difference (as you notices) is in defining the type
+ (crescendo/decrescendo) at the beginning instead of the end.
+ This can't be fixed, because the TeX must know this at the end
+ of the line when the crescendo is breaked.
+
+
+You can shift the starting and ending point horizontally with
+
+\ilcresc \ildecresc
+\ircresc \irdecresc
+\tlcresc \tldecresc
+\trcresc \trdecresc
+
+to get some space for \mf, \ff etc.
+
+
+Furthermore, you can say:
+
+\Icresc0{-6}0
+\Tcresc0{-8}2
+
+and you will get crescendo with ending point lower than the begining
+one. (The '0' and '2' at the end is horizontal offset in \internote
+from the current point.) Due to some implemenational reasons, you must
+use numbered height when specifying the altitude of the crescendos.
+
+
+
+Dotted slurs and ties
+~~~~~~~~~~~~~~~~~~~~~
+The slurs and ties can be dotted, when you say \dotted anywhere before
+the begining of the slur or tie. The first slur or tie following this
+command will then be drawed with dotted line.
+
+[dangerous bend] When you say \dotted, then ALL slurs and ties
+ from this point will be dotted until you say
+\Solid. Furthermore, inside the \dotted...\Solid you can make some slur or
+tie solid saying \solid before its begining.
+
+NOTE: These macros are taken into account only at the begining
+ of the slur or tie.
+
+
+Collisions of slurs/ties and staff lines
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In PostScript it is possible to do some computations, which are very hard
+to implement in TeX. One of neat features of the PS slurs and ties is
+checking, if the curve passes close the staff line and if so, adjusting
+the altitude of the curve to avoid collision ("black triangles" or narrow
+white space). You can turn this feature on globally (\Sluradjust,
+\Tieadjust) or locally (\sluradjust, \tieadjust), or disable it either
+globally (\Nosluradjust, \Notieadjust) or locally (\nosluradjust,
+\notieadjust). Default is \Sluradjust and \Notieadjust. "Locally"
+means before the next opening command of the slur or tie.
+
+
+Line breaking:
+~~~~~~~~~~~~~~
+The slurs, ties and crescendos going across the line breaks are handled
+automatically. Of course they can go over more lines than two (this is
+true also for ties, though it would be somewhat strange).
+
+There is the classic \breakslur implemented, which sets the height of the
+ending point slur at the end of a line to given number of \internotes.
+
+There is also a switch, \ifslopebrkslurs, indicating whether the ending point
+of the first segment of the breaked slur (at the end of the line) should
+be automatically raised by 3 \internote. You can turn this feature on by
+the \slopebrkslurstrue and off by \slopebrkslursfalse commands, default
+is false.
+
+You can raise or lower the starting point of the slur at the begining of
+the next line with the command \liftslur with ID and the relative offset in
+\internotes measured from the slur beginning height. Its usage and behavior
+is the same as of the original \liftslur, only it is not necessary to code
+it in \atnextstaff{}, just anywhere inside the slur.
+
+Similar is \liftcresc, but it works only for the middle part of crescendos
+broken into three parts. The height of the last part of a broken crescendo
+is defined with the height parameter of \Tcresc.
+
+As said before, anything with ID <10 is breaked fully automatically, but
+you should be careful about the slurs, ties and crescendos with 10 <= ID < 15.
+These can not go acress PAGE break, otherwise you'll get a PostScript error
+like 's11hgt undefined'. Of course the LINE breaking works for them
+automatically too.
+
+When a tie is continuead after breaking at the very beginning of a line,
+only a half of the tie is drawn (the 'very beginning' means that the tie
+would be less than 15pt long). To forbid this feature, say \nohalfties
+(default is \halfties). A font called mxsk is necessary for \halfties.
+
+
+Backwards compatibility
+~~~~~~~~~~~~~~~~~~~~~~~
+
+There are several "aliases" which allow to use the old, bitmapped slur
+commands for PS slurs without any change. There are however a few differences:
+- the \invertslur is not implemented yet
+- the \curve and \midslur macros have no effect
+
+
+
+
+Memory requrements
+~~~~~~~~~~~~~~~~~~
+
+I have tried to make the macros as small and fast as possible. The problem
+about them is not in their size, but in their output. Each \i... and \t...
+produces a \special command, which must be stored into the TeX's main memory.
+Therefore, if too many slur occurs in one page, some memory troubles could
+occur. In that case either use BigTeX (but I suppose you already use it) or
+use the bitmapped slurs. I will try to reduce the memory requirements, but
+do not expect any miracles. There is a lot of things to be passed to the
+PostScript part...
+
+
+
+About the PS header:
+~~~~~~~~~~~~~~~~~~~~
+The slurs need the PS header file psslurs.pro to be included into the
+output PostScript file. You have to say this to dvips with command
+
+\special{header=psslurs.pro}
+
+placed anywhere inside the piece. As default, this is done when \inputting
+the MusiXpss, but if you include the MusiXpss.tex into a format, the first
+page of your document will be always empty. If you want the macros included
+in your format file, comment the line 13 of this file and don't forget
+to copy it into your source file.
+
+Warning to dvidvi users: If you select a set of pages from your document,
+don't forget to include the page in which the \special command was used
+(default is first page). Otherwise the dvips won't find this command and
+won't include the header file, putting the PostScript device into a serious
+problems. You can also use the "-h psslurs.pro" option to tell dvips to add
+the header file manually.
+
+
+About the slur shape:
+~~~~~~~~~~~~~~~~~~~~~
+The shape is defined via trapezium:
+
+ c
+ <----> b
+ <----------------------------------------->
+ _ _ _________________________________ _ _
+ | /^1 _____/ ^2 ^3 ^4\_____ 5^\ | ^
+ / __/ \___ \ |
+ | /_/ \ \_\ | |
+ // this is the 'slur' \\ | a
+ |/ \\| |
+ |_________________________________________| v
+ 0 6
+
+Points 0 and 6 are the starting and ending points. When the slope is not
+zero, the trapezium is simply rotated, NOT slanted.
+
+'a' is computed as sqrt(b)*2, bounded with <3,\psslurmaxhgt> and multiplied
+by the given height coeficient (see \tSlur and \t..slur, defaults to 1)
+The units are not equal to anything common, the values were found
+after a lot of testing.
+
+'c' is computed as angularity*b. Default angularity is 0.17, reasonable
+values should lie in <0.1, 0.3>.
+
+Then the shape is corrected when the slur is so steep that its extreme
+in horizontal direction lies inside the slur and shifted up or down
+if it's top would be too close to nearest staff line (!!!!!!!!).
+
+The slur then consists of two bezier curves:
+from 0 to 3 with control points 1 and 2 and
+from 3 to 6 with control points 4 and 5.
+
+The shading is made according to its length and current \internote.
+
+
+
+If you are interested, see a slightly commented PS code in psslurs.pro.
+
+Bug reports and complainments are welcomed at:
+
+ Stanislav Kneifl,
+
+ standa@hiero.cz
+
+
+
+HISTORY
+~~~~~~~
+
+0.92 (12.5.2002)
+ added: \nosluradjust, \sluradjust, \notieadjust, \tieadjust
+ added: \slopebrkslurtrue, \slopebrkslurfalse
+ fixed: shaded slurs now do not break up to separate curves
+ at high resolutions
+
+0.91 (10.1.2002)
+ First public release, adopted from OpusTeX version.
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixstr.tex b/Master/texmf-dist/tex/generic/musixtex/musixstr.tex
index cde052ad37f..7fc44796ac6 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixstr.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixstr.tex
@@ -16,7 +16,7 @@
% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MUsiXSTRingaccents T.57\space<6 September 1996>}%
+\immediate\write16{MUsiXSTRingaccents T.57\space<6 September 1996>}%
\ifx\undefined\sevenrm
\iflongDCfontnames
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixsty.tex b/Master/texmf-dist/tex/generic/musixtex/musixsty.tex
index ebe52ae3126..9078883af25 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixsty.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixsty.tex
@@ -18,7 +18,7 @@
%
\ifx\undefined\Tenpoint \else \endinput\fi
-\immediate\write10{MusiXtextSTYle T.94\space<11 May 1999>}%
+\immediate\write16{MusiXtextSTYle T.94\space<11 May 1999>}%
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
\edef\catcode@gt{\the\catcode`\>}\catcode`\>=12
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtex.ins b/Master/texmf-dist/tex/generic/musixtex/musixtex.ins
deleted file mode 100644
index 6e0d4a70a24..00000000000
--- a/Master/texmf-dist/tex/generic/musixtex/musixtex.ins
+++ /dev/null
@@ -1,7 +0,0 @@
-\input musixtex
-\input musixcpt
-\input musixsty
-\tracingstats=2\relax
-\dump
-
-
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
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtmr.tex b/Master/texmf-dist/tex/generic/musixtex/musixtmr.tex
new file mode 100644
index 00000000000..ad219dbbc97
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtmr.tex
@@ -0,0 +1,74 @@
+%%
+%% musixtmr.tex : Times-series fonts definition for MusiXTeX
+%%
+%% usage:
+%% \input musixtex
+%% \input musixtmr
+%% ...
+%%
+%% This file is public domain.
+%%
+%% Author:
+%% Hiroaki MORIMOTO <CQX05646 at nifty dot com>
+%% Tokyo, Japan
+%% URL(en): http://homepage1.nifty.com/kuuku/pub/musixtex/index-e.html
+%% (jp): http://homepage1.nifty.com/kuuku/pub/musixtex/index.html
+%%
+%% reference: musixtex.tex (T.99) 268-508
+%% MusiXTeX: (c) Daniel Taupin, et al.
+%%
+%% History: see trailer.
+%
+\immediate\write16{MusiXTimesFonts\space<2009/10/15>}
+%
+% 8pt roman, bold, and italic
+\font\eightrm=ptmr7t at 8pt
+\font\eightbf=ptmb7t at 8pt
+\font\eightit=ptmri7t at 8pt
+%
+% 9pt
+\font\ninerm=ptmr7t at 9pt
+\font\ninebf=ptmb7t at 9pt
+\font\nineit=ptmri7t at 9pt
+%
+% 10pt
+\font\tenrm=ptmr7t
+\font\tenbf=ptmb7t
+\font\tenit=ptmri7t
+%
+% 12pt
+\font\twelverm=ptmr7t scaled \magstep 1
+\font\twelvebf=ptmb7t scaled \magstep 1
+\font\twelveit=ptmri7t scaled \magstep 1
+%
+% Large fonts for titles
+% (If you prefer Times-bold, use ptmb7t instead of ptmr7t)
+\font\bigfont=ptmr7t scaled \magstep2 % 14pt
+\font\Bigfont=ptmr7t scaled \magstep3 % 17pt
+\font\BIgfont=ptmr7t scaled \magstep4 % 20pt
+\font\BIGfont=ptmr7t scaled \magstep5 % 25pt
+%
+% PMX changes font assignment in pmx.tex
+% \BIGfont=\fontid bx10 scaled\magstep4
+% \Bigfont=\fontid bx10 scaled\magstep2
+\ifx\pmxversion\undefined\relax\else
+ \font\Bigfont=ptmr7t scaled \magstep2 % 14pt
+ \font\BIGfont=ptmr7t scaled \magstep4 % 20pt
+\fi
+%
+\normtype
+\endinput
+%%
+%% History
+%%
+%% 2001/08/21
+%% first publish
+%% 2004/12/24
+%% no functional change. (email & real address change)
+%% 2007/06/11
+%% no functional change. (email protection, real address change, URL change)
+%% 2008/08/01
+%% Font assignment change on PMX.
+%% 2009/10/15
+%% small update for MusiXTeX T.114 final release.
+%%
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtri.tex b/Master/texmf-dist/tex/generic/musixtex/musixtri.tex
index 0b4f2923991..52375e170df 100644
--- a/Master/texmf-dist/tex/generic/musixtex/musixtri.tex
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtri.tex
@@ -17,9 +17,9 @@
% Boston, MA 02111-1307, USA.
%
-\immediate\write10{MusiXTRIplepoint 0.36\space<1 March 1995>}
+\immediate\write16{MusiXTRIplepoint 1.05\space<30 April 2002>}
-\ifx\undefined\lpppt \else \endinput \fi
+\ifx\undefined\hlppp \else \endinput \fi
\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
diff --git a/Master/texmf-dist/tex/generic/musixtex/tuplet.tex b/Master/texmf-dist/tex/generic/musixtex/tuplet.tex
new file mode 100644
index 00000000000..0dcb7aca469
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/tuplet.tex
@@ -0,0 +1,147 @@
+%
+% tuplet.tex - conventional tuplet brackets for MusiXTeX.
+% Col. G. L. Sicherman. Last revised 2003-05-17.
+%
+% MusiXTeX is free software, licensed under the GNU General Public
+% License. This file is also free software. You may use it and
+% modify it as you please so long as you leave this message intact.
+%
+% To use this file with MusiXTeX, refer to it in your source code
+% after MusiXTeX:
+%
+% \input musixtex
+% \input tuplet
+%
+% This file uses macros defined in musixtex.tex.
+%
+% Standard MusiXTeX uses \uptrio and \downtrio to print tuplet brackets.
+% This file defines \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 over the notes, starting at pitch "a",
+% 2.5\noteskip wide, with a slope down of 4-1/2 degrees:
+%
+% \def\tuplettxt{\smallppff 6\/\/}
+% \downtuplet{a}{2.5}{-4}
+%
+% Send comments, complaints, and bouquets to the Colonel at
+% <colonel@monmouth.com>.
+%
+\makeatletter % Names of internal macros contain atpersats.
+
+% 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{\smallppff3\/\/}
+
+%%% 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\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}
+
+\makeatother
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/underbracket.sty b/Master/texmf-dist/tex/generic/musixtex/underbracket.sty
new file mode 100644
index 00000000000..994aee60ba1
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/underbracket.sty
@@ -0,0 +1,190 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% LaTeX package underbracket
+%
+% draws brackets to underline text
+% (especially, but not exclusively, syllables of song text)
+%
+% v1.2 by Bernd Jantzen
+% For e-mail contact please use "ctan" before the "@"-sign
+% and "bernd-jantzen.de" after it to form my address
+% (not given in full clear text here to prevent spam).
+%
+% This package draws brackets to underline text (especially,
+% but not exclusively, syllables of song text).
+% It may be combined with musixtex/musixlyr, within the argument of
+% the \setlyrics command or outside the music score.
+% It provides several macros to define brackets which may e.g. start
+% and end centered below syllables.
+% Three length variables are provided to allow a fine adjustment
+% of the bracket parameters.
+%
+% This material is subject to the LaTeX Project Public License.
+% See http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
+% for the details of that license.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Commands:
+%
+% \underbracket{TEXT}
+% draws a bracket underlining TEXT
+% the bracket starts below the left end of TEXT
+% and stops below the right end of TEXT
+%
+% \Underbracket{TEXT}
+% like \underbracket, but reserves no vertical space below the text
+%
+% \cunderbracket{LEFT}{TEXT}{RIGHT}
+% draws a bracket underlining LEFTTEXTRIGHT
+% the bracket starts centered below LEFT and stops centered below RIGHT
+%
+% \cUnderbracket{LEFT}{TEXT}{RIGHT}
+% like cunderbracket, but reserves no vertical space below the text
+%
+%
+% The commands \[c]underbracket do well in normal text which is aligned
+% according to the baseline. The vertical space reserved below the text
+% guarantees the distance to the next line.
+% The commands \[c]Underbracket do well within the \setlyrics command of
+% musixlyr where the text is vertically centered between the staves. Vertical
+% space reserved below the text would shift the whole text upwards here.
+%
+%
+% Adjustable length parameters:
+% (change e.g. with \setlength{\underbracketheight}{4pt})
+%
+% \underbracketwidth (default 0.3pt):
+% linewidth of the bracket
+%
+% \underbracketheight (default 3pt):
+% height of the bracket (length of the vertical lines)
+%
+% \underbracketsep (default 2pt):
+% vertical distance between the lowest part of the text
+% and the upper end of the bracket;
+% also minimal vertical distance below the bracket
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\ProvidesPackage{underbracket}[2004/03/24 v1.2 LaTeX package underbracket]
+\NeedsTeXFormat{LaTeX2e}
+
+% declare length variables
+\newlength{\underbracketwidth}
+\newlength{\underbracketheight}
+\newlength{\underbracketsep}
+\newlength{\underbracketlength}
+\newlength{\underbracketdist}
+
+% need calc pages for adding lengts
+\RequirePackage{calc}
+
+% \underbracket{TEXT}
+% draws a bracket underlining TEXT
+% the bracket starts below the left end of TEXT
+% and stops below the right end of TEXT
+%
+\newcommand{\underbracket}[1]{%
+ \settodepth{\underbracketdist}{#1}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \rule[-\underbracketdist-\underbracketsep]{0pt}{\underbracketsep}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ \settowidth{\underbracketlength}{#1}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}%
+ \mbox{#1}%
+ \makebox[0pt][r]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ }%
+}
+
+% \Underbracket{TEXT}
+% like \underbracket, but reserves no vertical space below the text
+%
+\newcommand{\Underbracket}[1]{%
+ \settodepth{\underbracketdist}{#1}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}%
+ \settowidth{\underbracketlength}{#1}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}}%
+ \mbox{#1}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][r]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}%
+ }%
+}
+
+% \cunderbracket{LEFT}{TEXT}{RIGHT}
+% draws a bracket underlining LEFTTEXTRIGHT
+% the bracket starts centered below LEFT and stops centered below RIGHT
+%
+\newcommand{\cunderbracket}[3]{%
+ \settodepth{\underbracketdist}{#1#2#3}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \rule[-\underbracketdist-\underbracketsep]{0pt}{\underbracketsep}%
+ \settowidth{\underbracketlength}{#1}%
+ \makebox[0pt][l]{%
+ \hspace*{0.5\underbracketlength}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}}%
+ \mbox{#1}%
+ \settowidth{\underbracketlength}{#2}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}%
+ \mbox{#2}%
+ \settowidth{\underbracketlength}{#3}%
+ \makebox[0pt][l]{%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}%
+ \mbox{#3}%
+ }%
+}
+
+% \cUnderbracket{LEFT}{TEXT}{RIGHT}
+% like cunderbracket, but reserves no vertical space below the text
+%
+\newcommand{\cUnderbracket}[3]{%
+ \settodepth{\underbracketdist}{#1#2#3}%
+ \addtolength{\underbracketdist}{\underbracketsep+\underbracketheight}%
+ \mbox{%
+ \settowidth{\underbracketlength}{#1}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \hspace*{0.5\underbracketlength}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}}}%
+ \mbox{#1}%
+ \settowidth{\underbracketlength}{#2}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{\underbracketlength}{\underbracketwidth}}}%
+ \mbox{#2}%
+ \settowidth{\underbracketlength}{#3}%
+ \raisebox{0pt}[0pt][0pt]{\makebox[0pt][l]{%
+ \rule[-\underbracketdist]{0.5\underbracketlength}{\underbracketwidth}%
+ \makebox[0pt]{%
+ \rule[-\underbracketdist]{\underbracketwidth}{\underbracketheight}}}}%
+ \mbox{#3}%
+ }%
+}
+
+% adjustable length parameters
+%
+% linewidth of the bracket
+\setlength{\underbracketwidth}{0.3pt}
+%
+% height of the bracket (length of the vertical lines)
+\setlength{\underbracketheight}{3pt}
+%
+% vertical distance between the lowest part of the text
+% and the upper end of the bracket;
+% also minimal vertical distance below the bracket
+\setlength{\underbracketsep}{2pt}
+