summaryrefslogtreecommitdiff
path: root/macros/musixtex/tex/musixcpt.tex
diff options
context:
space:
mode:
Diffstat (limited to 'macros/musixtex/tex/musixcpt.tex')
-rw-r--r--macros/musixtex/tex/musixcpt.tex826
1 files changed, 826 insertions, 0 deletions
diff --git a/macros/musixtex/tex/musixcpt.tex b/macros/musixtex/tex/musixcpt.tex
new file mode 100644
index 0000000000..90d9066465
--- /dev/null
+++ b/macros/musixtex/tex/musixcpt.tex
@@ -0,0 +1,826 @@
+%
+% 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\write16{MusiXComPaTible T.109\space<8 May 2018>}%
+
+\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{\check@staff
+ \inhgetn@i#1\relax\@BigAcc
+ \fi}
+\def\@BigAcc{\pl@base\raise\y@i\llap{\musixchar\n@v\kern\accshift}}
+
+\def\bigfl{\n@v\@l \@acc}
+\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{\check@staff
+ \inhgetn@i#1\relax\n@iv\fiv@ \@SmallACC
+ \fi}
+\def\@SmallACC{\check@staff
+ \pl@base\raise\y@i\llap{\@SmallAcc\kern\accshift}\fi}
+\def\@SmallAcc{\check@staff
+ \ifcautionacc\C@ChaR \fi \musixchar\n@v
+ \ifcautionacc\kern.3\qn@width \fi
+ \fi\global\cautionaccfalse}
+
+\def\smallna{\n@v94\@smallacc}
+\def\smallfl{\n@v90\@smallacc}
+\def\smallsh{\n@v92\@smallacc}
+\def\smalldsh{\n@v93\@smallacc}
+\def\smalldfl#1{\check@staff
+ \n@v91\inhgetn@i#1\relax\n@iv\si@ \@SmallACC
+ \fi}
+
+\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{\check@staff
+ \advance\n@v\n@vi \@Ti
+ \fi }
+
+\def\@Flat#1{\sign@diff#1\relax
+ \ifcase\n@ii \n@v\@liv \or\n@v\@l \or\n@v\@li \fi \C@aacc}
+
+\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
+\let\demisoupir\ds
+\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{\check@staff
+ \y@v\interportee \advance\y@v\f@ur\Interligne \divide\y@v\tw@
+ \raise\y@v\uplap{\hbox\@to\noteskip{\@Ti\strut#1\@Tii}\vss}%
+ \advance\locx@skip\noteskip
+ \fi}
+
+% 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