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