summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/musixtex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-12 23:46:03 +0000
committerKarl Berry <karl@freefriends.org>2006-01-12 23:46:03 +0000
commit873660d1a83ece926fe7206288dda9c36b349c1b (patch)
treea48f77125c309a355b5d0eb58d6b24446abe9d62 /Master/texmf-dist/tex/generic/musixtex
parent2939242967231097459df0fc3150fabc2f639111 (diff)
generic 1
git-svn-id: svn://tug.org/texlive/trunk@613 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/musixtex')
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixadd.tex149
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixbar.tex148
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixbbm.tex79
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixblx.tex44
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixbm.tex77
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixcho.tex68
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixcpt.sty3
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixcpt.tex813
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixdat.tex59
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixdia.tex110
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixeng.tex42
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixevo.tex19
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixext.tex48
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixfll.sty2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixfll.tex44
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixgre.tex351
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixgui.tex41
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixhor.tex40
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixhou.tex58
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixinv.tex2
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixlit.tex82
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixltx.tex32
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixmad.tex149
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixper.tex195
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixpoi.tex64
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixref.tex305
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixslu.tex4
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixsqr.tex3
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixste.tex35
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixstf.tex28
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixstr.tex64
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixsty.tex514
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtex.ins7
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtex.sty3
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtex.tex4505
-rw-r--r--Master/texmf-dist/tex/generic/musixtex/musixtri.tex64
36 files changed, 8251 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixadd.tex b/Master/texmf-dist/tex/generic/musixtex/musixadd.tex
new file mode 100644
index 00000000000..a899905acac
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixadd.tex
@@ -0,0 +1,149 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\ifx\staffspacingix\undefined\else\endinput\fi
+
+\immediate\write10{MusiXADDitional instruments T.99\space<24 March 2000>}%
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\let\@wloG\wlog
+\def\wlog#1{}
+
+\let\maxinstruments\nin@
+
+\let\interinstrumentvii\interinstrument
+\let\interinstrumentviii\interinstrument
+\let\interinstrumentix\interinstrument
+
+\let\T@Rvii\z@
+\let\T@Rviii\z@
+\let\T@Rix\z@
+
+\let\staffspacingvii\@ne
+\let\staffspacingviii\@ne
+\let\staffspacingix\@ne
+
+\newskip\k@ivii
+\newskip\k@iviii
+\newskip\k@iix
+
+\newskip\i@nvii
+\newskip\i@nviii
+\newskip\i@nix
+
+\newskip\b@xvii \newskip\b@zvii
+\newskip\b@xviii\newskip\b@zviii
+\newskip\b@xix \newskip\b@zix
+
+\newskip\c@xvii \newskip\c@zvii
+\newskip\c@xviii\newskip\c@zviii
+\newskip\c@xix \newskip\c@zix
+
+\newskip\d@xvii \newskip\d@zvii
+\newskip\d@xviii\newskip\d@zviii
+\newskip\d@xix \newskip\d@zix
+
+\newskip\e@xvii \newskip\e@zvii
+\newskip\e@xviii\newskip\e@zviii
+\newskip\e@xix \newskip\e@zix
+
+\newcount\b@pvii \newcount\b@nvii
+\newcount\b@pviii\newcount\b@nviii
+\newcount\b@pix \newcount\b@nix
+
+\newcount\n@pvii \n@pvii\@ne
+\newcount\n@pviii\n@pviii\@ne
+\newcount\n@pix \n@pix\@ne
+
+\newskip\s@xvii
+\newskip\s@xviii
+\newskip\s@xix
+\newskip\s@Yvii
+\newskip\s@Yviii
+\newskip\s@Yix
+\newskip\s@avii
+\newskip\s@aviii
+\newskip\s@aix
+\newtoks\s@svii \s@svii={x}
+\newtoks\s@sviii\s@sviii={x}
+\newtoks\s@six \s@six={x}
+\newcount\s@yvii
+\newcount\s@yviii
+\newcount\s@yix
+\newcount\s@Nvii
+\newcount\s@Nviii
+\newcount\s@Nix
+\newcount\s@zvii \s@zvii\maxdimen
+\newcount\s@zviii\s@zviii\maxdimen
+\newcount\s@zix \s@zix\maxdimen
+\newtoks\s@dvii
+\newtoks\s@dviii
+\newtoks\s@dix
+
+\newcount\a@svii \newcount\o@svii
+\newcount\a@sviii\newcount\o@sviii
+\newcount\a@six \newcount\o@six
+
+\newtoks\a@cvii \a@cvii={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cviii \a@cviii={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cix \a@cix={{\z@}{\z@}{\z@}{\z@}}
+
+\newtoks\o@cvii
+\newtoks\o@cviii
+\newtoks\o@cix
+
+\newtoks\m@tvii
+\newtoks\m@tviii
+\newtoks\m@tix
+
+\def\resetlayout{\let\interfacteur\nin@
+ \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@
+ \let\n@lvii\fiv@ \let\n@lviii\fiv@ \let\n@lix\fiv@
+ \resetclefsymbols}
+
+\def\resetclefsymbols{%
+ \let\bassc@si\z@ \let\bassc@sii\z@ \let\bassc@siii\z@ \let\bassc@siv\z@
+ \let\bassc@sv\z@ \let\bassc@svi\z@ \let\bassc@svii\z@ \let\bassc@sviii\z@ \let\bassc@six\z@
+ \let\altoc@si\z@ \let\altoc@sii\z@ \let\altoc@siii\z@ \let\altoc@siv\z@
+ \let\altoc@sv\z@ \let\altoc@svi\z@ \let\altoc@svii\z@ \let\altoc@sviii\z@ \let\altoc@six\z@
+ \let\treblec@si\z@ \let\treblec@sii\z@ \let\treblec@siii\z@ \let\treblec@siv\z@
+ \let\treblec@sv\z@ \let\treblec@svi\z@ \let\treblec@svii\z@ \let\treblec@sviii\z@ \let\treblec@six\z@
+}
+
+% allow one morz gourp of instruments.
+
+\let\maxgroups\f@ur % maximum three groups of instruments or choirs
+
+\newskip\g@biv
+\newskip\g@hiv
+
+\let\lowersonginstrumiv\maxdimen
+\let\uppersonginstrumiv\z@
+
+
+\let\nbinstruments\maxinstruments
+\normalnotesize\resetlayout
+\let\nbinstruments\@ne
+
+\let\wlog\@wloG
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixbar.tex b/Master/texmf-dist/tex/generic/musixtex/musixbar.tex
new file mode 100644
index 00000000000..bedcb1ebbb4
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixbar.tex
@@ -0,0 +1,148 @@
+%%%%%%%%%% Hiding/printing bar lines individually %%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Here comes a bunch of rather general macros which enable printing or
+% hiding barlines for each staff and inter-staff space individually:
+%
+% Mthimkhulu Molekwa <MMolekwa@rrs.co.za>
+
+\ifx\indivbarrules\undefined\else\endinput\fi
+
+\immediate\write10{MusiXBAR printing or hiding seperate bar lines 1.01\space<23 Februar 2000>}%
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+%\makeatletter
+
+\newdimen\barline@depth
+
+\def\rul@indiv#1{%
+ \n@loop
+ \Comp@High
+ \expandafter\ifx\csname s@b\romannumeral\noinstrum@nt\endcsname\relax
+ \multiply\barline@depth -1\relax
+ \advance\barline@depth\altitude
+ \else
+ \barline@depth=0pt\relax
+ \fi
+ {\expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname 1%
+ \y@v=0pt\relax
+ \fi
+ \raise\altitude\rlap{\vrule\@depth\barline@depth\@width#1\@height\y@v}}%
+ \barline@depth\altitude
+ \advance\barline@depth\y@v
+ \repeat
+ \addspace#1}
+
+\def\rul@indiv@#1{\n@loop{\prul@indiv@#1}\repeat\addspace#1}
+
+\def\prul@indiv@#1{%
+ \y@v\interportee \C@Inter\advance\y@v-\stem@skip
+ \expandafter\ifx\csname s@b\romannumeral\noinstrum@nt\endcsname\relax
+ \multiply\barline@depth -1\relax
+ \advance\barline@depth\altitude
+ \else
+ \barline@depth=0pt\relax
+ \fi
+ {\expandafter\ifx\csname h@bl\romannumeral\noinstrum@nt\endcsname 1%
+ \y@v=0pt\relax
+ \fi
+ \p@loop
+ \raise\altportee\rlap{%
+ \vrule\@depth\barline@depth\@width#1\@height\y@v}%
+ \count@portee
+ \repeat}%
+ \barline@depth\altitude
+ \advance\barline@depth\y@v}
+
+%== Required to use the following macros
+\def\indivbarrules{%
+ \let\writ@rule\rul@indiv
+ \sepbarrule 1}
+
+\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
+\def\conbarrule#1{%
+ \if 1#1\else\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}
+
+%== shows bar line for specified instrument
+\def\showbarrule#1{\expandafter\let\csname h@bl\romannumeral#1\endcsname\relax}
+
+%== separates barlines in multistaff instruments
+\def\rul@sep@#1{\n@loop{\prul@sep#1}\repeat\addspace#1}
+
+\def\prul@sep#1{%
+ \y@v\interportee \C@Inter\advance\y@v-\stem@skip
+ \p@loop
+ \hbox{\raise\altportee\rlap{%
+ \vrule\@depth\hlthick\@width#1\@height\y@v}}%
+ \count@portee\repeat}
+
+\def\Sepbarrules{\let\writ@rule\rul@sep@ }
+
+%-\makeatother
+
+\catcode`\@=\catcodeat
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Here comes an example of how to use these macros
+
+%%%%% Pre-amble
+\input musixtex
+\input musixbar
+
+\instrumentnumber3
+\setmeter3{{\meterfrac{3}{4}}}
+\setmeter2{{\meterfrac{2}{4}}}
+\setmeter1{{\meterfrac{3}{8}}}
+\nobarnumbers
+\indivbarrules
+\sepbarrule2
+\sepbarrule3
+
+%%%%% Spacing
+\beforeruleskip=0.5\afterruleskip
+\interinstrument=4\Interligne
+
+%%%%% Macros
+\let\ni\nextinstrument
+
+%%%%% Music
+\linegoal2
+\startpiece\addspace\afterruleskip
+\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
+\hidebarrule2\hidebarrule3\bar
+\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
+\showbarrule2\bar
+\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
+\hidebarrule2\showbarrule3\bar
+\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
+\showbarrule2\hidebarrule3\bar
+\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
+\hidebarrule2\bar
+\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
+\showbarrule2\showbarrule3\bar
+\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
+\hidebarrule2\hidebarrule3\bar
+\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
+\showbarrule2\bar
+\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
+\hidebarrule2\showbarrule3\bar
+\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
+\showbarrule2\hidebarrule3\bar
+\NOtes\pt f\qa f\ni\qa f\ni\qa f\en
+\hidebarrule2\bar
+\NOtes\multnoteskip{.333}\Tqbu fff\ni\qa f\ni\qa f\en
+\showbarrule2\showbarrule3\stoppiece
+\bye
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex b/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex
new file mode 100644
index 00000000000..c5e08da155f
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixbbm.tex
@@ -0,0 +1,79 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\ifx\undefined\ibbbbbu
+ \input musixbm
+\fi
+
+\immediate\write10{MusiXBBeaM T.405\space<30 October 1995>}% 256th beams
+
+\ifx\undefined\ibbbbbbu \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\newdimen\g@xi \newskip\g@zi
+\newdimen\g@xii \newskip\g@zii
+\newdimen\g@xiii\newskip\g@ziii
+\newdimen\g@xiv \newskip\g@ziv
+\newdimen\g@xv \newskip\g@zv
+\newdimen\g@xvi \newskip\g@zvi
+%\newdimen\g@xvii \newskip\g@zvii
+%\newdimen\g@xviii\newskip\g@zviii
+%\newdimen\g@xix \newskip\g@zix
+
+\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\ibbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \i@bbbbbbu}
+\def\ibbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \i@bbbbbbl}
+
+\def\i@bbbbbbu#1#2{%
+ \ifnum\b@n=\z@ \i@bbbbbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne
+ \C@ba\d@z\@ne \C@ba\e@z\@ne \C@ba\f@z\@ne \fi \n@bbbbbbu}
+\def\i@bbbbbbl#1#2{%
+ \ifnum\b@n=\z@ \i@bbbbbl{#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 \C@ba\f@z\m@ne \fi \n@bbbbbbl}
+
+\def\nbbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \Dec@b\@ne\n@bbu
+ \Dec@b\tw@\n@bbbu \Dec@b\thr@@\n@bbbbu \Dec@b\f@ur\n@bbbbbu
+ \Dec@b\fiv@\n@bbbbbbu}
+\def\nbbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \Dec@b\@ne\n@bbl
+ \Dec@b\tw@\n@bbbl \Dec@b\thr@@\n@bbbbl \Dec@b\f@ur\n@bbbbbl
+ \Dec@b\fiv@\n@bbbbbbl}
+
+\def\n@bbbbbbu{\C@nb\g@z\g@x\fiv@\qd@skip}
+\def\n@bbbbbbl{\C@nb\g@z\g@x\fiv@\z@}
+
+\def\tbbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \t@bbbbbbu}
+\def\tbbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \t@bbbbbbl}
+
+\def\t@bbbbbu{\n@v\fiv@ \C@b\t@bbbbbbu\n@bbbbbu\y@i\f@z \beam@pos\f@x \t@xbu}
+\def\t@bbbbbl{\n@v\fiv@ \C@b\t@bbbbbbl\n@bbbbbl\y@i\f@z \beam@pos\f@x \t@xbl}
+
+\def\t@bbbbbbu{\n@v\si@ \C@b\empty\n@bbbbbu\y@i\g@z \beam@pos\g@x \t@xbu}
+\def\t@bbbbbbl{\n@v\si@ \C@b\empty\n@bbbbbl\y@i\g@z \beam@pos\g@x \t@xbl}
+
+\def\Ibbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctg \I@bu\i@bbbbbbu}
+\def\Ibbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctg \I@bl\i@bbbbbbl}
+
+\catcode`\@=\catcodeat
+\endinput
+
+
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixblx.tex b/Master/texmf-dist/tex/generic/musixtex/musixblx.tex
new file mode 100644
index 00000000000..bcb76f5e02d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixblx.tex
@@ -0,0 +1,44 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% (Nicolas Brouard)
+
+\immediate\write10{MusiXBigLateX 0.36\space<1 March 1995>}%
+
+\ifx\undefined\largevaugment \else \endinput \fi
+
+\newenvironment{music}{\catcodesmusic\parskip0pt\resetlayout}{}%
+
+\newdimen\largevaugment \newdimen\largehaugment
+
+\newenvironment{largemusic}{\vfill\eject\catcodesmusic\parskip0pt
+ \resetlayout
+ \edef\theoldtextwidth{\the\textwidth}%
+ \edef\theoldtextheight{\the\textheight}%
+ \def\Fullwidth{185mm}\def\Fullheight{260mm}%
+ \largevaugment\Fullheight \advance\largevaugment-\theoldtextheight
+ \largehaugment\Fullwidth \advance\largehaugment-\theoldtextwidth
+ \divide\largevaugment2 \divide\largehaugment2
+ \advance\voffset\largevaugment \advance\hoffset-\largehaugment
+ \xdef\thelargehoffset{\the\hoffset}%
+ \hsize\Fullwidth \textwidth\Fullwidth
+
+ \bgroup\textwidth\Fullwidth\hsize\Fullwidth\vsize\Fullheight}%
+ {\egroup\advance\voffset.5\largevaugment
+ \clearpage\advance\voffset-.5\largevaugment}
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixbm.tex b/Master/texmf-dist/tex/generic/musixtex/musixbm.tex
new file mode 100644
index 00000000000..c5e7a344b78
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixbm.tex
@@ -0,0 +1,77 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXBeaM T.94\space<11 May 1999>}%
+
+\ifx\undefined\ibbbbbu \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\let\@wloG\wlog
+\def\wlog#1{}
+
+\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
+
+\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@ctcde}
+
+\def\ibbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctf \i@bbbbbu}
+\def\ibbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctf \i@bbbbbl}
+
+\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}
+
+\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@bbbbbu{\C@nb\f@z\f@x\f@ur\qd@skip}
+\def\n@bbbbbl{\C@nb\f@z\f@x\f@ur\z@}
+
+\def\tbbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctf \t@bbbbbu}
+\def\tbbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctf \t@bbbbbl}
+
+\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@bbbbu\y@i\f@z \beam@pos\f@x \t@xbu}
+\def\t@bbbbbl{\n@v\fiv@ \C@b\empty\n@bbbbl\y@i\f@z \beam@pos\f@x \t@xbl}
+
+\def\Ibbbbbu#1{\s@l@ctbeam#1\relax \s@l@ctf \I@bu\i@bbbbbu}
+\def\Ibbbbbl#1{\s@l@ctbeam#1\relax \s@l@ctf \I@bl\i@bbbbbl}
+
+\def\cccccu{\q@symbol\n@vii44\let\st@m\up@flag \g@q}
+\def\zcccccu{\advancefalse\cccccu}
+\def\cccccl{\q@symbol\n@vii49\let\st@m\down@flag \g@q}
+\def\zcccccl{\advancefalse\cccccl}
+\def\ccccca{\q@symbol\@ccccca}
+
+\let\wlog\@wloG
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixcho.tex b/Master/texmf-dist/tex/generic/musixtex/musixcho.tex
new file mode 100644
index 00000000000..a0da766ed4d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixcho.tex
@@ -0,0 +1,68 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXCHOir T.89\space<24 March 1998>}%
+
+\ifx\undefined\braceheight \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+\catcodesmusic
+
+% big parentheses for e.g. multiline text
+
+\newskip\braceheight \braceheight=4\Interligne\relax
+\def\ChoirStrut{\vphantom{\^Wgjpqy}}
+
+\def\biglbrace{\let\@Ti\llap \let\@Tii\{\relax \C@br}
+\def\bigrbrace{\let\@Ti\rlap \let\@Tii\}\relax \C@br}
+\def\C@br{\C@tx{\@Ti{$\left\@Tii\vbox\@to\braceheight{}\right.\n@space$}\vss}}
+
+% multiline text
+
+\def\@kti{\kern\thr@@\Internote\strut}
+\def\@kmi{\kernm\Internote\strut}
+
+\def\Dtx#1|#2*{\C@tx{\lrlap{\@kti#1\ChoirStrut}\lrlap{\@kti#2\ChoirStrut}\vss}}
+\def\Drtx#1|#2*{\C@tx{\rlap{\@kmi#1\ChoirStrut}\rlap{\@kmi#2\ChoirStrut}\vss}}
+
+\def\Ttx#1|#2|#3*{\C@tx{\lrlap{\@kti#1\ChoirStrut}\lrlap{\@kti#2\ChoirStrut}\lrlap{\@kti#3\ChoirStrut}\vss}}
+\def\Trtx#1|#2|#3*{\C@tx{\rlap{\@kmi#1\ChoirStrut}\rlap{\@kmi#2\ChoirStrut}\rlap{\@kmi#3\ChoirStrut}\vss}}
+
+\def\Qtx#1|#2|#3|#4*{\C@tx{\lrlap{\@kti#1\ChoirStrut}\lrlap{\@kti#2\ChoirStrut}%
+ \lrlap{\@kti#3\ChoirStrut}\lrlap{\@kti#4\ChoirStrut}\vss}}
+\def\Qrtx#1|#2|#3|#4*{\C@tx{\rlap{\@kmi#1\ChoirStrut}\rlap{\@kmi#2\ChoirStrut}\rlap{\@kmi#3\ChoirStrut}%
+ \rlap{\@kmi#4\ChoirStrut}\vss}}
+
+\def\tx#1*{\C@tx{\lrlap{\@kti#1\ChoirStrut}\vss}}
+\def\rtx#1*{\C@tx{\rlap{\@kmi#1\ChoirStrut}\vss}}
+
+% longation rule
+
+\newskip\@ihf
+\def\thf{\getcurpos\advance\y@v-\@ihf \advance\y@v-\tw@\Interligne
+ \llap{\vrule\@width\y@v\@height\lthick\kern\Interligne}}%
+
+\def\ixhf#1{\setbox\ch@box\hbox{#1}\getcurpos \advance\y@v\h@lf\wd\ch@box
+ \advance\y@v\Interligne \global\@ihf\y@v \box\ch@box}
+
+\def\ihf#1{\setbox\ch@box\hbox{#1}\getcurpos \advance\y@v\wd\ch@box
+ \global\@ihf\y@v \box\ch@box}
+
+\endcatcodesmusic
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixcpt.sty b/Master/texmf-dist/tex/generic/musixtex/musixcpt.sty
new file mode 100644
index 00000000000..54c2ca8dd67
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixcpt.sty
@@ -0,0 +1,3 @@
+\input musixcpt
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex b/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex
new file mode 100644
index 00000000000..bed7c70f173
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixcpt.tex
@@ -0,0 +1,813 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+%%% for those who want compatibility, input it !after! musixtex and all
+%%% other \input files, means: at very last
+
+\ifx\undefined\DIMin \else \endinput \fi
+
+\immediate\write10{MusiXComPaTible T.67\space<7 January 1997>}%
+
+\ifx\undefined\mxversion \errmessage{MusiXcpt input before MusiXTeX !}\fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+\catcodesmusic
+
+\voffset=-15.4mm
+\parindent=10mm
+
+\def\z@suspend@autoflag{\ifx\auto@flag\empty
+ \fil@autolines\fi \let\auto@flag\empty}
+
+
+\let\fil@autolines\empty
+\let\auto@flag\empty
+
+\def\updatecontext{%
+ \T@bil \writ@newclefs\wbarno@x\Writ@newsigns
+ \Writ@meters\addspace\afterruleskip
+ \else\fil@autolines\let\auto@flag\@ne
+ \writ@newclefs\Writ@newsigns\z@suspend\@NewPage\fi}
+
+\def\changecontext{\n@wbar\updatecontext}
+\def\zchangecontext{\advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip
+ \zn@wbar\updatecontext}
+
+\def\@breakpassInoauto{\def\T@bil{\getcurpos \ifdim\y@v<\h@lf\line@width}}
+\def\ori@passIzbarre{\zn@wbar\fil@{z \the\barno}}
+
+\def\ori@passIendsection{\fil@{*\space\the\mulooseness}\mulooseness\z@}
+
+\def\@breakpassIauto{\advance\barsinlin@\@ne \ifnum\barsinlin@<\maxbarsinline}%
+
+\def\@xbarrepassIauto{\T@bil \else\advance\barsinlin@\m@ne \fi\@bar}
+\let\@xbarrepassIIauto\barre
+
+\def\@zbarpassIauto{\T@bil \zn@wbar\else\zstoppiec@\@NewPage\fi}
+
+%!!! Attention: If you use \autolines, take care for the number of lines.
+% If they exceed 127, trouble will be ahead. (adjust MAX_SECTIONS in
+% musixflx.c or insert a \suspmorceau..\debutmorceau) !!!
+
+\def\autolines#1#2#3{% #1 nombre d'elemskip par mesure,
+% #2 nombre de mesures par ligne,
+% #3 nb lignes par page
+ \ifstartmuflex@done\else\startmuflex\fi
+ \global\maxbarsinline=#2\relax
+ \global\maxlinesinpage=#3\relax
+ \let\count@lines\count@lines@auto
+ \ifx\ragg@d\empty % ---> pass 1
+ \message{/autolines pass I }%
+ \let\xbar=\@xbarrepassIauto
+ \let\zbar=\@zbarpassIauto
+ \let\@nds@ction=\empty
+ \def\fil@autolines{\fil@{a}}%
+ \let\barsinline=\barsinlin@
+ \let\T@bil=\@breakpassIauto
+ \else %---> pass 2
+ \message{/autolines pass II }%
+ \let\xbar=\@xbarrepassIIauto
+ \let\@nds@ction=\empty
+ \fi}
+
+\def\noautolines{\let\fil@autolines\empty
+ \ifstartmuflex@done\else\startmuflex\fi
+ \let\xbar\ori@xbarre % original X handling
+ \let\count@lines\count@lines@empty
+ \ifx\ragg@d\empty %---> pass 1
+ \message{/noautolines pass I }%
+ \let\zbar\ori@zbarre % original X handling
+ \let\barsinline=\barsinline@ori
+ \let\T@bil\ori@T@bil
+ \let\@nds@ction=\ori@passIendsection
+ \else
+ \message{/noautolines pass II }%
+ \let\@nds@ction=\empty
+ \fi}
+ %
+
+\def\count@lines@auto{\global\advance\linesinpage\@ne
+ \ifnum\linesinpage<\maxlinesinpage
+ \else \eject \global\linesinpage\z@ \fi}
+\def\count@lines@empty{\global\advance\linesinpage\@ne}
+\let\count@lines\count@lines@empty
+
+\def\@NewPage{\count@lines \contpiece}
+\def\@LeftRp{\stoppiec@\@NewPage\addspace{\h@lf\afterruleskip}%
+ \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip}
+
+\def\T@bil{\advance\barsinlin@\@ne \ifnum\barsinlin@<\maxbarsinlin@}
+\def\ori@T@bil{\advance\barsinlin@\@ne \ifnum\barsinlin@<\maxbarsinlin@}
+
+\def\barre{\T@bil \@bar\else\stoppiec@\@NewPage\fi}
+
+\def\xbar{\@bar\global\advance\barsinpi@c@\m@ne }
+\def\ori@xbarre{\@bar\global\advance\barsinpi@c@\m@ne }
+
+\def\zbar{\T@bil \zn@wbar\else\zstoppiece\@NewPage\fi}
+\def\ori@zbarre{\T@bil \zn@wbar\else\zstoppiece\@NewPage\fi}
+
+\def\alaligne{\stoppiece\@NewPage}
+\def\Suspmorceau{\Stoppiece\count@lines}
+\def\suspmorceau{\stoppiece\count@lines}
+\def\zalaligne{\zstoppiece\@NewPage}
+\def\leftrepeat{\leftrepeat@II}
+\def\leftrepeat@II{\T@bil \setleftrepeat\@bar\else\@LeftRp\fi}
+\def\leftrightrepeat{\leftrightrepeat@II}
+\def\leftrightrepeat@II{\T@bil \setleftrightrepeat\@bar
+ \else\setrightrepeat\@LeftRp\fi}
+
+\def\finrightrepeat{\setrightrepeat\stoppiec@}
+
+
+\let\nbporteesi\n@pi
+\let\nbporteesii\n@pii
+\let\nbporteesiii\n@piii
+\let\nbporteesiv\n@piv
+\let\nbporteesv\n@pv
+\let\nbporteesvi\n@pvi
+\def\nbporteesvii{\n@pvii}%
+\def\nbporteesviii{\n@pviii}%
+\def\nbporteesix{\n@pvix}%
+
+\def\nbstaffsi{\n@pi}%
+\def\nbstaffsii{\n@pii}%
+\def\nbstaffsiii{\n@piii}%
+\def\nbstaffsiv{\n@piv}%
+\def\nbstaffsv{\n@pv}%
+\def\nbstaffsvi{\n@pvi}%
+\def\nbstaffsvii{\n@pvii}%
+\def\nbstaffsviii{\n@pviii}%
+\def\nbstaffsix{\n@pvix}%
+
+\def\resetlayout{\nullthick\f@ur\Interligne \let\interfacteur\nin@
+ \stafftopmarg\thr@@\Interligne \staffbotmarg\thr@@\Interligne
+ \let\stafflinesnbi\fiv@ \let\stafflinesnbii\fiv@ \let\stafflinesnbiii\fiv@
+ \let\stafflinesnbiv\fiv@ \let\stafflinesnbv\fiv@ \let\stafflinesnbvi\fiv@
+ \let\clefdesoli\trebleclef \let\clefdesolii\trebleclef
+ \let\clefdesoliii\trebleclef \let\clefdesoliv\trebleclef
+ \let\clefdesolv\trebleclef \let\clefdesolvi\trebleclef
+ \let\clefduti\altoclef \let\clefdutii\altoclef
+ \let\clefdutiii\altoclef \let\clefdutiv\altoclef
+ \let\clefdutv\altoclef \let\clefdutvi\altoclef
+ \let\clefdefai\bassclef \let\clefdefaii\bassclef
+ \let\clefdefaiii\bassclef \let\clefdefaiv\bassclef
+ \let\clefdefav\bassclef \let\clefdefavi\bassclef
+ \elemskip\f@ur\Internote}
+
+% These definition depends on the assumption, that \elemskip is equal 10pt
+
+\def\hqsk{\off{.3\@l@mskip}}
+\def\qsk{\hqsk\hqsk}
+
+% ============================
+% will change
+
+\chardef\@li=51
+\chardef\@liii=53
+\newif\ifcautionacc
+
+\def\@acc#1{\inhgetn@i#1\relax\@BigAcc}
+\def\@BigAcc{\pl@base\raise\y@i\llap{\musixchar\n@v\kern\accshift}}
+
+\def\bigfl{\n@v\@l \@acc}
+\def\bigdfl{\n@v\@li \@acc}
+\def\bigsh{\n@v\@lii \@acc}
+\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\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\csh{\cautionacctrue\smallsh}
+\def\cdsh{\cautionacctrue\smalldsh}
+\def\cna{\cautionacctrue\smallna}
+\def\cfl{\cautionacctrue\smallfl}
+\def\cdfl{\cautionacctrue\smalldfl}
+
+\def\@UpperAcc#1{\inhgetn@i#1\relax\@UpAcc}
+\def\@UpAcc{\advance\n@i\thr@@ \zchar\n@i{\kern\qu@rt\qn@width\@SmallAcc}}
+
+\def\upperna{\n@v94\@UpperAcc}
+\def\upperfl{\n@v90\@UpperAcc}
+\def\uppersh{\n@v92\@UpperAcc}
+
+% analysis of accidentals within collective note coding
+
+\def\absoluteaccidentals{%
+ \let\Xna\na \let\Xsh\sh \let\Xfl\fl \let\Xdsh\dsh \let\Xdfl\dfl}
+\absoluteaccidentals
+
+\def\Na#1{\small@test\bigNa{#1}\else\smallNa{#1}\fi}
+\def\Fl#1{\small@test\bigFl{#1}\else\smallFl{#1}\fi}
+\def\Sh#1{\small@test\bigSh{#1}\else\smallSh{#1}\fi}
+\def\dFl#1{\small@test\bigdFl{#1}\else\smalldFl{#1}\fi}
+\def\dSh#1{\small@test\bigdSh{#1}\else\smalldSh{#1}\fi}
+
+\def\cNa{\cautionacctrue\smallNa}
+\def\cFl{\cautionacctrue\smallFl}
+\def\cSh{\cautionacctrue\smallSh}
+\def\cdFl{\cautionacctrue\smalldFl}
+\def\cdSh{\cautionacctrue\smalldSh}
+
+\def\lNa#1{\shiftaccwidth{\Na{#1}}}
+\def\lFl#1{\shiftaccwidth{\Fl{#1}}}
+\def\lSh#1{\shiftaccwidth{\Sh{#1}}}
+\def\ldFl#1{\shiftaccwidth{\dFl{#1}}}
+\def\ldSh#1{\shiftaccwidth{\dSh{#1}}}
+\def\shiftaccwidth{\loffset\smallvalue}
+
+\def\sign@diff#1\relax{\getn@i#1\relax\n@iii\n@i
+ \advance\n@iii-\ut@ref \advance\n@iii-\ut@ref
+ \loop\ifnum\n@iii>\si@ \advance\n@iii-\s@v@n \repeat
+ \loop\ifnum\n@iii<\z@ \advance\n@iii\s@v@n \repeat
+ \ifcase\n@iii
+ \n@ii\si@ % mi
+ \or\n@ii\@ne % fa
+ \or\n@ii\thr@@ % sol
+ \or\n@ii\fiv@ % la
+ \or\n@ii\s@v@n % si
+ \or\n@ii\tw@ % do
+ \or\n@ii\f@ur % re
+ \fi
+% \n@ii positive signature limit, \n@ii-8 negative signature limit
+ \advance\n@ii-\a@s \advance\n@ii\si@ \divide\n@ii\s@v@n \n@iv\fiv@}
+
+\def\C@aacc{\advance\n@v\n@vi \@Ti}
+
+\def\@Flat#1{\sign@diff#1\relax
+ \ifcase\n@ii \n@v\@liv \or\n@v\@l \or\n@v\@li \fi \C@aacc}
+
+\def\set@bigaccid{\n@vi\z@ \let\@Ti\@BigAcc}
+\def\set@smallaccid{\n@vi\@xl \let\@Ti\@SmallACC}
+\def\set@UpAcc{\n@vi\@xl \let\@Ti\@UpAcc}
+
+\def\bigFl{\set@bigaccid\@Flat}
+\def\smallFl{\set@smallaccid\@Flat}
+\def\upperFl{\set@UpAcc\@Flat}
+
+\def\@Natural#1{\sign@diff#1\relax
+ \ifcase\n@ii \n@v\@lii \or\n@v\@liv \or\n@v\@l \fi \C@aacc}
+
+\def\bigNa{\set@bigaccid\@Natural}
+\def\smallNa{\set@smallaccid\@Natural}
+\def\upperNa{\set@UpAcc\@Natural}
+
+\def\@Sharp#1{\sign@diff#1\relax
+ \ifcase\n@ii \n@v\@liii \or\n@v\@lii \or\n@v\@liv \fi \C@aacc}
+
+\def\bigSh{\set@bigaccid\@Sharp}
+\def\smallSh{\set@smallaccid\@Sharp}
+\def\upperSh{\set@UpAcc\@Sharp}
+
+\def\@nod{Can't double }
+
+\def\@dSharp#1{\sign@diff#1\relax
+ \ifcase\n@ii \message{\@nod sharpen !\noexpand\dSh #1}%
+ \or\n@v\@liii \C@aacc\or\n@v\@lii \C@aacc \fi}
+
+\def\bigdSh{\set@bigaccid\@dSharp}
+\def\smalldSh{\set@smallaccid\@dSharp}
+%\def\upperdSh{\set@UpAcc\@dSharp}
+
+\def\@dFlat#1{\sign@diff#1\relax
+ \ifcase\n@ii \n@v\@l \C@aacc\or\n@v\@li \C@aacc
+ \or\message{\@nod flatten !\noexpand\dFl #1}\fi}
+
+\def\bigdFl{\set@bigaccid\@dFlat}
+\def\smalldFl{\n@vi\@xl \n@iv\si@ \let\@Ti\@SmallACC \@dFlat}
+%\def\upperdFl{\set@UpAcc\@dFlat}
+
+\def\relativeaccidentals{%
+ \let\Xna\Na \let\Xsh\Sh \let\Xfl\Fl \let\Xdsh\dSh \let\Xdfl\dFl}
+
+%\def\writ@names{\n@loop
+% \setbox\n@otebox\llap{\vbox{\hbox\@to\parindent{%
+% \hss\csname instrument\romannumeral\noinstrum@nt\endcsname\hss}}~~}%
+% \altportee\altitude \Comp@High\advance\y@v-\ht\n@otebox
+% \advance\altportee\h@lf\y@v \raise\altportee\box\n@otebox \repeat}
+%\let\Writ@names\writ@names
+
+%\let\instrumenti\empty \let\instrumentii\empty \let\instrumentiii\empty
+%\let\instrumentiv\empty \let\instrumentv\empty \let\instrumentvi\empty
+
+% ============================
+
+\def\dimin{\decrescendo{4\qn@width}}
+\def\Dimin{\decrescendo{8\qn@width}}
+\def\DImin{\decrescendo{12\qn@width}}
+\def\DIMin{\decrescendo{16\qn@width}}
+\def\DIMIn{\decrescendo{24\qn@width}}
+\def\DIMIN{\decrescendo{36\qn@width}}
+\def\cresc{\crescendo{4\qn@width}}
+\def\Cresc{\crescendo{8\qn@width}}
+\def\CResc{\crescendo{12\qn@width}}
+\def\CREsc{\crescendo{16\qn@width}}
+\def\CRESc{\crescendo{24\qn@width}}
+\def\CRESC{\crescendo{36\qn@width}}
+
+\let\interligne\Interligne
+\def\debutmorceau{\ifstartmuflex@done\else\startmuflex\fi
+\startpiece
+\let\debutmorceau\startpiece}
+\let\finmorceau\Stoppiece
+\let\zfinmorceau\zstoppiece
+\let\finpartition\stoppiece
+\let\debutextrait\startextract
+\let\finextrait\endextract
+\let\zfinextrait\zendextract
+\let\reprmorceau\contpiece
+\let\lreprmorceau\contpiece
+\def\preprmorceau{\eject \global\linesinpage\z@ \contpiece}
+\def\resetsignatures{\generalsignature0\savesignature}
+\def\alapage{\stoppiece\eject \global\linesinpage\z@ \contpiece}
+\def\zalapage{\zstoppiece\eject \global\linesinpage\z@ \contpiece}
+\def\pchangecontext{\n@wbar\writ@newclefs\writ@newsigns
+ \z@suspend \eject \global\linesinpage\z@ \contpiece}
+\def\lchangecontext{\n@wbar\writ@newclefs\writ@newsigns
+ \z@suspend \count@lines \contpiece}
+\let\xbeambarre\bar
+\def\xbarre{\xbar}
+\def\zbarre{\zbar}
+\let\temps\empty
+\let\zglue\empty
+\let\zglu\empty
+\let\doublebarre\doublebar
+
+\def\leftrightrepeatsymbol{\C@rep\l@eftrightrepeat}
+\def\leftrepeatsymbol{\C@rep\l@eftrepeat}
+\def\rightrepeatsymbol{\C@rep\r@ightrepeat}
+\def\C@rep#1{\advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip
+ #1\widthtyp@\z@ \t@rmskip\addspace\afterruleskip}
+
+%\let\suspmorceau\stoppiece
+%\let\Suspmorceau\Stoppiece
+\let\computewidths\empty
+\let\computespecifics\empty
+\let\zsuspmorceau\zstoppiece
+\let\signaturegenerale\generalsignature
+\let\pointdorgue\fermataup
+\let\pointdurgue\fermatadown
+\let\zbv\zbreve
+\let\zsb\zmaxima
+\let\ha\hu
+\let\resetfacteurs\resetlayout
+\let\savesignature\empty
+\let\savemeter\empty
+\let\savemeters\empty
+\let\saveclefs\empty
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+\let\ITenu\istieu
+\let\ITenl\istied
+%%%%%%%%%%%%%%%%%%
+\let\ilegu\isluru
+\let\ilegl\islurd
+\let\Ilegu\isluru
+\let\Ilegl\islurd
+%\let\tleg\tslur
+%\def\Tleg#1{\roff{\ttie#1}}
+\let\Invertslur\invertslur
+\let\qh\qb
+\let\qhp\qbp
+\let\qhpp\qbpp
+\let\zqh\zqb
+\let\zqhp\zqbp
+\let\zqhpp\zqbpp
+\let\hh\hb
+\let\soupir\qp
+\let\dsoupir\ds@oup
+\let\demisoupir\ds@oup
+\let\qsoupir\qs
+\let\quartsoupir\qs
+\let\hsoupir\hs
+\let\huitsoupir\hs
+\let\seizsoupir\qqs
+\let\Pince\Shake
+\let\pince\shake
+\let\Lpince\Shakel
+\let\Pincesw\Shakesw
+\let\Pincene\Shakene
+\let\Pincenw\Shakenw
+\let\mordant\mordent
+\let\nblines\z@
+\let\wd@skip\wn@width
+\let\musicnfont\musixfont
+
+\let\clefdesolsymbol\trebleclef
+\let\clefdefasymbol\altoclef
+\let\clefdutsymbol\bassclef
+\let\gclefdut\gregorianCclef
+\let\drumclefsymbol\drumclef
+\let\smallclefdesol\smalltrebleclef
+\let\smallclefdefa\smallaltoclef
+\let\smallclefdut\smallbassclef
+
+\let\cmbxmicro\sevenbf
+\let\cmbxtiny\eightbf
+\let\cmbxsmall\tenbf
+\let\cmbx\twelvebf
+\let\cmbxbig\bigfont
+\let\moyen\bigfont
+\let\gros\Bigfont
+\let\enorme\BIGfont
+
+\def\setprimavolta{\setvolta1}
+\def\setsecondavolta{\setvolta2}
+
+\def\advancebottom#1{}
+\newif\ifraggedlines
+\newcount\linesinpage
+\newcount\barsinline@ori
+\let\barsinline\barsinline@ori
+\newcount\maxbarsinline
+\newcount\maxlinesinpage \maxlinesinpage\maxdimen
+\newskip\zglueskip
+\newskip\tempsskip
+
+%%% definitions for holding up compatibility, not supported in musixtex
+
+\let\endinstrument\@ndstaff
+\def\huslur#1#2{\errmessage{No more need for \noexpand\huslur!}}
+\def\hdslur#1#2{\errmessage{No more need for \noexpand\hdslur!}}
+\def\liftslur#1#2{\errmessage{\noexpand\liftslur is not supported in MusiXTeX}}
+
+\def\expause#1{\charnote{#1}{\musicnorfont\char 11\hss}}
+\def\zexpause#1{\zcharnote{#1}{\musicnorfont\char 11\hss}}
+\def\exhpause#1{\charnote{#1}{\musicnorfont\char 10\hss}}
+\def\zexhpause#1{\zcharnote{#1}{\musicnorfont\char 10\hss}}
+
+\def\vdlthick{\vrule depth \hlthick}
+\let\resettens\empty
+\let\resetstem\resetst@m
+\let\setstem\setst@m
+\let\resetlegs\empty
+\let\savepenalties\empty
+\let\currenthyphenpenalty\empty
+\let\setnohyphenpenalty\empty
+\let\sethyphenpenalty\empty
+\let\setnormalhyphen\empty
+\let\glueaftersymbol\empty
+\def\zgluearule{\addspace\afterruleskip}%
+\let\gluearule\zgluearule
+\let\ygluearule\zgluearule
+\let\Writesignatures\writ@signs
+\let\changecontexte\changecontext
+\let\Changecontexte\Changecontext
+\let\Changeclefs\changeclefs
+\let\Changeclef\Changeclefs
+\def\shortstems{\stemlength4}%
+\def\normalstems{\stemlength{4.66}}%
+\normalstems
+
+\def\phpause{\hbox to \noteskip{\vrule width
+ 1.2\qn@width height \internote\hss}}%
+%\def\pause{\hbox{\raise 5\internote\phpause}}%
+%\def\hpause{\hbox{\raise 4\internote\phpause}}%
+\let\zha\zhu
+\def\minternote{-\internote}%
+\def\ffff{{\ppff {f}\kern -0.1ex{f}\kern -0.1ex{f}\kern -0.1ex{f}}}
+\def\testseq{}%
+
+\def\rtenl#1#2{\roff{\islurd{#1}{#2}}}
+\def\rtenu#1#2{\roff{\isluru{#1}{#2}}}
+
+\def\diamg{\ynq}
+\def\diamw{\dnq}
+
+\def\zdiamg{\yznq}
+\def\zdiamw{\dznq}
+
+\def\carrg{\squ}
+\def\zcarrg{\zsqu}
+\def\carpg{\lsqu}
+\def\zcarpg{\zlsqu}
+\def\carqg{\rsqu}
+\def\zcarqg{\zrsqu}
+
+\def\yu{\yqu}
+\def\yup{\yqup}
+\def\yupp{\yqupp}
+\def\yuppp{\yquppp}
+\def\yl{\yql}
+\def\ylp{\yqlp}
+\def\ylpp{\yqlpp}
+\def\ylppp{\yqlppp}
+
+\def\yh{\yqb}
+\def\yb{\yqb}
+
+\def\zy{\yzq}
+\def\zyp{\yzqp}
+\def\zypp{\yzqpp}
+\def\zyppp{\yzqppp}
+
+\def\du{\dqu}
+\def\dup{\dqup}
+\def\dupp{\dqupp}
+\def\duppp{\dquppp}
+
+\def\dl{\dql}
+\def\dlp{\dqlp}
+\def\dlpp{\dqlpp}
+\def\dlppp{\dqlppp}
+
+\def\dh{\dqb}
+\def\db{\dqb}
+
+\def\zd{\dzq}
+\def\zdp{\dzqp}
+\def\zdpp{\dzqpp}
+\def\zdppp{\dzqppp}
+
+\def\xu{\xqu}
+\def\xup{\x@symbol\@qup}
+\def\xupp{\x@symbol\@qupp}
+\def\xl{\xql}
+\def\xlp{\x@symbol\@qlp}
+\def\xlpp{\x@symbol\@qlpp}
+
+\let\xb\xqb
+\let\xh\xqb
+
+\def\zx{\xzq}
+\def\zxp{\x@symbol\@zqp}
+\def\zxpp{\x@symbol\@zqpp}
+
+\def\xcccu{\x@symbol\@cccu}
+\def\xccccu{\x@symbol\@ccccu}
+\def\xcccl{\x@symbol\@cccl}
+\def\xccccl{\x@symbol\@ccccl}
+
+\def\xclp{\x@symbol\@clp}
+\def\xcup{\x@symbol\@cup}
+\def\xclpp{\x@symbol\@clpp}
+\def\xcupp{\x@symbol\@cupp}
+
+\def\oxu{\oxqu}
+\def\oxup{\ox@symbol\@qup}
+\def\oxupp{\ox@symbol\@qupp}
+\def\oxl{\oxql}
+\def\oxlp{\ox@symbol\@qlp}
+\def\oxlpp{\ox@symbol\@qlpp}
+
+\def\oxb\oxqb
+\let\oxh\oxqb
+
+\def\ozx{\oxzq}
+\def\ozxp{\ox@symbol\@zqp}
+\def\ozxpp{\ox@symbol\@zqpp}
+
+\def\oxcccu{\ox@symbol\@cccu}
+\def\oxccccu{\ox@symbol\@ccccu}
+\def\oxcccl{\ox@symbol\@cccl}
+\def\oxccccl{\ox@symbol\@ccccl}
+
+\def\oxclp{\ox@symbol\@clp}
+\def\oxcup{\ox@symbol\@cup}
+\def\oxclpp{\ox@symbol\@clpp}
+\def\oxcupp{\ox@symbol\@cupp}
+
+\def\ku{\kqu}
+\def\kup{\k@symbol\@qup}
+\def\kupp{\k@symbol\@qupp}
+\def\kl{\kql}
+\def\klp{\k@symbol\@qlp}
+\def\klpp{\k@symbol\@qlpp}
+
+\let\kb\kqb
+\let\kh\kqb
+
+\def\zk{\kzq}
+\def\zkp{\k@symbol\@zqp}
+\def\zkpp{\k@symbol\@zqpp}
+
+\def\kcccu{\k@symbol\@cccu}
+\def\kccccu{\k@symbol\@ccccu}
+\def\kcccl{\k@symbol\@cccl}
+\def\kccccl{\k@symbol\@ccccl}
+
+\def\kclp{\k@symbol\@clp}
+\def\kcup{\k@symbol\@cup}
+\def\kclpp{\k@symbol\@clpp}
+\def\kcupp{\k@symbol\@cupp}
+
+%%% text, lyrics
+
+\def\midtwotext{\let\@Ti\hss \let\@Tii\hss \C@midcpt}
+\def\rmidtwotext{\let\@Ti\empty \let\@Tii\hss \C@midcpt}
+\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@
+ \raise\y@v\uplap{\hbox\@to\noteskip{\@Ti\strut#1\@Tii}\vss}%
+ \advance\locx@skip\noteskip}
+
+% for what ?
+
+\def\sforz#1{{\advance\transpose by -2\usf{#1}}}
+\def\pz#1{{\advance\transpose by -2\upz{#1}}}
+\def\ppz{\uppz}
+\def\st#1{{\advance\transpose by -2\ust{#1}}}
+
+% octlines
+
+\def\barfill{\leaders\hbox{ --}\hfill}%
+\def\octnvrule{\vrule width \z@ height 3\p@ depth 3\p@}%
+\def\octvrule{\vrule width \lthick height 3\p@ depth 3\p@}%
+\def\octsup#1#2{\zcharnote{#1}{\hbox to #2\noteskip
+{\llap{\rm 8}\barfill\octnvrule}}}%
+\def\Octsup#1#2{\zcharnote{#1}{\hbox to #2{\rm 8\barfill\octnvrule}}}%
+ %\check
+ %\def\octfin#1#2{\zcharnote{#1}{\hbox to #2\noteskip{\llap{\rm 8}\barfill
+ %--\octvrule}}}%
+ \let\octfin\octfinup
+\def\Octfin#1#2{\zcharnote{#1}{\hbox to #2{\rm 8\barfill
+--\octvrule}}}%
+\def\octline#1{\zcharnote{#1}{\hbox to \line@width{\llap{\rm 8}\barfill
+\octnvrule\hskip 12\Internote}}}%
+\def\Octline#1{\zcharnote{#1}{\hbox to \line@width{\rm 8\barfill
+\octnvrule\hskip 8\Internote}}}%
+ %\check
+
+\def\octlineup{\n@v\@xxiii\C@ol}
+\def\octlinedown{\n@v\@xxv \C@ol}
+\def\C@ol#1{\zcharnote{#1}{\getcurpos\y@eol\advance\y@-\y@v
+ \hbox\@to\y@{\octnumber\mxsps\xleaders\hbox{\char\n@v}\hfill}}}
+
+% now different meaning !!!
+
+\def\trilleC#1{\hbox to #1{\leaders\hbox{\musixchar69}\hfill}}%
+\let\trille\trilleC
+\def\TrilleC#1{\hbox to #1{\it tr\leaders\hbox{\musixchar69}\hfill}}%
+\let\Trille\TrilleC
+
+\def\ntrille#1#2{\zcharnote{#1}{\trille{#2\elemskip}}}%
+\def\nTrille#1#2{\zcharnote{#1}{\Trille{#2\elemskip}}}%
+\def\xtrille#1#2{\zcharnote{#1}{\trille{#2}}}%
+\def\xTrille#1#2{\zcharnote{#1}{\Trille{#2}}}%
+
+% finding which class of fonts is normally used (cmxxx, dmxxx, dcxxx,...)
+
+\def\@wsa#1#2+{#1}
+\def\@wsb#1#2#3+{#2}
+\rm
+\edef\fonthdg{\expandafter\@wsa\fontname\the\font+}
+\edef\fonthdge{\expandafter\@wsb\fontname\the\font+}
+
+% new coda is centered above a barrule
+
+\def\coda{\n@iv85\@Char}
+
+% special wish
+
+\let\octline\octlineup
+
+% old spacings
+
+\def\normal{\elemskip=4\Internote \def\scalenoteskip{1.00}%
+ \def\notes{\vnotes1.0\elemskip}% double croches
+ \def\notesp{\vnotes1.18\elemskip}% double croches
+ \def\Notes{\vnotes1.4\elemskip}% croches
+ \def\Notesp{\vnotes1.66\elemskip}% croches
+ \def\NOtes{\vnotes2.0\elemskip}% croches pointees
+ \def\NOtesp{\vnotes2.36\elemskip}% croches pointees
+ \def\NOTes{\vnotes2.8\elemskip}% noires
+ \def\NOTesp{\vnotes3.32\elemskip}% noires
+ \def\NOTEs{\vnotes4.0\elemskip}%
+ \def\NOTEsp{\vnotes4.72\elemskip}%
+ \def\NOTES{\vnotes5.6\elemskip}}
+
+% \large could cause trouble, if user changes \scalenoteskip on his own,
+% but this is *HIS* problem
+
+\ifx\large\undefined \def\large{\normal\def\scalenoteskip{1.2}}\fi
+
+\def\etroit{\normal
+ \def\Notes{\vnotes1.3\elemskip}%
+ \def\NOtes{\vnotes1.8\elemskip}%
+ \def\NOTes{\vnotes2.6\elemskip}%
+ \def\NOTEs{\vnotes3.6\elemskip}%
+ \def\NOTES{\vnotes5.2\elemskip}}
+
+% correct the shifting of arpeggio to musictex's appearance,
+% a little bit tricky, but works
+
+\let\arpeggio@X\arpeggio
+\def\arpeggio#1#2{\roffset{.2}{\arpeggio@X{#1}{#2}}}
+\def\larpeggio#1#2{\loffset{.6}{\arpeggio@X{#1}{#2}}} % .6=\smallvalue - 0.2
+
+% correct (nearly) the distance between note and accidental
+
+\accshift=-.1\qn@width
+
+% 'translate' old metertoks (works only if they are used as
+% \metertoksi={...}, not for \metertoksi{...}
+
+\def\metertoksi#1#2{\if =#1\else\C@warn \fi
+ \let\Writ@meters\writ@meters \m@ti={#2}}
+\def\metertoksii#1#2{\if =#1\else\C@warn \fi
+ \let\Writ@meters\writ@meters \m@tii={#2}}
+\def\metertoksiii#1#2{\if =#1\else\C@warn \fi
+ \let\Writ@meters\writ@meters \m@tiii={#2}}
+\def\metertoksiv#1#2{\if =#1\else\C@warn \fi
+ \let\Writ@meters\writ@meters \m@tiv={#2}}
+\def\metertoksv#1#2{\if =#1\else\C@warn \fi
+ \let\Writ@meters\writ@meters \m@tv={#2}}
+\def\metertoksvi#1#2{\if =#1\else\C@warn \fi
+ \let\Writ@meters\writ@meters \m@tvi={#2}}
+
+\def\C@warn{\errmessage{You MUST use '=' behind \noexpand\metertoks}\end}
+
+\let\signi\a@si
+\let\signii\a@sii
+\let\signiii\a@siii
+\let\signiv\a@siv
+\let\signv\a@sv
+\let\signvi\a@svi
+
+\let\cleftoksi\a@ci
+\let\cleftoksii\a@cii
+\let\cleftoksiii\a@ciii
+\let\cleftoksiv\a@civ
+\let\cleftoksv\a@cv
+\let\cleftoksvi\a@cvi
+
+% to be used to make heavy bars at staff left
+
+\newskip\nullthick
+\let\lowersonginstrum\maxdimen
+\let\uppersonginstrum\z@
+\newdimen\Interportee % distance between staffs of the same instrument (excl)
+
+\def\xgetn@i#1\relax{\n@viii\z@ \n@i\maxdimen % par defaut
+ \edef\t@ruc{\f@tok #1\relax\af@tok}%
+ \edef\s@uite{\s@tok #1\empty\af@tok}%
+%% pas lettre
+ \ifcat a\t@ruc \n@i\expandafter`\t@ruc\relax
+%% ramener au E (position zero en clef de sol, ut@ref=0)
+ \ifnum\n@i>96\advance\n@i-101%
+ \else\advance\n@i-\@lxxxiii % ramener au S= E + 14
+ \fi
+ \advance\n@i\ut@ref \advance\n@i\ut@ref \advance\n@i\transpose
+ \edef\ss@uite{\noexpand\n@fon{\s@uite}}%
+%% cas active character dont chiffre
+ \else
+ \let\ss@uite\empty
+ \let\alt@suite\empty
+ \ifcat 1\t@ruc
+ \if =\t@ruc \let\@TI\Xna \C@GET \fi
+ \if *\t@ruc \sk \C@Get \fi
+ \if .\t@ruc \let\@TI\pt \C@GET \fi
+ \if >\t@ruc \let\@TI\Xdsh \C@GET \fi
+ \if <\t@ruc \let\@TI\Xdfl \C@GET \fi
+ \if !\t@ruc \transpose\normaltranspose \C@Get \fi
+ \if '\t@ruc \advance\transpose\s@v@n \C@Get \fi
+ \if `\t@ruc \advance\transpose-\s@v@n \C@Get \fi
+ \ifnum\n@viii<\maxdimen \n@i#1\fi
+ \else
+ \if ^\t@ruc \let\@TI\Xsh \C@GET \fi
+ \if _\t@ruc \let\@TI\Xfl \C@GET \fi
+ \fi\alt@suite
+ \fi}
+
+% MusicTeX's settings
+
+\afterruleskip=10pt % plus glue
+\beforeruleskip=2pt % plus glue
+\nostemcut
+
+\let\nbinstruments\maxinstruments
+\normalnotesize
+\normal % to get \notes correctly defined
+\resetlayout
+\let\nbinstruments\@ne
+
+\def\breath{\errmessage{\noexpand\breath\space not implemented in MusiXTeX,
+ use \noexpand\zbreath\space or \noexpand\cbreath!}}
+
+\endcatcodesmusic
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixdat.tex b/Master/texmf-dist/tex/generic/musixtex/musixdat.tex
new file mode 100644
index 00000000000..fda6ebd8f7c
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixdat.tex
@@ -0,0 +1,59 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXDATes 0.36\space<1 March 1995>}%
+
+\ifx\undefined\dategerman \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+%% This is 'stolen' from GERMAN.TEX or GERMAN.STY, Vers. 2.4a, 12 Apr 1991
+
+% Dates
+% -----
+
+\def\month@german{\ifcase\month \or
+ Januar\or Februar\or M\"arz\or April\or Mai\or Juni\or
+ Juli\or August\or September\or Oktober\or November\or Dezember\fi}
+\def\dategerman{\def\today{\number\day.~\month@german
+ \space\number\year}}
+\def\dateaustrian{\def\today{\number\day.~\ifnum 1=\month
+ J\"anner\else \month@german\fi \space\number\year}}
+\def\month@english{\ifcase\month \or
+ January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi}
+\def\dateUSenglish{\def\today{\month@english
+ \space\number\day, \number\year}}
+\def\dateenglish{\def\today{\number\day \ifcase\day \or
+ st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or % 1..10
+ th\or th\or th\or th\or th\or th\or th\or th\or th\or th\or % 11..20
+ st\or nd\or rd\or th\or th\or th\or th\or th\or th\or th\or % 21..30
+ st\fi
+ ~\month@english \space\number\year}}
+\def\datefrench{\def\today{\number\day \ifnum1=\day \/$^{\rm er}$\fi
+ \space\ifcase\month \or
+ janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
+ juillet\or ao\^ut\or septembre\or octobre\or novembre\or d\'ecembre\fi
+ \space\number\year}}
+
+\def\aujourdhui{\datefrench\today}
+
+\dateUSenglish% or whatever you prefer
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixdia.tex b/Master/texmf-dist/tex/generic/musixtex/musixdia.tex
new file mode 100644
index 00000000000..87120f00b47
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixdia.tex
@@ -0,0 +1,110 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\immediate\write10{MusiXDIAmond T.40\space<12 September 1995>}%
+
+\ifx\undefined\dqu \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+%%% notes with a unfilled diamond head, for gregorian and flagolet notes ...
+
+\def\d@symbol{\def\q@u{\musixfont\&}}
+
+\def\dnq{\d@symbol\@nq}
+\def\dznq{\advancefalse\dnq}
+
+\def\dqu{\d@symbol\@qu}
+\def\dqup{\d@symbol\@qup}
+\def\dqupp{\d@symbol\@qupp}
+%\def\dquppp{\d@symbol\@quppp}
+
+\def\dql{\d@symbol\@ql}
+\def\dqlp{\d@symbol\@qlp}
+\def\dqlpp{\d@symbol\@qlpp}
+%\def\dqlppp{\d@symbol\@qlppp}
+
+\def\dqb{\d@symbol\@qb}
+
+\def\dzq{\d@symbol\@zq}
+\def\dzqp{\d@symbol\@zqp}
+\def\dzqpp{\d@symbol\@zqpp}
+%\def\dzqppp{\d@symbol\@zqppp}
+
+\def\dcu{\d@symbol\@cu}
+\def\dccu{\d@symbol\@ccu}
+\def\dcccu{\d@symbol\@cccu}
+\def\dccccu{\d@symbol\@ccccu}
+\def\dcl{\d@symbol\@cl}
+\def\dccl{\d@symbol\@ccl}
+\def\dcccl{\d@symbol\@cccl}
+\def\dccccl{\d@symbol\@ccccl}
+
+\def\dcup{\d@symbol\@cup}
+\def\dcupp{\d@symbol\@cupp}
+%\def\dcuppp{\d@symbol\@cuppp}
+
+\def\dclp{\d@symbol\@clp}
+\def\dclpp{\d@symbol\@clpp}
+%\def\dclppp{\d@symbol\@clppp}
+
+%%% notes with a filled diamond head, for gregorian notes ...
+
+\def\y@symbol{\def\q@u{\musixfont\%}}
+
+\def\ynq{\y@symbol\@nq}
+\def\yznq{\advancefalse\ynq}
+\def\zynq{\advancefalse\ynq}
+
+\def\yqu{\y@symbol\@qu}
+\def\yqup{\y@symbol\@qup}
+\def\yqupp{\y@symbol\@qupp}
+%\def\yquppp{\y@symbol\@quppp}
+
+\def\yql{\y@symbol\@ql}
+\def\yqlp{\y@symbol\@qlp}
+\def\yqlpp{\y@symbol\@qlpp}
+%\def\yqlppp{\y@symbol\@qlppp}
+
+\def\yqb{\y@symbol\@qb}
+
+\def\yzq{\y@symbol\@zq}
+\def\yzqp{\y@symbol\@zqp}
+\def\yzqpp{\y@symbol\@zqpp}
+%\def\yzqppp{\y@symbol\@zqppp}
+
+\def\ycu{\y@symbol\@cu}
+\def\yccu{\y@symbol\@ccu}
+\def\ycccu{\y@symbol\@cccu}
+\def\yccccu{\y@symbol\@ccccu}
+\def\ycl{\y@symbol\@cl}
+\def\yccl{\y@symbol\@ccl}
+\def\ycccl{\y@symbol\@cccl}
+\def\yccccl{\y@symbol\@ccccl}
+
+\def\ycup{\y@symbol\@cup}
+\def\ycupp{\y@symbol\@cupp}
+%\def\ycuppp{\y@symbol\@cuppp}
+
+\def\yclp{\y@symbol\@clp}
+\def\yclpp{\y@symbol\@clpp}
+%\def\yclppp{\y@symbol\@clppp}
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixeng.tex b/Master/texmf-dist/tex/generic/musixtex/musixeng.tex
new file mode 100644
index 00000000000..747fdf691e0
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixeng.tex
@@ -0,0 +1,42 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+% suggested by Ross Mitchell
+
+\immediate\write10{MusiX ENGlish rests T.404\space<31 October 1995>}%
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\let\Qwr\PAUSe
+\let\Dwr\PAuse
+\let\liftwr\liftpause
+\let\wrp\pausep
+\let\wr@\pause
+\let\lifthr\lifthpause
+\let\hrp\hpausep
+\let\hr\hpause
+\let\qr\qp
+\let\er\ds@oup
+\let\eer\qs
+\let\eeer\hs
+\let\eeeer\qqs
+\def\wr{\pause}
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixevo.tex b/Master/texmf-dist/tex/generic/musixtex/musixevo.tex
new file mode 100644
index 00000000000..64fc9881ae5
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixevo.tex
@@ -0,0 +1,19 @@
+\immediate\write10{MusiXEVenOdd T.53\space<1 April 1996>}%
+
+% enables
+
+\makeatletter
+\def\outmorceau{\shipout\hbox{\null\ifodd\pageno\kern 2.5mm
+ \else\kern -2.5mm
+ \fi
+ \vbox{\vbox to \vsize{\vss\pagecontents\vss}\line{%
+\ifodd\pageno\sl \titremorceau\ (\s@hortauthor)
+\ifcopyright\rm$\copyright$\fi\hss \number\pageno
+\else\rm\number\pageno\hss\sl \titremorceau\ (\s@hortauthor)
+\ifcopyright\rm$\copyright$\fi\fi}}}%
+ \global\advance\count0 by 1\relax
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi}%
+
+\output{\outmorceau}
+\makeatother
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixext.tex b/Master/texmf-dist/tex/generic/musixtex/musixext.tex
new file mode 100644
index 00000000000..a68d2a2053d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixext.tex
@@ -0,0 +1,48 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXEXTra 0.36\space<1 March 1995>}%
+
+\ifx\undefined\centerskip \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+\catcodesmusic
+
+%\def\barsrest#1{\centerskip\uplap{\lrlap{\meterfont{#1}}%
+% \vskip\f@ur\internote\lrlap{\musixchar59}}%
+% \advance\barno#1\global\advance\barno\m@ne }
+
+%
+% slide #1=height #2=number of elements #3=slope(-8 to 8 [step 10degree])
+%
+
+\def\slide#1#2#3{\n@ii#3\relax\inhgetn@i#1\relax%
+ \ifnum\n@ii>\m@ne \advance\n@ii\m@ne\let\@Ti\raise
+ \else \n@ii-\n@ii \advance\n@ii\s@v@n\let\@Ti\lower \fi
+ \setbox\toks@box\hbox{\mxsps\char\n@ii}\n@iii\z@
+ \raise\n@i\internote\rlap{\hbox{\loop\ifnum\n@iii<#2%
+ \@Ti\n@iii\ht\toks@box\copy\toks@box\advance\n@iii\@ne\repeat}}}
+
+% if you need a line which appears ragged
+
+\def\raggedstoppiece{\ifx\ragg@d\empty \fil@{r}\fi
+ \check@nopen\n@wbar\hfill\z@suspend\@nds@ction}
+
+\endcatcodesmusic
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixfll.sty b/Master/texmf-dist/tex/generic/musixtex/musixfll.sty
new file mode 100644
index 00000000000..08569182b43
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixfll.sty
@@ -0,0 +1,2 @@
+\input musixfll.tex
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixfll.tex b/Master/texmf-dist/tex/generic/musixtex/musixfll.tex
new file mode 100644
index 00000000000..532a296eccb
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixfll.tex
@@ -0,0 +1,44 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\ifx\undefined\longledgerlines \else \endinput \fi
+
+\immediate\write10{MusiXFormerLedgerLines T.74\space<06 April 1997>}%
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\let\h@lineick\h@linei
+\def\h@lineidt{%
+ \y@ii\n@v\internote
+ \y@iii\y@ii
+ \advance\y@ii\hlthick
+ \advance\y@iii-\hlthick
+ \y@iv\y@v
+ \advance\y@iv\h@lf\qn@width
+ \kernm.25\qn@width
+ \vrule\@height\y@ii\@depth-\y@iii\@width\y@iv
+ \kernm\y@iv\kern.25\qn@width}
+\def\longledgerlines{\global\let\h@linei\h@lineidt}
+\def\autoledgerlines{\global\let\h@linei\h@lineick}
+\longledgerlines
+
+\catcode`\@=\catcodeat
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixgre.tex b/Master/texmf-dist/tex/generic/musixtex/musixgre.tex
new file mode 100644
index 00000000000..eb5e02f1c51
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixgre.tex
@@ -0,0 +1,351 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXGREgorian T.67\space<3 January 1997>}%
+
+\ifx\undefined\gregorianCclef \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+\catcodesmusic
+
+\font\xgregeleven=xgreg11
+\font\xgregthirteen=xgreg13
+\font\xgregsixteen=xgreg16
+\font\xgregtwenty=xgreg20
+\font\xgregtwentyfour=xgreg24
+\font\xgregtwentynine=xgreg29
+
+\let\xgregnorfont\xgregtwenty
+
+\def\xgregkeyfont{%
+ \ifdim\internote<\p@seven6\Internote \xgregtinyfont
+ \else
+ \ifdim\internote<.95\Internote \xgregsmallfont
+ \else
+ \ifdim\internote<1.19\Internote \xgregnorfont
+ \else
+ \ifdim\internote<1.43\Internote \xgreglargefont
+ \else
+ \xgregLargefont
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\def\xgregchar{\xgregfont\char}
+\def\xgregkeychar{\xgregkeyfont\char}
+
+
+% \[z]carrg=\[z]squ, \[z]carpg=\[z]lsqu, \[z]carqg=\[z]rsqu
+
+\def\gregorianCclef{\xgregkeychar98}
+\def\gregorianFclef{\xgregkeychar122}
+
+\def\squ#1{\getn@i#1\relax\let\n@fon\squ \def\n@sym{\xgregchar5}\g@diamg}
+\def\r@small@squ#1{\getn@i#1\relax\let\n@fon\r@small@squ
+ \def\n@sym{\xgregchar0\llap{\xgregchar12\xgregchar18}}\g@diamg}
+\def\punctumauctup#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar9}\g@diamg}
+\def\punctumauctdown#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar8}\g@diamg}
+\def\punctumdeminutum#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar4}\g@diamg}
+\def\shavedsqu#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar17}\g@diamg}
+\let\punctum\squ
+\def\diapunc#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar1}\g@diamg}
+\def\diapuncauctdown#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar2}\g@diamg}
+\def\apostropha#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar3}\g@diamg}
+\def\apostrophaaucta#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar11}\g@diamg}
+\def\oriscus#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar10}\g@diamg}
+\def\usqu#1{\getn@i#1\relax\let\n@fon\squ
+ \def\n@sym{\xgregchar13}\g@diamg}
+\def\lsqu#1{\getn@i#1\relax\let\n@fon\lsqu
+ \def\n@sym{\xgregchar6}\g@diamg}
+\def\rsqu#1{\getn@i#1\relax\let\n@fon\rsqu
+ \def\n@sym{\xgregchar7}\g@diamg}
+\let\virga\rsqu
+\def\quilisma#1{\getn@i#1\relax\let\n@fon\quilisma
+ \def\n@sym{\xgregchar125}\g@diamg}
+\def\shavedquilisma#1{\getn@i#1\relax\let\n@fon\shavedquilisma
+ \def\n@sym{\xgregchar126}\g@diamg}
+
+
+
+\def\zsqu{\advancefalse\squ}
+\let\zpunctum\zsqu
+\def\zusqu{\advancefalse\usqu}
+\def\zlsqu{\advancefalse\lsqu}
+\def\zrsqu{\advancefalse\rsqu}
+\let\zvirga\zrsqu
+\def\zoriscus{\advancefalse\oriscus}
+\def\zdiapunc{\advancefalse\diapunc}
+\def\zapostropha{\advancefalse\apostropha}
+\def\zquilisma{\advancefalse\quilisma}
+\def\zshavedquilisma{\advancefalse\shavedquilisma}
+
+\def\g@diamg{\y@v.71\qn@width \let\st@m\resetst@m \writ@note}
+
+\def\groff{\roffset{.71}}
+\def\dgroff{\roffset{1.42}}
+
+\def\getthen@one@two#1#2{\getn@i{#1}\relax\edef\then@one{\the\n@i}%
+ \getn@i{#2}\relax\edef\then@two{\the\n@i}%
+ \n@ii=\then@one\relax
+ \advance\n@i -\n@ii\relax
+ \edef\the@two@minus@one{\the\n@i}%
+ \n@i=-\n@i
+ \edef\the@one@minus@two{\the\n@i}%
+}%
+\def\getthen@one@three#1#2#3{\getthen@one@two{#1}{#2}\relax
+ \getn@i{#3}\relax\edef\then@three{\the\n@i}%
+ \n@ii=\then@two\relax
+ \advance\n@i -\n@ii\relax
+ \edef\the@three@minus@two{\the\n@i}%
+ \n@i=-\n@i
+ \edef\the@two@minus@three{\the\n@i}%
+}%
+
+\def\bivirga#1#2{\zrsqu{#1}\roff{\rsqu{#2}}}
+
+\def\trivirga#1#2#3{\zrsqu{#1}\roff{\zrsqu{#2}}\roffset2{\rsqu{#3}}}
+
+\def\bistropha#1#2{\zsqu{#1}\roff{\squ{#2}}}
+
+\def\tristropha#1#2#3{\zsqu{#1}\roff{\zsqu{#2}}\roffset2{\squ{#3}}}
+
+\def\trigonus#1#2#3{\zdiapunc{#1}\groff{\zdiapunc{#2}}\dgroff{\diapunc{#3}}}
+
+\def\clivis#1#2{\getthen@one@two{#1}{#2}\relax
+\zlsqu{#1}{\xgregchar0}\zcharnote{#2}{\vrule\@depth\z@ \@height \the@one@minus@two\internote}\squ{#2}}
+
+\def\clivisdeminut#1#2{\getthen@one@two{#1}{#2}\relax
+\zlsqu{#1}\zcharnote{#2}{\xgregchar0\vrule\@depth\z@ \@height
+\the@one@minus@two\internote}\r@small@squ{#2}}
+
+\def\clivisauctup#1#2{\getthen@one@two{#1}{#2}\relax
+\zlsqu{#1}{\xgregchar0}\zcharnote{#2}{\vrule\@depth\z@ \@height \the@one@minus@two\internote}\punctumauctup{#2}}
+
+\def\clivisauctdown#1#2{\getthen@one@two{#1}{#2}\relax
+\zlsqu{#1}{\xgregchar0}\zcharnote{#2}{\vrule\@depth\z@ \@height \the@one@minus@two\internote}\punctumauctdown{#2}}
+
+\def\lclivis#1#2{\zsqu{#1}\groff{\lsqu{#2}}}
+
+\def\podatus#1#2{\getthen@one@two{#1}{#2}\relax
+ \zcharnote{#1}{\ifnum\the@two@minus@one<2\relax
+ \xgregchar16%
+ \else
+ \xgregchar15%
+ \fi
+ \vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+\ifnum\the@two@minus@one<2\relax
+ \shavedsqu{#2}%
+ \else
+ \squ{#2}%
+ \fi
+}
+
+\def\podatusdeminut#1#2{\getthen@one@two{#1}{#2}\relax
+ \zcharnote{#1}{\ifnum\the@two@minus@one<2\relax
+ \xgregchar16%
+ \else
+ \xgregchar15%
+ \fi
+ \vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ \r@small@squ{#2}%
+}
+
+\def\lpodatus#1#2{\zusqu{#1}\groff{\rsqu{#2}}}
+
+\def\podatusinitiodebilis#1#2{\getthen@one@two{#1}{#2}\relax
+ \zcharnote{#1}{\xgregchar12\xgregchar18%
+ \vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ {\xgregchar18}\squ{#2}%
+}
+
+\def\podatusauctup#1#2{\getthen@one@two{#1}{#2}\relax
+ \zcharnote{#1}{\xgregchar5\xgregchar0%
+ \vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ {\xgregchar0}\punctumauctup{#2}%
+}
+
+\def\podatusauctdown#1#2{\getthen@one@two{#1}{#2}\relax
+ \zcharnote{#1}{\xgregchar5\xgregchar0%
+ \vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ {\xgregchar0}\punctumauctdown{#2}%
+}
+
+\def\scandicus#1#2#3{\getthen@one@three{#1}{#2}{#3}\relax
+ \advancefalse\podatus{#1}{#2}{\xgregchar0}%
+% \zcharnote{#2}{\vrule\@depth\z@ \@height\the@three@minus@two\internote}%
+ \rsqu{#3}}
+
+\def\scandicusdeminut#1#2#3{\getthen@one@two{#1}{#2}%
+ \zsqu{#1}{\xgregchar0}%
+% \zcharnote{#1}{\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ \podatusdeminut{#2}{#3}}
+
+\def\scandicusauctdown#1#2#3{\getthen@one@three{#1}{#2}{#3}\relax
+ \zsqu{#1}{\xgregchar0}%
+ \zcharnote{#1}{\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ \zsqu{#2}{\xgregchar0}%
+ \zcharnote{#2}{\vrule\@depth\z@ \@height\the@three@minus@two\internote}%
+ \punctumauctdown{#3}}
+
+\def\torculus#1#2#3{\getthen@one@three{#1}{#2}{#3}\zsqu{#1}{\xgregchar0}%
+ \zcharnote{#1}{\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ \zsqu{#2}{\xgregchar0}%
+ \zcharnote{#3}{\vrule\@depth\z@ \@height\the@two@minus@three\internote}%
+ \squ{#3}}
+
+\def\torculusdeminut#1#2#3{\getthen@one@three{#1}{#2}{#3}\zsqu{#1}{\xgregchar0}%
+ \zcharnote{#1}{\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ \zsqu{#2}%
+ \zcharnote{#3}{\xgregchar0\vrule\@depth\z@ \@height\the@two@minus@three\internote}%
+ \r@small@squ{#3}}
+
+\def\torculusauctdown#1#2#3{\getthen@one@three{#1}{#2}{#3}\zsqu{#1}{\xgregchar0}%
+ \zcharnote{#1}{\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ \zsqu{#2}{\xgregchar0}%
+ \zcharnote{#3}{\vrule\@depth\z@ \@height\the@two@minus@three\internote}%
+ \punctumauctdown{#3}}
+
+\def\torculusinitiodebilis#1#2#3{\getthen@one@three{#1}{#2}{#3}%
+ \zcharnote{#1}{\xgregchar12\xgregchar18\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ {\xgregchar18}\zsqu{#2}{\xgregchar0}%
+ \zcharnote{#3}{\vrule\@depth\z@ \@height\the@two@minus@three\internote}%
+ \squ{#3}}
+
+\def\torculusdebilis#1#2#3{\getthen@one@three{#1}{#2}{#3}%
+ \zcharnote{#1}{\xgregchar12\xgregchar18\vrule\@depth\z@ \@height\the@two@minus@one\internote}%
+ {\xgregchar18}\zsqu{#2}%
+ \zcharnote{#3}{\xgregchar0\vrule\@depth\z@ \@height\the@two@minus@three\internote}%
+ \r@small@squ{#3}}
+
+\def\climacus#1#2#3{\zrsqu{#1}\groff{\zdiapunc{#2}{\xgregchar0}\diapunc{#3}}}
+
+\def\climacusresupinus#1#2#3#4{\zrsqu{#1}\groff{\zdiapunc{#2}{\xgregchar0}\zdiapunc{#3}{\xgregchar0}\squ{#4}}}
+
+\def\climacusdeminut#1#2#3{\zrsqu{#1}\groff{\zdiapunc{#2}{\xgregchar0}\punctumdeminutum{#3}}}
+
+\def\climacusauctdown#1#2#3{\zrsqu{#1}\groff{\zdiapunc{#2}{\xgregchar0}\diapuncauctdown{#3}}}
+
+\def\lclimacus#1#2#3{\zlsqu{#1}\groff{\zdiapunc{#2}{\xgregchar0}\diapunc{#3}}}
+
+\def\pesquassus#1#2{\getthen@one@two{#1}{#2}\relax
+ \zoriscus{#1}{\xgregchar0}\zcharnote{#1}{\vrule\@depth\z@ \@height \the@two@minus@one\internote}\rsqu{#2}}
+
+\def\pesquassusauctdown#1#2{\getthen@one@two{#1}{#2}\relax
+ \zoriscus{#1}{\xgregchar0}\zcharnote{#1}{\vrule\@depth\z@ \@height \the@two@minus@one\internote}\punctumauctdown{#2}}
+
+\def\quilismapes#1#2{\getthen@one@two{#1}{#2}\relax
+ \ifnum\the@two@minus@one<2\relax
+ \zshavedquilisma{#1}% \message{ zshavedqui OK}%
+ \else
+ \zquilisma{#1}% \message{ zquilisma OK}%
+ \fi %\message{zqui OK}%
+ \zcharnote{#1}{\xgregchar0\vrule\@depth\z@ \@height \the@two@minus@one\internote}%
+ \ifnum\the@two@minus@one<2\relax
+ \shavedsqu{#2}%
+ \else
+ \squ{#2}%
+ \fi
+}
+\def\quilismapesauctdown#1#2{\getthen@one@two{#1}{#2}\relax
+ \zquilisma{#1}% \message{ zquilisma OK}%
+ \zcharnote{#1}{\xgregchar0\vrule\@depth\z@ \@height \the@two@minus@one\internote}%
+ {\xgregchar0}\punctumauctdown{#2}%
+}
+
+ %\check
+\def\hporrectus#1{\errmessage{\noexpand\hporrectus\space does not exist
+anymore, use \bporrectus with two args}}
+
+\def\porrectus#1#2{\errmessage{\noexpand\porrectus does not exist anymore, use
+ \noexpand\Porrectus}}
+
+\def\porrectusflexus#1#2{\errmessage{\noexpand\porrectusflexus does not exist anymore, use
+ \noexpand\Porrectusflexus}}
+
+ %\check
+\def\bporrectus#1#2{\getthen@one@two{#1}{#2}\relax
+ \ifnum\the@one@minus@two=1\relax
+ \def\n@sym{\xgregchar121}\relax
+ \else\ifnum\the@one@minus@two=2\relax
+ \def\n@sym{\xgregchar120}\relax
+ \else\ifnum\the@one@minus@two=3\relax
+ \def\n@sym{\xgregchar119}\relax
+ \else\ifnum\the@one@minus@two=4\relax
+ \def\n@sym{\xgregchar118}\relax
+ \else\errmessage{Porrectus 2nd arg must be 1st minus 1 to 4}\relax
+ \fi
+ \fi
+ \fi
+ \fi
+ \getn@i#1\relax\let\n@fon\squ \g@diamg
+}
+
+%\check
+
+\def\Porrectusflexus#1#2#3#4{%
+ \advancefalse\bporrectus{#1}{#2}{\xgregchar0\xgregchar0\xgregchar0}%
+ \getthen@one@three{#2}{#3}{#4}%
+ \zcharnote{#2}{\vrule \@height\the@two@minus@one\internote\@depth\z@}%
+ \zsqu{#3}%
+ {\xgregchar0}\zcharnote{#4}{\vrule\@depth\z@ \@height \the@two@minus@three\internote}\squ{#4}}
+
+%\check
+
+\def\Porrectus#1#2#3{\getthen@one@three{#1}{#2}{#3}\relax
+ \advancefalse\bporrectus{#1}{#2}{\xgregchar0\xgregchar0}%
+ \zcharnote{#2}{\xgregchar0\vrule\@height\the@three@minus@two\internote\@depth\z@}%
+ \ifnum\the@three@minus@two<2\relax
+ \shavedsqu{#3}%
+ \else
+ \squ{#3}%
+ \fi
+}
+
+\def\Porrectusdeminut#1#2#3{\getthen@one@three{#1}{#2}{#3}\relax
+ \advancefalse\bporrectus{#1}{#2}{\xgregchar0\xgregchar0}%
+ \zcharnote{#2}{\xgregchar0\vrule\@height\the@three@minus@two\internote\@depth\z@}\r@small@squ{#3}%
+}
+
+\def\Porrectusauctdown#1#2#3{\getthen@one@three{#1}{#2}{#3}\relax
+ \advancefalse\bporrectus{#1}{#2}{\xgregchar0\xgregchar0\xgregchar0}%
+ \zcharnote{#2}{\vrule\@height\the@three@minus@two\internote\@depth\z@}\punctumauctdown{#3}%
+}
+
+\def\salicus#1#2#3{\zsqu{#1}\groff{\pesquassus{#2}{#3}}}
+%\check
+
+\def\salicusflexus#1#2#3#4{\zsqu{#1}{\xgregchar0}\torculus{#2}{#3}{#4}}
+
+\def\salicusauctdown#1#2#3{\zsqu{#1}\groff{\pesquassusauctdown{#2}{#3}}}
+%\check
+
+\let\xgregfont\xgregnorfont
+
+\endcatcodesmusic
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixgui.tex b/Master/texmf-dist/tex/generic/musixtex/musixgui.tex
new file mode 100644
index 00000000000..569e21d2a29
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixgui.tex
@@ -0,0 +1,41 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXGUItar 0.36\space<1 March 1995>}%
+
+\ifx\undefined\guitar \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\newskip\guitar@dim \guitar@dim=-.6\qn@width\relax
+
+% to raise the chords (steps of internote)
+\def\raiseguitar#1{\edef\r@gu{#1}}
+\let\r@gu\z@
+
+\def\d@c#1{\if x#1\tw@nty \else\if o#1\char19\else\char28\fi\fi}
+\def\guitar#1#2#3#4#5#6#7#8{\zchar\r@gu{\raise\Interligne\lrlap{#1}%
+ \mxsps\lrlap\sixt@@n\lrlap{\d@c#3\d@c#4\d@c#5\d@c#6\d@c#7\d@c#8}%
+ \lower\Internote\lrlap{\eightbf#2\kern\s@v@n\guitar@dim}}}
+\def\gbarre#1{\zchar\r@gu{\n@v#1\advance\n@v\m@ne
+ \raise\n@v\guitar@dim\lrlap{\mxsps\char18}}}
+\def\gdot#1#2{\zchar\r@gu{\n@v#2\advance\n@v\m@ne\kern\si@\guitar@dim
+ \kernm#1\guitar@dim\raise\n@v\guitar@dim\rlap{\mxsps\char17}}}
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixhor.tex b/Master/texmf-dist/tex/generic/musixtex/musixhor.tex
new file mode 100644
index 00000000000..7b603966f30
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixhor.tex
@@ -0,0 +1,40 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\ifx\undefined\Tenpoint
+ \input musixsty.tex
+\fi
+
+\immediate\write10{MusiXtextSTYle-horizontal T.98\space<21 October 1999>}%
+
+\vsize=185mm
+\hsize=275mm
+\hoffset=297mm
+\advance\hoffset -\hsize
+\divide\hoffset 2\relax
+\advance\hoffset -2.54cm
+\tenpoint
+\def\horizontalscore{\relax}
+%%%%%%%%%%%%%%%%%%%%%%%%% local adjust to be tuned %%%%%%%%%%%%%%%%%%%%%%%%%%
+\advance\voffset -5mm
+\hoffset=-1.54cm
+%%%%%%%%%%%%%%%%%%%%%%%%% local adjust to be tuned %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixhou.tex b/Master/texmf-dist/tex/generic/musixtex/musixhou.tex
new file mode 100644
index 00000000000..bdf07ab6549
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixhou.tex
@@ -0,0 +1,58 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\immediate\write10{MusiXHOUsestyles T.64\space<8 October 1996>}%
+
+\ifx\undefined\Metron \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+% match the mid of lower chars (only for \tenrm)
+
+\def\writ@names{\n@loop
+ \setbox\toks@box\llap{\vbox{\hbox\@to\parindent{%
+ \hss\csname instrument\romannumeral\noinstrum@nt\endcsname
+ \hss}\kern\h@lf ex}~~}%
+ \altportee\altitude \Comp@High\advance\y@v-\ht\toks@box
+ \advance\altportee\h@lf\y@v \writ@box \repeat}
+
+% smaller metron
+
+\def\Metron#1{{\tinynotesize\stemlength\thr@@\eightrm (\zqu 0~~~= #1)}}
+
+%%% dynamics
+\iflongDCfontnames
+ \font\frtnbxit=\fontid bi1440
+\else\iflongECfontnames
+ \font\frtnbxit=\fontid bi1440
+ \else
+ \font\frtnbxit=\fontid bxti10 scaled \magstep2
+ \fi
+\fi
+\def\f{\frtnbxit f}
+\def\ff{\f\f@kern f}
+\def\fff{\ff\f@kern f}
+\def\mf{\twelveit m\p@kern\f@kern\f}
+\def\mp@{\twelveit m\p@kern\p}
+\def\p{\frtnbxit p}
+\def\pp{\p\p@kern p}
+\def\ppp{\pp\p@kern p}
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixinv.tex b/Master/texmf-dist/tex/generic/musixtex/musixinv.tex
new file mode 100644
index 00000000000..4a8d6ae8640
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixinv.tex
@@ -0,0 +1,2 @@
+% still a dummy
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixlit.tex b/Master/texmf-dist/tex/generic/musixtex/musixlit.tex
new file mode 100644
index 00000000000..9aab23b20b9
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixlit.tex
@@ -0,0 +1,82 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\immediate\write10{MusiXLITurgical 0.36\space<1 March 1995>}%
+
+\ifx\undefined\oldGclef \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\def\oldGclef{\keychar103}
+
+\def\cqu{\def\q@u{\musixchar99}\@qu}
+\def\cql{\def\q@u{\musixfont\@c}\@ql}
+\def\chu{\def\q@u{\musixchar101}\@qu}
+\def\chl{\def\q@u{\musixchar102}\@ql}
+
+\def\cnqu{\def\q@u{\musixchar99}\@nq}
+\def\cnql{\def\q@u{\musixfont\@c}\@nq}
+\def\cnhu{\def\q@u{\musixchar101}\@nq}
+\def\cnhl{\def\q@u{\musixchar102}\@nq}
+
+\def\Hpause#1#2{\zcharnote{#1}{\def\s@r{%
+ \vrule\@width.6\p@\@height1\h@lf\internote\@depth1\h@lf\internote}%
+ \s@r
+ \vrule\@width#2\noteskip\@height\h@lf\internote\@depth\h@lf\internote
+ \s@r}}
+\def\Hlonga#1#2{\zcharnote{#1}{\def\s@r{%
+ \vrule\@width.6\p@\@height1\h@lf\internote\@depth1\h@lf\internote}%
+ \s@r
+ \raise\h@lf\internote\rlap{\vrule\@width#2\noteskip
+ \@height 0.3pt\@depth 0.3pt}%
+ \raise-\h@lf\internote\hbox{\vrule\@width#2\noteskip
+ \@height 0.3pt\@depth 0.3pt}%
+ \s@r}}
+
+% separated short vrules over every staff (fits only for 1,2,3,5 Lines)
+
+\def\rul@SEP#1{\n@loop\short@rule\repeat\addspace#1}
+\def\short@rule{{\p@loop\y@\altportee\advance\y@\tw@\internote\raise\y@%
+ \rlap{\vrule\@width\lthick\@height\f@ur\internote}\count@portee\repeat}}
+\def\shortbarrules{\let\writ@rule\rul@SEP }
+
+% separated short vrules between every staff (fits only for 1,2,3,5 Lines)
+
+\def\rul@int#1{\n@loop\inter@rule\repeat\addspace#1}
+\def\inter@rule{{%
+ \y@iv\altitude \y@v\y@iv
+ \ifnum\st@ffs>\@ne \@ri \Comp@High\advance\y@v\altitude
+ \else \ifnum\st@ffs>\z@ \advance\y@v\@ight\internote \fi\fi
+ \advance\noinstrum@nt\@ne \s@l@ctinstr
+ \ifnum\st@ffs=\z@ \advance\noinstrum@nt\@ne\s@l@ctinstr \fi
+ \ifnum\nbinstruments<\noinstrum@nt
+ \y@iii\y@iv \y@ii\y@iii \advance\y@ii-\y@v \Put@inter@rule
+ \else
+ \y@iii\altitude \y@ii\y@iii \advance\y@ii-\y@v \Put@inter@rule
+ \fi}}
+\def\@ri{\n@ii\st@ffs \advance\st@ffs\m@ne
+ \C@Inter \y@ii\stem@skip
+ \p@loop \y@iii\altportee \advance\y@iii\interportee
+ \Put@inter@rule \advance\noport@@\@ne \repeat
+ \st@ffs\n@ii}
+\def\Put@inter@rule{\raise\y@iii\rlap{\vrule\@width\lthick\@depth\y@ii}}
+\def\interbarrules{\let\writ@rule\rul@int }
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixltx.tex b/Master/texmf-dist/tex/generic/musixtex/musixltx.tex
new file mode 100644
index 00000000000..18bb6083f4b
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixltx.tex
@@ -0,0 +1,32 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\ifx\undefined\music \else \endinput \fi
+
+\immediate\write10{MusiXLaTeX T.61\space<25 September 1996>}%
+
+\newenvironment{music}{\@afterindenttrue\parskip0pt\catcodesmusic
+ \resetlayout}{}%
+
+\ifx\musix@begindocument\undefined
+ \let\musix@begindocument\document
+ \def\document{\musix@begindocument
+ \ifstartmuflex@done\else\startmuflex\fi}%
+\fi
+
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixmad.tex b/Master/texmf-dist/tex/generic/musixtex/musixmad.tex
new file mode 100644
index 00000000000..850597a269d
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixmad.tex
@@ -0,0 +1,149 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\ifx\staffspacingxii\undefined\else\endinput\fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\ifnum\maxinstruments<\nin@ \input musixadd \fi
+
+\immediate\write10{MusiXMore ADditional instruments T.99\space<24 March 2000>}%
+
+%\ifx\undefined\documentstyle \else
+% \errmessage{MusiXMAD+LaTeX will need too many dimension registers, it's
+%better to stop with 'x'}\fi
+
+\let\@wloG\wlog
+\def\wlog#1{}
+
+\let\maxinstruments\tw@lv@
+
+\let\interinstrumentx\interinstrument
+\let\interinstrumentxi\interinstrument
+\let\interinstrumentxii\interinstrument
+
+\let\T@Rx\z@
+\let\T@Rxi\z@
+\let\T@Rxii\z@
+
+\let\staffspacingx\@ne
+\let\staffspacingxi\@ne
+\let\staffspacingxii\@ne
+
+\newskip\k@ix
+\newskip\k@ixi
+\newskip\k@ixii
+
+\newskip\i@nx
+\newskip\i@nxi
+\newskip\i@nxii
+
+\newskip\b@xx \newskip\b@zx
+\newskip\b@xxi \newskip\b@zxi
+\newskip\b@xxii\newskip\b@zxii
+
+\newskip\c@xx \newskip\c@zx
+\newskip\c@xxi \newskip\c@zxi
+\newskip\c@xxii\newskip\c@zxii
+
+\newskip\d@xx \newskip\d@zx
+\newskip\d@xxi \newskip\d@zxi
+\newskip\d@xxii\newskip\d@zxii
+
+\newskip\e@xx \newskip\e@zx
+\newskip\e@xxi \newskip\e@zxi
+\newskip\e@xxii\newskip\e@zxii
+
+\newcount\b@px \newcount\b@nx
+\newcount\b@pxi \newcount\b@nxi
+\newcount\b@pxii\newcount\b@nxii
+
+\newcount\n@px \n@px\@ne
+\newcount\n@pxi \n@pxi\@ne
+\newcount\n@pxii\n@pxii\@ne
+
+\newskip\s@xx
+\newskip\s@xxi
+\newskip\s@xxii
+\newskip\s@Yx
+\newskip\s@Yxi
+\newskip\s@Yxii
+\newskip\s@ax
+\newskip\s@axi
+\newskip\s@axii
+\newtoks\s@sx \s@sx={x}
+\newtoks\s@sxi \s@sxi={x}
+\newtoks\s@sxii\s@sxii={x}
+\newcount\s@yx
+\newcount\s@yxi
+\newcount\s@yxii
+\newcount\s@Nx
+\newcount\s@Nxi
+\newcount\s@Nxii
+\newcount\s@zx \s@zx\maxdimen
+\newcount\s@zxi \s@zxi\maxdimen
+\newcount\s@zxii\s@zxii\maxdimen
+\newtoks\s@dx
+\newtoks\s@dxi
+\newtoks\s@dxii
+
+\newcount\a@sx \newcount\o@sx
+\newcount\a@sxi \newcount\o@sxi
+\newcount\a@sxii\newcount\o@sxii
+
+\newtoks\a@cx \a@cx={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cxi \a@cxi={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cxii \a@cxii={{\z@}{\z@}{\z@}{\z@}}
+
+\newtoks\o@cx
+\newtoks\o@cxi
+\newtoks\o@cxii
+
+\newtoks\m@tx
+\newtoks\m@txi
+\newtoks\m@txii
+
+\def\resetlayout{\let\interfacteur\nin@
+ \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@
+ \let\n@lvii\fiv@ \let\n@lviii\fiv@ \let\n@lix\fiv@
+ \let\n@lx\fiv@ \let\n@lxi\fiv@ \let\n@lxii\fiv@
+ \resetclefsymbols}
+
+\def\resetclefsymbols{%
+ \let\treblec@si\z@ \let\treblec@sii\z@ \let\treblec@siii\z@ \let\treblec@siv\z@
+ \let\treblec@sv\z@ \let\treblec@svi\z@ \let\treblec@svii\z@ \let\treblec@sviii\z@ \let\treblec@six\z@
+ \let\treblec@sx\z@ \let\treblec@sxi\z@ \let\treblec@sxii\z@
+ \let\altoc@si\z@ \let\altoc@sii\z@ \let\altoc@siii\z@ \let\altoc@siv\z@
+ \let\altoc@sv\z@ \let\altoc@svi\z@ \let\altoc@svii\z@ \let\altoc@sviii\z@ \let\altoc@six\z@
+ \let\altoc@sx\z@ \let\altoc@sxi\z@ \let\altoc@sxii\z@
+ \let\bassc@si\z@ \let\bassc@sii\z@ \let\bassc@siii\z@ \let\bassc@siv\z@
+ \let\bassc@sv\z@ \let\bassc@svi\z@ \let\bassc@svii\z@ \let\bassc@sviii\z@ \let\bassc@six\z@
+ \let\bassc@sx\z@ \let\bassc@sxi\z@ \let\bassc@sxii\z@
+}
+
+\let\nbinstruments\maxinstruments
+\normalnotesize\resetlayout
+\let\nbinstruments\@ne
+
+\let\wlog\@wloG
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixper.tex b/Master/texmf-dist/tex/generic/musixtex/musixper.tex
new file mode 100644
index 00000000000..22a365726d9
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixper.tex
@@ -0,0 +1,195 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MusiXPERcussion T.60\space<23 September 1996>}%
+
+\ifx\undefined\drumclef \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\ifx\undefined\dqb
+ \input musixdia
+\fi
+
+% if you need pointed percussion notes, say '\p[p][p]t n\xqu n' or '\xqu{.n}'
+% if you need them more often define them by your one
+
+\def\drumclef{\raise2\internote\hbox{\keychar77}}
+
+%%% notes with a circled diagonal cross head, for closed hihat ...
+
+\def\dc@symbol{\def\q@u{\musixchar113}}
+
+\def\dcqu{\dc@symbol\@qu}
+\def\dcql{\dc@symbol\@ql}
+
+\def\dcqb{\dc@symbol\@qb}
+
+\def\dczq{\dc@symbol\@zq}
+
+\def\dccu{\dc@symbol\@cu}
+\def\dcccu{\dc@symbol\@ccu}
+%\def\dccccu{\dc@symbol\@cccu}
+%\def\dcccccu{\dc@symbol\@ccccu}
+\def\dccl{\dc@symbol\@cl}
+\def\dcccl{\dc@symbol\@ccl}
+%\def\dccccl{\dc@symbol\@cccl}
+%\def\dcccccl{\dc@symbol\@ccccl}
+
+%%% notes with a diagonal cross half circle head, for half open hihat ...
+
+\def\dh@symbol{\def\q@u{\musixchar112}}
+
+\def\dhqu{\dh@symbol\@qu}
+\def\dhql{\dh@symbol\@ql}
+
+\def\dhqb{\dh@symbol\@qb}
+
+\def\dhzq{\dh@symbol\@zq}
+
+\def\dhcu{\dh@symbol\@cu}
+\def\dhccu{\dh@symbol\@ccu}
+%\def\dhcccu{\dh@symbol\@cccu}
+%\def\dhccccu{\dh@symbol\@ccccu}
+\def\dhcl{\dh@symbol\@cl}
+\def\dhccl{\dh@symbol\@ccl}
+%\def\dhcccl{\dh@symbol\@cccl}
+%\def\dhccccl{\dh@symbol\@ccccl}
+
+%%% notes with a diagonal cross head, for open hihat ...
+
+\def\do@symbol{\def\q@u{\musixchar111}}
+
+\def\doqu{\do@symbol\@qu}
+\def\doql{\do@symbol\@ql}
+
+\def\doqb{\do@symbol\@qb}
+
+\def\dozq{\do@symbol\@zq}
+
+\def\docu{\do@symbol\@cu}
+\def\doccu{\do@symbol\@ccu}
+%\def\docccu{\do@symbol\@cccu}
+%\def\doccccu{\do@symbol\@ccccu}
+\def\docl{\do@symbol\@cl}
+\def\doccl{\do@symbol\@ccl}
+%\def\docccl{\do@symbol\@cccl}
+%\def\doccccl{\do@symbol\@ccccl}
+
+%%% notes with a doublesharp-head
+
+\def\x@symbol{\def\q@u{\musixchar114}}
+
+\def\xqu{\x@symbol\@qu}
+\def\xql{\x@symbol\@ql}
+
+\def\xqb{\x@symbol\@qb}
+
+\def\xzq{\x@symbol\@zq}
+
+\def\xcu{\x@symbol\@cu}
+\def\xccu{\x@symbol\@ccu}
+%\def\xcccu{\x@symbol\@cccu}
+%\def\xccccu{\x@symbol\@ccccu}
+\def\xcl{\x@symbol\@cl}
+\def\xccl{\x@symbol\@ccl}
+%\def\xcccl{\x@symbol\@cccl}
+%\def\xccccl{\x@symbol\@ccccl}
+
+%%% notes with a circled doublesharp-head
+
+\def\ox@symbol{\def\q@u{\musixfont\@cxv}}
+
+\def\oxqu{\ox@symbol\@qu}
+\def\oxql{\ox@symbol\@ql}
+
+\def\oxqb{\ox@symbol\@qb}
+
+\def\oxzq{\ox@symbol\@zq}
+
+\def\oxcu{\ox@symbol\@cu}
+\def\oxccu{\ox@symbol\@ccu}
+%\def\oxcccu{\ox@symbol\@cccu}
+%\def\oxccccu{\ox@symbol\@ccccu}
+\def\oxcl{\ox@symbol\@cl}
+\def\oxccl{\ox@symbol\@ccl}
+%\def\oxcccl{\ox@symbol\@cccl}
+%\def\oxccccl{\ox@symbol\@ccccl}
+
+%%% notes with a RhOmbus head, for shaker ...
+
+\def\r@symbol{\def\q@u{\musixchar118}}
+
+\def\roqu{\r@symbol\@qu}
+\def\roql{\r@symbol\@ql}
+
+\def\roqb{\r@symbol\@qb}
+
+\def\rozq{\r@symbol\@zq}
+
+\def\rocu{\r@symbol\@cu}
+\def\roccu{\r@symbol\@ccu}
+%\def\rocccu{\r@symbol\@cccu}
+%\def\roccccu{\r@symbol\@ccccu}
+\def\rocl{\r@symbol\@cl}
+\def\roccl{\r@symbol\@ccl}
+%\def\rocccl{\r@symbol\@cccl}
+%\def\roccccl{\r@symbol\@ccccl}
+
+%%% notes with a TrianGle head, for rattle ...
+
+\def\t@symbol{\def\q@u{\musixchar116}}
+
+\def\tgqu{\t@symbol\@qu}
+\def\tgql{\t@symbol\@ql}
+
+\def\tgqb{\t@symbol\@qb}
+
+\def\tgzq{\t@symbol\@zq}
+
+\def\tgcu{\t@symbol\@cu}
+\def\tgccu{\t@symbol\@ccu}
+%\def\tgcccu{\t@symbol\@cccu}
+%\def\tgccccu{\t@symbol\@ccccu}
+\def\tgcl{\t@symbol\@cl}
+\def\tgccl{\t@symbol\@ccl}
+%\def\tgcccl{\t@symbol\@cccl}
+%\def\tgccccl{\t@symbol\@ccccl}
+
+%%% notes with a + head, for bongos ...
+
+\def\k@symbol{\def\q@u{\musixchar117}}
+
+\def\kqu{\k@symbol\@qu}
+\def\kql{\k@symbol\@ql}
+
+\def\kqb{\k@symbol\@qb}
+
+\def\kzq{\k@symbol\@zq}
+
+\def\kcu{\k@symbol\@cu}
+\def\kccu{\k@symbol\@ccu}
+%\def\kcccu{\k@symbol\@cccu}
+%\def\kccccu{\k@symbol\@ccccu}
+\def\kcl{\k@symbol\@cl}
+\def\kccl{\k@symbol\@ccl}
+%\def\kcccl{\k@symbol\@cccl}
+%\def\kccccl{\k@symbol\@ccccl}
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex b/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex
new file mode 100644
index 00000000000..c48cd536ebc
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixpoi.tex
@@ -0,0 +1,64 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\immediate\write10{MusiXPOInted shorties 0.36\space<1 March 1995>}
+
+\ifx\undefined\ccup \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\def\@ccup{\n@vii\@xli \let\st@m\up@flag \g@qp}
+\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\@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}
+\def\@cccupp{\n@vii42\let\st@m\up@flag \g@qpp}
+\def\@ccccupp{\n@vii43\let\st@m\up@flag \g@qpp}
+\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\ccupp{\q@symbol\@ccupp}
+\def\zccupp{\advancefalse\ccupp}
+\def\cclpp{\q@symbol\@cclpp}
+\def\zcclpp{\advancefalse\cclpp}
+\def\cccup{\q@symbol\@cccup}
+\def\zcccup{\advancefalse\cccup}
+\def\ccclp{\q@symbol\@ccclp}
+\def\zccclp{\advancefalse\ccclp}
+\def\cccupp{\q@symbol\@cccupp}
+\def\zcccupp{\advancefalse\cccupp}
+\def\ccclpp{\q@symbol\@ccclpp}
+\def\zccclpp{\advancefalse\ccclpp}
+\def\ccccup{\q@symbol\@ccccup}
+\def\zccccup{\advancefalse\ccccup}
+\def\cccclp{\q@symbol\@cccclp}
+\def\zcccclp{\advancefalse\cccclp}
+\def\ccccupp{\q@symbol\@ccccupp}
+\def\zccccupp{\advancefalse\ccccupp}
+\def\cccclpp{\q@symbol\@cccclpp}
+\def\zcccclpp{\advancefalse\cccclpp}
+
+\catcode`\@=\catcodeat
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixref.tex b/Master/texmf-dist/tex/generic/musixtex/musixref.tex
new file mode 100644
index 00000000000..dd7c9b92d8f
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixref.tex
@@ -0,0 +1,305 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+%format musix
+
+% version compatible with T103 12 Aug. 2001 D. Taupin
+
+%II 59.9
+
+\input musixtex
+%\input musixcpt
+\input musixhou
+\input musixper
+\input musixlit
+\input musixgre
+\input musixext
+
+\parindent 0mm
+\nopagenumbers\nobarnumbers
+
+\ifx\MusiXTeX\indefined\def\MusiXTeX{MusiX\TeX}\fi
+%\centerline{\cmbxbig\MusiXTeX---Reference}\medskip
+\centerline{\Bigfont\MusiXTeX---Reference}\medskip
+\centerline{\bigfont Pitches}\medskip
+\tt
+\def\bs{\char92}
+\setclef1{6000}
+\afterruleskip2pt
+\startmuflex\startpiece
+%
+% Pitches
+%
+\addspace\afterruleskip
+\notes\wh{`ABCDEFG!ABCDEFGHIJKLMNabcde}\off{-26\noteskip}%
+ \zchar{14}{\llap`A}\sk
+ \zchar{14}{\llap`B}\sk
+ \zchar{14}{\llap`C}\sk
+ \zchar{14}{\llap`D}\sk
+ \zchar{14}{\llap`E}\sk
+ \zchar{14}{\llap`F}\sk
+ \zchar{14}{\llap`G}\sk
+ \zchar{14}A\sk
+ \zchar{14}B\sk
+ \zchar{14}C\sk
+ \zchar{14}D\sk
+ \zchar{14}E\sk
+ \zchar{14}F\sk
+ \zchar{14}G\sk
+ \zchar{-5}{\llap'A}\zchar{14}H\sk
+ \zchar{-5}{\llap'B}\zchar{14}I\sk
+ \zchar{-5}{\llap'C}\zchar{14}J\sk
+ \zchar{-5}{\llap'D}\zchar{14}K\sk
+ \zchar{-5}{\llap'E}\zchar{14}L\sk
+ \zchar{-5}{\llap'F}\zchar{14}M\sk
+ \zchar{-5}{\llap'G}\zchar{14}N\sk
+ \zchar{14}a\sk
+ \zchar{14}b\sk
+ \zchar{14}c\sk
+ \zchar{14}d\sk
+ \zchar{14}e\sk\en
+\stoppiece\vskip-3\Interligne\setclef1{0000}\contpiece
+\notes\wh{abcdefghijklmnopqrstuvwxyz}\off{-26\noteskip}%
+ \zchar{-8}a\sk
+ \zchar{-8}b\sk
+ \zchar{-8}c\sk
+ \zchar{-8}d\sk
+ \zchar{-8}e\sk
+ \zchar{-8}f\sk
+ \zchar{-8}g\sk
+ \zchar{-8}h\zchar{-4}{\llap'a}\sk
+ \zchar{-8}i\zchar{-4}{\llap'b}\sk
+ \zchar{-8}j\zchar{-4}{\llap'c}\sk
+ \zchar{-8}k\zchar{-4}{\llap'd}\sk
+ \zchar{-8}l\zchar{-4}{\llap'e}\sk
+ \zchar{-8}m\zchar{-4}{\llap'f}\sk
+ \zchar{-8}n\zchar{-4}{\llap'g}\sk
+ \zchar{-8}o\zchar{-4}{\llap{'\kern-2pt'}a}\sk
+ \zchar{-8}p\zchar{-4}{\llap{'\kern-2pt'}b}\sk
+ \zchar{-8}q\zchar{-4}{\llap{'\kern-2pt'}c}\sk
+ \zchar{-8}r\zchar{-4}{\llap{'\kern-2pt'}d}\sk
+ \zchar{-8}s\zchar{-4}{\llap{'\kern-2pt'}e}\sk
+ \zchar{-8}t\zchar{-4}{\llap{'\kern-2pt'}f}\sk
+ \zchar{-8}u\zchar{-4}{\llap{'\kern-2pt'}g}\sk
+ \zchar{-8}v\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}a}\sk
+ \zchar{-8}w\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}b}\sk
+ \zchar{-8}x\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}c}\sk
+ \zchar{-8}y\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}d}\sk
+ \zchar{-8}z\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}e}\sk\en
+\stoppiece
+\medskip\centerline{\bigfont Notes, Accidentals, Accents, Clefs and Rests}
+\medskip
+%
+% Notes& Accidentals
+%
+\contpiece
+\Notes
+ \zchar{-4}{Accidentals:}%
+ \zchar9{\bs zmaxima}\zmaxima i\sk
+ \zchar{12}{\bs zlonga}\zlonga i\sk
+ \zchar9{\bs zbreve}\zbreve i\sk
+ \zchar{12}{\bs zwq}\zwq i\sk
+ \zchar{12}{\bs wh}\wh i%
+ \zchar{12}{\bs hu}\zchar{-4}>\hu{>f}%
+ \zchar{12}{\bs hl}\loff{\zchar{-4}{\bs cdsh}}\cdsh l\hl l%
+ \zchar{12}{\bs qu}\zchar{-4}\^\qu{^f}%
+ \zchar{12}{\bs ql}\loff{\zchar{-4}{\bs csh}}\csh l\ql l%
+ \zchar{12}{\bs cu}\zchar{-4}=\cu{=f}%
+ \zchar{12}{\bs cl}\loff{\zchar{-4}{\bs cna}}\cna l\cl l%
+ \zchar{12}{\bs ccu}\zchar{-4}\_\ccu{_f}%
+ \zchar{12}{\bs ccl}\loff{\zchar{-4}{\bs cfl}}\cfl l\ccl l%
+ \zchar{12}{\bs cccu}\zchar{-4}<\cccu{<f}%
+ \zchar{12}{\bs cccl}\loff{\zchar{-4}{\bs cdfl}}\cdfl l\cccl l%
+\multnoteskip{1.2}%
+ \zchar{12}{\bs ccccu}\ccccu f%
+ \zchar{12}{\bs ccccl}\ccccl l%
+\multnoteskip{.8}%
+ \zchar{12}{\bs grcu}\grcu f%
+ \zchar{12}{\bs grcl}\grcl l\en
+\stoppiece\medskip
+%
+% various noteheads
+%
+\contpiece
+\Notes
+\multnoteskip{1.1}%
+ \zchar{10}{\bs dqu$^{123}$}%
+ \zchar{-3}{\eightrm 1 musixdia.tex~~2 musixper.tex~~3 musixgre.tex%
+ ~~4 musixlit.tex~~5 musixext.tex}\dqu g%
+ \zchar{10}{\bs yqu$^{123}$}\yqu g%
+\multnoteskip{.9}%
+ \zchar{10}{\bs dcqu$^2$}\dcqu g%
+ \zchar{10}{\bs dhqu$^2$}\dhqu g%
+ \zchar{10}{\bs doqu$^2$}\doqu g%
+ \zchar{10}{\bs xqu$^2$}\xqu g%
+ \zchar{10}{\bs oxqu$^2$}\oxqu g%
+ \zchar{10}{\bs roqu$^2$}\roqu g%
+ \zchar{10}{\bs tgqu$^2$}\tgqu f%
+ \zchar{10}{\bs kqu$^2$}\kqu f%
+ \zchar{10}{\bs squ$^3$}\squ g%
+ \zchar{10}{\bs lsqu$^3$}\lsqu j%
+ \zchar{10}{\bs rsqu$^3$}\rsqu k%
+ \zchar{10}{\bs cqu$^4$}\cqu g%
+ \zchar{10}{\bs cql$^4$}\cql k%
+ \zchar{10}{\bs chu$^4$}\chu g%
+ \zchar{10}{\bs chl$^4$}\chl k\en
+%
+% Pointed Notes and Accents
+%
+\stoppiece\medskip\contpiece
+\Notes
+ \zchar{-5}{\eightrm Accent on beam with prefix {\it b} and beamrefnumber
+ instead pitch}%
+ \zchar{13}{\bs lpz}\lpz f\qu f%
+ \zchar{13}{\bs upz}\upz l\ql l%
+ \zchar{13}{\bs lsf}\lsf f\qu f%
+ \zchar{13}{\bs usf}\usf l\ql l%
+ \zchar{13}{\bs lst}\lst f\qu f%
+ \zchar{13}{\bs ust}\ust l\ql l%
+ \zchar{13}{\bs lppz}\lppz f\qu f%
+ \zchar{13}{\bs uppz}\uppz l\ql l%
+ \zchar{13}{\bs lsfz}\lsfz f\qu f%
+ \zchar{13}{\bs usfz}\usfz l\ql l%
+ \zchar{13}{\bs lpzst}\lpzst f\qu f%
+ \zchar{13}{\bs upzst}\upzst l\ql l%
+ \zchar{16}{\bs downbow}\zchar9\downbow\ql l%
+ \zchar{13}{\bs upbow}\zchar9\upbow\ql l%
+ \zchar{16}{\bs flageolett}\flageolett l\ql l%
+ \zchar{13}{\bs whp}\whp i%
+ \zchar{13}{\bs qupp}\qupp h\en
+\stoppiece\medskip
+%
+% clefs
+%
+\let\clefdesoli\empty \nostartrule \contpiece
+\NOtes
+ \zchar{13}{\bs trebleclef}\zchar0\trebleclef\sk
+ \zchar9{\bs altoclef}\zchar0\altoclef\sk
+ \zchar{13}{\bs bassclef}\zchar0\bassclef\sk
+ \zchar9{\bs smalltrebleclef}\zchar0\smalltrebleclef\sk
+ \zchar{13}{\bs smallaltoclef}\zchar0\smallaltoclef\sk
+ \zchar9{\bs smallbassclef}\zchar0\smallbassclef\sk
+ \zchar{13}{\bs drumclef$^2$}\zchar0\drumclef\sk
+ \zchar9{\bs gregorianCclef$^3$}\zchar0\gregorianCclef\sk
+ \zchar{13}{\bs gregorianFclef$^3$}\zchar0\gregorianFclef\sk
+ \zchar9{\bs oldGclef$^4$}\zchar0\oldGclef\sk\en
+\zstoppiece\smallskip
+%
+% Rests
+%
+\let\clefdesoli\trebleclef \startrule\contpiece
+\NOtes
+\multnoteskip{.5}%
+ \zchar{13}{\bs qqs}\qqs
+ \zchar{13}{\bs hs}\hs
+ \zchar{13}{\bs qs}\qs
+ \zchar{13}{\bs ds}\ds
+ \zchar{13}{\bs qp}\qp
+\multnoteskip2%
+ \zchar{13}{\bs hpause}\hpause
+ \zchar{13}{\bs hpausep}\hpausep
+ \zchar{9}{\bs lifthpause}\roff{\lifthpause5}\sk
+ \zchar{13}{\bs pause}\pause
+ \zchar{13}{\bs pausep}\pausep
+ \zchar{9}{\bs liftpause}\roff{\liftpause4}\sk
+ \zchar{13}{\bs PAuse}\PAuse
+ \zchar{13}{\bs PAUSe}\PAUSe
+ \zchar{13}{\bs Hpause$^4$}\Hpause i{.8}\sk\en
+\stoppiece\centerline{\bigfont Other Symbols}\medskip
+%
+% Other Symbols
+%
+\contpiece
+\NOtes
+ \zchar{14}{\bs Trille}\zchar{-4}{\bs allabreve}\Trille n1%
+ \zchar0\allabreve\sk
+ \zchar{14}{\bs trille}\zchar{-4}{\bs meterC}\trille n1\zchar0\meterC\sk
+ \zchar{14}{\bs shake}\zchar{-4}{\bs reverseC}\shake n\zchar0\reverseC\sk
+ \zchar{14}{\bs Shake}\zchar{-4}{\bs meterplus}\Shake n%
+ \zchar0{\meterfrac{3\meterplus2\meterplus3}8}\off{.66\noteskip}%
+ \zchar{14}{\bs mordent}\mordent n\sk
+ \zchar{14}{\bs Mordent}\zchar{-4}{\bs duevolte}\Mordent n\duevolte\sk
+\multnoteskip{.66}%
+ \zchar{14}{\bs turn}\turn n\sk
+\multnoteskip{1.25}%
+ \zchar{14}{\bs backturn}\zchar{-4}{\bs l[r]par}\backturn n%
+ \lpar f\rpar f{\stemlength4\qu f}%
+ \zchar{14}{\bs Shakel}\Shakel n\sk
+ \zchar{14}{\bs Shakesw}\Shakesw n\sk
+ \zchar{14}{\bs Shakene}\Shakene n\sk
+ \zchar{14}{\bs Shakenw}\Shakenw n\sk\en
+\stoppiece\medskip
+%
+% again
+%
+\contpiece
+\NOtes\zchar9{\bs metron}\zchar{13}{\metron\qu{99}}\sk\en
+\setvoltabox1\bar
+\NOtes\loffset2{\zchar{17}{\bs setvoltabox}}\en
+\setvolta2\setendvolta\rightrepeat
+\NOtes\loff{\zchar{17}{\bs setvolta}}\loff{\zchar{20}{\bs setendvolta}}\en
+\doublebar
+\notes\zchar{17}{\kern-\afterruleskip\bs coda}\coda n\en\bar
+\notes\zchar{17}{\kern-\afterruleskip\bs Coda}\Coda n\en
+\NOtes
+ \zchar{17}{\bs segno}\segno n\sk
+ \zchar{17}{\kern-3\Interligne\bs Segno}\Segno\hsk
+ \zchar{17}{\bs caesura}\sk\caesura
+ \zchar{17}{\bs cbreath}\cbreath\sk
+\multnoteskip{.66}%
+ \zchar{17}{\bs PED}\PED\sk
+ \zchar{17}{\bs sPED}\sPED\sk
+ \zchar{17}{\bs DEP}\DEP\sk
+ \zchar{17}{\bs sDEP}\sDEP\sk\en
+\stoppiece\medskip
+%
+% and again ...
+%
+\contpiece
+\Notes
+ \zchar{17}{\bs fermataup}\fermataup l%
+ \zchar{-8}{\bs fermatadown}\fermatadown f{\stemlength3\ql i}%
+ \zchar{13}{\bs Fermataup}\Fermataup l%
+ \zchar{-4}{\kern8pt\bs Fermatadown}\Fermatadown f\wh i%
+ \loff{\zchar{17}{\bs arpeggio d5}}\arpeggio d5\sk
+\multnoteskip{.66}%
+ \loff{\zchar{13}{\bs bracket}}\bracket e{10}\zq n\ql e\en
+\notes\stemlength3%
+ \zchar{17}{\bs uptrio}\uptrio{11}16\ql l\ql n\bsk\bsk
+ \zchar{-8}{\bs downtrio}\downtrio{-5}17\qu c\qu e\en
+\Notes
+ \zchar{17}{\bs octfinup}\octfinup n{.8}%
+ \zchar{-4}{\bs octfindown}\octfindown K{.8}\sk\hsk
+ \zchar{17}{\bs slide$^5$}%
+ \slide i58\slide i57\slide i56\slide i55\slide i54%
+ \slide i53\slide i52\slide i51\slide i5{-1}%
+ \slide i5{-2}\slide i5{-3}\slide i5{-4}\slide i5{-5}%
+ \slide i5{-6}\slide i5{-7}\slide i5{-8}\sk\en
+\leftrepeat
+\Notes
+ \loffset2{\zchar{-4}{\bs leftrepeat}}%
+ \boxitsep=2pt\zchar{17}{\bs boxit A}\zchar9{\boxit A}\en
+\leftrightrepeat
+\Notes
+ \loffset2{\zchar{-8}{\bs leftrightrepeat}}%
+ \zchar{17}{\bs circleit B}\uptext{\circleit B}\en
+\rightrepeat
+\NOtes
+ \loffset2{\zchar{-4}{\bs rightrepeat}}\en
+\endpiece\endmuflex\eject\end
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixslu.tex b/Master/texmf-dist/tex/generic/musixtex/musixslu.tex
new file mode 100644
index 00000000000..86a69982f45
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixslu.tex
@@ -0,0 +1,4 @@
+\errmessage{Musixslu.tex does not exist. Remove any reference to musixslu.tex
+or \noexpand\input musixslu in your source files!}
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixsqr.tex b/Master/texmf-dist/tex/generic/musixtex/musixsqr.tex
new file mode 100644
index 00000000000..4a480cca562
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixsqr.tex
@@ -0,0 +1,3 @@
+\errmessage{musixsqr.tex has been removed. Use the
+\noexpand\geometricskipscale\space command.}
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixste.tex b/Master/texmf-dist/tex/generic/musixtex/musixste.tex
new file mode 100644
index 00000000000..7741e4b974a
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixste.tex
@@ -0,0 +1,35 @@
+
+\def\explainstr#1{% #1 = 0 standard explanation; #1 = 1 TeX-ish expl.
+\ifnum #1>0 \def\bslstr##1{$\backslash$##1} \else\def\bslstr##1{} \fi
+$$\vbox{
+\halign{ ## \quad & ## & ## \hfill & ## \hfill & ## \hfill & ## \hfill \cr
+\ifnum #1=1 & & Explication des signes & Explanation of the signs & Zeichenerkl\"arung & Jelek magyar\'azata \cr \fi
+\ifnum #1=0 & & {\bf Explication des signes} & {\bf Explanation of the signs} & {\bf Zeichenerkl\"arung} & {\bf Jelek magyar\'azata} \cr \fi
+\cr
+ \AB & \bslstr{AB} & Tirez l'archet & down-bow & Abstrich & Lefel\'e \cr
+\ifnum #1>0 \downbow & \bslstr{downbow} & Tirez l'archet & down-bow & Abstrich & Lefel\'e \cr \fi
+ \AUF & \bslstr{AUF} & Poussez l'archet & up-bow & Aufstrich & F\"olfel\'e \cr
+\ifnum #1>0 \upbow & \bslstr{upbow} & Poussez l'archet & up-bow & Aufstrich & F\"olfel\'e \cr \fi
+\cr
+ \SP & \bslstr{SP} & A la pointe & at the top & An der Spitze & Cs\'ucsn\'al \cr
+ \FR & \bslstr{FR} & Au talon & at the nut & Am Frosch & K\'ap\'an\'al \cr
+\cr
+ \GB & \bslstr{GB} & Tout l'archet & whole bow & Ganzer Bogen & Eg\'esz von\'oval \cr
+\ifnum #1>0 \Gb & \bslstr{Gb} & Tout l'archet & whole bow & Ganzer Bogen & Eg\'esz von\'oval \cr \fi
+ \UH & \bslstr{UH} & La moiti\'e inf\'erieure ... & lower half & Untere H\"alfte & A von\'o als\'o fele \cr
+\ifnum #1>0 \Uh & \bslstr{Uh} & La moiti\'e inf\'erieure ... & lower half & Untere H\"alfte & A von\'o als\'o fele \cr \fi
+ \OH & \bslstr{OH} & La moiti\'e sup\'erieure ... & upper half & Obere H\"alfte & A von\'o fels\H{o} fele \cr
+\ifnum #1>0 \Oh & \bslstr{Oh} & La moiti\'e sup\'erieure ... & upper half & Obere H\"alfte & A von\'o fels\H{o} fele \cr \fi
+ \MI & \bslstr{MI} & Au milieu ... & middle & In der Mitte & K\"oz\'epen \cr
+\ifnum #1>0 \Mi & \bslstr{Mi} & Au milieu ... & middle & In der Mitte & K\"oz\'epen \cr \fi
+ \UD & \bslstr{UD} & Le premier tiers ... & lower third & Unteres Drittel & A von\'o als\'o harmada \cr
+\ifnum #1>0 \Ud & \bslstr{Ud} & Le premier tiers ... & lower third & Unteres Drittel & A von\'o als\'o harmada \cr \fi
+ \OD & \bslstr{OD} & Le troisi\`eme tiers ... & upper third & Oberes Drittel & A von\'o fels\H{o} harmada \cr
+\ifnum #1>0 \Od & \bslstr{Od} & Le troisi\`eme tiers ... & upper third & Oberes Drittel & A von\'o fels\H{o} harmada \cr \fi
+ & & \hfill ... de l'archet \cr
+\cr
+ \Pizz & \bslstr{Pizz} & Pincez avec la main & left hand pizzicato & Pizzicato der linken & piccikat\'o bal k\'ezzel \cr
+ & & gauche & & Hand \cr
+ \Tr & \bslstr{Tr} & (ou trille) & (or trille) & (oder Triller) & (vagy trilla) \cr
+}}$$}
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixstf.tex b/Master/texmf-dist/tex/generic/musixtex/musixstf.tex
new file mode 100644
index 00000000000..a73cf021ff3
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixstf.tex
@@ -0,0 +1,28 @@
+% musixstr.ref
+
+\input musixstr
+\input musixste
+
+\parindent0pt\nopagenumbers
+
+\def\T#1{\zcharnote g{#1}\qa d}
+\def\Sk#1{\off{0.#1\noteskip}}
+
+\centerline{\bigfont MusiXSTRings}\smallskip
+
+\nostartrule\def\nbinstruments{1}\generalsignature{0}
+\startmuflex\startpiece\transpose=7%
+\NOtes\Sk5%
+ \T{\downbow}\T{\AB}\T{\upbow}\T{\AUF}%
+ \T{\SP}\T{\FR}\T{\GB}\T{\Gb}\T{\UH}\T{\Uh}\T{\OH}%
+ \T{\Oh}\T{\MI}\T{\Mi}\T{\UD}\T{\Ud}\T{\OD}\T{\Od}%
+ \T{\Pizz}\T{\Tr}\en
+\stoppiece\endmuflex
+
+\bigskip{\bf$\backslash$explainstr1}\smallskip\explainstr1
+\bigskip{\bf$\backslash$explainstr0}\smallskip\explainstr0
+
+\vfill\eject
+
+\bye
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixstr.tex b/Master/texmf-dist/tex/generic/musixtex/musixstr.tex
new file mode 100644
index 00000000000..cde052ad37f
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixstr.tex
@@ -0,0 +1,64 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\immediate\write10{MUsiXSTRingaccents T.57\space<6 September 1996>}%
+
+\ifx\undefined\sevenrm
+\iflongDCfontnames
+ \font\sevenrm=\fontid r0700
+ \font\sevenbf=\fontid bx0700
+ \font\sevenit=\fontid ti0700
+\else\iflongECfontnames
+ \font\sevenrm=\fontid rm0700
+ \font\sevenbf=\fontid bx0700
+ \font\sevenit=\fontid ti0700
+\else
+ \font\sevenrm=\fontid r7
+ \font\sevenbf=\fontid bx7
+ \font\sevenit=\fontid ti7
+\fi
+\fi
+\fi
+
+% accents for strings by Werner Icking (Werner.Icking@gmd.de)
+
+\let\AB\downbow
+\let\AUF\upbow
+\def\SP{$\mathrel\triangleleft\joinrel\mid$}
+\def\FR{$\mapstochar\mathrel=\joinrel\mid$}
+\def\GB{$\longleftrightarrow$}
+\def\Gb{$\leftrightarrow$}
+\def\UH{$\longleftarrow$}
+\def\Uh{$\leftarrow$}
+\def\OH{$\longrightarrow$}
+\def\Oh{$\rightarrow$}
+\def\MI{$\mapstochar\relbar\joinrel\relbar\joinrel\mapstochar$}
+\def\Mi{$\mapstochar\relbar\joinrel\mapstochar$}
+\def\UD{$\longleftarrow\joinrel\mapstochar$}
+\def\Ud{$\leftarrow\joinrel\mapstochar$}
+\def\OD{$\mapstochar\longrightarrow$}
+\def\Od{$\mapstochar\rightarrow$}
+
+
+
+
+\def\Pizz{\kern-.3pt{\sevenrm+}}
+\let\Tr\Pizz
+
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixsty.tex b/Master/texmf-dist/tex/generic/musixtex/musixsty.tex
new file mode 100644
index 00000000000..ebe52ae3126
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixsty.tex
@@ -0,0 +1,514 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\ifx\undefined\Tenpoint \else \endinput\fi
+
+\immediate\write10{MusiXtextSTYle T.94\space<11 May 1999>}%
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+\edef\catcode@gt{\the\catcode`\>}\catcode`\>=12
+\edef\catcode@lt{\the\catcode`\<}\catcode`\<=12
+
+% non musical procedures used in typesetting the non-musical
+% texts together with musictex
+
+% eight point fonts
+
+\font\eighti=cmmi8 \skewchar\eighti='177
+\font\eightsy=cmsy8 \skewchar\eightsy='60
+\iflongDCfontnames
+ \font\eighttt=\fontid tt0800
+ \font\eightsl=\fontid sl0800
+\else\iflongECfontnames
+ \font\eighttt=\fontid tt0800
+ \font\eightsl=\fontid sl0800
+\else
+ \font\eighttt=\fontid tt8
+ \font\eightsl=\fontid sl8
+\fi
+\fi
+%
+% nine point fonts
+%
+\font\ninei=cmmi9 \skewchar\ninei='177
+\font\ninesy=cmsy9 \skewchar\ninesy='60
+\iflongDCfontnames
+ \font\ninett=\fontid tt0900
+ \font\ninerm=\fontid r0900
+ \font\ninesl=\fontid sl0900
+ \font\nineit=\fontid ti0900
+ \font\ninebf=\fontid bx0900
+\else\iflongECfontnames
+ \font\ninett=\fontid tt0900
+ \font\ninerm=\fontid rm0900
+ \font\ninesl=\fontid sl0900
+ \font\nineit=\fontid ti0900
+ \font\ninebf=\fontid bx0900
+\else
+ \font\ninerm=\fontid r9
+ \font\ninett=\fontid tt9
+ \font\ninesl=\fontid sl9
+ \font\nineit=\fontid ti9
+ \font\ninebf=\fontid bx9
+\fi
+\fi
+%
+% eleven point fonts
+%
+\font\elvi=cmmi10 scaled \magstephalf \skewchar\elvi='177
+\font\elvsy=cmsy10 scaled \magstephalf \skewchar\elvsy='60
+\iflongDCfontnames
+ \font\elvtt=\fontid tt1095
+ \font\elvrm=\fontid r1095
+ \font\elvsl=\fontid sl1095
+ \font\elvit=\fontid ti1095
+ \font\elvbf=\fontid bx1095
+\else\iflongECfontnames
+ \font\elvtt=\fontid tt1095
+ \font\elvrm=\fontid rm1095
+ \font\elvsl=\fontid sl1095
+ \font\elvit=\fontid ti1095
+ \font\elvbf=\fontid bx1095
+\else
+ \font\elvrm=\fontid r9 scaled \magstephalf
+ \font\elvtt=\fontid tt9 scaled \magstephalf
+ \font\elvsl=\fontid sl9 scaled \magstephalf
+ \font\elvit=\fontid ti9 scaled \magstephalf
+ \font\elvbf=\fontid bx9 scaled \magstephalf
+\fi
+\fi
+%
+% twelve point fonts
+%
+\font\twli=cmmi12 \skewchar\twli='177
+\font\twlsy=cmsy10 scaled \magstep1 \skewchar\twlsy='60
+\iflongDCfontnames
+ \font\twlrm=\fontid r1200
+ \font\twlbf=\fontid bx1200
+ \font\twlsl=\fontid sl1200
+ \font\twlit=\fontid ti1200
+ \font\twltt=\fontid tt1200
+\else\iflongECfontnames
+ \font\twlrm=\fontid rm1200
+ \font\twlbf=\fontid bx1200
+ \font\twlsl=\fontid sl1200
+ \font\twlit=\fontid ti1200
+ \font\twltt=\fontid tt1200
+\else
+ \font\twlrm=\fontid r12
+ \font\twlbf=\fontid bx12
+ \font\twlsl=\fontid sl12
+ \font\twlit=\fontid ti12
+ \font\twltt=\fontid tt12
+\fi
+\fi
+%
+% fourteen point fonts
+%
+\font\frti=cmmi12 scaled \magstep1 \skewchar\frti='177
+\font\frtsy=cmsy10 scaled \magstep2 \skewchar\frtsy='60
+\iflongDCfontnames
+ \font\frtrm=\fontid r1440
+ \font\frtbf=\fontid bx1440
+ \font\frtsl=\fontid sl1440
+ \font\frtit=\fontid ti1440
+ \font\frttt=\fontid tt1440
+\else\iflongECfontnames
+ \font\frtrm=\fontid rm1440
+ \font\frtbf=\fontid bx1440
+ \font\frtsl=\fontid sl1440
+ \font\frtit=\fontid ti1440
+ \font\frttt=\fontid tt1440
+\else
+ \font\frtrm=\fontid r12 scaled \magstep1
+ \font\frtbf=\fontid bx12 scaled \magstep1
+ \font\frtsl=\fontid sl12 scaled \magstep1
+ \font\frtit=\fontid ti12 scaled \magstep1
+ \font\frttt=\fontid tt12 scaled \magstep1
+\fi
+\fi
+%
+% seventeen point fonts
+%
+\font\svti=cmmi12 scaled \magstep2 \skewchar\svti='177
+\font\svtsy=cmsy10 scaled \magstep3 \skewchar\svtsy='60
+\iflongDCfontnames
+ \font\svtrm=\fontid r1728
+ \font\svtbf=\fontid bx1728
+ \font\svtsl=\fontid sl1728
+ \font\svtit=\fontid ti1728
+ \font\svttt=\fontid tt1728
+\else\iflongECfontnames
+ \font\svtrm=\fontid rm1728
+ \font\svtbf=\fontid bx1728
+ \font\svtsl=\fontid sl1728
+ \font\svtit=\fontid ti1728
+ \font\svttt=\fontid tt1728
+\else
+ \font\svtrm=\fontid r17
+ \font\svtbf=\fontid bx12 scaled \magstep2
+ \font\svtsl=\fontid sl12 scaled \magstep2
+ \font\svtit=\fontid ti12 scaled \magstep2
+ \font\svttt=\fontid tt12 scaled \magstep2
+\fi
+\fi
+%
+% twenty point fonts
+%
+\font\twtyi=cmmi12 scaled \magstep3 \skewchar\twtyi='177
+\font\twtysy=cmsy10 scaled \magstep4\skewchar\twtysy='60
+\iflongDCfontnames
+ \font\twtyrm=\fontid r2074
+ \font\twtybf=\fontid bx2074
+ \font\twtysl=\fontid sl2074
+ \font\twtyit=\fontid ti2074
+ \font\twtytt=\fontid tt2074
+\else\iflongECfontnames
+ \font\twtyrm=\fontid rm2074
+ \font\twtybf=\fontid bx2074
+ \font\twtysl=\fontid sl2074
+ \font\twtyit=\fontid ti2074
+ \font\twtytt=\fontid tt2074
+\else
+ \font\twtyrm=\fontid r17 scaled \magstep1
+ \font\twtybf=\fontid bx12 scaled \magstep3
+ \font\twtysl=\fontid sl12 scaled \magstep3
+ \font\twtyit=\fontid ti12 scaled \magstep3
+ \font\twtytt=\fontid tt12 scaled \magstep3
+\fi
+\fi
+%
+% twenty five point fonts
+%
+\font\twfvi=cmmi12 scaled \magstep4 \skewchar\twfvi='177
+\font\twfvsy=cmsy10 scaled \magstep5 \skewchar\twfvsy='60
+\iflongDCfontnames
+ \font\twfvrm=\fontid r2488
+ \font\twfvbf=\fontid bx2488
+ \font\twfvsl=\fontid sl2488
+ \font\twfvit=\fontid ti2488
+ \font\twfvtt=\fontid tt2488
+\else\iflongECfontnames
+ \font\twfvrm=\fontid rm2488
+ \font\twfvbf=\fontid bx2488
+ \font\twfvsl=\fontid sl2488
+ \font\twfvit=\fontid ti2488
+ \font\twfvtt=\fontid tt2488
+\else
+ \font\twfvrm=\fontid r17 scaled \magstep2
+ \font\twfvbf=\fontid bx12 scaled \magstep4
+ \font\twfvsl=\fontid sl12 scaled \magstep4
+ \font\twfvit=\fontid ti12 scaled \magstep4
+ \font\twfvtt=\fontid tt12 scaled \magstep4
+\fi
+\fi
+%
+% SEVERAL DIFFERENT POINT SIZES
+%
+\def\twfvpoint{\Twfvpoint}
+\def\Twfvpoint{\normalbaselineskip=30pt
+\def\rm{\fam0\twfvrm}%
+\def\it{\fam\itfam\twfvit}%
+\def\sl{\fam\slfam\twfvsl}%
+\def\bf{\fam\bffam\twfvbf}%
+\def\smc{\twfvrm}%
+\def\mit{\fam 1}%
+\def\cal{\fam 2}%
+\textfont0=\twfvrm \scriptfont0=\twtyrm \scriptscriptfont0=\svtrm
+\textfont1=\twfvi \scriptfont1=\twtyi \scriptscriptfont1=\svti
+\textfont2=\twfvsy \scriptfont2=\twtysy \scriptscriptfont2=\svtsy
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\textfont\itfam=\twfvit \scriptfont\itfam=\twtyit
+\textfont\slfam=\twfvsl \scriptfont\slfam=\twtysl
+\textfont\bffam=\twfvbf \scriptfont\bffam=\twtybf
+\scriptscriptfont\bffam=\twtybf
+\setbox\strutbox=\hbox{\vrule height 22pt depth 8pt width 0pt}%
+\def\tt{\twfvtt}\normalbaselines\rm}
+%
+\def\twtypoint{\Twtypoint}
+\def\Twtypoint{\normalbaselineskip=25pt
+\def\rm{\fam0\twtyrm}%
+\def\it{\fam\itfam\twtyit}%
+\def\sl{\fam\slfam\twtysl}%
+\def\bf{\fam\bffam\twtybf}%
+\def\smc{\twtyrm}%
+\def\mit{\fam 1}%
+\def\cal{\fam 2}%
+\textfont0=\twtyrm \scriptfont0=\svtrm \scriptscriptfont0=\frtrm
+\textfont1=\twtyi \scriptfont1=\svti \scriptscriptfont1=\frti
+\textfont2=\twtysy \scriptfont2=\svtsy \scriptscriptfont2=\frtsy
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\textfont\itfam=\twtyit \scriptfont\itfam=\svtit
+\textfont\slfam=\twtysl \scriptfont\slfam=\svtsl
+\textfont\bffam=\twtybf \scriptfont\bffam=\svtbf
+\scriptscriptfont\bffam=\svtbf
+\setbox\strutbox=\hbox{\vrule height 18pt depth 7pt width 0pt}%
+\def\tt{\twtytt}\normalbaselines\rm}
+%
+\def\svtpoint{\Svtpoint}
+\def\Svtpoint{\normalbaselineskip=21pt
+\def\rm{\fam0\svtrm}%
+\def\it{\fam\itfam\svtit}%
+\def\sl{\fam\slfam\svtsl}%
+\def\bf{\fam\bffam\svtbf}%
+\def\smc{\svtrm}%
+\def\mit{\fam 1}%
+\def\cal{\fam 2}%
+\textfont0=\svtrm \scriptfont0=\frtrm \scriptscriptfont0=\twlrm
+\textfont1=\svti \scriptfont1=\frti \scriptscriptfont1=\twli
+\textfont2=\svtsy \scriptfont2=\frtsy \scriptscriptfont2=\twlsy
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\textfont\itfam=\svtit \scriptfont\itfam=\frtit
+\textfont\slfam=\svtsl \scriptfont\slfam=\frtsl
+\textfont\bffam=\svtbf \scriptfont\bffam=\frtbf
+\scriptscriptfont\bffam=\frtbf
+\setbox\strutbox=\hbox{\vrule height 14.5pt depth 6.5pt width 0pt}%
+\def\tt{\svttt}\normalbaselines\rm}
+%
+\def\frtpoint{\Frtpoint}
+\def\Frtpoint{\normalbaselineskip=17pt
+\def\rm{\fam0\frtrm}%
+\def\it{\fam\itfam\frtit}%
+\def\sl{\fam\slfam\frtsl}%
+\def\bf{\fam\bffam\frtbf}%
+\def\smc{\frtrm}%
+\def\mit{\fam 1}%
+\def\cal{\fam 2}%
+\textfont0=\frtrm \scriptfont0=\twlrm \scriptscriptfont0=\eightrm
+\textfont1=\frti \scriptfont1=\twli \scriptscriptfont1=\eighti
+\textfont2=\frtsy \scriptfont2=\twlsy \scriptscriptfont2=\eightsy
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\textfont\itfam=\frtit \scriptfont\itfam=\twlit
+\textfont\slfam=\frtsl \scriptfont\slfam=\twlsl
+\textfont\bffam=\frtbf \scriptfont\bffam=\twlbf
+\scriptscriptfont\bffam=\twlbf
+\setbox\strutbox=\hbox{\vrule height 12pt depth 5pt width 0pt}%
+\def\tt{\frttt}\normalbaselines\rm}
+%
+\def\twlpoint{\Twlpoint}
+\def\Twlpoint{\normalbaselineskip=14pt
+\def\rm{\fam0\twlrm}%
+\def\it{\fam\itfam\twlit}%
+\def\sl{\fam\slfam\twlsl}%
+\def\bf{\fam\bffam\twlbf}%
+\def\smc{\twlrm}%
+\def\mit{\fam 1}%
+\def\cal{\fam 2}%
+\textfont0=\twlrm \scriptfont0=\tenrm \scriptscriptfont0=\eightrm
+\textfont1=\twli \scriptfont1=\teni \scriptscriptfont1=\eighti
+\textfont2=\twlsy \scriptfont2=\tensy \scriptscriptfont2=\eightsy
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\textfont\itfam=\twlit \scriptfont\itfam=\tenit
+\textfont\slfam=\twlsl \scriptfont\slfam=\tensl
+\textfont\bffam=\twlbf \scriptfont\bffam=\tenbf
+\scriptscriptfont\bffam=\tenbf
+\setbox\strutbox=\hbox{\vrule height 10pt depth 4pt width 0pt}%
+\def\tt{\twltt}\normalbaselines\rm}
+%
+\def\Tenpoint{\normalbaselineskip\tw@lv@\p@
+\def\rm{\fam\z@\tenrm}%
+\def\it{\fam\itfam\tenit}%
+\def\sl{\fam\slfam\tensl}%
+\def\bf{\fam\bffam\tenbf}%
+\let\smc\tenrm
+\def\mit{\fam\@ne}%
+\def\cal{\fam\tw@}%
+\textfont0\tenrm \scriptfont0\eightrm \scriptscriptfont0\eightrm
+\textfont1\teni \scriptfont1\eighti \scriptscriptfont1\eighti
+\textfont2\tensy \scriptfont2\eightsy \scriptscriptfont2\eightsy
+\textfont3\tenex \scriptfont3\tenex \scriptscriptfont3\tenex
+\textfont\itfam\tenit \scriptfont\itfam=\eightit
+\textfont\slfam\tensl \scriptfont\slfam=\eightsl
+\textfont\bffam\tenbf \scriptfont\bffam\eightbf
+\scriptscriptfont\bffam\eightbf
+\setbox\strutbox\hbox{\vrule\@height8\h@lf\p@\@depth3\h@lf\p@\@width\z@}%
+\let\tt\tentt \normalbaselines\rm}
+\let\tenpoint\Tenpoint
+
+\def\Eightpoint{\normalbaselineskip\t@n\p@
+\def\rm{\fam\z@\eightrm}%
+\def\it{\fam\itfam\eightit}%
+\def\sl{\fam\slfam\eightsl}%
+\def\bf{\fam\bffam\eightbf}%
+\def\tt{\eighttt}
+\def\mit{\fam\@ne}%
+\def\cal{\fam\tw@}%
+\textfont0\eightrm \scriptfont0\eightrm \scriptscriptfont0\eightrm
+\textfont1\eighti \scriptfont1\eighti \scriptscriptfont1\eighti
+\textfont2\eightsy \scriptfont2\eightsy \scriptscriptfont2\eightsy
+\textfont3\tenex \scriptfont3\tenex \scriptscriptfont3\tenex
+\textfont\itfam\eightit
+\textfont\slfam\eightsl
+\textfont\bffam\eightbf \scriptfont\bffam\eightbf
+\scriptscriptfont\bffam\eightbf
+\setbox\strutbox\hbox{\vrule\@height\s@v@n\p@\@depth\thr@@\p@\@width\z@}%
+\normalbaselines\rm}
+\def\eightpoint{\Eightpoint}
+%
+\def\ninepoint{\Ninepoint}
+\def\Ninepoint{\normalbaselineskip=10pt
+\def\rm{\fam0\ninerm}%
+\def\it{\fam\itfam\nineit}%
+\def\sl{\fam\slfam\ninesl}%
+\def\bf{\fam\bffam\ninebf}%
+\def\mit{\fam 1}%
+\def\cal{\fam 2}%
+\textfont0=\ninerm \scriptfont0=\ninerm \scriptscriptfont0=\ninerm
+\textfont1=\ninei \scriptfont1=\ninei \scriptscriptfont1=\ninei
+\textfont2=\ninesy \scriptfont2=\ninesy \scriptscriptfont2=\ninesy
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\textfont\itfam=\nineit \scriptfont\itfam=\nineit
+\textfont\slfam=\ninesl \scriptfont\slfam=\ninesl
+\textfont\bffam=\ninebf \scriptfont\bffam=\ninebf
+\scriptscriptfont\bffam=\ninebf
+\setbox\strutbox=\hbox{\vrule height 7pt depth 3pt width 0pt}%
+\def\tt{\ninettt}\normalbaselines\rm}
+
+% GENERAL FOOTNOTES
+
+\newcount\footmarkcount
+
+\def\resetfootnote{\global\footmarkcount\z@ }
+\def\footmarknumber{\raise\smallvalue ex\hbox{%
+ \eightpoint\rm\the\footmarkcount}}
+
+\def\Footnote#1{\global\advance\footmarkcount\@ne
+ \footnote{\footmarknumber}{#1}}
+
+% \TeX book footnote
+% En cas de panique: couper en deux (une seule note autorisee)
+
+\def\markfootnote{{\advance\footmarkcount\@ne \footmarknumber}}
+
+\def\realfootnote#1{\global\advance\footmarkcount\@ne
+ \vfootnote{{\footmarknumber}#1}}
+
+% to enable inserting different \hsize (two columns case)
+\let\footnotehsize\empty
+
+\def\vfootnote#1{\insert\footins\bgroup\parskip\z@\eightpoint
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox \advance\splittopskip\p@
+ \splitmaxdepth\dp\strutbox \floatingpenalty20000
+ \leftskip\z@ \rightskip\z@
+ \spaceskip\z@ \xspaceskip\z@
+ \eightpoint\footnotehsize\noindent{#1}\footstrut\futurelet\next\fo@t}
+
+\def\footnoterule{\vskip-\thr@@\p@\hrule\@width2truein \vskip 2.6\p@}
+
+\def\aujourdhui{\space\number\day\space%
+ \ifcase\month\or janvier\or f\'evrier\or mars\or avril\or mai\or juin\or
+ juillet\or ao\^ut\or septembre\or octobre\or novembre\or d\'ecembre\fi
+ \space\number\year}
+\def\today{\space%
+ \ifcase\month\or January\or February\or March\or April\or May\or June\or
+ July\or August\or September\or October\or November\or December\fi
+ \space\number\day,\space\number\year}
+\def\cenboxit#1{\centerline{\boxit{#1}}}
+\def\Item{\medskip\item}
+
+\newdimen\theslant
+\def\fup#1{\raise 0.8ex\hbox{\theslant=\fontdimen1\the\font\kernm.03em\kern \theslant\the\scriptfont\fam #1}}
+
+\def\umero{\fup{o}}
+\def\ieme{\fup{e}}
+\def\ier{\fup{er}}
+\let\titremorceau\empty
+\def\title#1{\def\titremorceau{#1}}
+\def\shorttitle{\title}
+\def\subtitle#1{\def\subt@itremorceau{#1}}
+\let\headt@itremorceau\undefined
+\def\headtitle#1{\def\headt@itremorceau{#1}}
+\def\fulltitle{\headtitle}
+\let\othert@itremorceau\empty
+\def\othermention#1{\def\othert@itremorceau{#1}}
+
+\let\s@hortauthor\empty
+\def\shortauthor#1{\def\s@hortauthor{(#1)}}
+
+\def\fullauthor#1{\def\f@ullauthor{#1}}
+\def\author{\fullauthor}
+
+\newif\ifcopyright
+
+\def\outmorceau{\shipout\vbox{\vbox to \vsize{\vss\pagecontents\vss}\line{%
+\ifodd\pageno\sl \titremorceau\ \s@hortauthor
+\ifcopyright\rm$\copyright$\fi\hss \number\pageno
+\else\rm\number\pageno\hss\sl \titremorceau\ \s@hortauthor
+\ifcopyright\rm$\copyright$\fi\fi}}%
+ \global\advance\count0 by 1\relax
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi}%
+
+\output{\outmorceau}
+
+\def\maketitle{\centerline{\BIGfont \ifx\headt@itremorceau\undefined
+ \titremorceau\else\headt@itremorceau\fi}
+\medskip
+\ifx\subt@itremorceau\undefined\else
+ \centerline{\sl \subt@itremorceau}
+\medskip
+\fi
+
+
+\hbox to \hsize{\vtop{\def\\{\hss\egroup\hbox to 0.5\hsize\bgroup\relax}\relax
+ \hbox to 0.5\hsize
+ \bgroup\othert@itremorceau\hss
+ \egroup
+ }\hss
+ \vtop{\def\\{\egroup\hbox to 0.5\hsize\bgroup\relax\hss}\relax
+ \hbox to 0.5\hsize
+ \bgroup\hss\f@ullauthor
+ \egroup
+ }}
+\bigskip
+}
+
+
+\def\rectoverso#1{%
+\def\outmorceau{\shipout\hbox{\null\ifodd\pageno\kern #1\relax
+ \else\kern -#1\relax
+ \fi
+ \vbox{\vbox to \vsize{\vss\pagecontents\vss}\line{%
+\ifodd\pageno\sl \titremorceau\ \s@hortauthor
+\ifcopyright\rm$\copyright$\fi\hss \number\pageno
+\else\rm\number\pageno\hss\sl \titremorceau\ \s@hortauthor
+\ifcopyright\rm$\copyright$\fi\fi}}}%
+ \global\advance\count0 by 1\relax
+ \ifnum\outputpenalty>-20000 \else\dosupereject\fi}%
+
+\output{\outmorceau}}
+
+
+
+\catcode`\>=\catcode@gt
+\catcode`\<=\catcode@lt
+\catcode`\@=\catcodeat
+
+\hsize=185mm
+\vsize=275mm
+\hoffset=210mm
+\advance\hoffset -\hsize
+\divide\hoffset 2\relax
+\advance\hoffset -2.54cm
+\tenpoint
+%%%%%%%%%%%%%%%%%%%%%%%%% local adjust to be tuned %%%%%%%%%%%%%%%%%%%%%%%%%%
+\advance\hoffset -5mm
+\voffset=-1.54cm
+%%%%%%%%%%%%%%%%%%%%%%%%% local adjust to be tuned %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtex.ins b/Master/texmf-dist/tex/generic/musixtex/musixtex.ins
new file mode 100644
index 00000000000..6e0d4a70a24
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtex.ins
@@ -0,0 +1,7 @@
+\input musixtex
+\input musixcpt
+\input musixsty
+\tracingstats=2\relax
+\dump
+
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtex.sty b/Master/texmf-dist/tex/generic/musixtex/musixtex.sty
new file mode 100644
index 00000000000..c8127f51d08
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtex.sty
@@ -0,0 +1,3 @@
+\input musixtex
+\input musixltx
+\endinput
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtex.tex b/Master/texmf-dist/tex/generic/musixtex/musixtex.tex
new file mode 100644
index 00000000000..fc6c4fa3253
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtex.tex
@@ -0,0 +1,4505 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+\ifx\undefined\startpiece \else \endinput \fi
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\ifx\makeatletter\undefined\def\makeatletter{\catcode`\@=11\relax}\fi
+\ifx\makeatother\undefined\def\makeatother{\catcode`\@=12\relax}\fi
+
+\def\mufl@x{0.83}%
+\def\mxversion{T.103}
+\def\mxdate{8 July 2001}
+
+\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}%
+\everyjob{\immediate\write16{MusiXTeX(c) \mxversion\space<\mxdate>}}%
+
+% moved out:
+% - 1/128th beams -> musixbm
+% - triple pointed notes -> musixtri
+
+% and shrinked the memory consumption
+
+%++ickd 19Sep1997: with help of William P. Houser introduced dotted slurs.
+% Changes marked with +ickd for added single lines, -ickd for replaced
+%++ickd single lines, ++ickd...++ickd for added blocks
+
+%++simick 04Dec2000: Don Simons and Werner Icking made some improvements
+% to volta-processing and centerbar processing the changes are
+% marked with +simick for added single lines, -simick for
+%++simick replaced lines and ++simick...++simick for added blocks
+
+% TeXperts may want to change the next
+
+% PARAMETER DIFFERENT THAN PLAIN
+
+\showboxdepth=0
+\showboxbreadth=0
+
+\ifx\undefined\documentstyle % -> []plain.tex
+ \parindent0pt
+ \hoffset-15.4mm
+ \voffset-10mm
+ \hsize190mm
+ \vsize260mm
+\fi
+
+%%% from LaTeX
+% The following definitions save token space. E.g., using \@height
+% instead of height saves 5 tokens at the cost in time of one macro
+% expansion.
+
+\def\@height{height}
+\def\@depth{depth}
+\def\@width{width}
+
+%%% also removed 'by', '='
+
+\def\@to{to}
+\def\p@ne{.1}
+\def\qu@rt{.25}
+\def\h@lf{.5}
+\def\p@seven{.7}
+
+%%%from plain
+% To make the macros more efficient in time and space,
+% several constant values are declared here as control sequences
+% If they were changed, anything could happen; so they are private symbols
+
+%\chardef\active=13
+%\chardef\&=`\& -> 38
+%\chardef\#=`\# -> 35
+%\chardef\$=`\$ -> 36
+% Nomenclature: '@' means most times 'e' or seperator, sometimes 'o','a'
+
+\chardef\f@ur=4
+\chardef\fiv@=5
+\chardef\si@=6
+\chardef\s@v@n=7
+\chardef\@ight=8
+\chardef\nin@=9
+\chardef\t@n=10
+\chardef\@l@v@n=11
+\chardef\tw@lv@=12
+\chardef\fourt@@n=14
+\chardef\fiv@t@@n=15
+\chardef\tw@nty=20
+\chardef\@xxiii=23
+\chardef\@xxv=25
+\chardef\@xxiv=24
+\chardef\@xxvi=26
+\chardef\@xxvii=27
+\chardef\@xxix=29
+\chardef\@xxxii=32
+\chardef\@xl=40
+\chardef\@xli=41
+\chardef\@xlv=45
+\chardef\@l=50
+\chardef\@lii=52
+\chardef\@liv=54
+\chardef\@lxxxiii=83
+\chardef\@c=100
+\chardef\@cxv=115
+\chardef\@cxxviii=128
+
+\newif\ifcatcodesmusic
+
+\def\catcodesmusic{\ifcatcodesmusic\relax
+ \else
+ \edef\catcode@gt{\the\catcode`\>}\catcode`\>\tw@lv@
+ \edef\catcode@lt{\the\catcode`\<}\catcode`\<\tw@lv@
+ \edef\catcode@vert{\the\catcode`\|}\catcode`\|\active
+ \edef\catcode@and{\the\catcode`\&}\catcode`\&\active
+ \edef\catcode@excl{\the\catcode`\!}\catcode`\!\tw@lv@
+ \edef\catcode@star{\the\catcode`\*}\catcode`\*\tw@lv@
+ \edef\catcode@pt{\the\catcode`\.}\catcode`\.\tw@lv@
+ \edef\catcode@sc{\the\catcode`\:}\catcode`\:\tw@lv@
+ \let\@@bar\bar
+ \def\bar{\barre}%
+ \fi\catcodesmusictrue}
+
+\catcodesmusic
+
+% MusicTeX + MuFlex -> MusiXTeX
+\def\musixtex{MusiX\TeX}
+
+\def\kernm{\kern-}
+
+%...\let\@wloG=\wlog
+%...\def\wlog#1{}
+
+%%% account registers
+
+\let\maxinstruments\si@
+
+% temporary registers
+
+\newcount\n@i
+\newcount\n@ii
+\newcount\n@iii
+\newcount\n@iv
+\newcount\n@v
+\newcount\n@vi
+\newcount\n@vii
+\newcount\n@viii
+%\newcount\count@ %=\count255 def'd in plain
+
+\newbox\toks@box
+\newbox\w@rkbox
+\newbox\n@otebox
+
+\newdimen\y@
+\newdimen\y@i
+\newdimen\y@ii
+\newdimen\y@iii
+\newdimen\y@iv
+\newdimen\y@v
+
+% altitude
+
+\newskip\k@ii
+\newskip\k@iii
+\newskip\k@iiii
+\newskip\k@iiv
+\newskip\k@iv
+\newskip\k@ivi
+
+% InterNote
+
+\newdimen\i@ni
+\newdimen\i@nii
+\newdimen\i@niii
+\newdimen\i@niv
+\newdimen\i@nv
+\newdimen\i@nvi
+
+% positions x et z de debut des poutres
+
+\newdimen\b@xi \newdimen\b@zi
+\newdimen\b@xii \newdimen\b@zii
+\newdimen\b@xiii\newdimen\b@ziii
+\newdimen\b@xiv \newdimen\b@ziv
+\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\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\e@xi \newskip\e@zi
+\newdimen\e@xii \newskip\e@zii
+\newdimen\e@xiii\newskip\e@ziii
+\newdimen\e@xiv \newskip\e@ziv
+\newdimen\e@xv \newskip\e@zv
+\newdimen\e@xvi \newskip\e@zvi
+
+% pentes des poutres ( entier de -9 a +9 )
+% multiplicite des poutres ( de -5 a +5 . 0= inactive )
+
+\newcount\b@pi \newcount\b@ni
+\newcount\b@pii \newcount\b@nii
+\newcount\b@piii\newcount\b@niii
+\newcount\b@piv \newcount\b@niv
+\newcount\b@pv \newcount\b@nv
+\newcount\b@pvi \newcount\b@nvi
+
+% Number of Portees
+
+\newcount\n@pi \n@pi\@ne
+\newcount\n@pii \n@pii\@ne
+\newcount\n@piii\n@piii\@ne
+\newcount\n@piv \n@piv\@ne
+\newcount\n@pv \n@pv\@ne
+\newcount\n@pvi \n@pvi\@ne
+
+% Actual Signs Old Signs
+
+\newcount\a@si \newcount\o@si
+\newcount\a@sii \newcount\o@sii
+\newcount\a@siii\newcount\o@siii
+\newcount\a@siv \newcount\o@siv
+\newcount\a@sv \newcount\o@sv
+\newcount\a@svi \newcount\o@svi
+
+% ActualCleftoks
+
+\newtoks\a@ci \a@ci={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cii \a@cii={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@ciii\a@ciii={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@civ \a@civ={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cv \a@cv={{\z@}{\z@}{\z@}{\z@}}
+\newtoks\a@cvi \a@cvi={{\z@}{\z@}{\z@}{\z@}}
+
+% OldCleftoks
+
+\newtoks\o@ci
+\newtoks\o@cii
+\newtoks\o@ciii
+\newtoks\o@civ
+\newtoks\o@cv
+\newtoks\o@cvi
+
+% MeterToks
+
+\newtoks\m@ti
+\newtoks\m@tii
+\newtoks\m@tiii
+\newtoks\m@tiv
+\newtoks\m@tv
+\newtoks\m@tvi
+
+% Altitude of choir groups
+
+\newskip\g@bi
+\newskip\g@bii
+\newskip\g@biii
+
+% Height of choir groups
+
+\newskip\g@hi
+\newskip\g@hii
+\newskip\g@hiii
+
+\let\maxgroups\thr@@ % maximum three groups of instruments or choirs
+\newcount\group@no
+
+%%% fonts
+
+%%
+% Font package for Musixtex.
+%
+% Ross Mitchell
+% February 1995
+%%
+
+%%
+% Find current font prefix (cm, dc, ec)
+%%
+\def\@onetoks#1#2+{#1}
+\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\fontfid{\expandafter\@onetoks\fontname\the\font+}
+%
+% Find out whether \rm font name of the form dcr1000 , i.e. with a digit at
+% 7th position
+
+\edef\Thelastfontname{\expandafter\@svntoks\fontname\the\font---------+}
+
+\newif\iflongDCfontnames
+\newif\iflongECfontnames
+\if\Thelastfontname 0 \longDCfontnamestrue\fi
+\if\Thelastfontname 1 \longDCfontnamestrue\fi
+\if\Thelastfontname 2 \longDCfontnamestrue\fi
+\if\Thelastfontname 3 \longDCfontnamestrue\fi
+\if\Thelastfontname 4 \longDCfontnamestrue\fi
+\if\Thelastfontname 5 \longDCfontnamestrue\fi
+\if\Thelastfontname 6 \longDCfontnamestrue\fi
+\if\Thelastfontname 7 \longDCfontnamestrue\fi
+\if\Thelastfontname 8 \longDCfontnamestrue\fi
+\if\Thelastfontname 9 \longDCfontnamestrue\fi
+\iflongDCfontnames
+ \if\fontfid e
+ \longECfontnamestrue
+ \longDCfontnamesfalse
+ \fi
+\fi
+
+%%
+% Eight point fonts: roman, bold, and italic.
+%%
+
+\ifx\undefined\eightrm
+\iflongDCfontnames
+ \font\eightrm=\fontid r0800
+ \font\eightbf=\fontid bx0800
+ \font\eightit=\fontid ti0800
+\else\iflongECfontnames
+ \font\eightrm=\fontid rm0800
+ \font\eightbf=\fontid bx0800
+ \font\eightit=\fontid ti0800
+\else
+ \font\eightrm=\fontid r8
+ \font\eightbf=\fontid bx8
+ \font\eightit=\fontid ti8
+\fi
+\fi
+\fi
+
+%%
+% Nine point fonts: roman, bold, and italic.
+%%
+
+\ifx\undefined\ninerm
+\iflongDCfontnames
+ \font\ninerm=\fontid r0900
+ \font\ninebf=\fontid bx0900
+ \font\nineit=\fontid ti0900
+\else\iflongECfontnames
+ \font\ninerm=\fontid rm0900
+ \font\ninebf=\fontid bx0900
+ \font\nineit=\fontid ti0900
+\else
+ \font\ninerm=\fontid r9
+ \font\ninebf=\fontid bx9
+ \font\nineit=\fontid ti9
+\fi
+\fi
+\fi
+
+%%
+% Ten point fonts: roman, bold, and italic and typewriter.
+% Load only if not already defined (Necessary in Latex2e).
+%%
+
+\ifx\undefined\tenrm
+\iflongDCfontnames
+ \font\tenrm=\fontid r1000
+ \font\tenbf=\fontid bx1000
+ \font\tenit=\fontid ti1000
+\else\iflongECfontnames
+ \font\tenrm=\fontid rm1000
+ \font\tenbf=\fontid bx1000
+ \font\tenit=\fontid ti1000
+\else
+ \font\tenrm=\fontid r10
+ \font\tenbf=\fontid bx10
+ \font\tenit=\fontid ti10
+\fi
+\fi
+\fi
+
+%%
+% Twelve point fonts: roman, bold, and italic.
+%%
+\ifx\undefined\twelverm
+\iflongDCfontnames
+ \font\twelverm=\fontid r1200
+ \font\twelvebf=\fontid bx1200
+ \font\twelveit=\fontid ti1200
+\else\iflongECfontnames
+ \font\twelverm=\fontid rm1200
+ \font\twelvebf=\fontid bx1200
+ \font\twelveit=\fontid ti1200
+\else
+ \font\twelverm=\fontid r12
+ \font\twelvebf=\fontid bx12
+ \font\twelveit=\fontid ti12
+\fi
+\fi
+\fi
+
+%%
+% Large fonts for titles: boldface only.
+%%
+
+\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.
+\font\Bigfont=\fontid bx12 scaled \magstep2 % 17pt, formerly \gros.
+\font\BIgfont=\fontid bx12 scaled \magstep3 % 20pt.
+\font\BIGfont=\fontid bx12 scaled \magstep4 % 25pt, formerly \emorme.
+\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
+\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
+\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
+\fi
+\fi
+
+\def\smalldyn{\let\ppff\smallppff \let\p@@f\ppff}
+\def\normdyn{\let\ppff\normppff \let\p@@f\ppff}
+\def\meddyn{\let\ppff\medppff \let\p@@f\twelveit}
+
+\font\musiceleven=musix11
+\font\musicthirteen=musix13
+\font\musicsixteen=musix16
+\font\musictwenty=musix20
+\font\musictwentyfour=musix24
+\font\musictwentynine=musix29
+
+% piano brackets, slides, guitar chords, lines, (de)crescendi, circles
+
+\font\mxsps=musixspx
+
+%%
+% Define six font families.
+%%
+
+\def\smalltype{%
+ \let\rm\eightrm
+ \let\bf\eightbf
+ \let\it\eightit
+ \rm}
+\def\Smalltype{%
+ \let\rm\ninerm
+ \let\bf\ninebf
+ \let\it\nineit
+ \rm}
+\def\normtype{%
+ \let\rm\tenrm
+ \let\bf\tenbf
+ \let\it\tenit
+ \rm}
+\def\medtype{%
+ \let\rm\twelverm
+ \let\bf\twelvebf
+ \let\it\twelveit
+ \rm}
+\def\bigtype{%
+ \let\rm\bigfont
+ \let\bf\bigfont
+ \let\it\bigfont
+ \bf}
+\def\Bigtype{%
+ \let\rm\Bigfont
+ \let\bf\Bigfont
+ \let\it\Bigfont
+ \bf}
+\def\BIgtype{%
+ \let\rm\BIgfont
+ \let\bf\BIgfont
+ \let\it\BIgfont
+ \bf}
+\def\BIGtype{%
+ \let\rm\BIGfont
+ \let\bf\BIGfont
+ \let\it\BIGfont
+ \bf}
+
+%%%
+%
+% Slur macro package for MusicTeX
+%
+% Ross Mitchell, February 20 1993
+%
+%%%
+%%
+% Load the font set
+%
+% Nomenclature: slur[p][size]
+% [p] : sign of slur gradient; u=positive, d=negative, z=zero
+%%
+
+\font\slurz=xslz20
+\font\slurzd=xslz20d %+ickd
+
+\font\slurueleven=xslu11 % slur up eleven points
+\font\sluruthirteen=xslu13
+\font\slurusixteen=xslu16
+\font\slurutwenty=xslu20
+\font\slurutwentyfour=xslu24
+\font\slurutwentynine=xslu29
+
+\font\slurdeleven=xsld11 % slur down eleven points
+\font\slurdthirteen=xsld13
+\font\slurdsixteen=xsld16
+\font\slurdtwenty=xsld20
+\font\slurdtwentyfour=xsld24
+\font\slurdtwentynine=xsld29
+
+%++ickd same for dotted slurs
+\font\sluruelevend=xslu11d % slur up eleven points
+\font\sluruthirteend=xslu13d
+\font\slurusixteend=xslu16d
+\font\slurutwentyd=xslu20d
+\font\slurutwentyfourd=xslu24d
+\font\slurutwentynined=xslu29d
+
+\font\slurdelevend=xsld11d % slur down eleven points
+\font\slurdthirteend=xsld13d
+\font\slurdsixteend=xsld16d
+\font\slurdtwentyd=xsld20d
+\font\slurdtwentyfourd=xsld24d
+\font\slurdtwentynined=xsld29d
+%++ickd
+
+%!these fonts can't be used with highres printers (>~800dpi)
+% for these printers comes a interface to PS using DVIPS (PS-Tricks)
+% and \special{}-commands next time (patience is a virtue ...)
+
+\font\xtie=xslhz20
+\font\xtied=xslhz20d %+ickd
+
+\font\hslurdeleven=xslhd11 % slur half down eleven points
+\font\hslurdthirteen=xslhd13
+\font\hslurdsixteen=xslhd16 % slur half down sixteen points
+\font\hslurdtwenty=xslhd20
+\font\hslurdtwentyfour=xslhd24
+\font\hslurdtwentynine=xslhd29
+
+\font\hslurueleven=xslhu11
+\font\hsluruthirteen=xslhu13
+\font\hslurusixteen=xslhu16
+\font\hslurutwenty=xslhu20
+\font\hslurutwentyfour=xslhu24
+\font\hslurutwentynine=xslhu29
+
+%++ickd same for dotted slurs
+\font\hslurdelevend=xslhd11d % slur half down eleven points
+\font\hslurdthirteend=xslhd13d
+\font\hslurdsixteend=xslhd16d % slur half down sixteen points
+\font\hslurdtwentyd=xslhd20d
+\font\hslurdtwentyfourd=xslhd24d
+\font\hslurdtwentynined=xslhd29d
+
+\font\hsluruelevend=xslhu11d
+\font\hsluruthirteend=xslhu13d
+\font\hslurusixteend=xslhu16d
+\font\hslurutwentyd=xslhu20d
+\font\hslurutwentyfourd=xslhu24d
+\font\hslurutwentynined=xslhu29d
+%++ickd
+
+% number of pending slurs
+
+\newcount\N@s
+
+% horizontal start position of slur
+
+\newdimen\s@xi
+\newdimen\s@xii
+\newdimen\s@xiii
+\newdimen\s@xiv
+\newdimen\s@xv
+\newdimen\s@xvi
+
+% sense u,d and x (flag) for pending slurs
+
+\newtoks\s@si \s@si={x}
+\newtoks\s@sii \s@sii={x}
+\newtoks\s@siii\s@siii={x}
+\newtoks\s@siv \s@siv={x}
+\newtoks\s@sv \s@sv={x}
+\newtoks\s@svi \s@svi={x}
+
+% vertical offset of slur
+
+\newdimen\s@Y
+\newdimen\s@Yi
+\newdimen\s@Yii
+\newdimen\s@Yiii
+\newdimen\s@Yiv
+\newdimen\s@Yv
+\newdimen\s@Yvi
+
+% altportee of slur
+
+\newskip\s@ai
+\newskip\s@aii
+\newskip\s@aiii
+\newskip\s@aiv
+\newskip\s@av
+\newskip\s@avi
+
+% vertical start position of slur [steps of internote]
+
+\newcount\s@yi
+\newcount\s@yii
+\newcount\s@yiii
+\newcount\s@yiv
+\newcount\s@yv
+\newcount\s@yvi
+
+
+% instrument number of that slur (to retrieve internote)
+
+\newcount\s@Ni
+\newcount\s@Nii
+\newcount\s@Niii
+\newcount\s@Niv
+\newcount\s@Nv
+\newcount\s@Nvi
+
+% vertical end position of slur [steps of internote], used from \breakslur
+% the value \maxdimen is used to decide, if \breakslur is used or not (flag)
+
+\newcount\s@zi \s@zi\maxdimen
+\newcount\s@zii \s@zii\maxdimen
+\newcount\s@ziii\s@ziii\maxdimen
+\newcount\s@ziv \s@ziv\maxdimen
+\newcount\s@zv \s@zv\maxdimen
+\newcount\s@zvi \s@zvi\maxdimen
+
+%++ickd: dotted indicator for pending slurs
+
+\newtoks\s@di
+\newtoks\s@dii
+\newtoks\s@diii
+\newtoks\s@div
+\newtoks\s@dv
+\newtoks\s@dvi
+%++ickd
+
+\def\roman@n@i{\romannumeral\n@i\endcsname}
+
+\def\s@l@ctslur#1\relax{%
+ \n@i#1\relax\test@num
+ \edef\s@a{\csname s@a\roman@n@i}% dimen (altportee)
+ \edef\s@x{\csname s@x\roman@n@i}% dimen (hor start pos)
+ \edef\s@y{\csname s@y\roman@n@i}% count (startnote [internote])
+ \edef\s@N{\csname s@N\roman@n@i}% count (instrument number)
+ \edef\s@z{\csname s@z\roman@n@i}% count (endnote [internote])
+ \edef\s@Y{\csname s@Y\roman@n@i}% dimen (voffset)
+ \edef\s@d{\csname s@d\roman@n@i}% token (dotted) +ickd
+ \edef\s@s{\csname s@s\roman@n@i}}% token (sense)
+
+% get current position (returns the dimen in \y@v)
+% (\lin@pos starts behind signatures!)
+
+\newdimen\lin@pos
+\def\getcurpos{\y@v\lin@pos \advance\y@v\locx@skip}
+
+% \n@i vertical offset of first note (number); temporary
+% \n@ii vertical offset of second note (number); temporary
+% \n@iii meet note
+% \n@iv first note
+% \n@v temp. character
+% \n@vi last note
+% \n@vii right halfslur length
+% \n@viii don't touch
+% \y@ complete length of slur - allowed overlap (4pt), temp. length
+% \y@i abs. height of slur
+% \y@ii complete length of slur
+% \y@iii old maxslurwidth
+% \y@iv don't touch
+% \y@v don't touch
+
+% \@sense{u,d}
+%
+% if \curve (\midslur) is used
+% \@meet{}
+% \l@length{}
+% \r@length{}
+
+% #1 start pitch #2 end pitch #3 length #4 right hoffset
+
+\newcount \meet@minus@n@iv
+\def\writ@slur#1#2#3#4{% modified: sld... into slurd... 12.04.95 ick
+ \let\slz\slurz% inserted
+ \let\slzd\slurzd% inserted for dotted slurs +ickd
+ \ifx\s@N\undefined \relax % \let\internote\Internote
+ \else
+ \edef\internote{\csname i@n\romannumeral\s@N\endcsname}%
+ \fi
+% \immediate\write16{\noexpand\writ@slur internote:\the\internote}%
+ \n@iv#1%
+ \n@vi#2%
+%%
+% Get note vertical offsets
+% \n@iv= vertical offset of first note(n@i temp);
+% \n@vi= vertical offset of second note(n@ii temp);
+% \y@i = reference height of first note (pt);
+%
+% Define adequate fonts for this slur, according to the value of \internote
+%
+ \ifdim\internote>3.5pt
+ \let\sld\slurdtwentynine \let\slu\slurutwentynine
+ \let\hslurd\hslurdtwentynine \let\hsluru\hslurutwentynine
+ \let\sldd\slurdtwentynined \let\slud\slurutwentynined % +ickd
+ \let\hslurdd\hslurdtwentynined \let\hslurud\hslurutwentynined %+ickd
+ \def\@stepwidth{3.6pt}%
+ \else \ifdim\internote>2.9pt
+ \let\sld\slurdtwentyfour \let\slu\slurutwentyfour
+ \let\hslurd\hslurdtwentyfour \let\hsluru\hslurutwentyfour
+ \let\sldd\slurdtwentyfourd \let\slud\slurutwentyfourd % +ickd
+ \let\hslurdd\hslurdtwentyfourd \let\hslurud\hslurutwentyfourd %+ickd
+ \def\@stepwidth{3.0pt}%
+ \else \ifdim\internote>2.3pt
+ \let\sld\slurdtwenty \let\slu\slurutwenty
+ \let\hslurd\hslurdtwenty \let\hsluru\hslurutwenty
+ \let\sldd\slurdtwentyd \let\slud\slurutwentyd % +ickd
+ \let\hslurdd\hslurdtwentyd \let\hslurud\hslurutwentyd %+ickd
+ \def\@stepwidth{2.5pt}%
+ \else \ifdim\internote>1.8pt
+ \let\sld\slurdsixteen \let\slu\slurusixteen
+ \let\hslurd\hslurdsixteen \let\hsluru\hslurusixteen
+ \let\sldd\slurdsixteend \let\slud\slurusixteend % +ickd
+ \let\hslurdd\hslurdsixteend \let\hslurud\hslurusixteend %+ickd
+ \def\@stepwidth{2pt}%
+ \else \ifdim\internote>1.4pt
+ \let\sld\slurdthirteen \let\slu\sluruthirteen
+ \let\hslurd\hslurdthirteen \let\hsluru\hsluruthirteen
+ \let\sldd\slurdthirteend \let\slud\sluruthirteend % +ickd
+ \let\hslurdd\hslurdthirteend \let\hslurud\hsluruthirteend %+ickd
+ \def\@stepwidth{1.6pt}%
+ \else
+ \let\sld\slurdeleven \let\slu\slurueleven
+ \let\hslurd\hslurdeleven \let\hsluru\hslurueleven
+ \let\sldd\slurdelevend \let\slud\sluruelevend % +ickd
+ \let\hslurdd\hslurdelevend \let\hslurud\hsluruelevend %+ickd
+ \def\@stepwidth{1.28pt}%
+ \fi\fi\fi\fi\fi
+%
+% End choice of font
+%
+ \n@i\n@iv \pl@base % \y@i = initial height
+ \n@ii\n@vi
+%
+% Select appropriate font
+% Set \n@i to the vertical difference index
+% setup \n@iii(meetnote)
+%
+ \ifnum\n@ii=\n@i % Slope is zero
+ \n@iii\n@i
+ \if u\@sense \advance\n@iii\thr@@ \else \advance\n@iii-\thr@@ \fi
+ \def\@slope{z}\n@i\z@
+ \else
+ \ifnum\n@ii<\n@i % Slope is negative
+ \C@csl\n@i\n@ii\def\@slope{d}%
+ \else % Slope is positive
+ \C@csl\n@ii\n@i\def\@slope{u}\n@i\n@ii
+ \fi
+ \fi
+%%
+% Select the required font and load the width parameters
+%
+% Font specific parameters
+% \y@iii is the horizontal width of the longest slur in the fonts
+% This parameter is loaded from the tfm \fontdimen parameter 5
+% respectively
+%%
+ \y@iii\fontdimen\fiv@\csname sl\@slope\endcsname
+ \y@ii#3%
+%
+% \n@i contains slope (difference between start and end note)
+%
+% force longslurs if (!!! no check, be careful !!!)
+% long slurs are at least 20[16] pt long) !!! Perhaps will change again !!!
+% - difference between first note and last note > 8
+% - if \curve or \midslur is def'd
+% - if \invertslur is used
+%
+ \ifnum\n@i>\@ight \y@iii\z@ \fi % RMslurs limit 8 steps
+ \ifx\@meet\empty \else\y@iii\z@ \fi
+ \ifx\@invert\@ne \y@iii\z@ \fi
+ \ifdim\y@ii>\y@iii % start of longslurs
+%
+% setup meet height of slur
+%
+ \ifx\empty\@meet
+ \else
+ \n@iii\n@iv
+ \advance\n@iii\@meet
+ \fi
+ \edef\@meet{\the\n@iii}%
+%
+% allow a little bit overlap (2*2pt) for nicer outlook (as longer as nicer)
+% clip to extremities
+% compute the max length in fontunits (\count@)
+%
+ \y@\y@ii \advance\y@\f@ur\p@ \n@v\y@
+ \sp@pt\t@n % 10pt steps
+ \advance\n@v-\f@ur % first brace is 20pt wide (perhaps 10pt is better ??)
+ \min@n@v\z@
+ \max@n@v\fourt@@n % largest braces are 2*((90pt-20pt)/10pt)
+ \count@\n@v % max length
+%
+% compute the length of the starting and ending halfslurs
+% in case, that curve is not def'd
+%
+ \ifx\empty\l@length
+ \divide\n@v\tw@ % 2 halfslurs
+ \n@vii\n@v
+ \n@ii\n@v
+ \def@lr
+%
+% first try to reach nicer long slurs without using \curve
+%
+ \if z\@slope % leave ties untouched
+ \else
+ \ifnum\count@>\z@ % only for long slurs
+ \multiply\n@v\tw@
+ \if\@slope\@sense % uu,dd advance l@length ud,du advance r@length
+ \s@adjust\n@vii\n@ii
+ \else
+ \s@adjust\n@ii\n@vii
+ \fi
+ \def@lr
+ \fi
+ \fi
+%
+% adjust \curve parameters, if neccesary
+%
+ \else
+ \n@vii\l@length
+ \n@ii\r@length
+ \loop
+ \count@\n@vii
+ \advance\count@\n@ii
+ \ifnum\count@>\n@v
+ \advance\n@vii\m@ne \ifnum\n@vii<\z@ \n@vii\z@ \fi
+ \advance\n@ii\m@ne \ifnum\n@ii<\z@ \n@ii\z@ \fi
+ \repeat
+ \def@lr
+ \fi
+%
+% clip to extremity heights (max slur height= 16\internote)
+%
+ \C@csm\n@iv
+ \C@csm\n@vi
+%
+% change sense and offset behind linebreak and reset flag
+%
+ \ifx\@invert\@ne \ifdim\s@x=\z@
+ \@invsl \let\@invert\empty \s@Y-\s@Y
+ \fi \fi
+%
+% compute final height and put the box
+%
+% \immediate\write16{ before @meet:\noexpand\y@i=\the\y@i}%
+% \message{ was \noexpand\n@iv\the\n@iv}%
+% \message{ was \noexpand\n@vi\the\n@vi}%
+%
+ \meet@minus@n@iv=\@meet
+ \advance\meet@minus@n@iv-\n@iv
+% \immediate\write16{\noexpand\meet@minus@n@iv=\the\meet@minus@n@iv}%
+% \y@i\@meet\internote % \y@i final height
+% change from DT for staffspacing not standard
+ \y@i \@stepwidth % part proportional to slur font size
+ \multiply \y@i \meet@minus@n@iv
+ \advance\y@i \n@iv\internote % was done by \pl@base...
+%
+ \C@sof % add the voffsets
+ \llap{\raise\y@i\hbox\@to\y@ii{%
+%
+% compute the beginning and ending halfslur chars
+% n@i firstslur
+% n@ii lastslur
+% n@v character
+%
+ \C@cc\n@iv\n@i\n@ii
+ \C@cc\n@vi
+%
+ \n@v\l@length
+ \multiply\n@v\sixt@@n % 16 different heigths
+ \advance\n@v\n@i % offset to length
+ \advance\n@v\@cxxviii % offset to starthalfslur
+ \@boX \box\ch@box\hss% put starthalfslur
+ \n@v\r@length
+ \multiply\n@v\sixt@@n
+ \advance\n@v\n@ii
+%
+% put ending halfslur in box
+%
+ \ifx\@invert\@ne \@invsl \fi
+ \@boX
+%
+% put the middle extension (could be replaced by []rule)
+%
+ \ifdim\y@ii>\p@ne\p@
+ \n@v\y@ii
+ \sp@pt\f@ur % 4pt steps
+ \ifx\@invert\@ne
+ \divide\n@v\tw@
+ \if u\@sense \advance\n@v\@cxxviii \fi
+ \mid@box\hss\hss% don't ask me why
+ \if u\@sense \advance\n@v-\@cxxviii \else \advance\n@v\@cxxviii \fi
+ \mid@box%
+ \else
+ \if d\@sense \advance\n@v\@cxxviii \fi
+ \mid@box \fi \fi
+%
+% place the end of slur and kern right horizontal offset
+%
+ \hss\box\ch@box}\kern#4}%
+%
+% reset slurcurve
+%
+ \global\let\@meet\empty
+ \let\l@length\empty
+ \let\@invert\empty
+%
+%>>>>>> start of RM slurs
+% Set \n@v to the width index in the slur font table
+%
+ \else
+ \ifdim\y@ii<\@ight\p@ \y@ii\@ight\p@ \fi % Clip to extremities
+ \y@\y@ii
+ \advance\y@-\si@\p@
+ \n@v\y@
+ \sp@pt\f@ur
+%
+% Find decimal character count into font table
+% (a) Zero height slurs: charnum= width index
+% (b) Others: charnum= 16*(height index - 1) + width index
+% Place the character count in \n@v
+%
+ \if z\@slope
+ \if d\@sense \advance\n@v\@liv \fi % \@liv(=54) offset to slurchars
+ \else
+ \advance\n@i\m@ne % height index - 1
+ \multiply\n@i\sixt@@n % 16*(height index - 1)
+ \advance\n@v\n@i % 16*(height index - 1) + width index
+ \if d\@sense \advance\n@v\@cxxviii \fi
+ \fi
+%
+% Place the slur character
+%
+ \C@sof
+ \ifnum\n@v>255 % to avoid diags in case of...
+ \n@v=255\relax
+ \fi
+ \ifnum\n@v<0 % to avoid diags in case of...
+ \n@v=0\relax
+ \fi
+%
+ \llap{\raise\y@i\hbox\@to\y@ii{%
+%-ickd \hss\csname sl\@slope\endcsname\char\n@v\hss}\kern#4}%
+ \hss\csname sl\@slope\@dotted\endcsname\char\n@v\hss}\kern#4}%
+ \fi}
+
+
+\def\sp@pt#1{\divide\n@v65536\divide\n@v#1}
+\def\max@n@v#1{\ifnum\n@v>#1\n@v#1\fi}
+\def\min@n@v#1{\ifnum\n@v<#1\n@v#1\fi}
+
+%-ickd \def\mid@box{\hbox{\xtie\char\n@v}}
+\def\mid@box{%
+ \ifnum\n@v>255 % to avoid diags in case of...
+ \n@v=255\relax
+ \fi
+ \ifnum\n@v<0 % to avoid diags in case of...
+ \n@v=0\relax
+ \fi
+%
+ \hbox{\csname xtie\@dotted\endcsname\char\n@v}}
+%-ickd \def\@boX{\setbox\ch@box\hbox{\csname hslur\@sense\endcsname\char\n@v}%
+\def\@boX{%
+ \ifnum\n@v>255 % to avoid diags in case of...
+ \n@v=255\relax
+ \fi
+ \ifnum\n@v<0 % to avoid diags in case of...
+ \n@v=0\relax
+ \fi
+%
+ \setbox\ch@box\hbox{\csname hslur\@sense\@dotted\endcsname\char\n@v}%
+ \advance\y@ii-\wd\ch@box}
+
+\def\def@lr{\edef\l@length{\the\n@vii}\edef\r@length{\the\n@ii}}
+
+\def\s@adjust#1#2{%
+ \ifnum\n@v<\count@ \advance#1\@ne \fi
+ \ifnum\n@v>\z@ \advance#1\@ne \advance#2\m@ne
+ \ifnum#1>\s@v@n #1\s@v@n \fi \fi}
+
+\def\C@csl#1#2{% compute meet height for slurs
+ \if u\@sense \n@iii#1\advance\n@iii\tw@
+ \else \n@iii#2\advance\n@iii-\tw@ \fi
+ \ifx\@invert\@ne
+ \n@iii#1\advance\n@iii-#2\divide\n@iii\tw@ \advance\n@iii#2\fi
+ \advance#1-#2}
+
+\def\C@cc#1{% slur = abs(meet-note) - 1
+ \n@ii\@meet
+ \advance\n@ii-#1%
+ \ifnum\n@ii<\z@ \n@ii-\n@ii \fi
+ \advance\n@ii\m@ne
+ }
+% \ifnum\n@ii<\z@\immediate\write16{Warning: \noexpand\C@cc->\noexpand\n@ii=\the\n@ii}\fi
+% \n@ii\z@} % modeif DT 20-12-97
+
+\def\C@csm#1{% clip to extremity heights (max slur height= 16\internote)
+ \n@i\n@iii
+ \advance\n@i-#1%
+ \ifnum\n@i>\sixt@@n
+ \ifnum\n@iii>#1%
+ #1\n@iii \advance#1-\sixt@@n
+ \else
+ #1\n@iii \advance#1\sixt@@n
+ \fi
+ \fi}
+
+\def\C@sof{\advance\y@i\s@Y % abs. voffset
+ \ifx\@Ti\@ne \advance\y@i\s@a \let\@Ti\empty \fi}% call from cutslur
+
+% manual influation on the curve for long slurs
+% must be coded in front of \tslur
+% #1 final height [number, steps of internote, relativ to beginning! note]
+% #2 (length)slope left #3 (length)slope right
+
+\def\curve#1#2#3{\getcurpos % ignore \curve behind a linebreak
+ \ifdim\y@v>\@xxxii\p@ \xdef\@meet{#1}\edef\l@length{#2}\edef\r@length{#3}\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}
+
+\let\@meet\empty
+\let\l@length\empty
+\let\r@length\empty
+
+% Liftslur #1 refnumber #2 lift[steps of internote]
+
+\def\Liftslur#1#2{\n@i#1\advance\n@i\@ne \advance\csname s@y\roman@n@i#2}
+
+% breakslur #1 refnumber #2 endheight during linebreak[steps of internote]
+
+\def\breakslur#1#2{\inhgetn@i#2\relax\n@ii\n@i
+ \n@i#1\advance\n@i\@ne \global\csname s@z\roman@n@i\n@ii}
+
+% invertslur #1 refnumber
+
+\def\@invsl{\if u\the\s@s \s@s{d}\else \s@s{u}\fi}
+
+\def\invertslur#1{\s@l@ctslur#1\relax
+ \if u\the\s@s \global\s@s{D}% change sense and set flag for invertslur
+ \else \global\s@s{U}\fi}
+
+% initiate slur #1 reference number #2 start note
+
+\def\isluru{\i@slur\h@lf{1\p@seven\internote}u}% 'normal'
+\def\issluru{\i@slur{1\p@ne}{\p@seven\internote}u}% shorter for accords
+% for beam(ib[l]u) or stem, doesn't work with \stemcut (yet?)
+\def\ibsluru{\y@i\stemfactor\interbeam
+ \advance\y@i\h@lf\internote \i@slur1\y@i u}
+\def\islurd{\i@slur\h@lf{-1\p@seven\internote}d}
+\def\isslurd{\i@slur{1\p@ne}{-\p@seven\internote}d}
+\def\ibslurd{\y@i\stemfactor\interbeam
+ \advance\y@i\h@lf\internote \y@i-\y@i \i@slur0\y@i d}
+
+\let\itieu\issluru
+\let\itied\isslurd
+\def\istieu{\i@slur{1\p@ne}{\qu@rt\internote}u}% shorter for accords
+\def\istied{\i@slur{1\p@ne}{-\qu@rt\internote}d}%
+\let\itenu\istieu
+\let\itenl\istied
+\let\Itenu\istieu
+\let\Itenl\istied
+
+\def\dotted{\let\dott@d\@ne}\let\dott@d\empty %+ickd
+
+% #1 hoffset #2 voffset #3 sense (u,d) #4 reference number #5 start note
+
+\def\@mis{missing }
+
+\def\i@slur#1#2#3#4#5{%
+ \global\advance\N@s\@ne % update slurcounter
+ \s@l@ctslur#4\relax
+% test for already invoked \islur
+ \if x\the\s@s \else\errmessage{\@mis\noexpand\tslur#4}\fi
+ \global\s@Y#2% store voffset (abs. dim. to rel. height)
+ \global\s@s{#3}% store sense (u,d)
+ \ifx\dott@d\empty \global\s@d{}\else\global\s@d{d}\fi %+ickd
+ \let\dott@d\empty % set dotted indicator +ickd
+ \global\s@N\noinstrum@nt % store instrument number
+ \inhgetn@i#5\relax
+ \global\s@y\n@i % start vpos (steps of internote)
+ \global\s@a\altportee % store altportee of current slur
+ \getcurpos
+ \advance\y@v#1\qn@width
+ \global\s@x\y@v}% start hpos (current pos including hoffset)
+
+% terminate slur #1 reference number #2 end note
+% the various types only influence the horizontal offset, if you want to
+% terminate a \ibslur with a \tslur it becomes a little bit tricky
+
+\def\tslur{\t@slur\h@lf}
+\def\tsslur{\t@slur{-\p@ne}}
+\def\tubslur{\t@slur1}
+\def\tdbslur{\t@slur0}
+\def\tbsluru{\t@slur1}
+\def\tbslurd{\t@slur0}
+
+\def\ttie#1{\let\T@i\@c \t@slur{-\p@ne}#1\@ne}
+\def\tleg#1{\let\T@i\@c \tslur #1\@ne}
+\let\tten\ttie
+\let\Tten\ttie
+\let\Tleg\tleg
+
+% y@i linewidth
+% y@iv right hoffset
+% y@v endpos, complete length
+
+% #1 hoffset #2 reference number #3 end note
+
+\def\t@slur#1#2#3{%
+ \s@l@ctslur#2\relax
+ \y@iv#1\qn@width
+ \def\@sense{\the\s@s}%
+ \edef\@dotted{\the\s@d}%+ickd
+% test for missing \islur
+ \if x\@sense \errmessage{\@mis\noexpand\islur#2}\fi
+% test for \invertslur
+ \if D\@sense \s@s{u}%
+ \let\@invert\@ne
+ \fi
+ \if U\@sense \s@s{d}%
+ \let\@invert\@ne
+ \fi
+% compute length
+ \getcurpos
+ \advance\y@v\y@iv
+% eoline
+ \y@eol\advance\y@-\beforeruleskip
+% clip slur at eoline
+ \ifdim\y@v>\y@ \y@v\y@ \advance\y@v\beforeruleskip \y@iv\beforeruleskip \fi
+ \advance\y@v-\s@x
+ \ifx\T@i\@c \n@i\s@y \else \inhgetn@i#3\relax \fi
+ \writ@slur\s@y\n@i\y@v{-\y@iv}%
+% reset sense of slur
+ \global\s@s{x}\let\T@i\empty
+ \global\advance\N@s\m@ne}% 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}}
+\def\Islurubreak#1#2{{\advance\transpose -1\isluru{#1}{#2}}}
+\def\Islurdbreak#1#2{{\advance\transpose 1\islurd{#1}{#2}}}
+
+
+\def\y@eol{\y@\line@width \advance\y@-\sign@skip
+ \advance\y@-\clef@skip \advance\y@-\s@indent}
+
+% hold up the RM-slur calling, because faster coding,
+% if the slurs are inside a bar (and you use one kind of \notes)
+% and ... there is no limitation in the number of slurs
+% if you want to call a short slur, extending to the left use \slur[][][]0
+
+% #1 start pitch #2 final pitch #3 sense(u,d) #4 length[noteskip]
+
+\def\C@slur#1#2#3#4{%
+ \inhgetn@i#1\relax \n@ii\n@i
+ \inhgetn@i#2\relax \relax
+ \ifx\dott@d\empty \gdef\@dotted{}\else\gdef\@dotted{d}\fi %+ickd
+ \let\dott@d\empty % set dotted indicator +ickd
+ \def\@sense{#3}%
+ \if d\@sense \s@Y-\s@Y \fi
+ \y@v#4\noteskip
+ \y@iv\y@v
+ \advance\y@iv\y@ii
+ \advance\y@v\y@iii
+ \kern\y@iv
+ \writ@slur\n@ii\n@i\y@v\z@
+ \kernm\y@iv}
+
+\def\sslur{%
+ \let\s@N\undefined % do not store instrument number
+ \s@Y\p@seven\internote
+ \y@iii-1.2\qn@width % offset to length 1.1behind+.1before
+ \y@ii-\p@ne\qn@width
+ \C@slur}
+\def\slur{%
+ \let\s@N\undefined % do not store instrument number
+ \s@Y1\p@seven\internote
+ \y@iii\z@
+ \y@ii\h@lf\qn@width
+ \C@slur}
+\def\stie#1{\sslur{#1}{#1}}
+\def\tie#1{\slur{#1}{#1}}
+
+%%% setup fontsizes
+
+\newdimen\interbeam % distance entre poutres
+\newdimen\b@amthick % half beamthickness
+\newdimen\Interligne% de la base d'une ligne a l'autre
+\newdimen\Internote % la moitie de \Interligne
+\let\internote\Internote
+\def\musixchar{\musixfont\char}
+\def\keychar{\musickeyfont\char}
+
+\let\musicnorfont\musictwenty
+
+\def\set@Largenotesize{\let\musixfont\musicLargefont
+ \let\xgregfont\xgregLargefont
+ \b@amthick.3456\Interligne \interbeam1.08\Interligne }
+
+\def\set@largenotesize{\let\musixfont\musiclargefont
+ \let\xgregfont\xgreglargefont
+ \b@amthick.288\Interligne \interbeam.9\Interligne }
+
+\def\set@normalnotesize{\let\musixfont\musicnorfont
+ \let\xgregfont\xgregnorfont
+ \b@amthick.24\Interligne \interbeam\p@seven5\Interligne }
+
+\def\set@smallnotesize{\let\musixfont\musicsmallfont
+ \let\xgregfont\xgregsmallfont
+ \b@amthick\p@ne92\Interligne \interbeam.6\Interligne }
+
+\def\set@tinynotesize{\let\musixfont\musictinyfont
+ \let\xgregfont\xgregtinyfont
+ \b@amthick\p@ne536\Interligne \interbeam.48\Interligne }
+
+\def\normalnotesize{\set@normalnotesize\comput@specifics
+ \let\curr@ntsiz@\normalnotesize}
+\def\smallnotesize{\set@smallnotesize\comput@specifics
+ \let\curr@ntsiz@\smallnotesize}
+\def\tinynotesize{\set@tinynotesize\comput@specifics
+ \let\curr@ntsiz@\tinynotesize}
+
+\def\musickeyfont{%
+ \ifdim\internote<\p@seven6\Internote \musictinyfont
+ \else
+ \ifdim\internote<.95\Internote \musicsmallfont
+ \else
+ \ifdim\internote<1.19\Internote \musicnorfont
+ \else
+ \ifdim\internote<1.43\Internote \musiclargefont
+ \else
+ \musicLargefont
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\def\meterfont{%
+ \ifdim\internote<\p@seven6\Internote \metersmallfont
+ \else
+ \ifdim\internote<.95\Internote \meternorfont
+ \else
+ \ifdim\internote<1.19\Internote \meterbigfont
+ \else
+ \ifdim\internote<1.43\Internote \meterlargefont
+ \else \meterLargefont
+ \fi
+ \fi
+ \fi
+ \fi}
+
+\newbox\ch@box
+\newcount\musicsize
+\newdimen\qd@skip
+\newdimen\qn@width
+\newdimen\wn@width
+
+\newskip\txt@ff
+\newskip\s@indent % store parindent
+\newskip\big@spc
+
+\newdimen\lthick \lthick=.4pt
+\def\hlthick{\h@lf\lthick}
+
+%%%
+
+\def\normalmusicsize{\musicsize\tw@nty \comput@specifics
+ \afterruleskip\@ight\p@ \elemskip\fontdimen\si@\musicnorfont}
+\def\smallmusicsize{\musicsize\sixt@@n \comput@specifics
+ \afterruleskip\si@\p@ \elemskip\fontdimen\si@\musicnorfont}
+\def\largemusicsize{\musicsize\@xxiv \comput@specifics
+ \afterruleskip\t@n\p@ \elemskip\fontdimen\si@\musicnorfont}
+\def\Largemusicsize{\musicsize\@xxix \comput@specifics
+ \afterruleskip\t@n\p@ \elemskip\fontdimen\si@\musicnorfont}
+
+\def\comput@fonts{%
+ \ifnum\musicsize=\sixt@@n
+ \let\musicLargefont\musictwentyfour
+ \let\musiclargefont\musictwenty
+ \let\musicnorfont\musicsixteen
+ \let\musicsmallfont\musicthirteen
+ \let\musictinyfont\musiceleven
+ \let\xgregLargefont\xgregtwentyfour
+ \let\xgreglargefont\xgregtwenty
+ \let\xgregnorfont\xgregsixteen
+ \let\xgregsmallfont\xgregthirteen
+ \let\xgregtinyfont\xgregeleven
+ \let\slurd\slurdsixteen \let\sluru\slurusixteen
+ \let\hslurd\hslurdsixteen \let\hsluru\hslurusixteen
+ \let\meternorfont\tenbf \let\metersmallfont\eightbf
+ \let\meterbigfont\twelvebf \let\meterlargefont\bigfont
+ \let\meterLargefont\Bigfont
+ \let\ppff\ppffsixteen
+ \else\ifnum\musicsize=\@xxiv
+ \let\musicLargefont\musictwentynine
+ \let\musiclargefont\musictwentynine
+ \let\musicnorfont\musictwentyfour
+ \let\musicsmallfont\musictwenty
+ \let\musictinyfont\musicsixteen
+ \let\xgregLargefont\xgregtwentynine
+ \let\xgreglargefont\xgregtwentynine
+ \let\xgregnorfont\xgregtwentyfour
+ \let\xgregsmallfont\xgregtwenty
+ \let\xgregtinyfont\xgregsixteen
+ \let\sluru\slurutwenty \let\slurd\slurdtwenty
+ \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
+ \let\meternorfont\bigfont \let\metersmallfont\twelvebf
+ \let\meterbigfont\Bigfont \let\meterlargefont\BIgfont
+ \let\meterlargefont\BIGfont
+ \let\ppff\ppfftwentyfour
+ \else\ifnum\musicsize=\@xxix
+ \let\musicLargefont\musictwentynine
+ \let\musiclargefont\musictwentynine
+ \let\musicnorfont\musictwentynine
+ \let\musicsmallfont\musictwentyfour
+ \let\musictinyfont\musictwenty
+ \let\xgregLargefont\xgregtwentynine
+ \let\xgreglargefont\xgregtwentynine
+ \let\xgregnorfont\xgregtwentynine
+ \let\xgregsmallfont\xgregtwentyfour
+ \let\xgregtinyfont\xgregtwenty
+ \let\sluru\slurutwenty \let\slurd\slurdtwenty
+ \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
+ \let\slurud\slurutwentyd \let\slurdd\slurdtwentyd % +ickd
+ \let\hslurud\hslurutwentyd \let\hslurdd\hslurdtwentyd %+ickd
+ \let\meternorfont\Bigfont \let\metersmallfont\bigfont
+ \let\meterbigfont\BIgfont \let\meterlargefont\BIGfont
+ \let\meterLargefont\BIGfont
+ \let\ppff\ppfftwentynine
+ \else
+ \ifnum\musicsize=\tw@nty
+ \else\ifnum\musicsize=\z@
+ \else\errmessage{\noexpand\musicsize=\the\musicsize\space not supported,
+ set to default of 20}%
+ \fi
+ \fi\musicsize\tw@nty
+ \let\musicLargefont\musictwentynine
+ \let\musiclargefont\musictwentyfour
+ \let\musicnorfont\musictwenty
+ \let\musicsmallfont\musicsixteen
+ \let\musictinyfont\musicthirteen
+ \let\xgreglargefont\xgregtwentyfour
+ \let\xgregLargefont\xgregtwentynine
+ \let\xgregnorfont\xgregtwenty
+ \let\xgregsmallfont\xgregsixteen
+ \let\xgregtinyfont\xgregthirteen
+ \let\sluru\slurutwenty \let\slurd\slurdtwenty
+ \let\hsluru\hslurutwenty \let\hslurd\hslurdtwenty
+ \let\meternorfont\twelvebf \let\metersmallfont\tenbf
+ \let\meterbigfont\bigfont \let\meterlargefont\Bigfont
+ \let\meterLargefont\BIgfont
+ \let\ppff\ppfftwenty
+ \fi\fi\fi
+}%
+
+\def\comput@specifics{\comput@fonts\comput@sizes}
+
+\def\comput@sizes{%
+ \Interligne\fontdimen\fiv@\musicnorfont
+ \Internote\h@lf\Interligne \big@spc.6\Interligne
+ \qn@width\fontdimen\si@\musixfont
+ \wn@width1\qu@rt\qn@width
+ \txt@ff\h@lf\qn@width
+ \qd@skip\qn@width\advance\qd@skip-\hlthick}
+
+%\newdimen\afterruleskip
+\newskip\afterruleskip
+\newdimen\staffbotmarg % marge au-dessous des portees
+\newdimen\stafftopmarg % au-dessus des portees
+\newdimen\line@width
+
+\def\normalvalue{1}
+\def\largevalue{1.2}
+\def\Largevalue{1.44}
+\def\smallvalue{.8}
+\def\tinyvalue{.64}
+
+\def\instrumentnumber#1{\n@v#1\relax
+ \min@n@v\@ne
+ \max@n@v\maxinstruments
+ \edef\nbinstruments{\the\n@v}}
+
+% staffsize
+
+\def\setsize#1#2{\n@v#1\relax % select instrument
+ \expandafter\edef\csname staffspacing\romannumeral\n@v\endcsname{#2}}
+
+\let\staffspacingi\@ne
+\let\staffspacingii\@ne
+\let\staffspacingiii\@ne
+\let\staffspacingiv\@ne
+\let\staffspacingv\@ne
+\let\staffspacingvi\@ne
+
+% number of staffs
+
+\def\setstaffs#1#2{\n@v#1\relax \csname n@p\romannumeral\n@v\endcsname#2}
+
+% staff lines
+
+\def\setlines#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname n@l\romannumeral\n@v\endcsname{#2}}
+
+\newdimen\interportee % distance between staffs of the same instrument (incl)
+\newcount\noport@@
+\newcount\noinstrum@nt
+\newdimen\altportee
+
+\def\interstaff#1{\def\interfacteur{#1}}
+
+\def\s@l@ctinstr{%
+ \edef\altitude{\csname k@i\romannumeral\noinstrum@nt\endcsname}%
+ \edef\st@ffs{\csname n@p\romannumeral\noinstrum@nt\endcsname}%
+ \edef\nblines{\csname n@l\romannumeral\noinstrum@nt\endcsname}%
+ \edef\internote{\csname i@n\romannumeral\noinstrum@nt\endcsname}%
+ \interportee\interfacteur\internote \interportee\tw@\interportee}
+
+\def\C@Inter{\stem@skip\interportee \advance\stem@skip-\@ight\internote
+ \ifnum\nblines=\f@ur \advance\stem@skip\tw@\internote \fi
+ \ifnum\nblines>\fiv@ \advance\stem@skip-\tw@\internote \fi}
+
+%%% loop over instruments and staffs
+
+\def\count@portee{\advance\noport@@\@ne}
+
+\def\n@loop{\noinstrum@nt\z@ \loop\ifnum\noinstrum@nt<\nbinstruments
+ \advance\noinstrum@nt\@ne \s@l@ctinstr}
+
+\def\m@loop{\noinstrum@nt\z@ \loop\ifnum\noinstrum@nt<\maxinstruments
+ \advance\noinstrum@nt\@ne}
+
+\def\p@loop{\noport@@\z@ \loop\ifnum\noport@@<\st@ffs
+ \altportee\altitude \advance\altportee\noport@@\interportee}
+
+\def\Comp@High{\y@v\st@ffs\interportee \C@Inter\advance\y@v-\stem@skip}
+
+% to be used to make heavy bars at staff left
+% modified according to Werner Icking
+
+
+\def\groupbottom#1#2{\group@no#1\relax
+ \advance\group@no\m@ne\test@grnum % testgr@num advances group@no by 1...
+ \expandafter\def\csname lowersonginstrum\romannumeral\group@no\endcsname{#2}}
+
+\def\grouptop#1#2{\group@no#1\relax
+ \advance\group@no\m@ne\test@grnum % testgr@num advances group@no by 1...
+ \expandafter\def\csname uppersonginstrum\romannumeral\group@no\endcsname{#2}}
+
+\def\songbottom{\groupbottom1}
+\def\songtop{\grouptop1}
+
+\let\lowersonginstrumi\maxdimen
+\let\lowersonginstrumii\maxdimen
+\let\lowersonginstrumiii\maxdimen
+\let\uppersonginstrumi\z@
+\let\uppersonginstrumii\z@
+\let\uppersonginstrumiii\z@
+
+\def\g@loop{\group@no\z@ \loop\ifnum\group@no<\maxgroups
+ \s@l@ctgroup}
+\def\s@l@ctgroup{%
+ \relax\test@grnum
+ \edef\g@b{\csname g@b\romannumeral\group@no\endcsname}% dimen (group bottom)
+ \edef\g@h{\csname g@h\romannumeral\group@no\endcsname}% dimen (group top)
+ \edef\lowersonginstrum{\csname lowersonginstrum\romannumeral\group@no\endcsname}% dimen (group top)
+ \edef\uppersonginstrum{\csname uppersonginstrum\romannumeral\group@no\endcsname}% dimen (group top)
+ }%
+\def\test@grnum{%
+ \ifnum\group@no<\z@ \group@no\@c \fi
+ \ifnum\group@no<\maxgroups \else
+ \errmessage{Wrong group number=\the\group@no! max=\the\maxgroups}\group@no\z@ \fi
+ \advance\group@no\@ne}
+
+% \nobarmessages prevents bar messages
+
+\def\nobarmessages{\let\no@b\@ne}
+\let\no@b\empty
+
+% \nolinemessages prevents line messages in phase three
+\def\nolinemessages{\let\no@l\@ne}
+\let\no@l\empty
+
+% \nobarnumbers prevents bar numbering (Ian Collier)
+% \barnumbers restores bar numbering
+
+\def\nobarnumbers{\let\lin@bar\empty \let\freqbarno\maxdimen}
+\def\barnumbers{\let\freqbarno\normalvalue}
+\barnumbers
+
+% show barnumbers only at the beginning system
+
+\def\raisebarno{\f@ur\internote}
+\let\shiftbarno\z@
+
+\def\writebarno{\boxit{\eightbf\the\barno\barnoadd}}
+\def\systemnumbers{\nobarnumbers\let\lin@bar\@ne}
+
+% add 'a' behind the systembarnumber, if the previous line ended without
+% a bar rule
+
+\let\z@sw\empty
+\def\writezbarno{a}
+\def\barnoadd{\ifx\z@sw\@ne \writezbarno \fi}
+
+% supress the beginning vertical rule for one line sheets
+
+\def\startrule{\let\b@rule\empty}
+\def\nostartrule{\let\b@rule\z@}
+\startrule
+
+%%% distance between instruments (added to \interportee)
+
+\newdimen\interinstrument
+
+\let\interinstrumenti\interinstrument
+\let\interinstrumentii\interinstrument
+\let\interinstrumentiii\interinstrument
+\let\interinstrumentiv\interinstrument
+\let\interinstrumentv\interinstrument
+\let\interinstrumentvi\interinstrument
+
+\def\setinterinstrument#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname interinstrument\romannumeral\n@v\endcsname{#2}}
+
+%%% portees
+
+\newdimen\systemheight
+\newdimen\altplancher
+
+% New version by Werner Icking
+
+\def\writ@staffs{%
+ \y@\staffbotmarg \global\altplancher\staffbotmarg
+ \rlap{\n@loop\w@st\repeat
+% beginning vertical rule
+ \systemheight\y@
+ \advance\systemheight-\altplancher
+ \C@Inter \global\advance\systemheight-\stem@skip
+ \ifx\empty\b@rule \raise\altplancher\rlap{%
+ \vrule\@depth\hlthick\@height\systemheight\@width\lthick}\fi
+% 'Akkoladenklammer' don't know the english word
+ \g@loop
+ \ifnum\uppersonginstrum<\lowersonginstrum
+ \else
+ \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
+ \@width\internote}\hbox{\musixfont\fiv@t@@n}}\kern\internote}%
+ \fi
+ \repeat
+% systembarnumbers
+ \ifx\lin@bar\@ne \y@\altplancher \advance\y@\systemheight
+ \advance\y@\raisebarno \raise\y@\rlap{\kern\shiftbarno\writebarno}\fi
+% strut
+ \advance\stafftopmarg\staffbotmarg
+ \raise\stafftopmarg\hbox{\vrule\@height\systemheight\@width\z@}}}
+
+\def\uplap#1{\vbox\@to\z@{\vss#1}}
+
+% new version of \w@st by Werner Icking
+
+\newskip\instrum@in@group
+\def\w@st{%
+ \global\noport@@\z@ \global\altitude\y@
+ \global\instrum@in@group=\z@
+ {\g@loop
+ \ifnum\noinstrum@nt=\lowersonginstrum
+ \global\g@b\altitude
+ \fi
+ \ifnum\uppersonginstrum>\lowersonginstrum\relax
+ \ifnum\noinstrum@nt<\lowersonginstrum\relax
+ \else
+ \ifnum\noinstrum@nt>\uppersonginstrum\relax
+ \else
+% \message{\the\noinstrum@nt\space in-group!}%
+ \global\instrum@in@group=2\internote
+ \fi
+ \fi
+ \fi
+ \repeat}%
+% nullportee
+ \ifnum\st@ffs=\z@
+ \advance\y@\f@ur\Interligne
+ \else
+% multportee
+ \ifnum\st@ffs>\@ne \Comp@High\n@v\y@v \sp@pt\tw@
+ \advance\n@v\@cxxviii \divide\y@v\tw@
+%==== the parenthesis should be shifted to the left if within
+%==== songbottom -- songtop
+ \advance\y@v\y@
+ \raise\y@v\hbox{\kern -\instrum@in@group\mxsps\char\n@v\kern\instrum@in@group}%
+ \fi
+% normal staff
+ {\loop \staff@lines\ifnum\noport@@<\st@ffs \repeat}%
+ \fi % fin du \else pour 0 portees=chant
+ {\g@loop
+ \ifnum\noinstrum@nt=\uppersonginstrum \global\g@h\y@ \fi
+ \repeat}%
+ \ifnum\noinstrum@nt<\nbinstruments
+ \advance\y@\csname interinstrument\romannumeral\noinstrum@nt\endcsname \fi}
+
+\def\staff@lines{\raise\y@\rlap{\uplap{%
+ \ifcase\nblines
+ \or \Lin@\zLin@\zLin@
+ \or \Lin@\zLin@\Lin@\zLin@
+ \or \Lin@\zLin@\Lin@\zLin@\Lin@
+ \or \Lin@\Lin@\Lin@\Lin@
+ \or \Lin@\Lin@\Lin@\Lin@\Lin@
+ \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
+ \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
+ \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
+ \or \Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@\Lin@
+ \fi\kernm\hlthick}}%
+ \global\advance\y@\interportee \count@portee}
+
+\def\zLin@{\kern\tw@\internote}
+\def\Lin@{\zLin@\kernm\lthick\hrule\@width\line@width}
+
+\newskip\boxitsep \boxitsep\thr@@\p@\relax
+
+\def\boxit#1{\vbox{\hrule\hbox{\vrule\kern\boxitsep\vbox{%
+ \kern\boxitsep\hbox{#1}\kern\boxitsep}\kern\boxitsep\vrule}\hrule}}
+\def\circleit#1{\setbox\ch@box\hbox{#1}\y@v\ht\ch@box
+ \y@v1.41\ht\ch@box % => sqrt(2)
+ \n@v\y@v \sp@pt\tw@ \advance\n@v69\rlap{#1}%
+ \raise\h@lf\ht\ch@box\rlap{\kern\h@lf\wd\ch@box\mxsps\char\n@v}}
+
+\def\thinrul@{\writ@rule\lthick}
+\def\thickrul@{\writ@rule\big@spc}
+
+%%% start normal score
+
+%%
+% Define a counter to keep track of total number of bars in piece
+% which are terminated by a barline. This is not necessarily
+% the same as \barno, in view of (eg) a bar containing
+% multiple bars rest.
+%%
+% !!! \barsinpi@c@ now used for \zbar and \xbar too, if you use them
+% the value of \barsinpi@c@ says nothing !!!
+%
+
+\newcount\barsinpi@c@
+\newcount\barno
+\newcount\startbarno \startbarno\@ne
+\newdimen\sign@skip
+\newdimen\maxsign@skip
+
+
+\def\piece@begina{\catcodesmusic \barno\startbarno \@l@mskip\elemskip
+ \barsinlin@\z@ \let\z@sw\empty \frenchspacing
+% \let\barrul@\thinrul@ \comp@internote} %-simick
+ \b@rrul@\comp@internote} %+simick
+
+\def\comp@internote{\comput@specifics
+ \n@loop
+ \internote\csname staffspacing\romannumeral\noinstrum@nt\endcsname\Internote
+ \repeat
+ \line@width\hsize}
+
+\def\piece@beginb{\advance\line@width-\parindent \s@indent\parindent
+ \writ@staffs \writ@names \advance\line@width\parindent}
+
+\def\piece@beginc{%
+% write clefs
+ \n@loop{\writ@clefi}\repeat \kern\clef@skip
+% everystaff stuff
+ \everyst@ff
+% write signatures
+ \sign@skip\z@ \n@loop{\s@l@ctsigns \let\@Ti\writ@sign \C@wsi}\repeat
+ \kern\sign@skip \m@loop \s@l@ctsigns \o@s\a@s \s@l@ctclefs \o@c\a@c \repeat
+ \let\Writ@newsigns\empty \hskip\z@ plus\p@ minus\p@ \lastbarpos\z@}
+
+\let\fil@begin\empty
+\let\Writ@meters\empty
+
+\def\startpiece{\ifstartmuflex@done\relax
+ \else\startmuflex
+ \immediate\write16{\noexpand\startmuflex launched by
+ \noexpand\startpiece }%
+ \fi
+ \barsinpi@c@\z@ \piece@begina \leavevmode \piece@beginb
+ \piece@beginc \fil@begin \Writ@meters
+ \let\volta@set\empty % tells the kind of volta setting at next bar
+ \let\volta@cut\empty % flag to tell that a volta has been cut at line end
+ \let\volta@type\empty % the current volta setting (same defs as \volta@set)
+ \let\endvolta@set\empty % tells the kind of volta closing at next bar
+}
+
+\let\everystaff\empty
+\def\everyst@ff{\everystaff}% --> MuFlex Pass II
+
+%%% continue score
+
+\let\atnextline\empty
+
+\def\piece@conta{\catcodesmusic \atnextline \let\atnextline\empty
+ \comp@internote \leavevmode \barsinlin@\z@ }
+
+\def\contpiece{\noindent \piece@conta \writ@staffs \piece@beginc
+ \Writ@meters \wbarno@x \addspace\afterruleskip
+}
+
+% like contpiece but with indentation (parindent) and instrument names
+% it's for changing the number of instrument in one piece
+
+\let\fil@indent\empty
+\def\Contpiece{\piece@conta \piece@beginb \fil@indent \piece@beginc
+ \Writ@meters}
+
+%%% end score
+
+\let\ragg@d\empty
+\let\z@suspend@autoflag\empty % used in musixcpt only
+
+\def\z@suspend{%
+ \z@suspend@autoflag % used in musixcpt only
+% cutvolta
+ \write@volta@hrule
+ \ifx\volta@type\tw@\let\volta@set\tw@ \let\volta@type\empty
+ \let\volta@cut\tw@\fi % restart volta at next line if continuous
+ \ifx\volta@type\thr@@\let\volta@set\thr@@ \let\volta@type\empty
+ \let\volta@cut\thr@@ \fi % restart volta at next line if continuous
+% cutoctline
+ \o@loop
+ \ifdim\o@x<\maxdimen \let\T@ii\n@ii \C@TO \o@x\z@ \fi
+ \repeat
+% cut trill
+ \tr@loop
+ \ifdim\tr@x<\maxdimen \let\T@ii\n@ii \C@TR \tr@x\z@ \fi
+ \repeat
+% cutslur
+ \ifnum\N@s>\z@% % any pending slurs ?
+ \n@viii\maxinstruments % test all possible numbers
+ \advance\n@viii\m@ne
+ \loop\ifnum\n@viii>\m@ne
+ \s@l@ctslur\n@viii\relax
+ \edef\@sense{\the\s@s}%
+ \if x\@sense% % sense flag
+ \else% % found slur
+ \edef\@dotted{\the\s@d}% +ickd
+ \y@v\lin@pos % get current position
+ \advance\y@v-\s@x % slurlength = currentpos - startpos
+ \let\@Ti\@ne % set flag for \writ@slur (\staffbotmarg)
+ \ifnum\s@z=\maxdimen \s@z\s@y \fi % flag (\breakslur not used -> tie)
+ \writ@slur\s@y\s@z\y@v\p@% avoid touching the bar rule
+ \s@x\z@% reset startpos for next line
+ \s@z\maxdimen% reset breakslur
+ \fi
+ \advance\n@viii\m@ne \repeat
+ \fi\s@indent\z@
+%
+ \ragg@d\par\lin@pos\z@ \endcatcodesmusic}
+
+\def\stoppiec@{\check@nopen\n@wbar\z@suspend}
+%\def\stoppiece{\stoppiec@\@nds@ction} %-simick
+\def\stoppiece{\T@bil\fi\stoppiec@\@nds@ction} %+simick
+\let\endpiece\stoppiece
+
+\def\zstoppiec@{\check@nopen\zn@wbar\z@suspend}
+%\def\zstoppiece{\zstoppiec@\@nds@ction} %-simick
+\def\zstoppiece{\T@bil\fi\zstoppiec@\@nds@ction}%+simick
+
+\def\Stoppiece{\setdoubleBAR\stoppiece}
+\let\Endpiece\Stoppiece
+
+%%% short excerpts
+
+\def\startextract{\lastbarno\z@ \barno\startbarno
+ \piece@begina\setbox\w@rkbox\hbox{\writ@staffs}% to compute heights
+ \setbox\w@rkbox\hbox\bgroup% !! all changes are local !!
+ \line@width\maxdimen
+ \maxbarsinlin@\maxdimen %+simick
+ \let\T@bil\iftrue \let\everyst@ff\everystaff \let\fil@spc\empty
+ \let\fil@termskip\empty \let\fil@signs\empty \let\fil@barno\empty
+ \let\leftrepeat\leftrepeat@II \let\leftrightrepeat\leftrightrepeat@II
+ \piece@beginc\Writ@meters\addspace\afterruleskip}
+
+% enable left and right extracts (e.g. for footnotes)
+
+\let\extractline\centerline
+
+\def\endextract{\let\z@suspend\write@volta@hrule
+ \stoppiec@\egroup\line@width\wd\w@rkbox
+ \extractline{\writ@names\writ@staffs\unhbox\w@rkbox}%
+ \endcatcodesmusic}
+\def\zendextract{\let\stoppiec@\zstoppiec@ \endextract}
+
+%%
+% Redefine \t@rmskip to include a macro for writing a record to a file,
+% and define the macro
+%%
+
+\newdimen\x@skip
+\newdimen\n@skip
+
+\let\fil@termskip\empty
+\def\t@rmskip{\kern\n@skip\advance\x@skip\n@skip
+ \advance\lin@pos\x@skip
+ % case of \hardnotes
+ \ifnum\V@sw>0\relax
+ \y@v\n@skip \fil@spc
+ \fi
+ % end case \hardnotes
+ \fil@termskip\global\n@skip\z@ \global\x@skip\z@ \let\V@sw\z@}
+
+%%
+% Define the amount of space before each barline,
+%%
+
+%\newdimen\beforeruleskip
+\newskip\beforeruleskip
+
+%%
+% We must distinguish between scalable ('soft'=1) material in the bar
+% (eg noteboxes) and absolute ('hard'=0) widths such as those from
+% barlines and clef symbols
+% Hence introduce a switch defining this attribute
+%%
+
+\newcount\widthtyp@ \widthtyp@\@ne
+
+%%% bar numbers
+
+\newcount\lastbarno
+
+\def\writethebarno{\fontbarno\the\barno\kernm\qn@width}
+\def\fontbarno{\it}
+
+\def\wbarno@x{\lastbarpos\lin@pos
+ \ifx\volta@set\empty
+ \n@iii\barno \divide\n@iii\freqbarno\relax
+ \ifnum\n@iii=\lastbarno
+ \else \y@\altplancher \advance\y@\systemheight \advance\y@\tw@\internote
+ \raise\y@\llap{\writethebarno}\fi
+ \else
+ \ifx\volta@cut\empty
+ \else % volta was cut, there is nothing colliding with bar number.
+ \n@iii\barno \divide\n@iii\freqbarno\relax
+ \ifnum\n@iii=\lastbarno
+ \else \y@\altplancher \advance\y@\systemheight \advance\y@\tw@\internote
+ \raise\y@\llap{\writethebarno}\fi
+ \fi
+ \write@volta
+ \fi
+ \b@rrul@ %+simick
+ \n@iii\barno \divide\n@iii\freqbarno\relax \lastbarno\n@iii }
+
+%%% pass selective scoring
+
+\newskip\cut@v % contains width of bar rule
+\newskip\init@volta@pos % start position of volta
+\newskip\volta@startcor %+simick volta start correction in case of leftrepeats
+\newskip\volta@endcor %+simick volta end correction in case of rightrepeats
+
+\def\raisevolta{\f@ur\internote}
+
+\newbox\writ@volta@box
+
+\def\voltadot{.}%
+\def\write@volta{% writes the requested |n. and moves the things for further use
+ \ifx\volta@type\empty\else\errmessage{/setvolta collision!}\fi
+ \y@\altplancher \advance\y@\systemheight
+ \advance\y@\raisevolta
+% \setbox\writ@volta@box\rlap{\vrule % \musixfont\sixt@@n %-simick
+% \rm\ \vphantom{\^{\volta@text}\strut gq}\volta@text\voltadot}% %-simick
+ \setbox\writ@volta@box\rlap{\vrule\rm\strut\ \volta@text\voltadot}% %+simick
+ \xdef\thevolta@boxheight{\the\ht\writ@volta@box}%
+ \xdef\thevolta@boxdepth{\the\dp\writ@volta@box}%
+ \ifx\volta@cut\empty \else\setbox\writ@volta@box\null
+ \fi % if continuation, make writ@volta@box null
+% \raise\y@\llap{\box\writ@volta@box}% %-simick
+ \kernm\volta@startcor\raise\y@\llap{\box\writ@volta@box}\kern\volta@startcor %+simick
+ \let\volta@type\volta@set
+ \let\volta@set\empty
+ \let\volta@cut\empty
+% \init@volta@pos\lin@pos\relax %-simick
+ \init@volta@pos\lin@pos \advance\init@volta@pos-\volta@startcor %+simick
+}%
+
+\def\write@volta@hrule{% write the hrule of volta bar at its end
+ \ifx\volta@type\empty
+ \else
+ \y@v\lin@pos \advance\y@v-\init@volta@pos
+% \global\advance\cut@v\lthick \advance\y@v-\cut@v %-simick
+% \global\advance\cut@v\lthick %-simick
+ \ifnum\barsinlin@=\maxbarsinlin@ %+simick
+ \y@i\z@ %+simick
+ \else %+simick
+ \y@i\cut@v \advance\y@i-\volta@endcor %+simick
+ \fi %+simick
+ \advance\y@v-\y@i %+simick
+ \y@\altplancher \advance\y@\systemheight
+ \advance\y@\raisevolta
+ \raise\y@\llap{%
+ \raise\thevolta@boxheight
+% \hbox{\vrule\@height\z@\@depth\lthick\@width\y@v}}% %-simick
+ \hbox{\vrule\@height\z@\@depth\lthick\@width\y@v}\kern\y@i}% %+simick
+% check whether termination has been required
+ \ifx\endvolta@set\thr@@ \let\volta@type\thr@@\fi % \endvoltabox forces type \thr@@
+ \ifx\endvolta@set\empty \else \write@volta@endbox\fi
+ % now set volta@type \@ne to \empty
+ \ifx\volta@type\@ne \let\volta@type\empty\fi
+ \fi
+}%
+
+\def\write@volta@endbox{% write the hrule of volta bar at its end
+ \ifx\volta@type\empty
+ \else
+% \y@v\lin@pos \advance\y@v-\init@volta@pos %-simick
+% \global\advance\cut@v\lthick \advance\y@v-\cut@v %-simick
+% \global\advance\cut@v\lthick %-simick
+ \y@\altplancher \advance\y@\systemheight
+ \advance\y@\raisevolta
+ \ifx\volta@type\thr@@
+% \raise\y@\llap{\raise\thevolta@boxheight\hbox{\true@endvoltabox}}% %-simick
+ \raise\y@\llap{\raise\thevolta@boxheight\hbox{\true@endvoltabox}\kern\y@i}%+simick
+ \fi
+% now force volta@type to \empty
+ \let\volta@type\empty
+ \let\endvolta@set\empty
+ \let\volta@cut\empty
+ \fi
+}%
+
+%\check
+
+\let\writ@volta\empty % provisional for testing %
+
+\let\volta@set\empty % tells the kind of volta setting at next bar
+ % \@ne = single \setvolta, \tw@ = \Setvolta
+ % \thr@@ = setvoltabox
+
+\let\volta@type\empty % the current volta setting (same defs as \volta@set)
+\let\volta@cut\empty
+
+\let\endvolta@set\empty % tells the kind of volta closingg at next bar
+ % \@ne = not used, \tw@ = terminate \Setvolta[box]
+ % \thr@@ = terminate \Setvolta[box] with an ending hook
+
+\def\setvolta{\let\volta@set\@ne \gen@setvolta}
+\def\Setvolta{\let\volta@set\tw@ \gen@setvolta}
+\def\setvoltabox{\let\volta@set\thr@@ \gen@setvolta}
+
+\def\gen@setvolta#1{\def\volta@text{#1}}
+
+\def\setendvolta{%
+ \ifx\volta@type\empty\volta@err
+ \else\let\endvolta@set\tw@
+ \fi}
+
+\def\setendvoltabox{%
+ \ifx\volta@type\empty\volta@err
+ \else\let\endvolta@set\thr@@
+ \fi}
+
+\let\endvolta\setendvolta
+\let\endvoltabox\setendvoltabox
+
+\def\true@endvoltabox{\raise-\thevolta@boxheight
+ \llap{\vrule\@height\thevolta@boxheight \@depth\thevolta@boxdepth}}
+
+\def\volta@err{\immediate\write16{%
+ type=\ifx\volta@type\empty 0\else \number\volta@type\fi,
+ set=\ifx\volta@set\empty 0\else \number\volta@set\fi}%
+\errmessage{\noexpand\endvolta, %\noexpand\contvolta,
+\noexpand\endvoltabox\space does not match opening \noexpand\S[s]volta...}}
+
+
+%%% line breaking stuff
+
+\let\@nds@ction\empty
+
+\newcount\barsinlin@
+\newcount\maxbarsinlin@
+
+%\def\@LeftRp{\stoppiec@\contpiece\addspace{\h@lf\afterruleskip}% %-simick
+% \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip} %-simick
+\def\@LeftRp{\stoppiec@\l@@ftrepeat\advance\volta@startcor-\afterruleskip %+simick
+ \contpiece\addspace{\h@lf\afterruleskip}% %+simick
+ \kernm\afterruleskip\l@eftrepeat\kern\afterruleskip %+simick
+ \advance\lastbarpos\afterruleskip \b@rrul@} %+simick
+
+\def\T@bil{\advance\barsinlin@\@ne \ifnum\barsinlin@<\maxbarsinlin@}
+
+\def\barre{\T@bil \@bar\else\stoppiec@\contpiece \fi}
+\def\xbar{\@bar\advance\barsinpi@c@\m@ne}
+\def\zbar{\T@bil \zn@wbar\else\zstoppiec@\contpiece \fi}
+\def\alaligne{\stoppiece\contpiece}
+\def\zalaligne{\zstoppiece\contpiece}
+\def\leftrepeat@II{\T@bil \setleftrepeat\@bar\else\@LeftRp \fi}
+\let\leftrepeat\leftrepeat@II
+\def\leftrightrepeat@II{\T@bil \setleftrightrepeat
+ %\setbox\toks@box\l@eftrightrepeat \global\cut@v=\wd\toks@box
+ \@bar
+ \else\setrightrepeat\@LeftRp \fi}
+\let\leftrightrepeat\leftrightrepeat@II
+\def\alapage{\stoppiece\eject\contpiece}
+\def\zalapage{\zstoppiece\eject\contpiece}
+
+% minuscule: une seule barre
+% majuscule: double barre
+
+\let\Writ@newsigns\empty
+
+\def\updat@context{\writ@newclefs
+ \T@bil \wbarno@x\Writ@newsigns\Writ@meters\addspace\afterruleskip
+ \else\Writ@newsigns\z@suspend\contpiece \fi}
+
+\def\changecontext{\showallbarrules\n@wbar\updat@context}
+\def\Changecontext{\showallbarrules\setdoublebar\changecontext}
+\def\zchangecontext{\advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip
+ \zn@wbar\updat@context}
+
+\def\pchangecontext{\showallbarrules\n@wbar
+ \writ@newclefs\Writ@newsigns\z@suspend\eject\contpiece}
+\def\pChangecontext{\setdoublebar\pchangecontext}
+
+%%% bars, repeatbars, ...
+
+%%
+% Change ... to add skip \beforeruleskip to the preceeding notebox,
+% and to set the 'soft' switch for the output record
+%%
+%%
+% Redefine \n@wbar to write the bar line thickness to file,
+% then reset \n@skip and \x@skip
+%%
+
+\newskip\lastbarpos
+\let\fil@barno\empty
+\let\atnextbar\empty
+
+\def\n@wbar{%
+ \t@rmskip % essai DT
+ \advance\n@skip\beforeruleskip \widthtyp@\@ne \t@rmskip
+% \ifdim\cut@v>\z@ \else\ifx\barrul@\thinrul@ \else\global\cut@v.9\Interligne \fi\fi %-simick
+% \barrul@\widthtyp@\z@ \fil@termskip\let\barrul@\thinrul@ %-simick
+ \barrul@\widthtyp@\z@ \fil@termskip %+simick
+ \advance\barsinpi@c@\@ne \fil@barno
+ \ifx\no@b\empty \message{bar \the\barno}\fi
+ \advance\barno\@ne \advance\lin@pos\x@skip \atnextbar \let\atnextbar\empty
+ \write@volta@hrule %+simick
+% \global\cut@v\z@ % <===================================== inserted %-simick
+ \global\n@skip\z@ \global\x@skip\z@ \let\z@sw\empty
+% \write@volta@hrule %-simick
+}%
+
+\def\@bar{\n@wbar\wbarno@x\addspace\afterruleskip}
+
+\def\zn@wbar{\t@rmskip\advance\barsinpi@c@\@ne \let\z@sw\@ne}
+
+\def\small@spc{\addspace{\h@lf\big@spc}}
+
+\def\b@rrul@{\let\barrul@\thinrul@ %+simick
+ \global\cut@v\lthick \global\volta@endcor-\thr@@\lthick \global\volta@startcor\z@} %+simick
+\def\r@ightrepeat{%
+ \hbox{\writ@colons\addspace\big@spc\thinrul@\small@spc\thickrul@}}
+\def\r@@ghtrepeat{% %+simick
+ \global\cut@v\big@spc \global\advance\cut@v\lthick \global\advance\cut@v\h@lf\big@spc %+simick
+ \global\volta@endcor\cut@v \global\advance\cut@v\big@spc \global\volta@startcor\z@} %+simick
+\def\l@eftrepeat{%
+ \hbox{\thickrul@\small@spc\thinrul@\addspace\big@spc\writ@colons}}
+\def\l@@ftrepeat{% %+simick
+ \global\cut@v\big@spc \global\advance\cut@v\h@lf\big@spc \global\advance\cut@v\lthick %+simick
+ \global\advance\cut@v\big@spc \global\volta@endcor\z@ \global\volta@startcor\big@spc %+simick
+ \global\advance\volta@startcor\lthick \global\advance\volta@startcor\h@lf\big@spc} %+simick
+\def\l@eftrightrepeat{\hbox{\writ@colons\addspace\big@spc\thickrul@
+ \small@spc\thickrul@\addspace\big@spc\writ@colons}}
+\def\l@@ftrightrepeat{% %+simick
+ \global\cut@v\big@spc \global\advance\cut@v\big@spc \global\volta@endcor\cut@v %+simick
+ \global\advance\cut@v\h@lf\big@spc %+simick
+ \global\volta@startcor\big@spc \global\advance\volta@startcor\big@spc %+simick
+ \global\advance\cut@v\volta@endcor \global\advance\volta@startcor-\lthick} %+simick
+
+\def\doublebar{\showallbarrules\setdoublebar\barre}% double barre de mesure
+%\def\setdoubleBAR{\showallbarrules\def\barrul@{\thinrul@\small@spc\thickrul@}} %-simick
+\def\setdoubleBAR{\showallbarrules\def\barrul@{\thinrul@\small@spc\thickrul@}% %+simick
+ \global\cut@v\lthick \global\advance\cut@v\h@lf\big@spc \global\volta@endcor\cut@v %+simick
+ \global\advance\cut@v\big@spc \global\volta@startcor\z@} %+simick
+%\def\setemptybar{\def\barrul@{\relax}} %-simick
+\def\setemptybar{\def\barrul@{\relax}% %+simick
+ \global\cut@v\z@ \global\volta@endcor-\f@ur\lthick \global\volta@startcor\z@} %+simick
+\def\setdoublebar{\showallbarrules\global\cut@v.4\Interligne
+ \global\advance\cut@v\tw@\lthick \global\volta@endcor\z@ \global\volta@startcor\z@ %+simick
+ \def\barrul@{\thinrul@\addspace{.4\Interligne}\thinrul@}}
+
+\def\rightrepeat{\setrightrepeat\barre}
+
+%\def\setrightrepeat{\showallbarrules\let\barrul@\r@ightrepeat} %-simick
+\def\setrightrepeat{\showallbarrules\let\barrul@\r@ightrepeat \r@@ghtrepeat} %+simick
+%\def\setleftrepeat{\showallbarrules\let\barrul@\l@eftrepeat} %-simick
+\def\setleftrepeat{\showallbarrules\let\barrul@\l@eftrepeat \l@@ftrepeat} %+simick
+%\def\setleftrightrepeat{\showallbarrules\let\barrul@\l@eftrightrepeat} %-simick
+\def\setleftrightrepeat{\showallbarrules\let\barrul@\l@eftrightrepeat \l@@ftrightrepeat}%+simick
+
+% write colons on all staffs (a part of [left][right]repeat symbols
+
+\def\writ@colons{\n@loop{\w@coli}\repeat}
+\def\w@coli{\p@loop
+ \raise\altportee\hbox{\raise4\internote\hbox{\keychar55}}\count@portee\repeat}
+
+%%% seperated and full barlines
+
+%\def\rul@full#1{\raise\altplancher\rlap{\vrule\@depth\hlthick
+% \@height\systemheight\@width#1}\addspace#1}
+
+\def\rul@full#1{\hbox{\raise\altplancher\rlap{\vrule\@depth\hlthick
+ \@height\systemheight\@width#1}}\addspace#1}
+
+\def\rul@sep#1{\n@loop
+ \edef\rul@hidden{\csname h@bl\romannumeral\noinstrum@nt\endcsname}%
+ \Comp@High\hbox{\raise\altitude\rlap{%
+% \message{(tw@=\meaning\tw@\space thr@@=\meaning\thr@@\space \number\noinstrum@nt->}\expandafter\show\rul@hidden
+ \expandafter
+ \ifx\rul@hidden\relax % if \relax = never hidden
+ \vrule\@depth\hlthick\@width#1\@height\y@v
+ \else
+ \expandafter
+ \ifx\rul@hidden\thr@@ % if \thr@@ = not hidden one time,
+ \vrule\@depth\hlthick\@width#1\@height\y@v
+ \global\expandafter\let\rul@hidden\tw@ % reset to perm. hidden
+ \else
+ \expandafter
+ \ifx\rul@hidden\tw@ % if \tw@ = always hidden
+ \relax
+ \else
+ \expandafter
+ \ifx\rul@hidden\@ne % if \@ne = hidden only one time
+ \global\expandafter\let\rul@hidden\relax
+ \fi
+ \fi
+ \fi
+ \fi}}\repeat\addspace#1}
+
+%== hides (only) next bar line for specified instrument
+\def\Hidebarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\@ne}
+
+%== hides all next bar lines for specified instrument
+\def\hidebarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\tw@}
+
+%== force showing all bar lines for specified instrument
+\def\showbarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\relax}
+
+%== force showing all bar lines for all instruments
+\def\showallbarrules{%
+ %\ifx\writ@rule\rul@sep\relax
+ \n@loop
+ \global\expandafter\let\csname h@bl\romannumeral\noinstrum@nt\endcsname\relax
+ \repeat
+ %\fi
+}
+
+%== force showing (only) next bar line for specified instrument
+\def\Showbarrule#1{\global\expandafter\let\csname h@bl\romannumeral#1\endcsname\thr@@}
+
+% standard vrules over all instruments
+\def\stdbarrules{\let\writ@rule\rul@full }
+
+% separated vrules par instrum
+\def\sepbarrules{\let\writ@rule\rul@sep }
+\stdbarrules
+
+%%% signs
+
+\def\s@l@ctsigns{\edef\a@s{\csname a@s\romannumeral\noinstrum@nt\endcsname}%
+ \edef\o@s{\csname o@s\romannumeral\noinstrum@nt\endcsname}}%
+
+\def\setsign#1#2{\noinstrum@nt#1\relax
+ \let\Writ@newsigns\writ@newsigns % only write them, when they are touched
+ \s@l@ctsigns % select instrument
+ \a@s#2\relax %
+}
+
+\def\generalsignature#1{\let\Writ@newsigns\writ@newsigns
+ \m@loop \s@l@ctsigns \a@s#1\repeat}
+
+% Inhibits writing erasing naturals at next change of context
+\def\ignorenats{\m@loop \s@l@ctsigns \o@s\z@ \repeat}
+
+\def\changesignature{\t@rmskip\Writ@newsigns}
+
+\def\writ@sign{\ifnum\a@s=\z@ \else
+ \n@v\@lii
+ \ifnum\a@s>\z@ \C@sig\t@n
+ \C@sh\@ne\s@v@n
+ \C@sh\tw@\@l@v@n
+ \C@sh\thr@@\@ight
+ \C@sh\f@ur\fiv@
+ \C@sh\fiv@\nin@
+ \C@sh\si@\si@\fi
+ \n@v\@l
+ \ifnum\a@s<\z@ \C@sig\si@
+ \C@fl\@ne\nin@
+ \C@fl\tw@\fiv@
+ \C@fl\thr@@\@ight
+ \C@fl\f@ur\f@ur
+ \C@fl\fiv@\s@v@n
+ \C@fl\si@\thr@@\fi
+ \fi}
+
+\def\C@sh#1#2{\ifnum\a@s>#1\C@sig#2\fi}
+\def\C@fl#1#2{\ifnum\a@s<-#1\C@sig#2\fi}
+
+%%
+% Augment \writ@newsigns so that
+% (1) the space taken by the mid-line sign change is written to the file;
+% (2) the new value of \sign@skip is written to the file
+% Note that this is not necessarily the same value
+% as the mid-line value, which includes cancellation naturals when
+% the key signature changes from N flats to M sharps (or vice-versa)
+%%
+
+\let\fil@signs\empty
+
+\def\writ@newsigns{\sign@skip\z@
+ \n@loop{\s@l@ctsigns \let\@Ti\writ@newsign \C@wsi}\repeat
+ \n@skip\sign@skip \widthtyp@\z@ \t@rmskip
+ \m@loop \s@l@ctsigns \o@s\a@s \repeat
+ \let\Writ@newsigns\empty \fil@signs }
+
+\def\upd@width#1{\ifdim#1<\wd\toks@box \global#1\wd\toks@box \fi}
+\def\writ@box{\leavevmode\raise\altportee\rlap{\box\toks@box}}
+
+\newcount\ut@ref
+
+\def\get@refs#1#2#3#4{% #1-#4: cle correspondante 0=sol, 5-6=fa, 1-4=ut
+ \ifcase\noport@@ \ut@ref\z@ \or \ut@ref#1\or \ut@ref#2\or
+ \ut@ref#3\or \ut@ref#4\fi
+ \relax \ifnum \ut@ref=9\relax \ut@ref-1\relax\fi
+ \global\ut@ref\ut@ref }
+
+ %\def\writ@newsign{\ifnum\a@s=\z@ \else\kern.4\Internote \fi
+ % \ifnum\o@s<\z@ \w@flats\w@sharps\else\w@sharps\w@flats \fi}
+
+\def\writ@newsign{\ifnum\a@s=\z@ \else\kern.4\Internote \fi
+ \ifnum\o@s<\z@ \w@cancelflats\w@flats\w@sharps
+ \else\w@cancelsharps\w@sharps\w@flats \fi}
+
+\def\w@flats{\W@Fl\z@\si@ \W@Fl\@ne\nin@ \W@Fl\tw@\fiv@ \W@Fl\thr@@\@ight
+ \W@Fl\f@ur\f@ur \W@Fl\fiv@\s@v@n \W@Fl\si@\thr@@}
+
+\def\w@cancelflats{\W@canFl\z@\si@ \W@canFl\@ne\nin@ \W@canFl\tw@\fiv@
+ \W@canFl\thr@@\@ight \W@canFl\f@ur\f@ur \W@canFl\fiv@\s@v@n \W@canFl\si@\thr@@}
+
+ %\def\W@Fl#1#2{%
+ % \ifnum\a@s<-#1\n@v\@l \C@sig#2\else \ifnum\o@s<-#1\n@v\@liv \C@sig#2\fi \fi}
+
+\def\W@Fl#1#2{%
+ \ifnum\a@s<-#1\n@v\@l \C@sig#2\else \ifnum\o@s<-#1\relax\fi \fi}
+
+\def\W@canFl#1#2{%
+ \ifnum\a@s<-#1\relax\else \ifnum\o@s<-#1\n@v\@liv \C@sig#2\fi \fi}
+
+\def\w@sharps{\W@Sh\z@\t@n \W@Sh\@ne\s@v@n \W@Sh\tw@\@l@v@n
+ \W@Sh\thr@@\@ight \W@Sh\f@ur\fiv@ \W@Sh\fiv@\nin@ \W@Sh\si@\si@}
+
+\def\w@cancelsharps{\W@canSh\z@\t@n \W@canSh\@ne\s@v@n \W@canSh\tw@\@l@v@n
+ \W@canSh\thr@@\@ight \W@canSh\f@ur\fiv@ \W@canSh\fiv@\nin@ \W@canSh\si@\si@}
+
+ %\def\W@Sh#1#2{%
+ % \ifnum\a@s>#1\n@v\@lii \C@sig#2\else\ifnum\o@s>#1\n@v\@liv \C@sig#2\fi \fi}
+
+\def\W@Sh#1#2{%
+ \ifnum\a@s>#1\n@v\@lii \C@sig#2\else\ifnum\o@s>#1\relax\fi \fi}
+
+\def\W@canSh#1#2{%
+ \ifnum\a@s>#1\relax\else\ifnum\o@s>#1\n@v\@liv \C@sig#2\fi \fi}
+
+\def\C@wsi{\s@l@ctclefs \p@loop \count@portee \expandafter\get@refs\the\a@c
+ \setbox\toks@box\hbox{\kern.4\Internote \@Ti \kern.4\Internote}%
+ \upd@width\sign@skip \writ@box \repeat}
+
+ %\def\C@sig#1{\n@iii#1%
+ % \ifnum\ut@ref>\z@
+ % \advance\n@iii\ut@ref \advance\n@iii\ut@ref
+ % \ifnum\ut@ref=\si@ \advance\n@iii-\s@v@n \fi
+ % \ifnum\ut@ref>\thr@@ \advance\n@iii-\s@v@n \fi
+ % \ifnum\n@iii>\@l@v@n \advance\n@iii-\s@v@n \fi
+ %\fi
+ %\advance\n@iii-\tw@ \raise\n@iii\internote
+ %\hbox\@to\tw@\internote{\hss\keychar\n@v\hss}}
+
+\def\C@sig#1{\n@iii#1% Correction by W. Icking
+ \advance\n@iii\ut@ref \advance\n@iii\ut@ref
+ \ifnum\ut@ref=\si@ \advance\n@iii-\fourt@@n%
+ \else \ifnum\ut@ref>\z@ \advance\n@iii-\s@v@n \fi\fi
+ \ifnum\n@iii<\@ne \global\advance\n@iii\s@v@n \fi
+ \ifnum\n@iii<\@ne \global\advance\n@iii\s@v@n \fi
+ \ifnum\n@iii>\@l@v@n \advance\n@iii-\s@v@n \fi
+ \ifnum\n@iii>\@l@v@n \advance\n@iii-\s@v@n \fi
+ \advance\n@iii-\tw@ \raise\n@iii\internote
+ \hbox\@to\tw@\internote{\hss\keychar\n@v\hss}}
+
+%%% meterindicators
+
+\def\s@l@ctm@t{\edef\m@t{\csname m@t\romannumeral\noinstrum@nt\endcsname}}
+
+\def\setmeter#1#2{\noinstrum@nt#1\relax % select instrument
+ \let\Writ@meters\writ@meters % only write them, when they are touched
+ \s@l@ctm@t \m@t{#2\empty\empty\empty}}
+
+\def\generalmeter#1{\let\Writ@meters\writ@meters
+ \m@loop \s@l@ctm@t \m@t{{#1}{#1}{#1}{#1}}\repeat}
+
+%%
+% Redefine \writ@meters to set the 'hard' switch for
+% \t@rmskip, indicating that this length is unscaleable
+%%
+
+% \meterskip influence the space before !first! writemeters
+\newskip\meterskip
+
+\def\writ@meters{\addspace\meterskip \meterskip\z@ \global\n@skip\z@
+ \n@loop{\writ@meteri}\repeat
+ \ifdim\n@skip>\z@ \advance\n@skip\big@spc
+ \widthtyp@\z@ \t@rmskip \fi \let\Writ@meters\empty}
+
+\def\writ@meteri{\s@l@ctm@t \p@loop \setbox\toks@box
+ \hbox{\expandafter\writ@meterp\the\m@t{}{}{}{}}\upd@width\n@skip
+ \writ@box \count@portee\repeat}
+
+\def\writ@meterp#1#2#3#4{%
+ \ifcase\noport@@\hbox{#1}\or \hbox{#2}\or \hbox{#3}\or \hbox{#4}\fi}
+
+\def\meterfrac#1#2{\setbox\toks@box\vbox{\hbox{\ \meterfont#1}%
+ \hbox{\ \meterfont #2}}\vbox\@to\@ight\internote{\offinterlineskip
+ \vss\hbox\@to\wd\toks@box{\hss\meterfont#1\hss}\vss
+ \vss\hbox\@to\wd\toks@box{\hss\meterfont#2\hss}\vss}}
+
+%%% clefs
+
+\def\s@l@ctclefs{\edef\a@c{\csname a@c\romannumeral\noinstrum@nt\endcsname}%
+ \edef\o@c{\csname o@c\romannumeral\noinstrum@nt\endcsname}}
+
+% why simple, when it can be done complicated ?
+
+\newtoks\t@c
+\def\@fourtoks#1#2#3#4#5+{#1#2#3#4}
+
+\def\setclef#1#2{\noinstrum@nt#1\relax
+ \ifnum#1<1\errmessage{Instrument number not positive}\fi
+ \s@l@ctclefs \t@c{#2000}%
+ \a@c\expandafter\expandafter\expandafter{\expandafter\@fourtoks\the\t@c+}}
+ \let\setclefs\setclef
+
+\let\bass\si@
+\let\alto\thr@@
+\let\treble\z@
+
+\def\setclefsymbol#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname bassc@s\romannumeral\n@v\endcsname{#2}%
+ \expandafter\def\csname altoc@s\romannumeral\n@v\endcsname{#2}%
+ \expandafter\def\csname treblec@s\romannumeral\n@v\endcsname{#2}%
+}%
+
+\def\setbassclefsymbol#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname bassc@s\romannumeral\n@v\endcsname{#2}%
+}%
+
+\def\setaltoclefsymbol#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname altoc@s\romannumeral\n@v\endcsname{#2}%
+}%
+
+\def\settrebleclefsymbol#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname treblec@s\romannumeral\n@v\endcsname{#2}%
+}%
+
+\def\trebleclef{\keychar71}
+\def\bassclef{\keychar73}
+\def\altoclef{\keychar75}
+
+\def\smalltrebleclef{\keychar72}
+\def\smallbassclef{\keychar74}
+\def\smallaltoclef{\keychar76}
+
+\def\trebleoct{\trebleclef\raise 9\internote\hbox\@to\z@{\smalltype\it\kern -1.8\Interligne 8\hss}}
+\def\bassoct{\bassclef\raise 2\internote\hbox\@to\z@{\smalltype\it\kern -2.3\Interligne 8\hss}}
+\def\treblelowoct{\trebleclef\raise -7\internote\hbox\@to\z@{\smalltype\it\kern -2.3\Interligne 8\hss}}
+\def\basslowoct{\bassclef\raise -6\internote\hbox\@to\z@{\smalltype\it\kern -2.5\Interligne 8\hss}}
+
+\newskip\clef@skip
+
+\def\changeclefs{\t@rmskip\writ@newclefs}
+
+\def\zchangeclefs{\t@rmskip\zwrit@newclefs}
+
+% since the characters are shifted by default(Metafont) they looked
+% a little bit strange when you mix several staffstaffsizes (flushleft)
+% I've introduced a hack(kern kernm), that they are (nearly) centered
+% (aehmm, really not the best way, because now they look strange
+% if you use music footnotes)
+
+\def\writ@clefi{\s@l@ctclefs
+ \p@loop
+ \setbox\toks@box\hbox{\expandafter\writ@clefp\the\a@c}%
+ \upd@width\clef@skip\raise\altportee\rlap{%
+ \ifdim\internote<\Internote \kern\thr@@\Internote\kernm\thr@@\internote \fi
+ \box\toks@box}\count@portee\repeat}
+
+\def\writ@clefp#1#2#3#4{%
+ \ifcase\noport@@\singl@clef#1%
+ \or \singl@clef#2\or \singl@clef#3\or \singl@clef#4\fi}
+
+\def\singl@clef#1{\n@iii#1\relax
+ \ifcase\n@iii
+ \C@Clef\@ne\trebleclef@var\or
+ \C@Clef\z@\altoclef@var\or
+ \C@Clef\@ne\altoclef@var\or
+ \C@Clef\tw@\altoclef@var\or
+ \C@Clef\thr@@\altoclef@var\or
+ \C@Clef\tw@\bassclef@var\or
+ \C@Clef\thr@@\bassclef@var\or
+ \C@Clef\f@ur\bassclef@var\or % 7 = subbass
+ \or
+ \C@Clef\z@\trebleclef@var % 9 = french violin-clef
+ \fi
+}
+
+\def\C@Clef#1#2{\n@iii#1\relax\multiply\n@iii\tw@
+ \raise\n@iii\internote\hbox{#2}}
+
+\def\bassclef@var{\expandafter
+ \ifx\csname bassc@s\romannumeral\noinstrum@nt\endcsname\z@
+ \bassclef\else \csname bassc@s\romannumeral\noinstrum@nt\endcsname \fi}
+\def\trebleclef@var{\expandafter
+ \ifx\csname treblec@s\romannumeral\noinstrum@nt\endcsname\z@
+ \trebleclef\else \csname treblec@s\romannumeral\noinstrum@nt\endcsname \fi}
+\def\altoclef@var{\expandafter
+ \ifx\csname altoc@s\romannumeral\noinstrum@nt\endcsname\z@
+ \altoclef\else \csname altoc@s\romannumeral\noinstrum@nt\endcsname \fi}
+
+\def\smallbassclef@var{\expandafter
+ \ifx\csname bassc@s\romannumeral\noinstrum@nt\endcsname\z@
+ \smallbassclef\else \csname bassc@s\romannumeral\noinstrum@nt\endcsname \fi}
+\def\smalltrebleclef@var{\expandafter
+ \ifx\csname treblec@s\romannumeral\noinstrum@nt\endcsname\z@
+ \smalltrebleclef\else \csname treblec@s\romannumeral\noinstrum@nt\endcsname \fi}
+\def\smallaltoclef@var{\expandafter
+ \ifx\csname altoc@s\romannumeral\noinstrum@nt\endcsname\z@
+ \smallaltoclef\else \csname altoc@s\romannumeral\noinstrum@nt\endcsname \fi}
+
+
+%%
+% Redefine \writ@newclefs similarly
+%
+% Note that \clef@skip does not change for the different clef
+% symbols (always 3.2\Interligne for normal sized clefs)
+% Hence there is no need to communicate clef changes to the
+% formatting program
+%%
+
+\def\writ@newclefs{\clef@skip\z@ \n@loop{\writ@newclefi}\repeat
+ \n@skip\clef@skip \widthtyp@\z@ \t@rmskip
+ \m@loop \s@l@ctclefs \o@c\a@c \repeat}
+
+% the same as \writ@newclefs, but no spacing
+
+\def\zwrit@newclefs{\clef@skip\z@
+ \setbox\writ@volta@box \hbox{\n@loop{\writ@newclefi}\repeat}%
+ \kern -\clef@skip \box\writ@volta@box
+ \kern \clef@skip
+ \clef@skip\z@ % test
+ \n@skip\clef@skip
+ \widthtyp@\z@
+ \t@rmskip
+ \m@loop \s@l@ctclefs \o@c\a@c \repeat}
+
+% Thanks to Helmut Kopka for helping me out
+\def\writ@newclefi{\s@l@ctclefs\p@loop
+ \setbox\toks@box\hbox{\expandafter\expandafter\expandafter\writ@newclefp
+ \the\expandafter\a@c\the\o@c}%
+ \upd@width\clef@skip \writ@box \count@portee\repeat}
+
+\def\writ@newclefp#1#2#3#4#5#6#7#8{%
+ \ifcase\noport@@\newsingl@clef#1#5\or \newsingl@clef#2#6\or
+ \newsingl@clef#3#7\or \newsingl@clef#4#8\fi}
+
+\def\newsingl@clef#1#2{\n@iii#1\relax \n@ii#2\relax
+ \ifnum\n@ii=\n@iii
+ \else
+ \ifcase\n@iii
+ \C@Clef\@ne\smalltrebleclef@var\or
+ \C@Clef\z@\smallaltoclef@var\or
+ \C@Clef\@ne\smallaltoclef@var\or
+ \C@Clef\tw@\smallaltoclef@var\or
+ \C@Clef\thr@@\smallaltoclef@var\or
+ \C@Clef\tw@\smallbassclef@var \or
+ \C@Clef\thr@@\smallbassclef@var\or
+ \C@Clef\f@ur\smallbassclef@var\or % 7 = subbass
+ \or
+ \C@Clef\z@\smalltrebleclef@var % 9 = french violin-clef
+ \fi
+ \fi}
+
+%%% instrumentnames
+
+%\let\Writ@names\empty
+
+\def\setname#1#2{\n@v#1\relax % select instrument
+% \let\Writ@names\writ@names
+ \expandafter\edef\csname instrument\romannumeral\n@v\endcsname{#2}}
+
+\def\writ@names{\n@loop
+ \setbox\toks@box\llap{\vbox{\hbox\@to\parindent{%
+ \hss\csname instrument\romannumeral\noinstrum@nt\endcsname\hss}}\ \ }%
+ \altportee\altitude \Comp@High \advance\y@v-\ht\toks@box
+ \advance\altportee\h@lf\y@v \writ@box \repeat}
+
+%%%
+
+% les notes proprement dites
+
+\newdimen\noteskip
+\newcount\transpose
+\newcount\normaltranspose
+\newdimen\locx@skip
+\newdimen\elemskip
+\newdimen\@l@mskip
+
+\def\nextstaff{\@ndstaff\beginstaff}
+\def\nextinstrument{\@ndstaff\begininstrument}
+
+\def\begininstrument{\advance\noinstrum@nt\@ne \s@l@ctinstr
+ \ifdim\internote<\p@seven6\Internote \set@tinynotesize \comput@sizes
+ \else
+ \ifdim\internote<.95\Internote \set@smallnotesize \comput@sizes
+ \else
+ \ifdim\internote<1.19\Internote \set@normalnotesize \comput@sizes
+ \else
+ \ifdim\internote<1.43\Internote \set@largenotesize \comput@sizes
+ \else
+ \set@Largenotesize \comput@sizes
+ \fi
+ \fi
+ \fi
+ \fi
+ \noport@@\z@ \beginstaff}
+
+\def\beginstaff{\leavevmode
+ \altportee\altitude \advance\altportee\noport@@\interportee
+ \count@portee \s@l@ctclefs \expandafter\get@refs\the\a@c
+ \setbox\n@otebox\hbox\bgroup
+ \let\rq\rq@ \let\lq\lq@ \let\ds\ds@oup \let\mp\mp@
+ \locx@skip\x@skip}
+
+\def\@ndstaff{\egroup
+ \ifdim\n@skip<\wd\n@otebox \n@skip\wd\n@otebox \fi
+ \raise\altportee\rlap{\unhbox\n@otebox}}
+
+%%% shifting
+
+\def\offs@t#1{\off{-\s@o@}#1\off\s@o@}
+\def\loffset#1{\edef\s@o@{#1\qn@width}\offs@t}
+\def\roffset#1{\edef\s@o@{-#1\qn@width}\offs@t}
+\def\roff{\roffset\@ne}
+\def\loff{\loffset\@ne}
+\def\hroff{\roffset\h@lf}
+\def\hloff{\loffset\h@lf}
+
+%%% decode collective coding
+
+% les symboles de notes ou assimiles
+
+\newcount\inh@alt
+\def\getn@i{\inh@alt\z@ \xgetn@i}
+\def\inhgetn@i{\inh@alt\@ne \xgetn@i}
+
+\def\f@tok#1#2\af@tok{#1}
+\def\s@tok#1#2\af@tok{#2}
+
+% \n@viii used as flag: \n@viii=\maxdimen -> argument is no number
+
+\def\C@Get{\n@viii\maxdimen \edef\alt@suite{\noexpand\getn@i\s@uite\relax}}
+\def\C@GET{\n@viii\maxdimen \edef\alt@suite{%
+ \ifnum\inh@alt=\z@ \noexpand\@TI{\s@uite}\fi \noexpand\getn@i\s@uite\relax}}
+
+\def\xgetn@i#1\relax{\n@viii\z@ \n@i\maxdimen % par defaut
+%% \edef\t@ruc{\f@tok #1\relax\af@tok}%
+ \edef\t@ruc{\expandafter\f@tok #1\relax\af@tok}%
+ \edef\s@uite{\s@tok #1\empty\af@tok}%
+%% pas lettre
+ \ifcat a\t@ruc \n@i\expandafter`\t@ruc\relax
+%% ramener au E (position zero en clef de sol, ut@ref=0)
+ \ifnum\n@i>96\advance\n@i-101%
+ \else\advance\n@i-\@lxxxiii % ramener au S= E + 14
+ \fi
+ \advance\n@i\ut@ref \advance\n@i\ut@ref \advance\n@i\transpose
+ \edef\ss@uite{\noexpand\n@fon{\s@uite}}%
+%% cas active character dont chiffre
+ \else
+ \let\ss@uite\empty
+ \let\alt@suite\empty
+ \ifcat 1\t@ruc
+ \if =\t@ruc \let\@TI\na \C@GET \fi
+ \if *\t@ruc \sk \C@Get \fi
+ \if .\t@ruc \let\@TI\pt \C@GET \fi
+ \if >\t@ruc \let\@TI\dsh \C@GET \fi
+ \if <\t@ruc \let\@TI\dfl \C@GET \fi
+ \if !\t@ruc \transpose\normaltranspose \C@Get \fi
+ \if '\t@ruc \advance\transpose\s@v@n \C@Get \fi
+ \if `\t@ruc \advance\transpose-\s@v@n \C@Get \fi
+ \ifnum\n@viii<\maxdimen \n@i#1\fi
+ \else
+ \if ^\t@ruc \let\@TI\sh \C@GET \fi
+ \if _\t@ruc \let\@TI\fl \C@GET \fi
+ \fi\alt@suite
+ \fi}
+
+%%% setting stems and flags
+
+\newdimen\st@bot % note stem bottom
+\newdimen\st@top % note stem top
+\newdimen\stem@skip
+
+\def\stdstemfalse{\let\stdst@m\@ne}
+
+\def\setst@m{%
+ \advance\y@i\altportee
+ \ifdim\st@bot>\y@i \global\st@bot\y@i \fi
+ \ifdim\st@top<\y@i \global\st@top\y@i \fi
+ \advance\y@i-\altportee}
+
+\def\resetst@m{%
+ \global\st@bot\maxdimen \global\st@top-\maxdimen \let\stdst@m\empty}
+\resetst@m
+
+\def\minst@bot{\ifdim\st@bot>\f@ur\internote
+ \ifx\stdst@m\empty \st@bot\f@ur\internote \fi \fi}
+
+\def\maxst@top{\ifdim\st@top<\f@ur\internote
+ \ifx\stdst@m\empty \st@top\f@ur\internote \fi \fi}
+
+\def\stem@rule{%
+ \vrule\@height\st@top\@depth-\st@bot\@width\lthick\kernm\lthick}
+
+\def\comp@stem{\advance\st@bot-\altportee \advance\st@top-\altportee}
+
+\def\C@stem{\ifdim\st@top>\st@bot
+ \comp@stem\kern\stem@skip\stem@rule
+ \kernm\stem@skip
+ \fi\resetst@m}
+
+\def\stemlength#1{\def\stemfactor{#1}}
+\def\DefaultStemlength{4.66}
+\stemlength{\DefaultStemlength}
+
+% cut stems in extrem positions for multiple voices in one staff
+
+\def\stemcut{\let\st@mcut\empty}
+\def\nostemcut{\let\st@mcut\@ne}
+\stemcut
+
+\def\Box@Flag{\setbox\ch@box\hbox{\musixfont\char\n@vii}\y@v\ht\ch@box }
+
+\def\down@flag{\Box@Flag\advance\st@bot-\y@v
+ \advance\st@bot-\stemfactor\interbeam
+ \advance\st@bot\DefaultStemlength\interbeam
+ \ifdim\st@top>\st@bot \comp@stem\minst@bot
+ \stem@rule\raise\st@bot\box\ch@box \fi\resetst@m}
+
+\def\up@flag{\Box@Flag\advance\st@top\y@v
+ \advance\st@top\stemfactor\interbeam
+ \advance\st@top-\DefaultStemlength\interbeam
+ \ifdim\st@top>\st@bot \comp@stem\maxst@top
+ \kern\qd@skip\stem@rule\advance\st@top-\y@v \raise\st@top\box\ch@box%
+ \kernm\qd@skip \fi\resetst@m}
+
+\def\cutst@l#1{%
+ \ifdim\st@bot<-#1\internote \advance\st@bot\qu@rt\interbeam \fi}
+
+\def\downst@m{\stem@skip\z@
+ \advance\st@bot-\stemfactor\interbeam
+ \advance\st@bot-\altportee
+ \ifx\st@mcut\empty
+ \ifdim\st@bot<-\thr@@\internote
+ \cutst@l\thr@@\cutst@l\f@ur\cutst@l\fiv@
+ \cutst@l\si@\cutst@l\s@v@n\cutst@l\@ight \fi \fi
+ \minst@bot\advance\st@bot\altportee
+ \C@stem}
+
+\def\cutst@u#1{%
+ \ifdim\st@top>#1\internote \advance\st@top-\qu@rt\interbeam \fi}
+
+\def\upst@m{\stem@skip\qd@skip
+ \advance\st@top\stemfactor\interbeam
+ \advance\st@top-\altportee
+ \ifx\st@mcut\empty
+ \ifdim\st@top>\@l@v@n\internote
+ \cutst@u\@l@v@n\cutst@u\tw@lv@\cutst@u\active
+ \cutst@u\fourt@@n\cutst@u\fiv@t@@n\cutst@u\sixt@@n \fi \fi
+ \maxst@top\advance\st@top\altportee
+ \C@stem}
+
+\newdimen\s@lope
+
+\def\comp@slope#1{\s@lope\b@p#1\divide\s@lope\tw@nty}
+
+\def\beamst@m{% queue de note vers une poutre
+ \getcurpos \advance\y@v-\b@x
+ \y@ii\b@p\y@v \divide\y@ii\tw@nty \advance\y@ii\b@z
+ \ifdim\y@ii>\st@top % la poutre est au-dessus
+ \stem@skip\qd@skip \comp@slope\stem@skip \advance\y@ii\s@lope
+ \ifnum\b@n>\z@ \advance\y@ii\b@n\interbeam \advance\y@ii-\interbeam \fi
+ \st@top\y@ii % a mettre a jour avec la pente ulterieurement
+ \else
+ \stem@skip\z@
+ \ifdim\y@ii<\st@bot
+ \ifnum\b@n<\z@ \advance\y@ii\b@n\interbeam \advance\y@ii\interbeam \fi
+ \st@bot\y@ii \fi \fi
+ \C@stem}
+
+%%% writing notes inclusive lines (subsidiary lines ?) (german: Hilfslinien)
+
+\newif\ifadvance\advancetrue
+
+% Modification by Werner Icking
+% ledger lines exceed the note by: y@vi := 0.35 (noteskip - notewidth)
+% and: 0.5 qn@width > y@vi > 0.2 qn@width
+\newdimen\y@vi
+\def\h@linei{%
+ \y@ii\n@v\internote
+ \y@iii\y@ii
+ \advance\y@ii\hlthick
+ \advance\y@iii-\hlthick
+ \y@vi\noteskip % noteskip
+%-\ifnum\y@vi=\z@ \y@vi\maxdimen\fi % (or maxdimen if noteskip = 0)
+ \advance\y@vi-\y@v % - notewidth
+ \y@vi0.7\y@vi % this may be eaten =: additional length
+ \y@iv\h@lf\qn@width\ifnum\y@vi>\y@iv \y@vi\y@iv\fi % not more than 0.5 qn@width
+ \y@iv0.2\qn@width \ifnum\y@vi<\y@iv \y@vi\y@iv\fi % not less than 0.2 qn@width
+ \y@iv\y@v % notewidth
+ \advance\y@iv\y@vi % + additional length =: total length
+ \kernm\h@lf\y@vi % center the ledger line
+%-\message{noteskip = \the\noteskip, length = \the\y@iv, notewidth = \the\y@v}%
+ \vrule\@height\y@ii\@depth-\y@iii\@width\y@iv
+ \kernm\y@iv\kern\h@lf\y@vi}
+
+% end Werner Icking's modification of ledger lines.
+% old behaviour can be restored with musixfll.tex (or musixfll.sty)
+
+\def\writ@note{%
+ \ifnum\n@i<\@c
+% help lines \n@i (position)
+ \ifnum\nblines>\thr@@ % no help lines for percussion instruments
+ \n@v\z@
+ \ifnum\n@i<\m@ne % waste memory, but saves time
+ \loop \advance\n@v\m@ne \ifnum\n@i<\n@v
+ \advance\n@v\m@ne \h@linei
+ \repeat
+ \else
+ \n@v\nblines \advance\n@v\m@ne \multiply\n@v\tw@
+ \ifnum\n@i>\n@v
+ \loop \advance\n@v\@ne \ifnum\n@i>\n@v
+ \advance\n@v\@ne \h@linei
+ \repeat
+ \fi
+ \fi
+ \fi
+%
+ \pl@base\setst@m\st@m
+ \ifadvance \raise\y@i\adv@box\n@sym \else \raise\y@i\hbox{\n@sym}\fi
+ \ss@uite \advancetrue
+ \fi}
+
+\def\adv@box#1{\hbox\@to\noteskip{#1\hss}\advance\locx@skip\noteskip}
+
+%%% breve, longa, maxima, arbitrary notes, non spacing
+
+\def\zmaxima{\def\w@h{\musixchar36}\y@v\tw@\wn@width \advancefalse \g@w}
+\def\zlonga{\def\w@h{\musixchar39}\y@v\wn@width \advancefalse \g@w}
+\def\zbreve{\def\w@h{\musixfont\@xxxii}\y@v\wn@width \advancefalse \g@w}
+\def\zwq{\def\w@h{\musixchar56}\y@v\wn@width \advancefalse \g@w}
+\def\zwqq{\def\w@h{\musixchar127}\y@v\wn@width \advancefalse \g@w}
+
+\def\g@w#1{\let\st@m\resetst@m
+ \getn@i#1\relax\let\n@fon\g@w \let\n@sym\w@h \writ@note}
+
+\def\maxima{\def\w@h{\musixchar36}\y@v\tw@\wn@width \g@w}
+\def\longa{\def\w@h{\musixchar39}\y@v\wn@width \g@w}
+\def\breve{\def\w@h{\musixfont\@xxxii}\y@v\wn@width \g@w}
+\def\wq{\def\w@h{\musixchar56}\y@v\wn@width \g@w}
+\def\wqq{\def\w@h{\musixchar127}\y@v\wn@width \g@w}
+
+%%% alternate longa (with up stem) by Ingo Struck
+%%% struck@student.uni-siegen.de
+
+\def\lngdnst@m{\stem@skip1.25\qd@skip
+ \advance\st@bot-\stemfactor\interbeam
+ \advance\st@bot-\altportee
+ \ifx\st@mcut\empty
+ \ifdim\st@bot<-\thr@@\internote
+ \cutst@l\thr@@\cutst@l\f@ur\cutst@l\fiv@
+ \cutst@l\si@\cutst@l\s@v@n\cutst@l\@ight \fi \fi
+ \minst@bot\advance\st@bot\altportee
+ \C@stem}
+
+\def\lngupst@m{\stem@skip1.25\qd@skip
+ \advance\st@top\stemfactor\interbeam
+ \advance\st@top-\altportee
+ \ifx\st@mcut\empty
+ \ifdim\st@top>\@l@v@n\internote
+ \cutst@u\@l@v@n\cutst@u\tw@lv@\cutst@u\active
+ \cutst@u\fourt@@n\cutst@u\fiv@t@@n\cutst@u\sixt@@n \fi \fi
+ \maxst@top\advance\st@top\altportee
+ \C@stem}
+
+\def\@longa#1{\getn@i#1\relax
+ \ifnum\n@i>\thr@@
+ \let\st@m\lngdnst@m
+ \else
+ \let\st@m\lngupst@m
+ \fi
+ \let\n@fon\@longa \let\n@sym\q@u \y@v\qn@width \writ@note}
+
+\def\l@ngasymbol{\def\q@u{\musixfont\@xxxii}}
+
+\def\longaa{\l@ngasymbol\@longa}
+
+%%% whole notes
+
+\def\C@Point#1#2{\ifodd\n@i \else#2\internote \fi\hbox{\musixchar#1}}
+
+\def\wh{\def\w@h{\musixfont\nin@}\y@v\wn@width \g@w}
+\def\whp{\def\w@h{\musixfont\nin@\roffset\qu@rt{\C@Point\z@\raise}}%
+ \y@v\wn@width \g@w}
+\def\whpp{\def\w@h{\musixfont\nin@\roffset\qu@rt{\C@Point\@ne\raise}}%
+ \y@v\wn@width \g@w}
+
+%%% whole noteheads, no advance
+
+\def\zw{\advancefalse\wh}
+\def\zwp{\advancefalse\whp}
+\def\zwpp{\advancefalse\whpp}
+\let\zwh\zw
+
+\def\lw#1{\kernm\wn@width\zw{#1}\kern\wn@width}
+\def\rw#1{\kern\wn@width\zw{#1}\kernm\wn@width}
+
+%%% common routines for noteheads with the same width as a quarter note
+
+\def\@qa#1{\getn@i#1\relax
+ \ifnum\n@i>\thr@@
+ \let\st@m\downst@m
+ \else
+ \let\st@m\upst@m
+ \fi
+ \let\n@fon\@qa \let\n@sym\q@u \y@v\qn@width \writ@note}
+
+\def\@qu{\let\st@m\upst@m \g@q}
+\def\@ql{\let\st@m\downst@m \g@q}
+\def\@zq{\let\st@m\setst@m \advancefalse\g@q}
+\def\@nq{\let\st@m\resetst@m \g@q}
+
+\def\g@q#1{\getn@i#1\relax\let\n@fon\g@q \let\n@sym\q@u
+ \y@v\qn@width \writ@note}
+
+\def\@qup{\let\st@m\upst@m \g@qp}
+\def\@qlp{\let\st@m\downst@m \g@qp}
+\def\@zqp{\let\st@m\setst@m \advancefalse\g@qp}
+\def\@nqp{\let\st@m\resetst@m \g@qp}
+
+\def\q@up{\q@u\C@Point\z@\raise}
+\def\g@qp#1{\getn@i#1\relax\let\n@fon\g@qp \let\n@sym\q@up
+ \y@v\qn@width \writ@note}
+
+\def\@qupp{\let\st@m\upst@m \g@qpp}
+\def\@qlpp{\let\st@m\downst@m \g@qpp}
+\def\@zqpp{\let\st@m\setst@m \advancefalse\g@qpp}
+\def\@nqpp{\let\st@m\resetst@m \g@qpp}
+
+\def\q@upp{\q@u\C@Point\@ne\raise}
+\def\g@qpp#1{\getn@i#1\relax\let\n@fon\g@qpp \let\n@sym\q@upp
+ \y@v\qn@width \writ@note}
+
+\def\@lqu#1{\kernm\qn@width\advancefalse\@qu{#1}\kern\qn@width}
+\def\@rqu#1{\kern\qn@width\advancefalse\@qu{#1}\kernm\qn@width}
+
+\def\@lql#1{\kernm\qn@width\advancefalse\@ql{#1}\kern\qn@width}
+\def\@rql#1{\kern\qn@width\advancefalse\@ql{#1}\kernm\qn@width}
+
+\def\@lq#1{\kernm\qn@width\@zq{#1}\kern\qn@width}
+\def\@rq#1{\kern\qn@width\@zq{#1}\kernm\qn@width}
+
+\def\@qb#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@q}
+\def\@tqb#1{\s@l@ctbeam#1\relax \C@tb\t@bbl\lthick \let\st@m\beamst@m \g@q}
+\def\@tqh#1{\s@l@ctbeam#1\relax \C@tb\t@bbu\qn@width \let\st@m\beamst@m \g@q}
+\def\@qbp#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@qp}
+\def\@qbpp#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@qpp}
+
+\def\@ca{\n@iv\@xlv \@mca}
+\def\@cca{\n@iv46 \@mca}
+\def\@ccca{\n@iv47 \@mca}
+\def\@cccca{\n@iv48 \@mca}
+\def\@ccccca{\n@iv49 \@mca}
+
+\def\@mca#1{\getn@i#1\relax \n@vii\n@iv
+ \ifnum\n@i>\thr@@
+ \let\st@m\down@flag
+ \else
+ \let\st@m\up@flag \advance\n@vii -\fiv@\relax
+ \fi
+ \let\n@fon\@mca \let\n@sym\q@u \y@v\qn@width \writ@note}
+
+\def\@cu{\n@vii\@xl \let\st@m\up@flag \g@q}
+\def\@ccu{\n@vii\@xli \let\st@m\up@flag \g@q}
+\def\@cccu{\n@vii42\let\st@m\up@flag \g@q}
+\def\@ccccu{\n@vii43\let\st@m\up@flag \g@q}
+
+\def\@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\@cup{\n@vii\@xl \let\st@m\up@flag \g@qp}
+\def\@clp{\n@vii\@xlv \let\st@m\down@flag \g@qp}
+
+\def\@cupp{\n@vii\@xl \let\st@m\up@flag \g@qpp}
+\def\@clpp{\n@vii\@xlv \let\st@m\down@flag \g@qpp}
+
+%%% half notes
+
+\def\h@symbol{\def\q@u{\musixfont\@ight}}
+
+\def\ha{\h@symbol\@qa}
+\def\hu{\h@symbol\@qu}
+\def\hup{\h@symbol\@qup}
+\def\hupp{\h@symbol\@qupp}
+
+\def\hl{\h@symbol\@ql}
+\def\hlp{\h@symbol\@qlp}
+\def\hlpp{\h@symbol\@qlpp}
+
+\def\hb{\h@symbol\@qb}
+
+\def\zh{\h@symbol\@zq}
+\def\zhp{\h@symbol\@zqp}
+\def\zhpp{\h@symbol\@zqpp}
+
+\def\lh{\h@symbol\@lq}
+\def\rh{\h@symbol\@rq}
+
+\def\zhu{\advancefalse\hu}
+\def\zhup{\advancefalse\hup}
+\def\zhupp{\advancefalse\hupp}
+
+\def\lhu{\h@symbol\@lqu}
+\def\rhu{\h@symbol\@rqu}
+
+\def\zhl{\advancefalse\hl}
+\def\zhlp{\advancefalse\hlp}
+\def\zhlpp{\advancefalse\hlpp}
+
+\def\lhl{\h@symbol\@lql}
+\def\rhl{\h@symbol\@rql}
+
+%%% quarter notes, stem up
+
+\def\q@symbol{\def\q@u{\musixfont\s@v@n}}
+
+\def\qa{\q@symbol\@qa}
+
+\def\qu{\q@symbol\@qu}
+\def\qup{\q@symbol\@qup}
+\def\qupp{\q@symbol\@qupp}
+
+%%% quarter notes, stem down
+
+\def\ql{\q@symbol\@ql}
+\def\qlp{\q@symbol\@qlp}
+\def\qlpp{\q@symbol\@qlpp}
+
+%%% quarter notes, stem up, no advance
+
+\def\zqu{\advancefalse\qu}
+\def\zqup{\advancefalse\qup}
+\def\zqupp{\advancefalse\qupp}
+
+\def\lqu{\q@symbol\@lqu}
+\def\rqu{\q@symbol\@rqu}
+
+%%% quarter notes, stem down, no advance
+
+\def\zql{\advancefalse\ql}
+\def\zqlp{\advancefalse\qlp}
+\def\zqlpp{\advancefalse\qlpp}
+
+\def\lql{\q@symbol\@lql}
+\def\rql{\q@symbol\@rql}
+
+%%% quarter noteheads, no advance
+
+\def\zq{\q@symbol\@zq}
+\def\zqp{\q@symbol\@zqp}
+\def\zqpp{\q@symbol\@zqpp}
+
+\def\lqp#1{\loff{\zqp{#1}}}%
+\def\lqpp#1{\loff{\zqpp{#1}}}%
+\def\rqp#1{\roff{\zqp{#1}}}%
+\def\rqpp#1{\roff{\zqpp{#1}}}%
+
+\def\lq@{\q@symbol\@lq}
+\def\rq@{\q@symbol\@rq}
+
+%
+% note heads without stems
+\def\nh{\h@symbol\@nq}
+\def\nq{\q@symbol\@nq}
+\def\znh{\advancefalse\nh}
+\def\znq{\advancefalse\nq}
+
+%%% 8th, 16th, 32th, 64th, (128th) notes
+
+\def\ca{\q@symbol\@ca}
+\def\cca{\q@symbol\@cca}
+\def\ccca{\q@symbol\@ccca}
+\def\cccca{\q@symbol\@cccca}
+
+\def\cu{\q@symbol\@cu}
+\def\ccu{\q@symbol\@ccu}
+\def\cccu{\q@symbol\@cccu}
+\def\ccccu{\q@symbol\@ccccu}
+
+\def\cup{\q@symbol\@cup}
+\def\cupp{\q@symbol\@cupp}
+
+\def\zcu{\advancefalse\cu}
+\def\zccu{\advancefalse\ccu}
+\def\zcccu{\advancefalse\cccu}
+\def\zccccu{\advancefalse\ccccu}
+
+\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\zcupp{\advancefalse\cupp}
+
+\def\cl{\q@symbol\@cl}
+\def\ccl{\q@symbol\@ccl}
+\def\cccl{\q@symbol\@cccl}
+\def\ccccl{\q@symbol\@ccccl}
+
+\def\clp{\q@symbol\@clp}
+\def\clpp{\q@symbol\@clpp}
+
+\def\zcl{\advancefalse\cl}
+\def\zccl{\advancefalse\ccl}
+\def\zcccl{\advancefalse\cccl}
+\def\zccccl{\advancefalse\ccccl}
+
+\def\zclp{\advancefalse\clp}
+\def\zclpp{\advancefalse\clpp}
+
+\def\lcl#1{\kernm\qn@width\zcl{#1}\kern\qn@width}
+\def\rcl#1{\kern\qn@width\zcl{#1}\kernm\qn@width}
+
+%%% beam notes
+
+\def\qb{\q@symbol\@qb}
+\def\qbp{\q@symbol\@qbp}
+\def\qbpp{\q@symbol\@qbpp}
+
+\def\zqb{\advancefalse\qb}
+\def\zqbp{\advancefalse\qbp}
+\def\zqbpp{\advancefalse\qbpp}
+
+\def\tqh{\q@symbol\@tqh}
+\def\tqb{\q@symbol\@tqb}
+\def\ztqh{\advancefalse\q@symbol\@tqh}
+\def\ztqb{\advancefalse\q@symbol\@tqb}
+
+%%% grace notes
+
+\def\grcu{\q@symbol\@grcu}
+\def\grcl{\q@symbol\@grcl}
+
+\def\@grcu{\n@vii\tw@lv@ \let\st@m\up@flag \g@q}
+\def\@grcl{\n@vii\active \let\st@m\down@flag \g@q}
+
+%%% starting beams
+
+% \ibu{0<=numero<10}{altitude~note}{pente de -9 a +9}
+% \ibl{0<=numero<10}{altitude~note}{pente de -9 a +9}
+
+% \b@p slope (-9) - (9)
+% \b@n number of pending beamlines (-4) - (4)
+
+\def\test@num{%
+ \ifnum\n@i<\z@ \n@i\@c \fi
+ \ifnum\n@i<\maxinstruments \else
+ \n@i\z@ \errmessage{Wrong slur or beam number!}\fi
+ \advance\n@i\@ne}
+
+\def\s@l@ctbeam#1\relax{%
+ \n@i#1\relax\test@num
+ \edef\b@x{\csname b@x\romannumeral\n@i\endcsname}%
+ \edef\b@z{\csname b@z\romannumeral\n@i\endcsname}%
+ \edef\b@n{\csname b@n\romannumeral\n@i\endcsname}%
+ \edef\b@p{\csname b@p\romannumeral\n@i\endcsname}}
+
+\def\s@l@ctc{\edef\c@x{\csname c@x\romannumeral\n@i\endcsname}%
+ \edef\c@z{\csname c@z\romannumeral\n@i\endcsname}}
+
+\def\s@l@ctd{\edef\d@x{\csname d@x\romannumeral\n@i\endcsname}%
+ \edef\d@z{\csname d@z\romannumeral\n@i\endcsname}\s@l@ctc}
+
+\def\s@l@cte{\edef\e@x{\csname e@x\romannumeral\n@i\endcsname}%
+ \edef\e@z{\csname e@z\romannumeral\n@i\endcsname}\s@l@ctd}
+
+\def\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\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\i@bu#1#2{\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
+ \inhgetn@i#1\relax \n@v#2 \C@ib-}
+
+\def\C@ib#1{\max@n@v\nin@\min@n@v{-\nin@}\global\b@p\n@v % clip slope number
+ \getcurpos \global\b@x\y@v \b@z#14.333\interbeam \advance\b@z\altportee
+ \pl@base \global\advance\b@z\y@i}
+
+\def\C@ba#1#2{\global\advance#1#2\interbeam}
+
+\def\i@bbu#1#2{\ifnum\b@n=\z@ \i@bu{#1}{#2}\C@ba\b@z\@ne \fi\n@bbu}
+\def\i@bbl#1#2{\ifnum\b@n=\z@ \i@bl{#1}{#2}\C@ba\b@z\m@ne \fi\n@bbl}
+
+\def\i@bbbu#1#2{\ifnum\b@n=\z@
+ \i@bbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne \fi\n@bbbu}
+\def\i@bbbl#1#2{\ifnum\b@n=\z@
+ \i@bbl{#1}{#2}\C@ba\b@z\m@ne \C@ba\c@z\m@ne \fi\n@bbbl}
+
+\def\i@bbbbu#1#2{\ifnum\b@n=\z@
+ \i@bbbu{#1}{#2}\C@ba\b@z\@ne \C@ba\c@z\@ne \C@ba\d@z\@ne \fi \n@bbbbu}
+\def\i@bbbbl#1#2{\ifnum\b@n=\z@
+ \i@bbbl{#1}{#2}\C@ba\b@z\m@ne \C@ba\c@z\m@ne \C@ba\d@z\m@ne \fi\n@bbbbl}
+
+%%% changing beams
+
+\def\Dec@b#1#2{\ifnum\b@n=#1#2\fi\ifnum\b@n=-#1#2\fi}
+
+%!\def\nbbu#1{\s@l@ctbeam#1\relax \s@l@ctc \ifnum\b@n>-\tw@ \ifnum\b@n<\tw@ \n@bbu \fi \fi }
+%!\def\nbbl#1{\s@l@ctbeam#1\relax \s@l@ctc \ifnum\b@n>-\tw@ \ifnum\b@n<\tw@ \n@bbl \fi \fi }
+
+\def\nbbu#1{\s@l@ctbeam#1\relax \s@l@ctc \n@bbu}
+\def\nbbl#1{\s@l@ctbeam#1\relax \s@l@ctc \n@bbl}
+
+\def\nbbbu#1{\s@l@ctbeam#1\relax \s@l@ctd \Dec@b\@ne\n@bbu \Dec@b\tw@\n@bbbu}
+\def\nbbbl#1{\s@l@ctbeam#1\relax \s@l@ctd \Dec@b\@ne\n@bbl \Dec@b\tw@\n@bbbl}
+
+\def\nbbbbu#1{\s@l@ctbeam#1\relax \s@l@cte
+ \Dec@b\@ne\n@bbu \Dec@b\tw@\n@bbbu \Dec@b\thr@@\n@bbbbu}
+\def\nbbbbl#1{\s@l@ctbeam#1\relax \s@l@cte
+ \Dec@b\@ne\n@bbl \Dec@b\tw@\n@bbbl \Dec@b\thr@@\n@bbbbl}
+
+\def\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\C@nb#1#2#3#4{%
+ \global#1\b@z
+ \ifnum\b@n<\z@ \global\advance\b@n\m@ne \global\advance#1-#3\interbeam \fi
+ \ifnum\b@n>\z@ \global\advance\b@n\@ne \C@ba#1#3\fi
+ {\advance\locx@skip#4\getcurpos \global#2\y@v
+ \advance\y@v-\b@x \comp@slope\y@v \global\advance#1\s@lope}}
+
+%%% beam termination
+
+\def\b@adjust{\ifdim\y@ii>\tw@\y@ \advance\y@\y@ \advance\n@vi\@ne \fi}
+
+\def\@beam{% \y@ii : longueur, \b@p : pente, \y@i : altitude
+ \ifnum\b@p=\z@
+% slope zero
+ \y@iii\y@i\y@iv\y@i
+ \advance\y@iii-\b@amthick \advance\y@iv\b@amthick
+ \vrule\@height\y@iv\@depth-\y@iii\@width\y@ii
+ \else\n@vi\z@
+% slope offset
+ \ifnum\b@p>\z@ \n@vi\b@p \multiply\n@vi\si@ \advance\n@vi-\si@ \fi
+ \ifnum\b@p<\z@ \n@vi-\b@p \multiply\n@vi\si@ \advance\n@vi58\fi
+% find longest possible character to avoid patchwork
+ \y@\tw@\p@
+ \b@adjust \b@adjust \b@adjust \b@adjust \b@adjust
+ \advance\n@vi\@cxxviii
+ \chardef\b@alk\n@vi\musixfont
+%
+% \curwidth=0pt \curheight=\y@i \curxpos=\completewidth
+% \loop\ifdim\curwidth<\completewidth
+% \advance\curxpos by -\beamwidth
+% \ifdim\curxpos<0pt
+% \comp@slope\curxpos
+% \advance\curheight by \s@lope \kern\curxpos \fi
+% \raise\curheight\hbox{\b@alk}%
+% \advance\curwidth by \beamwidth
+% \comp@slope\beamwidth
+% \advance\curheight by \s@lope
+% \repeat \fi
+%
+ \y@iv\z@ \y@iii\y@i \y@v\y@ii
+ \loop\ifdim\y@iv<\y@ii
+ \advance\y@v-\y@
+ \ifdim\y@v<\z@ \comp@slope\y@v \advance\y@iii\s@lope \kern\y@v \fi
+ \raise\y@iii\hbox{\b@alk}%
+ \advance\y@iv\y@ \comp@slope\y@ \advance\y@iii\s@lope
+ \repeat \fi}
+
+\def\s@l@ctcde{\s@l@ctc \s@l@ctd \s@l@cte }
+
+\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\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\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
+ \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@}
+
+\def\t@bbu{\n@v\tw@ \C@b\t@bbbu\n@bbu\y@i\c@z \beam@pos\c@x \t@xbu}
+\def\t@bbl{\n@v\tw@ \C@b\t@bbbl\n@bbl\y@i\c@z \beam@pos\c@x \t@xbl}
+
+\def\t@bbbu{\n@v\thr@@ \C@b\t@bbbbu\n@bbbu\y@i\d@z \beam@pos\d@x \t@xbu}
+\def\t@bbbl{\n@v\thr@@ \C@b\t@bbbbl\n@bbbl\y@i\d@z \beam@pos\d@x \t@xbl}
+
+\def\t@bbbbu{\n@v\f@ur \C@b\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\C@b#1#2{%
+ \n@ii\b@n \ifnum\n@ii<\z@ \n@ii-\n@ii \fi
+ \ifnum\n@ii>\n@v #1\fi
+ \loop
+ \advance\n@v\m@ne
+ \ifnum\n@ii=\n@v {\advance\locx@skip-\qn@width#2}\fi
+ \ifnum\n@v>\@ne \repeat}
+
+\def\t@xbu{\C@txb\qn@width\interbeam\b@amthick\qd@skip>}
+\def\t@xbl{\C@txb\lthick\b@amthick\interbeam\hlthick<}
+
+\def\C@txb#1#2#3#4#5{\advance\y@i-\altportee
+ \advance\y@ii#1\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
+ \ifnum\b@n<\z@ \global\advance\b@n\@ne \fi
+ \ifnum\b@n>\z@ \global\advance\b@n\m@ne \fi}
+
+%%% semiautomatic beams
+
+% adjustable beam slopes
+% #1: beam number
+% #2: starting pitch
+% #3: ending pitch,
+% #4: extension (number of \noteskip's)
+
+\def\Ibu#1{\s@l@ctbeam#1\relax\I@bu\i@bu}
+\def\Ibl#1{\s@l@ctbeam#1\relax\I@bl\i@bl}
+\def\Ibbu#1{\s@l@ctbeam#1\relax \s@l@ctc \I@bu\i@bbu}
+\def\Ibbl#1{\s@l@ctbeam#1\relax \s@l@ctc \I@bl\i@bbl}
+\def\Ibbbu#1{\s@l@ctbeam#1\relax \s@l@ctd \I@bu\i@bbbu}
+\def\Ibbbl#1{\s@l@ctbeam#1\relax \s@l@ctd \I@bl\i@bbbl}
+\def\Ibbbbu#1{\s@l@ctbeam#1\relax \s@l@cte \I@bu\i@bbbbu}
+\def\Ibbbbl#1{\s@l@ctbeam#1\relax \s@l@cte \I@bl\i@bbbbl}
+
+% compute altitude difference of tried beam in \y@iv
+% and compare with notes altitude difference
+
+\def\@@chk{\y@iv.05\y@v \multiply\y@iv\n@viii}
+
+\def\I@buuchk{\@@chk
+ \ifdim\y@iv>\n@ii\internote \advance\n@viii\m@ne \I@buuchk \fi
+ \ifnum\n@viii>\nin@ \advance\n@i\@ne \advance\n@ii\m@ne \I@buuchk \fi}
+
+\def\I@bldchk{\@@chk
+ \ifdim\y@iv<\n@ii\internote \advance\n@viii\@ne \I@bldchk \fi
+ \ifnum\n@viii<-\nin@ \advance\n@i\m@ne \advance\n@ii\@ne \I@bldchk \fi}
+
+\def\I@budchk{\@@chk
+ \ifdim\y@iv<\n@ii\internote \advance\n@viii\@ne \I@budchk \fi}
+
+\def\I@bluchk{\@@chk
+ \ifdim\y@iv>\n@ii\internote \advance\n@viii\m@ne \I@bluchk \fi}
+
+\def\I@bu{\let\@Ti\I@buuchk \let\@Tii\I@budchk \C@Ib}
+\def\I@bl{\let\@Ti\I@bluchk \let\@Tii\I@bldchk \C@Ib}
+
+\def\C@Ib#1#2#3#4{{\n@v#4\relax \min@n@v\@ne
+ \inhgetn@i#3\relax\n@ii\n@i
+ \inhgetn@i#2\relax\advance\n@ii-\n@i
+ \y@v\noteskip \multiply\y@v\n@v
+ \ifnum\n@ii=\z@ #1{#2}0%
+ \else
+ \ifnum\n@ii>\z@ \n@viii\t@n \@Ti\else\n@viii-\t@n \@Tii \fi
+ \edef\I@boper{\noexpand#1{\the\n@i}{\the\n@viii}\relax}\I@boper
+ \fi}}
+
+% sets of double notes with computed slopes
+
+\def\B@h{\let\B@ii\tqh}
+\def\B@b{\let\B@ii\tqb}
+
+\def\Dqbu{\let\B@i\Ibu \B@h\C@Dq}
+\def\Dqbl{\let\B@i\Ibl \B@b\C@Dq}
+\def\Dqbbu{\let\B@i\Ibbu \B@h\C@Dq}
+\def\Dqbbl{\let\B@i\Ibbl \B@b\C@Dq}
+
+\def\C@Dq#1#2{\B@i0{#1}{#2}1\qb0{#1}\B@ii0{#2}}
+
+% sets of triple notes with computed slopes
+
+\def\Tqbu{\let\B@i\Ibu \B@h\C@Tq}
+\def\Tqbl{\let\B@i\Ibl \B@b\C@Tq}
+\def\Tqbbu{\let\B@i\Ibbu \B@h\C@Tq}
+\def\Tqbbl{\let\B@i\Ibbl \B@b\C@Tq}
+
+\def\C@Tq#1#2#3{\B@i0{#1}{#3}2\qb0{#1#2}\B@ii0{#3}}
+
+% sets of quadruple notes with computed slopes
+
+\def\Qqbu{\let\B@i\Ibu \B@h\C@Qq}
+\def\Qqbl{\let\B@i\Ibl \B@b\C@Qq}
+\def\Qqbbu{\let\B@i\Ibbu \B@h\C@Qq}
+\def\Qqbbl{\let\B@i\Ibbl \B@b\C@Qq}
+
+\def\C@Qq#1#2#3#4{\B@i0{#1}{#4}3\qb0{#1#2#3}\B@ii0{#4}}
+
+%%% duration points
+
+\def\pt{\g@pt\@ne\z@}
+\def\ppt{\g@pt\@ne\@ne}
+\def\pppt{\g@pt\@ne\tw@}
+
+\def\lpt{\g@pt\m@ne\z@}
+\def\lppt{\g@pt\m@ne\@ne}
+\def\lpppt{\g@pt\m@ne\tw@}
+
+\def\g@pt#1#2#3{\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}
+
+%%% rests
+
+\def\wholeshift#1{\roffset{\p@ne25}{#1}}
+
+\def\centerbar#1{\y@ii\lin@pos \advance\y@ii-\lastbarpos \advance\y@ii\cut@v
+ \kern-\h@lf\y@ii\lrlap{#1}\kern\h@lf\y@ii}%
+
+\def\centerPAUSe{\centerbar\PAUSe}
+\def\centerPAuse{\centerbar\PAuse}
+%\def\centerpause{\let\adv@box\hbox \centerbar\pause}
+%\def\centerhpause{\let\adv@box\hbox \centerbar\hpause}
+\def\centerpause{\centerbar\pause}
+\def\centerhpause{\centerbar\hpause}
+
+\def\C@ps#1#2#3{\n@viii#3\multiply\n@viii\tw@
+ \advance\n@viii#2\raise\n@viii\internote \hbox{\musixchar#1}}
+\def\C@pspt#1#2#3{\n@viii#3\multiply\n@viii\tw@
+ \advance\n@viii#2\raise\n@viii\internote \hbox{\musixchar#1\relax
+ \ifnum #1=\t@n\relax \raise 0.7\internote\hbox{\kern 0.2\qn@width\musixchar0}%
+ \else \raise -0.7\internote\hbox{\kern 0.2\qn@width\musixchar0}%
+ \fi}%
+ }
+
+\def\PAUSe{\adv@box{\musixchar59}}
+\def\PAuse{\adv@box{\musixchar58}}
+
+\def\pause{\adv@box{\raise\si@\internote\hbox{\musixchar61}}}
+\def\pausep{\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}}}
+\let\hp\hpause
+\def\hpausep{\wholeshift{\pt5}\hpause}
+\def\lifthpause{\C@ps\t@n\f@ur}
+\def\lifthpausep{\C@pspt\t@n\f@ur}
+
+\newdimen\lift@rest
+\def\adv@restbox#1{\hbox{\lift@rest 5\internote
+ \advance\lift@rest -2.5\fontdimen\fiv@\musixfont
+ \raise\lift@rest\hbox\@to\noteskip{#1\hss}}\advance\locx@skip\noteskip}
+
+\def\qp{\adv@restbox{\musixchar62}}
+\let\soupir\qp
+
+\def\ds@oup{\adv@restbox{\musixchar63}}
+\def\qs{\adv@restbox{\musixchar64}}
+\def\hs{\adv@restbox{\musixchar65}}
+\def\qqs{\adv@restbox{\musixchar66}}
+
+%%% accidentals
+
+\newskip\accshift
+
+\def\bigaccid{\let\small@test\iftrue}
+\def\smallaccid{\let\small@test\iffalse}
+\def\varaccid{\def\small@test{\ifdim\noteskip>1\p@seven\qn@width}}
+
+\varaccid % accidents de taille variable
+
+\def\na#1{\small@test\bigna{#1}\else\smallna{#1}\fi}
+\def\fl#1{\small@test\bigfl{#1}\else\smallfl{#1}\fi}
+\def\sh#1{\small@test\bigsh{#1}\else\smallsh{#1}\fi}
+\def\dfl#1{\small@test\bigdfl{#1}\else\smalldfl{#1}\fi}
+\def\dsh#1{\small@test\bigdsh{#1}\else\smalldsh{#1}\fi}
+
+% n@vi char pos of cautionpar (normal=5, doubleflat=6)
+% n@v offset to char pos (flat=0, dflat=1, sharp=2, dsharp=3, natural=4)
+% n@vi offset to char pos (big=0, small=60)
+% n@vii =maxdimen -> cautionacctrue
+
+\def\writ@ba{\pl@base\raise\y@i\llap{\musixchar\n@v\kern\accshift}}
+\def\set@ba{\let\@Ti\writ@ba \n@vi\z@}
+
+\def\bigna{\set@ba \let\@Tii\@Na \n@v\f@ur \C@acc}
+\def\bigfl{\set@ba \let\@Tii\@Fl \n@v\z@ \C@acc}
+\def\bigsh{\set@ba \let\@Tii\@Sh \n@v\tw@ \C@acc}
+\def\bigdfl{\set@ba \let\@Tii\@dFl \n@v\@ne \C@acc}
+\def\bigdsh{\set@ba \let\@Tii\@dSh \n@v\thr@@ \C@acc}
+
+\def\@sa{\ifnum\n@vii=\maxdimen \C@ChaR \musixchar\n@v \kern.3\qn@width
+ \else \musixchar\n@v \fi \n@vii\z@}
+\def\writ@sa{\pl@base\raise\y@i\llap{\@sa\kern\accshift}}
+\def\set@sa{\let\@Ti\writ@sa \n@iv\fiv@ \n@vi\@xl }
+
+\def\smallna{\set@sa \let\@Tii\@Na \n@v\f@ur \C@acc}
+\def\smallfl{\set@sa \let\@Tii\@Fl \n@v\z@ \C@acc}
+\def\smallsh{\set@sa \let\@Tii\@Sh \n@v\tw@ \C@acc}
+\def\smalldfl{\set@sa \n@iv\si@ \let\@Tii\@dFl \n@v\@ne \C@acc}
+\def\smalldsh{\set@sa \let\@Tii\@dSh \n@v\thr@@ \C@acc}
+
+\def\cna{\n@vii\maxdimen \smallna}
+\def\cfl{\n@vii\maxdimen \smallfl}
+\def\csh{\n@vii\maxdimen \smallsh}
+\def\cdfl{\n@vii\maxdimen \smalldfl}
+\def\cdsh{\n@vii\maxdimen \smalldsh}
+
+\def\writ@ua{\advance\n@i\thr@@ \zchar\n@i{\kern\qu@rt\qn@width\@sa}}
+\def\set@upper{\let\@Ti\writ@ua \n@iv\fiv@ \n@vi\@xl }
+
+\def\upperna{\set@upper \let\@Tii\@Na \n@v\f@ur \C@acc}
+\def\upperfl{\set@upper \let\@Tii\@Fl \n@v\z@ \C@acc}
+\def\uppersh{\set@upper \let\@Tii\@Sh \n@v\tw@ \C@acc}
+
+\def\@Na{\ifcase\n@ii \n@v\tw@ \or \n@v\f@ur \or \n@v\z@ \fi}
+\def\@Fl{\ifcase\n@ii \n@v\f@ur \or \n@v\z@ \or \n@v\@ne \fi}
+\def\@Sh{\ifcase\n@ii \n@v\thr@@ \or \n@v\tw@ \or \n@v\f@ur \fi}
+\def\@dFl{\ifcase\n@ii \n@v\z@ \or \n@v\@ne \or
+ \message{\@nod flatten \noexpand\dfl \t@ruc}\let\@Ti\empty \fi}
+\def\@dSh{\ifcase\n@ii
+ \message{\@nod sharpen \noexpand\dsh \t@ruc}\let\@Ti\empty
+ \or \n@v\thr@@ \or \n@v\tw@ \fi}
+
+\def\C@acc#1{\inhgetn@i#1\relax \relax
+ \ifx\rel@sw\@ne
+ \s@l@ctsigns \n@iii\n@i
+ \advance\n@iii-\ut@ref \advance\n@iii-\ut@ref
+ \loop\ifnum\n@iii>\si@ \advance\n@iii-\s@v@n \repeat
+ \loop\ifnum\n@iii<\z@ \advance\n@iii\s@v@n \repeat
+ \ifcase\n@iii
+ \n@ii\si@ % mi
+ \or\n@ii\@ne % fa
+ \or\n@ii\thr@@ % sol
+ \or\n@ii\fiv@ % la
+ \or\n@ii\s@v@n % si
+ \or\n@ii\tw@ % do
+ \or\n@ii\f@ur % re
+ \fi
+% \n@ii positive signature limit, \n@ii-8 negative signature limit
+ \advance\n@ii-\a@s \advance\n@ii\si@ \divide\n@ii\s@v@n
+ \@Tii
+ \fi \advance\n@v\@l \advance\n@v\n@vi \@Ti}
+
+\def\@nod{Can't double }
+
+\def\relativeaccid{\let\rel@sw\@ne }
+\def\absoluteaccid{\let\rel@sw\empty }
+\absoluteaccid
+
+\def\lna#1{\loffset\smallvalue{\na{#1}}}
+\def\lfl#1{\loffset\smallvalue{\fl{#1}}}
+\def\lsh#1{\loffset\smallvalue{\sh{#1}}}
+\def\ldfl#1{\loffset\smallvalue{\dfl{#1}}}
+\def\ldsh#1{\loffset\smallvalue{\dsh{#1}}}
+
+%%% special metersigns
+
+\def\allabreve{\raise4\internote\hbox{\keychar82}} %-> 2/2
+\def\reverseallabreve{\raise4\internote\hbox{\keychar123}}
+\def\meterC{\raise4\internote\hbox{\musickeyfont\@lxxxiii}} %-> 4/4
+\def\reverseC{\raise4\internote\hbox{\keychar84}} %-> 4/2
+\def\meterplus{{\keychar57}}
+
+%%% arpeggio
+
+\def\arpeggio#1#2{\zcharnote{#1}{%
+ \uplap{\leaders\hbox{\musixchar70}\vskip#2\Interligne}}}
+\def\larpeggio#1#2{\loffset\smallvalue{\arpeggio{#1}{#2}}}
+
+%%% ornaments, special signs
+
+\def\@Char#1{\zcharnote{#1}\C@ChaR}
+
+\def\backturn{\n@iv67\@Char}
+\def\turn{\n@iv68\@Char}
+\def\duevolte{{\keychar78}}
+\def\caesura{\llap{\musixchar79\kern\h@lf\noteskip}}
+\def\coda{\n@iv85\C@coda}
+\def\Coda{\n@iv105\C@coda}
+\def\C@coda#1{\llap{\@Char{#1}\kern\afterruleskip}}
+\def\segno{\n@iv86\@Char}
+\def\Segno{{\keychar110}}
+\def\shake{\n@iv87\@Char}
+\def\Shake{\n@iv88\@Char}
+\def\Shakel{\n@iv106\@Char}
+\def\Shakenw{\n@iv107\@Char}
+\def\Shakesw{\n@iv108\@Char}
+\def\Shakene{\n@iv109\@Char}
+\def\mordent{\n@iv89\@Char}
+\def\Mordent{\n@iv119\@Char}
+\def\doublethumb{\n@iv121\@Char}
+
+%%% accents
+
+\def\upbow{{\musixfont\@xxiii}}
+\def\downbow{{\musixchar22}}
+
+\def\flageolett{\n@iv120\uacc@Char}
+\def\usfz{\n@iv\tw@nty \uacc@Char}
+\def\lsfz{\n@iv21\lacc@Char}
+\def\dsfz{\lsfz}
+\def\upz{\n@iv\@xxiv \uacc@Char}
+\def\lpz{\n@iv\@xxv \lacc@Char}
+\def\dpz{\lpz}
+\def\ust{\n@iv\@xxvi \uacc@Char}
+\def\lst{\n@iv\@xxvii \lacc@Char}
+\def\dst{\lst}
+\def\uppz{\n@iv28\uacc@Char}
+\def\lppz{\n@iv\@xxix \lacc@Char}
+\def\dppz{\lppz}
+\def\usf{\n@iv30\uacc@Char}
+\def\lsf{\n@iv31\lacc@Char}
+\def\dsf{\lsf}
+\def\upzst{\n@iv18\uacc@Char}
+\def\lpzst{\n@iv19\lacc@Char}
+\def\dpzst{\lpzst}
+
+\def\uacc@Char#1{\inhgetn@i#1\relax \relax
+ \ifnum\n@i<\@ight \ifodd\n@i \else\advance\n@i\@ne \fi \fi
+ \zchar\n@i\C@ChaR}
+
+\def\lacc@Char#1{\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}
+
+\def\C@ChaR{\musixfont\char\n@iv}
+
+ %%% accents on beams (correction proposed by Klaus Bechert)
+
+\def\acc@ubalk{\acc@balk>\@ne}
+\def\acc@lbalk{\acc@balk<\m@ne}
+\def\acc@balk#1#2#3{\s@l@ctbeam#3\relax \getcurpos \advance\y@v\txt@ff
+ \advance\y@v-\b@x \y@ii\b@p\y@v \divide\y@ii\tw@nty \advance\y@ii\b@z
+ \ifnum\b@n#1#2\relax \advance\y@ii\b@n\interbeam
+ \advance\y@ii-#2\interbeam \fi
+ \advance\y@ii-\altportee \raise\y@ii\rlap\balk@accent}
+\let\balk@accent\C@ChaR
+
+%\def\bflageolett{\n@iv120\acc@ubalk}
+\def\busfz{\n@iv\tw@nty \acc@ubalk}
+\def\blsfz{\n@iv21\acc@lbalk}
+%\def\bdownbow{\n@iv22\acc@ubalk}
+%\def\bupbow{\n@iv\@xxiii \acc@lbalk}
+\def\bupz{\n@iv\@xxiv \acc@ubalk}
+\def\blpz{\n@iv\@xxv \acc@lbalk}
+\def\bust{\n@iv\@xxvi \acc@ubalk}
+\def\blst{\n@iv\@xxvii \acc@lbalk}
+\def\buppz{\n@iv28\acc@ubalk}
+\def\blppz{\n@iv\@xxix \acc@lbalk}
+\def\busf{\n@iv30\acc@ubalk}
+\def\blsf{\n@iv31\acc@lbalk}
+%\def\bupzst{\n@iv18\acc@ubalk}
+%\def\blpzst{\n@iv19\acc@lbalk}
+
+% The next macros puts triplets (and others def'd with \txt) on beams
+
+\def\txt{\eightit3}
+
+\def\butext#1{\txt@ff\qn@width
+ \def\balk@accent{\uplap{\lrlap{\kern\tw@\txt@ff\txt}\kern\internote}}%
+ \acc@ubalk{#1}\txt@ff\h@lf\qn@width \let\balk@accent\C@ChaR}
+
+\def\bltext#1{\txt@ff\z@
+ \def\balk@accent{\vbox\@to\z@{\kern\internote\lrlap\txt\vss}}%
+ \acc@lbalk{#1}\txt@ff\h@lf\qn@width \let\balk@accent\C@ChaR}
+
+%%% end of accents on beams (correction proposed by Klaus Bechert)
+
+%%% crescendo, decrescendo
+
+% These macros puts variable size (de)crescendo marks.
+% \(de)crescendo{#1} #1=length (any TeX dimension, max 192pt(\simeq 68mm))
+
+\def\C@cresc#1{\y@iv#1\n@v\y@iv
+ \sp@pt\@ne \advance\n@v\thr@@ % sp->pt round up
+ \divide\n@v\si@ % the next is 6pt(notehead) wider
+ \max@n@v\@xxxii
+ \min@n@v\@ne % clip to extremities
+ \advance\n@v\n@ii % first character position (-1)
+ \mxsps\char\n@v}
+
+\def\crescendo{\n@ii\@lxxxiii \C@cresc}
+\def\decrescendo{\n@ii\@cxv \C@cresc}
+
+\newskip\@icresc
+\def\icresc{\getcurpos\global\@icresc\y@v }
+\def\tcresc{\n@ii\@lxxxiii \C@cre}
+\def\tdecresc{\n@ii\@cxv \C@cre}
+\def\C@cre{\getcurpos\advance\y@v-\@icresc \kernm\y@v\C@cresc\y@v\kern\y@v}
+
+%%% pedal signs
+
+\def\raiseped{-5}
+
+\def\sPed{\musixchar34}
+\def\sPED{\zchar\raiseped\sPed}
+\def\Ped{\musixchar35}
+\def\PED{\zchar\raiseped\Ped}
+\def\Dep{\musixchar33}
+\def\DEP{\zchar\raiseped\Dep}
+\def\sDep{\musixchar104}
+\def\sDEP{\zchar\raiseped\sDep}
+
+%%% fermata
+
+\def\fermataup{\n@iv80\@Char}
+\def\fermatadown{\n@iv81\@Char}
+% center on whole note
+\def\Fermataup#1{\wholeshift{\fermataup{#1}}}
+\def\Fermatadown#1{\wholeshift{\fermatadown{#1}}}
+
+%%% trills
+
+\def\trilleX{\let\T@i\empty \C@trille}
+\let\trille\trilleX
+\def\TrilleX{\def\T@i{\it tr }\C@trille}
+\let\Trille\TrilleX
+\def\C@trille#1#2{\zcharnote{#1}{\y@v#2\noteskip \trill@}}
+
+\let\maxtrilles\si@
+
+\newskip\@itrillei
+\newskip\@itrilleii
+\newskip\@itrilleiii
+\newskip\@itrilleiv
+\newskip\@itrillev
+\newskip\@itrillevi
+
+ %\def\s@l@cttrille#1\relax{%
+ % \n@i#1\relax \ifnum\n@i<\z@ \n@i\@c \fi
+ % \ifnum\n@i<\maxtrilles \else
+ % \n@i\z@ \errmessage{Wrong trill number!}\fi
+ % \advance\n@i\@ne
+ % \edef\@itrille{\csname @itrille\roman@n@i}% dimen (altportee)
+ % }% select trill
+
+
+\def\itrille{\itrill@old{0}}
+\def\ttrille{\ttrill@old{0}}
+\def\tTrille{\tTrill@old{0}}
+
+\def\itrill@old#1{\s@l@cttrill#1\relax
+ \ifdim\tr@x < \maxdimen\errmessage{\@mis \noexpand\Ttrille \number #1}\fi
+ \getcurpos\global\tr@y\y@v}
+\def\ttrill@old#1{\s@l@cttrill#1\relax
+ \message{\noexpand\tr@x=\the\tr@x, No. #1}%
+ \ifdim\tr@x < \maxdimen\else\errmessage{\@mis \noexpand\Itrille \number #1}\fi
+ \let\T@i\empty \C@tri}
+\def\tTrill@old#1{\s@l@cttrill#1\relax
+ \message{\noexpand\tr@x=\the\tr@x, No. #1}%
+ \ifdim\tr@x < \maxdimen\else\errmessage{\@mis \noexpand\Itrille \number #1}\fi
+ \def\T@i{\it tr }\C@tri}
+
+\def\C@tri#1{\getcurpos\advance\y@v-\tr@y \kernm\y@v
+ \zcharnote{#1}\trill@\kern\y@v\let\T@i\empty\let\@itrille\undefined}
+\def\trill@{\hbox\@to\y@v{\T@i\leaders\hbox{\musixchar69}\hfill}}
+
+%%%%%%
+
+\let\maxtrills\si@
+
+\newskip\tr@xi \tr@xi\maxdimen\relax % starting horizontal pos
+\newskip\tr@xii \tr@xii\maxdimen\relax % starting horizontal pos
+\newskip\tr@xiii \tr@xiii\maxdimen\relax % starting horizontal pos
+\newskip\tr@xiv \tr@xiv\maxdimen\relax % starting horizontal pos
+\newskip\tr@xv \tr@xv\maxdimen\relax % starting horizontal pos
+\newskip\tr@xvi \tr@xvi\maxdimen\relax % starting horizontal pos
+
+\newtoks\tr@swi % heading of trill
+\newtoks\tr@swii % heading of trill
+\newtoks\tr@swiii % heading of trill
+\newtoks\tr@swiv % heading of trill
+\newtoks\tr@swv % heading of trill
+\newtoks\tr@swvi % heading of trill
+
+\newskip\tr@yi % height of trill
+\newskip\tr@yii % height of trill
+\newskip\tr@yiii % height of trill
+\newskip\tr@yiv % height of trill
+\newskip\tr@yv % height of trill
+\newskip\tr@yvi % height of trill
+\newcount\tr@number
+
+\def\tr@loop{\tr@number\z@ \loop\ifnum\tr@number<\maxtrills
+ \s@l@cttrill\tr@number\relax
+ \advance\tr@number\@ne }
+
+\def\s@l@cttrill#1\relax{%
+ \n@i#1\relax \ifnum\n@i<\z@ \n@i\@c \fi
+ \ifnum\n@i<\maxtrills \else
+ \n@i\z@ \errmessage{Wrong trill number!}\fi
+ \advance\n@i\@ne
+ \xdef\tr@x{\csname tr@x\roman@n@i}%
+ \xdef\tr@y{\csname tr@y\roman@n@i}%
+ \xdef\tr@sw{\csname tr@sw\roman@n@i}%
+ }% select octiaviation line
+
+%\newskip\tr@x \tr@x\maxdimen\relax % starting horizontal pos
+%\newskip\tr@y % height of trill
+
+\def\Itrille#1{\s@l@cttrill#1\relax
+ \ifdim\tr@x < \maxdimen\errmessage{\@mis \noexpand\Ttrille \number #1}\fi
+ \global\tr@sw={\relax}%
+ \C@T}
+\def\ITrille#1{\s@l@cttrill#1\relax
+ \ifdim\tr@x < \maxdimen\errmessage{\@mis \noexpand\Ttrille \number #1}\fi
+ \global\tr@sw={{\it tr }}%
+ \C@T}
+
+\def\C@T#1{%
+ \getcurpos\global\tr@x\y@v % store horizontal pos
+ \inhgetn@i#1\relax\pl@base\advance\y@i\altportee % get absolute height
+ \global\tr@y\y@i }
+
+\def\Ttrille#1{\s@l@cttrill#1\relax
+ \ifdim\tr@x < \maxdimen\else\errmessage{\@mis \noexpand\Itrille \number #1}\fi
+ \advance\tr@y-\altportee \let\T@ii\char \C@TR \global\tr@x\maxdimen }
+ \let\TTrille\Ttrille
+
+\def\C@TR{%
+ \ifx\T@ii\n@ii \y@v\lin@pos \else \getcurpos \fi
+ \advance\y@v-\tr@x \kernm\y@v \raise\tr@y\hbox\@to\y@v{%
+% \the\tr@sw\xleaders\hbox{\musixchar69}\hfill\T@ii\n@ii}}%
+% Correction by Julian Gilbey
+ \the\tr@sw\xleaders\hbox{\musixchar69}\hfill}}%
+
+%%% octave lines
+
+\def\octnumber{\ppffsixteen8}
+
+\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}}}
+
+%%%%%%
+
+\let\maxoctlines\si@
+
+\newskip\o@xi \o@xi\maxdimen\relax % starting horizontal pos
+\newskip\o@xii \o@xii\maxdimen\relax % starting horizontal pos
+\newskip\o@xiii \o@xiii\maxdimen\relax % starting horizontal pos
+\newskip\o@xiv \o@xiv\maxdimen\relax % starting horizontal pos
+\newskip\o@xv \o@xv\maxdimen\relax % starting horizontal pos
+\newskip\o@xvi \o@xvi\maxdimen\relax % starting horizontal pos
+
+\newskip\o@yi % height of octline
+\newskip\o@yii % height of octline
+\newskip\o@yiii % height of octline
+\newskip\o@yiv % height of octline
+\newskip\o@yv % height of octline
+\newskip\o@yvi % height of octline
+
+\newtoks\o@swi % sense of octline
+\newtoks\o@swii % sense of octline
+\newtoks\o@swiii % sense of octline
+\newtoks\o@swiv % sense of octline
+\newtoks\o@swv % sense of octline
+\newtoks\o@swvi % sense of octline
+
+\newcount\o@number
+
+\def\o@loop{\o@number\z@ \loop\ifnum\o@number<\maxoctlines
+ \s@l@ctoctline\o@number\relax
+ \advance\o@number\@ne }
+
+\def\s@l@ctoctline#1\relax{%
+ \n@i#1\relax \ifnum\n@i<\z@ \n@i\@c \fi
+ \ifnum\n@i<\maxoctlines \else
+ \n@i\z@ \errmessage{Wrong octaviation line number!}\fi
+ \advance\n@i\@ne
+ \xdef\o@x{\csname o@x\roman@n@i}%
+ \xdef\o@y{\csname o@y\roman@n@i}%
+ \xdef\o@sw{\csname o@sw\roman@n@i}%
+ }% select octiaviation line
+
+%\newskip\o@x \o@x\maxdimen\relax % starting horizontal pos
+%\newskip\o@y % height of octline
+
+\def\ioctfinup{\Ioctfinup0}
+\def\ioctfindown{\Ioctfindown0}
+\def\Ioctfinup#1{\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}%
+ \C@O}
+\def\Ioctfindown#1{\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@}%
+ \C@O}
+
+\def\C@O#1{%
+ \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 }
+
+\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\C@TO{%
+ \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}}%
+
+% Liftoctline #1 refnumber #2 lift[steps of internote]
+
+\def\Liftoctline#1#2{\n@i#1\advance\n@i\@ne
+ \advance\csname o@y\roman@n@i#2\internote}
+
+%%% some specials
+
+\def\metron#1#2{{\stemlength\f@ur\noteskip\t@n\p@ #1 1\ = #2}}
+
+\def\xtuplet#1#2{\n@iv#1\advance\n@iv\m@ne {\sign@skip=\n@iv\noteskip
+ \sign@skip=0.5\sign@skip \xdef\half@sign@skip{\the\sign@skip}}%
+ \zcharnote{#2}{\kern\h@lf\qn@width\kern \half@sign@skip\lrlap{\eightit#1}}}
+\def\triolet{\xtuplet3}
+
+%\check
+
+\def\zbreath{\raise\si@\internote\rlap{\BIGfont'}}
+\def\cbreath{\adv@box{\raise\si@\internote
+ \hbox\@to\noteskip{\hss\BIGfont'\hss}}}
+
+% The following macros can be used to surround a note by parentheses
+% \l[r]par p produces a left[right] parenthesis at pitch p (Ian Collier)
+
+\def\lpar{\n@iv\thr@@ \@Char}
+\def\rpar{\n@iv\f@ur \@Char}
+
+% \bracket pn draws a square bracket [ to bracket an interval
+% of an n-th whose lowest note is p (Ian Collier)
+
+\def\bracket#1#2{\y@iv#2\internote \advance\y@iv\tw@\internote
+ \inhgetn@i#1\relax\pl@base \advance\y@i-1\h@lf\internote
+ \raise\y@i\llap{\uplap{\offinterlineskip\hbox{\mxsps\@xxvii}%
+ \hbox{\vrule\@height\y@iv}\hbox{\mxsps\@xxvii}}}}
+
+%%% dynamics
+
+\def\f@kern{\kernm\p@ne ex}
+\def\p@kern{\kernm\p@ne5ex}
+
+\def\f{{\ppff f}}
+\def\ff{{\ppff f\f@kern f}}
+\def\fp{{\ppff f\f@kern p}}
+\def\sF{{\it s\ppff \p@kern f}}
+\def\fff{{\ppff f\f@kern f\f@kern f}}
+\def\ffff{{\ppff f\f@kern f\f@kern f\f@kern f}}
+\def\mf{{\ppff m\p@kern\f@kern f}}
+\def\mp@{{\ppff m\p@kern p}}
+\let\mezzopiano\mp@
+\def\p{{\ppff p}}
+\def\pp{{\ppff p\p@kern p}}
+\def\ppp{{\ppff p\p@kern p\p@kern p}}
+\def\pppp{{\ppff p\p@kern p\p@kern p\p@kern p}}
+
+%%% spacings
+
+% if you want to reduce the space behind e.g. \changecontext, use
+% \addspace{dim} ! Only scaleable values are allowed !
+
+\def\addspace#1{\kern#1\global\advance\x@skip#1}
+
+% \hardspace inserts (reduces) outside of \notes..\en unscaleable space
+
+\let\fil@spc\empty
+\def\hardspace#1{\check@nopen\t@rmskip\y@v#1\addspace\y@v\fil@spc}
+
+\def\off#1{\advance\locx@skip#1\kern#1}
+\def\sk{\off\noteskip}
+\def\hsk{\off{\h@lf\noteskip}}
+\def\bsk{\off{-\noteskip}}
+
+%%
+% Redefine \qsk to be scaleable softwidth rather than a fixed kern
+% Otherwise, over/underfull boxes will occur on rescaled (pass 2) material
+%%
+
+\def\hqsk{\off{\h@lf\@l@mskip}}
+\def\qsk{\off\@l@mskip}
+
+\def\nspace{\hardspace{\h@lf\qn@width}}
+\def\qspace{\hardspace\qn@width}
+
+%%% notes spacing
+
+\def\arithmeticskipscale{%
+ \def\znotes{\vnotes0\elemskip}
+ \def\notes{\vnotes2\elemskip}% 16th
+ \def\notesp{\vnotes2\h@lf\elemskip}% 16th point=8 trio
+ \def\Notes{\vnotes3\elemskip}% 8th
+ \def\Notesp{\vnotes3\h@lf\elemskip}% 8th point=4 trio
+ \def\NOtes{\vnotes4\elemskip}% 4th
+ \def\NOtesp{\vnotes4\h@lf\elemskip}% 4th point
+ \def\NOTes{\vnotes5\elemskip}% 2th
+ \def\NOTesp{\vnotes5\h@lf\elemskip}% 2th point
+ \def\NOTEs{\vnotes6\elemskip}% 1th
+ \def\NOTEsp{\undefined}%
+ \def\NOTES{\undefined}%
+}%
+
+\def\geometricskipscale{%
+ \def\znotes{\vnotes0\elemskip}
+ \def\notes{\vnotes2\elemskip}% 16th
+ \def\notesp{\vnotes2.38\elemskip}% 16th point=8 trio
+ \def\Notes{\vnotes2.83\elemskip}% 8th
+ \def\Notesp{\vnotes3.36\elemskip}% 8th point=4 trio
+ \def\NOtes{\vnotes4\elemskip}% 4th
+ \def\NOtesp{\vnotes4.76\elemskip}% 4th point
+ \def\NOTes{\vnotes5.66\elemskip}% 2th
+ \def\NOTesp{\vnotes6.72\elemskip}% 2th point
+ \def\NOTEs{\vnotes8\elemskip}% 1th
+ \def\NOTEsp{\vnotes9.52\elemskip}% 1th
+ \def\NOTES{\vnotes11.32\elemskip}% 1th
+}%
+\arithmeticskipscale
+
+\def\scale#1{\def\scalenoteskip{#1}}
+\let\scalenoteskip\normalvalue
+
+\def\multnoteskip#1{\noteskip#1\noteskip}
+
+\def\vnotes#1\elemskip{\noteskip#1\@l@mskip \@vnotes}
+
+\let\V@sw\z@
+%\def\varnotes#1{\t@rmskip \let\V@sw\@ne
+% \setbox\ch@box\hbox{#1}\noteskip\wd\ch@box \@vnotes}
+
+\def\hardnotes#1\notes{\t@rmskip \let\V@sw\@ne
+ \noteskip#1\relax \@vnotes}
+
+\let\thelyrics\empty
+%\def\hardlyrics#1\notes{\t@rmskip \let\V@sw\@ne \def\thelyrics{\hbox{#1}}%
+% \setbox\ch@box\thelyrics \noteskip\wd\ch@box \@vnotes}
+\def\softlyrics#1{\def\thelyrics{\hbox{#1}}}%
+\def\hardlyrics#1\notes{\t@rmskip \let\V@sw\@ne
+ \let\save@noteskip\noteskip
+ \def\noteskip{\z@\relax\errmessage{You cannot use \noexpand\noteskip
+ in \noexpand\hardlyrics's 1st argument!}}%
+ \def\thelyrics{\hbox{#1}}%
+ \setbox\ch@box\thelyrics \let\noteskip\save@noteskip
+ \noteskip\wd\ch@box \@vnotes}
+
+
+\def\@vnotes{\multnoteskip\scalenoteskip
+ \def|{\nextstaff}\def&{\nextinstrument}\normaltranspose\transpose
+ \check@nopen\notes@open\@ne
+ \kern\n@skip\advance\x@skip\n@skip \locx@skip\x@skip
+ \n@skip\noteskip \noinstrum@nt\z@ \begininstrument}
+
+\def\en{\@ndstaff\notes@open\z@
+ \ifnum\V@sw>0\t@rmskip
+ \fi
+ \let\thelyrics\empty}
+\let\enotes\en
+
+\newcount\notes@open
+
+\def\check@nopen{%
+ \ifnum\notes@open>\z@ \en\errmessage{\@mis\noexpand\enotes ->}\fi}
+
+%%% text, lyrics, free positioning of chars
+
+\def\pl@base{\y@i\n@i\internote}
+\def\lrlap#1{\rlap{\hss#1}}
+\def\hard@box#1{\rlap{\hbox\@to\noteskip{#1\hfil}}}
+\def\dhard@box#1{\rlap{\hbox\@to\tw@\noteskip{#1\hfil}}}
+\def\thard@box#1{\rlap{\hbox\@to\thr@@\noteskip{#1\hfil}}}
+
+\def\zcharnote{\let\@Ti\rlap \C@ch}
+\def\lcharnote{\let\@Ti\llap \C@ch}
+\def\ccharnote{\let\@Ti\lrlap \C@ch}
+\def\hcharnote{\let\@Ti\hard@box \C@ch}
+\def\charnote#1#2{\zcharnote{#1}{#2}\sk}
+
+\def\C@ch#1#2{\inhgetn@i#1\relax\pl@base\raise\y@i\@Ti{#2}}
+
+\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\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\uptext#1{\zchar\t@n{#1}}
+\def\Uptext#1{\zchar\fourt@@n{#1}}
+
+\def\setsongraise#1#2{\n@v#1\relax % select instrument
+ \expandafter\def\csname T@R\romannumeral\n@v\endcsname{#2}}
+
+\let\T@Ri\z@
+\let\T@Rii\z@
+\let\T@Riii\z@
+\let\T@Riv\z@
+\let\T@Rv\z@
+\let\T@Rvi\z@
+
+\def\qlrlap#1{\rlap{\hbox to \qn@width{\hss#1\hss}}}
+\def\zsong{\let\@Ti\rlap \C@t}
+\def\lsong{\let\@Ti\llap \C@t}
+\def\csong{\let\@Ti\qlrlap \C@t}
+\def\hsong{\let\@Ti\hard@box \C@t}
+\def\dhsong{\let\@Ti\dhard@box \C@t}
+\def\thsong{\let\@Ti\thard@box \C@t}
+
+\def\C@t#1{\C@tx{\@Ti{\strut#1}\vss}}
+
+\def\C@tx{%
+ \ifnum\noinstrum@nt=\@ne \y@iv\staffbotmarg \else
+ \advance\noinstrum@nt\m@ne
+ \y@iv\csname interinstrument\romannumeral\noinstrum@nt\endcsname
+ \C@Inter \advance\y@iv\stem@skip \divide\y@iv\tw@
+ \advance\noinstrum@nt\@ne \fi
+ \advance\y@iv-\csname T@R\romannumeral\noinstrum@nt\endcsname
+%% \advance\noinstrum@nt\@ne \fi
+ \lower\y@iv\uplap}
+
+%%% slope lines and brackets
+
+% varline #1=height[dimen] #2=length[dimen] #3=slope (1\eqiv 1.125degree)
+% (comments and ideas from Ian Collier) (from -20 upto 20 )
+% This macro is used by some of the others which follow,
+% using it directly it must be set in zero box
+
+\def\varline#1#2#3{\n@v#3\y@i#2%
+ \n@ii-\tw@nty \min@n@v\n@ii
+ \max@n@v\tw@nty \n@iii\n@v
+ \ifnum\n@v<\z@ \n@v-\n@v \advance\n@v\tw@nty \fi % offset to lower linechars
+ \advance\n@v\@xxix
+ \setbox\ch@box\hbox{\mxsps\char\n@v}%
+ \y@iv\wd\ch@box \y@ii\qu@rt\p@ \y@ii\n@iii\y@ii \y@iii\z@
+ \raise#1\internote\hbox{\ifx\@hook\@ne \mxsps\char\n@iv \fi
+% main loop
+ \loop\ifdim\y@iv<\y@i
+ \raise\y@iii\copy\ch@box\advance\y@iv\wd\ch@box \advance\y@iii\y@ii \repeat
+% last element
+%
+% \finalheight=2.5\completewidth
+% \finalheight=\n@iii\finalheight
+% \divide\finalheight by 100
+% \advance\overlapwidth by -\completewidth
+% \stepheight=-2.5\overlapwidth
+% \stepheight=\n@iii\stepheight
+% \divide\stepheight by 100
+% \advance\curheight by \stepheight
+% \kern -\overlapwidth \raise\curheight \box\ch@box
+%
+ \y@v2\h@lf\y@i \y@v\n@iii\y@v \divide\y@v\@c \advance\y@iv-\y@i
+ \y@ii-2\h@lf\y@iv \y@ii\n@iii\y@ii \divide\y@ii\@c \advance\y@iii\y@ii
+ \kernm\y@iv\raise\y@iii\box\ch@box%
+ \ifx\@hook\@ne \raise\y@v\hbox{\mxsps\char\n@iv}\fi
+% text in the middle
+ \ifx\@text\@ne \ifnum\n@vi=\@ne \y@iii\p@ \else\y@iii-\p@ \fi
+ \advance\y@iii\h@lf\y@v \kernm\h@lf\y@i\raise\y@iii\vbox\@to\z@{%
+ \ifnum\n@vi=\@ne \vss \fi\lrlap\txt\ifnum\n@vi=\@ne \else\vss \fi}\fi}%
+ \let\@hook\empty \let\@text\empty}
+%
+% y@i =complete length
+% y@ii =height of linechar
+% y@iii=current height
+% y@iv =current width
+% y@v =height of ending line
+%
+% n@iii=slope
+% n@iv =(number of char for hooks)
+% n@v =slope (number of linechar)
+% n@vi =1 -> text above
+% @hook=\@ne -> draws hookrules at begin and end of line
+% @text=\@ne -> puts text at the middle of the line (def'd with \txt)
+
+% \ov[un]bkt{p}{n}{s} draws a bracket over the music starting at the
+% current position at pitch p, width n\noteskip and slope s, causing no space
+% #1=height (note), #2=length (noteskips) #3=slope (1\eqiv 1.125[degree])
+
+\def\ovbkt{\n@iv22\C@bkt}
+\def\unbkt{\n@iv21\C@bkt}
+
+\def\C@bkt#1#2#3{\y@v#2\noteskip \advance\y@v\wn@width \let\@hook\@ne
+ \inhgetn@i#1\relax \rlap{\kernm\p@ne\qn@width\varline\n@i\y@v{#3}}}
+
+% \up[down]trio{p}{n}{s} same as above,
+% draws \txt (default \eightit 3) above[below] in the middle
+% #1=height (note), #2=length (noteskips) #3=slope (1\eqiv 1.125[degree])
+
+\def\uptrio{\n@vi\z@ \let\@text\@ne \ovbkt}
+\def\downtrio{\n@vi\@ne \let\@text\@ne \unbkt}
+
+%%% standard settings
+
+\def\resetlayout{\let\interfacteur\nin@
+ \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@
+ \resetclefsymbols}
+
+\def\resetclefsymbols{%
+ \let\bassc@si\z@ \let\bassc@sii\z@ \let\bassc@siii\z@
+ \let\bassc@siv\z@ \let\bassc@sv\z@ \let\bassc@svi\z@
+ \let\altoc@si\z@ \let\altoc@sii\z@ \let\altoc@siii\z@
+ \let\altoc@siv\z@ \let\altoc@sv\z@ \let\altoc@svi\z@
+ \let\treblec@si\z@ \let\treblec@sii\z@ \let\treblec@siii\z@
+ \let\treblec@siv\z@ \let\treblec@sv\z@ \let\treblec@svi\z@
+}
+
+\resetlayout
+\let\nbinstruments\maxinstruments
+\normalnotesize
+\normalmusicsize
+\resetlayout
+\def\nbinstruments{1}
+
+
+%%%
+%
+% This is muflex.tex version 1.00 , January 1993
+%
+% Macro library for MusicTeX `flexiline' operations: MuFlex.
+% The idea is to set up a two pass system.
+% On the first pass, information about each bar is written to the file
+% jobname.mx1.
+% After the first pass, an external (non TeX) routine is run to
+% determine optimal values of the elemental spacing (\elemskip)
+% for each line, so as to properly fill each line, and to lead to
+% the piece filling an integral number of lines.
+% The relevant parameters are written onto the file
+% jobname.mx2.
+% On the second pass, the .mx2 file is read in, and the information
+% used as described above.
+%
+% Ross Mitchell, January 1993.
+%
+%%%
+
+\newwrite\outmux
+\def\fil@{\immediate\write\outmux}
+
+%%
+% \mulooseness is the MuFlex analog of TeX's \looseness parameter:
+% the increment to the natural number of lines in the section just
+% ended.
+%%
+
+\newcount\mulooseness
+% Alternative \linegoal
+\newcount\linegoal
+
+%%
+% Invoke \startmuflex before \startpiece to find out the pass number
+% and generally get things going.
+%%
+% !!! If you want (have) to override the .mx1, delete the .mx2 before !!!
+% !! You have to change the mx1, if you change the spacing inbetween !!
+
+\newif\ifstartmuflex@done
+\def\startmuflex{%
+ \ifstartmuflex@done
+ \immediate\write16{Warning: \noexpand\startmuflex\space
+ already done, ignored.}%
+ \else
+ \startmuflex@donetrue
+% \global\let\ifstartmuflex@done\iftrue
+ \openin\inmux\jobname.mx2\relax
+ \ifeof\inmux
+ \immediate\openout\outmux\jobname.mx1\relax
+ \fil@{\mufl@x}%
+ \pass@I
+ \else
+ \message{(\jobname.mx2)}\pass@II
+ \fi
+ \fi}
+
+\let\endmuflex\empty
+
+\newbox\l@eftrightbox
+
+\def\leftrightrepeat@I{%
+ % \setbox\toks@box\l@eftrightrepeat\y@v\wd\toks@box
+ % \setbox\toks@box\l@eftrepeat\y@iv\wd\toks@box
+ % \advance\y@v\y@iv \global\advance\x@skip-\y@v
+ %
+ \setleftrightrepeat\@bar
+ \edef\thex@skip{\the\x@skip}%
+ \setbox\l@eftrightbox\l@eftrightrepeat
+ \edef\they@v{\the\wd\l@eftrightbox}%
+ \setbox\l@eftrightbox\l@eftrepeat
+ \edef\they@iv{\the\wd\l@eftrightbox}%
+ \global\x@skip\thex@skip
+ \fil@{l \they@v\space\they@iv}}
+
+\def\leftrepeat@I{%
+% \setbox\toks@box\l@eftrepeat\y@iv\wd\toks@box
+% \global\advance\x@skip-\y@iv
+ \setleftrepeat\@bar
+ \edef\thex@skip{\the\x@skip}%
+ \setbox\l@eftrightbox\l@eftrepeat
+ \edef\they@iv{\the\wd\l@eftrightbox}%
+ \global\x@skip\thex@skip
+ \fil@{L \they@iv}}
+
+% \akkoladen from: "Rainer Dunker" <rainer.dunker@ebe-online.de>
+
+
+\def\akkoladen#1{%
+ \def\akk@count{0}% avoid occupying yet another count register
+ \ifx\empty#1\else\@akkoladen#1\@nd\fi
+ % deactivate all remaining \grouptop...bottom items
+ \loop
+ \ifnum\akk@count<\maxgroups
+ \incr@akk@count
+ \expandafter\groupbottom\expandafter{\akk@count}\maxdimen
+ \expandafter\grouptop\expandafter{\akk@count}\z@
+ \repeat}
+\def\@akkoladen#1#2#3\@nd{%
+ \incr@akk@count
+ \expandafter\groupbottom\expandafter{\akk@count}{#1}%
+ \expandafter\grouptop\expandafter{\akk@count}{#2}%
+ \ifx\empty#3\else\@akkoladen#3\@nd\fi}
+\def\incr@akk@count{%
+ \count@\akk@count\relax \advance\count@\@ne \edef\akk@count{\the\count@}}
+
+
+%%
+% Define \pass@I to perform the following functions:
+%
+% (a) set line and page breaking for the first pass by setting
+% rigid values for \elemskip (#1),
+% \maxbarsinlin@ (#2)
+%
+% (b) Redefine \t@rmskip so that it writes to the .mx1 file;
+%
+% (c) Redefine part of \debutmorceau to open the output (.mx1) file
+% and write the following parameters to the .mx1 file:
+% \line@width
+% \parindent
+% \beforeruleskip
+% \afterruleskip
+% \elemskip
+% \clef@skip
+% \sign@skip;
+%
+% (d) redefine various other macros so that length measures will be
+% written to the .mx1 file
+%%
+
+\def\pass@I{\def\@nds@ction{\fil@{*\space\the\mulooseness\space\the\linegoal}%
+ \mulooseness\z@\relax \linegoal\z@}%
+
+%\def\pass@I{\def\@nds@ction{\fil@{*\space\the\mulooseness}\mulooseness\z@}%
+%%
+% Redefine \t@rmskip to include a macro for writing a record to a file,
+% and define the macro
+%%
+ \def\fil@termskip{%
+ \fil@{\the\barsinpi@c@\space\the\widthtyp@\space\the\x@skip}%
+ \widthtyp@\@ne}%
+%%
+% Redefine part of debutmorceau to write header information to file
+%%
+ \def\fil@begin{%
+ \fil@{S}% Startindicator
+ \fil@{\the\line@width}%
+ \fil@{\the\parindent}%
+ \fil@{\the\beforeruleskip}%
+ \fil@{\the\afterruleskip}%
+ \fil@{\the\@l@mskip}%
+ \fil@{\the\clef@skip}%
+ \fil@{\the\sign@skip}}%
+%
+% -> \writ@newsigns
+%
+ \def\fil@signs{%
+ \maxsign@skip\z@
+ \n@loop \s@l@ctsigns
+ \sign@skip\tw@\Internote
+ \sign@skip\a@s\sign@skip
+ \ifdim\sign@skip<\z@ \sign@skip-\sign@skip \fi
+ \global\advance\sign@skip\smallvalue\Internote
+ \ifdim\maxsign@skip<\sign@skip \global\maxsign@skip\sign@skip
+ \fi
+ \repeat
+ \global\sign@skip\maxsign@skip
+ \fil@{s\space\the\sign@skip}}%
+%
+% -> \Contpiece
+%
+ \def\fil@indent{\fil@{\the\barsinpi@c@\space0 \the\parindent}}%
+%
+% when a line is stopped with a zbar, to the next bar is added the amount
+% of afterruleskip
+% -> no line break during Pass 1 and indicate musixflx a zbar
+%
+ \def\zbar{\zn@wbar\fil@{z \the\barno}}%
+%
+% \leftrightrepeat behaves different in mid of line and end of line
+% -> no line break during Pass 1, get the widths and
+% indicate musixflx a leftrightrepeat
+%
+ \let\leftrightrepeat\leftrightrepeat@I
+%
+% s.a.
+%
+ \let\leftrepeat\leftrepeat@I
+%
+% -> \hardspace
+%
+ \def\fil@spc{\fil@{h \the\y@v}}%
+%
+% makes the .mx2 more transparent
+%
+ \def\fil@barno{\fil@{b \the\barno}}%
+%
+% break line if value of \lin@pos (exclusive parindent, signs and clefs)
+% is larger than 0.5\hsize
+%
+ \def\T@bil{\getcurpos \ifdim\y@v<\h@lf\line@width}%
+%
+% close the file
+%
+ \def\endmuflex{\immediate\closeout\outmux}}%
+
+%%
+% Macros to set up the second pass
+%%
+
+\newread\inmux
+
+%%
+% Main macro: \pass@II
+% Function: %%%(a) Open the .mx2 file
+% %%%(b) Set the number of lines per page to #1
+% (c) Set the \everystaff macro to read and decode line
+% parameter settings
+% %%%(d) Define end of bar, end of line and repeat macros
+% %%% according to \autolines
+%%
+
+\def\pass@II{\def\ragg@d{\hfilneg\ }%
+% \def\everyst@ff{\everystaff\read\inmux\@to\inline \inline}} % ancient
+ \def\everyst@ff{\read\inmux\@to\inline \inline\relax \everystaff}}
+
+%%
+% \inline expands to \lineset#1#2#3#4#5, so define the latter
+%%
+
+\def\lineset#1#2#3#4#5{\ifx\no@l\empty \message{<#1>}\fi
+ \maxbarsinlin@#2%
+ \@l@mskip#3%
+ \elemskip\@l@mskip
+ \afterruleskip#4%
+ \beforeruleskip#5}
+
+\def\musicparskip{\parskip\z@ plus\fiv@\Interligne minus\Interligne}
+
+\def\endcatcodesmusic{%
+ \catcode`\&\catcode@and
+ \catcode`\|\catcode@vert
+ \catcode`\>\catcode@gt
+ \catcode`\<\catcode@lt
+ \catcode`\!\catcode@excl
+ \catcode`\*\catcode@star
+ \catcode`\:\catcode@sc
+ \catcode`\.\catcode@pt
+ \let\bar\@@bar
+ \catcodesmusicfalse}
+
+\endcatcodesmusic
+
+%...\let\wlog=\@wloG
+
+\catcode`\@=\catcodeat
+\endinput
+
diff --git a/Master/texmf-dist/tex/generic/musixtex/musixtri.tex b/Master/texmf-dist/tex/generic/musixtex/musixtri.tex
new file mode 100644
index 00000000000..0b4f2923991
--- /dev/null
+++ b/Master/texmf-dist/tex/generic/musixtex/musixtri.tex
@@ -0,0 +1,64 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+\immediate\write10{MusiXTRIplepoint 0.36\space<1 March 1995>}
+
+\ifx\undefined\lpppt \else \endinput \fi
+
+\edef\catcodeat{\the\catcode`\@}\catcode`\@=11
+
+\def\lppt{\g@pt\m@ne\tw@}
+
+\def\whppp{\def\w@h{\musixfont\nin@\roffset\qu@rt{\C@Point\tw@\raise}}%
+ \y@v\wn@width \g@w}
+\def\zwppp{\advancefalse\whppp}
+
+\def\@quppp{\let\st@m\upst@m \g@qppp}
+\def\@qlppp{\let\st@m\downst@m \g@qppp}
+\def\@zqppp{\let\st@m\setst@m \advancefalse\g@qppp}
+\def\@nqppp{\let\st@m\resetst@m \g@qppp}
+
+\def\q@uppp{\q@u\C@Point\tw@\raise}
+\def\g@qppp#1{\getn@i#1\relax \let\n@fon\g@qppp \let\n@sym\q@uppp
+ \y@v\qn@width \writ@note}
+
+\def\@qbppp#1{\s@l@ctbeam#1\relax \let\st@m\beamst@m \g@qppp}
+
+\def\@cuppp{\n@vii\@xl \let\st@m\up@flag \g@qppp}
+\def\@clppp{\n@vii45\let\st@m\down@flag \g@qppp}
+
+\def\huppp{\h@symbol\@quppp}
+\def\hlppp{\h@symbol\@qlppp}
+\def\zhppp{\h@symbol\@zqppp}
+\def\zhuppp{\advancefalse\huppp}
+\def\zhlppp{\advancefalse\hlppp}
+\def\quppp{\q@symbol\@quppp}
+\def\qlppp{\q@symbol\@qlppp}
+\def\zquppp{\advancefalse\quppp}
+\def\zqlppp{\advancefalse\qlppp}
+\def\zqppp{\q@symbol\@zqppp}
+\def\cuppp{\q@symbol\@cuppp}
+\def\zcuppp{\advancefalse\cuppp}
+\def\clppp{\q@symbol\@clppp}
+\def\zclppp{\advancefalse\clppp}
+\def\qbppp{\q@symbol\@qbppp}
+\def\zqbppp{\advancefalse\qbppp}
+
+\catcode`\@=\catcodeat
+\endinput