\input musicnft
\input musicvbm
\input musictex
\input musicsty
\font\moyen=cmbx10 scaled \magstep2
\def\\{{\tt\char'134}}%
\def\|{{\tt\char'174}}%
\def\#{{\tt\char'043}}%
\def\{{{\char'173}}%
\def\}{{\char'175}}%
\def\@{{\char'100}}%
\def\musictex{Music\TeX}%
\hsize 90mm
\vsize 130mm
%%%%%%%%%%%%%%%%%%%
\parindent 0pt
\ \vfil
\centerline{\moyen \musictex}
\bigskip
Music typesetting is not linear, except in scholar cases, e.g.:

\def\nbinstruments{1}
\debutmorceau
\normal
\temps\notes \qu c\enotes
\temps\notes \qu d\enotes
\temps\notes \qu e\enotes
\temps\notes \qu f\enotes
\barre\notes \qu g\enotes
\temps\notes \qu f\enotes
\temps\notes \qu e\enotes
\temps\notes \qu d\enotes
\barre\NOtes \wh e\enotes
\suspmorceau
\vfil
\eject\ \vfil\vbox{but this is more sophisticated :

\def\doubler{\multiply\noteskip by 2\relax}%
% formes frequentes
%
\def\qbupz#1{\upz{#1}\qb0{#1}}
\def\qhlpz#1{\lpz{#1}\qh0{#1}}
%\check
\def\umotif#1#2#3#4#5#6#7#8#9{\varaccid
\ibbl0{#7}0\ilegu0{#1}\qb0{#1}\tleg0\qb0{#2#3}%
\qbupz{#1}\qbupz{#4#5}\qbupz{#6#7}\qbupz{#8#9}\qbupz{#7}\tbl0\qbupz{#5}}%
%\check
\def\mmotif#1#2#3#4#5#6#7#8#9{\ibbu0{#3}0\ilegl0{#3}\qh0{#1}\tleg0\qh0{#2#3}%
\qhlpz{#1}\qhlpz{#4#5}\qhlpz{#6#7}\qhlpz{#8#9}\qhlpz{#7}\tbu0\qhlpz{#5}}%
%\check
%
\def\culpz#1{\lpz{#1}\cu{#1}}%
\def\clupz#1{\upz{#1}\cl{#1}}%
% double accord de 4 + soupir
\def\dbuq#1#2#3#4{\lsf{#4}\ibu0{#1}0\zq{#1#2#3}\qh0{#4}\sk
\lpz{#4}\zq{#1#2#3}\tqh0{#4}\sk\soupir\sk}%
\def\dblq#1#2#3#4{\usf{#1}\ibl0{#4}0\zq{#1#2#3}\qb0{#4}\sk
\upz{#1}\zq{#1#2#3}\tqb0{#4}\sk\soupir\sk}%
%
% double accord de 3 + soupir
\def\dbut#1#2#3{\lsf{#3}\ibu0{#1}0\zq{#1#2}\qh0{#3}\sk
\lpz{#3}\zq{#1#2}\tqh0{#3}\sk\soupir\sk}%
\def\dblt#1#2#3{\usf{#1}\ibl0{#3}0\zq{#1#2}\qb0{#3}\sk
\upz{#1}\zq{#1#2}\tqb0{#3}\sk\soupir\sk}%
%
% double accord de 2 + soupir
\def\dbud#1#2{\lsf{#2}\ibu0{#1}0\zq{#1}\qh0{#2}\sk
\lpz{#2}\zq{#1}\tqh0{#2}\sk\soupir\sk}%
%
% double accord de 3 doubles croches
\def\ddbut#1#2#3{\lpz{#3}\ibbu0{#1}0\zq{#1#2}\qh0{#3}%
\lpz{#3}\zq{#1#2}\tqh0{#3}}%
\def\ddblt#1#2#3{\upz{#1}\ibbl0{#3}0\zq{#1#2}\qb0{#3}%
\upz{#1}\zq{#1#2}\tqb0{#3}}%
%
% double accord de 2 doubles croches
\def\ddbud#1#2{\lpz{#2}\ibbu0{#1}0\zq{#1}\qh0{#2}%
\lpz{#2}\zq{#1}\tqh0{#2}}%
\def\ddbld#1#2{\upz{#1}\ibbl0{#1}0\zq{#1}\qb0{#2}%
\upz{#1}\zq{#1}\tqb0{#2}}%
%
%  les memes avec la note du haut a droite
% double accord de 4 + soupir
\def\dbuqr#1#2#3#4{\lsf{#4}\ibu0{#1}0\rq{#1}\zq{#2#3}\qh0{#4}\sk
\lpz{#4}\rq{#1}\zq{#2#3}\tqh0{#4}\sk\soupir\sk}%
%
% double accord de 3 + soupir
\def\dbutr#1#2#3{\lsf{#3}\ibu0{#1}0\rq{#1}\zq{#2}\qh0{#3}\sk
\lpz{#3}\rq{#1}\zq{#2}\tqh0{#3}\sk\soupir\sk}%
\def\dbutmr#1#2#3{\lsf{#3}\ibu0{#1}0\rq{#2}\zq{#1}\qh0{#3}\sk
\lpz{#3}\rq{#2}\zq{#1}\tqh0{#3}\sk\soupir\sk}%
\def\dbltl#1#2#3{\usf{#1}\ibl0{#3}0\zq{#1}\lq{#2}\qb0{#3}\sk
\upz{#1}\zq{#1}\lq{#2}\tqb0{#3}\sk\soupir\sk}%
%
% double accord de 2 + soupir
\def\dbudr#1#2{\lsf{#2}\ibu0{#1}0\zq{#1}\qh0{#2}\sk
\lpz{#2}\zq{#1}\tqh0{#2}\sk\soupir\sk}%
%
% double accord de 3 doubles croches
\def\ddbutr#1#2#3{\lpz{#3}\ibbu0{#1}0\rq{#1}\zq{#2}\qh0{#3}%
\lpz{#3}\rq{#1}\zq{#2}\tqh0{#3}}%
\def\ddbltl#1#2#3{\upz{#1}\ibbl0{#3}0\lq{#2}\zq{#1}\qb0{#3}%
\upz{#1}\rq{#2}\zq{#3}\tqh0{#3}}%
%
% double accord de 2 doubles croches
\def\ddbudr#1#2{\lsf{#2}\ibu0{#1}0\rq{#1}\qh0{#2}\sk
\lpz{#2}\rq{#1}\tqh0{#2}\sk\soupir\sk}%
%
%  les memes avec la note du milieu a gauche
% double accord de 4 + soupir
\def\dbuql#1#2#3#4{\lsf{#4}\ibu0{#1}0\rq{#2}\zq{#3#1}\qh0{#4}\sk
\lpz{#4}\rq{#2}\zq{#3#1}\tqh0{#4}\sk\soupir\sk}%
%
% accord de 4, 3 doubles croches inf
\def\lmotbba#1#2#3#4{\dbuq{#1}{#2}{#3}{#4}%
\ddbut{#2}{#3}{#4}}%
%\check
%
% accord de 4, 2 doubles croches sup
\def\lmotbbb#1#2#3#4{\dbuq{#1}{#2}{#3}{#4}%
\ddbud{#1}{#2}}%
%\check
%
% accord de 4, 2 doubles croches med
\def\lmotbbc#1#2#3#4{\dbuq{#1}{#2}{#3}{#4}%
\ddbud{#2}{#3}}%
%\check
%
% accord de 2, 2 doubles croches med
\def\lmotbbd#1#2#3{\dbud{#1}{#2}%
\ddbud{#2}{#3}}%
%\check
%
% accord de 4, final croche
\def\lmotcua#1#2#3#4{\dbuq{#1}{#2}{#3}{#4}%
\zq{#4#3#2}\culpz{#1}}%
%\check
%
\def\lmotcuar#1#2#3#4{\dbuqr{#1}{#2}{#3}{#4}%
\zq{#2#3}\rq{#1}\culpz{#4}}%
%\check
%
% accord de 3, final croche
\def\lmotcub#1#2#3{\dbut{#1}{#2}{#3}%
\zq{#1#2}\culpz{#3}}%
%\check
%
\def\lmotcubr#1#2#3{\dbutr{#1}{#2}{#3}%
\lpz{#3}\zq{#3}\rq{#1}\cu{#2}}%
%\check
%
% accord de 2, final croche
\def\lmotcuc#1#2{\dbud{#1}{#2}%
\lpz{#2}\zq{#2}\cu{#1}}%
%\check
\bigskip
%
\nbporteesii=2\relax
\nbporteesi=1\relax
\autolines{16}15\relax
\barsinline=0\linesinpage=0\def\nbinstruments{2}%
\global\cleftoksii={{0}{0}{0}{0}}\global\cleftoksi={{6}{0}{0}{0}}\relax
\signaturegenerale{-1}\preprmorceau
\change\saveclefs\savesignature\savemeters
%
\notes\doubler\qlp f\sk\sk\cu F&\lmotbba mjhf|\umotif t!s!q!o!m\enotes
\temps\notes\doubler\qlp e\sk\sk\cu F&\lmotcua ljhf|\umotif s!r!q!o!m\enotes
\zbarre\notes\doubler\qlp d\sk\sk\cu F&\lmotcuar kjhf|\umotif r!q!q!o!m\enotes
\temps\notes\doubler\qlp e\sk\sk\cu F&\lmotcua ljhf|\umotif s!r!q!o!m\enotes
\suspmorceau}
\vskip -3cm
\generalsignature{0}\savesignature\cleftoksi={{0}{0}{0}{0}}
\vfil\eject\ \vfil
\parindent 15mm
\noindent Two kinds of information to manage :
\item{1.} All staffs, systems, bars, line breaking, page breaking.
\item{2.} Notes and their ornaments, i.e. several parameters for
each note~:
\itemitem{--} note pitch
\itemitem{--} note duration
\itemitem{--} whether the following in text is simultaneous
(chord, polyphony) or comes after (spacing problem)
\itemitem{--} beams and slurs.
\bigskip
\itemitem{$\Longrightarrow$} many parameters for each note, which make
melodiy an exception. 


\vfil
\eject\ \vfil
\parindent 15mm
 \item{1)} spacing does not depend only of the local notes,
but also on the context, at least in the same bar.
\item{2)} in the case of polyphonic music, exceptions can easily be found.
Here is an example~: 


\centerline{\vbox{\parindent 0pt\hsize=0.7\hsize\computewidths
\def\nbinstruments{1}\relax
\generalmeter{\meterfrac{4}{4}}\relax
\debutmorceau
\normal\elemskip=0.115\hsize
\temps\Notes\rlap{\hu j}\ql h\enotes
\temps\Notes\hl g\enotes
\temps\Notes\hu k\enotes
\temps\Notes\ql f\enotes
\suspmorceau
}}
\vfil\eject\ \vfil\noautolines
\centerline{\moyen Coding chords}\bigskip
\centerline{\vbox{\parindent 0pt\hsize 2cm\def\nbinstruments{1}\relax
\cleftoksi={{0}{0}{0}{0}}\generalmeter{}\relax
\computewidths\debutmorceau
\normal\elemskip=0.25\hsize
\temps\Notes\zq c\zq e\zq g\qu j\enotes
\suspmorceau
}}
\bigskip
 \centerline{\tt\\zq~c\\zq~e\\zq~g\\qu~j}
\bigskip\centerline{\moyen Coding polyphony} \bigskip
\centerline{\vbox{\parindent 0pt\hsize 0.7\hsize\def\nbinstruments{1}\relax
\cleftoksi={{0}{0}{0}{0}}\generalmeter{}\relax
\computewidths\debutmorceau
\large
\temps\Notes\zql c\hu e\enotes
\temps\Notes\ql b\enotes
\temps\Notes\zql c\qu g\enotes
\temps\notes\zql d\Ibu0hi1\qh0h\tqh0i\enotes
\suspmorceau
}}

{\parindent 0pt\obeylines\tt
\\temps
\\Notes\\zql c\\hu e\\enotes
\\temps
\\Notes\\ql b\\enotes
\\temps
\\Notes\\zql c\\qu g\\enotes
\\temps
\\notes\\zql d\\Ibu0hi1\\qh0h\\tqh0i\\enotes
}
\vfil
\eject
\ \vfil
\centerline{\vbox{\parindent 0pt\hsize 90mm      \relax
\def\nbinstruments{1}\relax
\nbporteesi=2\relax
\generalmeter{\meterC}\relax
\debutmorceau
\normal\elemskip=0.84\elemskip
\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\hl j\enotes
\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\ql l\sk\ql n\enotes
\barre
\Notes\ibu0f0\qh0{dgf}|\qlp i\enotes
\notes\tbu0\qh0g|\ibbl1j3\qb1j\tbl1\qb1k\enotes
\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\hl j\enotes
\suspmorceau
}}\bigskip
{\parindent 0pt\tt\obeylines
\\def\\nbinstruments\{1\}
\\nbporteesi=2
\\generalmeter\{\\meterC\}
\\debutmorceau
\\normal
\\temps
\\Notes\\ibu0f0\\qh0\{cge\}\\tbu0\\qh0g\|\\hl j\\enotes
\\temps
\\Notes\\ibu0f0\\qh0\{cge\}\\tbu0\\qh0g\\relax
\ \ \ \ \|\\ql l\\sk\\ql n\\enotes
\\barre
\\Notes\\ibu0f0\\qh0\{dgf\}\|\\qlp i\\enotes
\\notes\\tbu0\\qh0g\|\\ibbl1j3\\qb1j\\tbl1\\qb1k\\enotes
\\temps
\\Notes\\ibu0f0\\qh0\{cge\}\\tbu0\\qh0g\|\\hl j\\enotes
\\suspmorceau
}

\vfil
\eject
\ \vfil
\centerline{\vbox{\parindent 0pt\hsize 90mm      \relax
\def\nbinstruments{1}\relax
\generalsignature{-2}\nbporteesi=2\relax
\generalmeter{\meterC}\relax
\debutmorceau\transpose=-1\relax
\normal\elemskip=0.84\elemskip
\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\hl j\enotes
\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\ql l\sk\ql n\enotes
\barre
\Notes\ibu0f0\qh0{dgf}|\qlp i\enotes
\notes\tbu0\qh0g|\ibbl1j3\qb1j\tbl1\qb1k\enotes
\temps\Notes\ibu0f0\qh0{cge}\tbu0\qh0g|\hl j\enotes
\suspmorceau
}}\bigskip
{\parindent 0pt\tt\obeylines
\\def\\nbinstruments\{1\}
\\generalsignature\{-2\}\\nbporteesi=2
\\generalmeter\{\\meterC\}
\\debutmorceau\\transpose=-1\\relax
\\normal
\\temps
\\Notes\\ibu0f0\\qh0\{cge\}\\tbu0\\qh0g\|\\hl j\\enotes
\\temps
\\Notes\\ibu0f0\\qh0\{cge\}\\tbu0\\qh0g\\relax
\ \ \ \ \|\\ql l\\sk\\ql n\\enotes
\\barre
\\Notes\\ibu0f0\\qh0\{dgf\}\|\\qlp i\\enotes
\\notes\\tbu0\\qh0g\|\\ibbl1j3\\qb1j\\tbl1\\qb1k\\enotes
\\temps
\\Notes\\ibu0f0\\qh0\{cge\}\\tbu0\\qh0g\|\\hl j\\enotes
\\suspmorceau
}

\vfil
\eject
\ \vfil
\centerline{\moyen Future enhancements}
\medskip
\parindent 10mm
\item{1.--} Repeats
\item{2.--} Mixing 20pt and 16pt staffs
\item{3.--} 16pt notes within 20pt score
\item{4.--} transposition of accidentals
\item{5.--} (slightly) nicer slurs/ties
\item{6.--} ... bug hunting.
\vfil
\eject
\ \vfil
\hsize=18.5cm
\parindent 18mm
\nbporteesii=2\relax
\def\nbinstruments{2}
\global\cleftoksii={{6}{0}{0}{0}}%
\global\cleftoksi={{6}{0}{0}{0}}%
%
\signaturegenerale{-1}\relax % un bemol a la clef
\def\quatretemps{\generalmeter{\meterfrac{4}{4}}}%
\def\troistemps{\generalmeter{\meterfrac{3}{4}}}%
%\check
\def\instrumenti{16', 8'}
 \def\instrumentii{\vbox{\hsize=\parindent\centerline{cornet}\vskip \interportee
\vskip -10pt\centerline{fl\^ute 8'}}}%
%\check
\elemskip=10pt\relax
\normal
\def\gluemaxskip{7pt}%
%
\debutmorceau
\hyphenpenalty -50\relax
\global\cleftoksii={{0}{0}{0}{0}}%
\changeclefs\zglu
\notes&|\uptext{\raise 1.5\Interligne\hbox{\kern -14mm\moyen Adagio \bf \metron{\qu}{60}}}\enotes
% mesure 1
\zglu\notes\itenl1K\wh K&\zq f\zqu h\itenl2d\wh d|\ibbu0h0\qh0h\tbbu0\qh0g\enotes
\Notes&|\tbu0\itenl0h\qh0h\enotes
\NOTes&\zq f\qu h|\tten0\hu h\enotes
\temps\NOTes&\zq f\qu h\enotes
\temps\NOTes&\zq f\qu h|\qu i\enotes
% mesure 2
\barre\NOTes\tten1\hu K&\zq e\zqu g\qsk\tten2\wh d|\hu g\enotes
\temps\NOTes&\zq e\qu g\enotes
\temps\NOTes\soupir&\zq e\qu g|\soupir\enotes
\temps\Notes\qu K&\zq e\qu g|\ibu0h3\qh0g\enotes
\notes&|\nbbu0\qh0h\enotes
\notes&|\tbu0\qh0i\enotes
% mesure 3
\barre\Notes\wh{^J}&\rlap{\wh{^c}}\zq e\qu g|\ibu0i{-3}\qh0i\tbu0\qh0h\enotes
\temps\Notes &\zq e\qu g|\ibu0h{-3}\qh0h\tbu0\qh0g\enotes
\temps\Notes &\zq e\qu g|\ibu0g{-3}\qh0g\tbu0\qh0f\enotes
\temps\Notes &\zq e\qu h|\ibu0f{-3}\qh0f\tbu0\qh0e\enotes
\suspmorceau
%
%
\debutmorceau
\hyphenpenalty -50\relax
\global\cleftoksii={{0}{0}{0}{0}}%
\changeclefs\zglu
\notes&|\uptext{\raise 1.5\Interligne\hbox{\kern -14mm\moyen Adagio \bf \metron{\qu}{60}}}\enotes
% mesure 1
\zglu\notes\itenl1K\wh K&\zq f\zqu h\itenl2d\wh d|\ibbu0h0\qh0h\tbbu0\qh0g\enotes
\Notes&|\tbu0\itenl0h\qh0h\enotes
\NOTes&\zq f\qu h|\tten0\hu h\enotes
\temps\NOTes&\zq f\qu h\enotes
\temps\NOTes&\zq f\qu h|\qu i\enotes
% mesure 2
\barre\NOTes\tten1\hu K&\zq e\zqu g\qsk\tten2\wh d|\hu g\enotes
\temps\NOTes&\zq e\qu g\enotes
\temps\NOTes\soupir&\zq e\qu g|\soupir\enotes
\temps\Notes\qu K&\zq e\qu g|\ibu0h3\qh0g\enotes
\notes&|\nbbu0\qh0h\enotes
\notes&|\tbu0\qh0i\enotes
\suspmorceau
%
\vfil
\eject
\ \vfil
\debutmorceau
\hyphenpenalty -50\relax
\global\cleftoksii={{0}{0}{0}{0}}%
\changeclefs\zglu
\notes&|\uptext{\raise 1.5\Interligne\hbox{\kern -14mm\moyen Adagio \bf \metron{\qu}{60}}}\enotes
% mesure 1
\zglu\notes\itenl1K\wh K&\zq f\zqu h\itenl2d\wh d|\ibbu0h0\qh0h\tbbu0\qh0g\enotes
\Notes&|\tbu0\itenl0h\qh0h\enotes
\NOTes&\zq f\qu h|\tten0\hu h\enotes
\temps\NOTes&\zq f\qu h\enotes
\temps\NOTes&\zq f\qu h|\qu i\enotes
% mesure 2
\barre\NOTes\tten1\hu K&\zq e\zqu g\qsk\tten2\wh d|\hu g\enotes
\temps\NOTes&\zq e\qu g\enotes
\zsuspmorceau
%
\vfil
\eject
\ \vfil
\debutmorceau
\hyphenpenalty -50\relax
\global\cleftoksii={{0}{0}{0}{0}}%
\changeclefs\zglu
\notes&|\uptext{\raise 1.5\Interligne\hbox{\kern -14mm\moyen Adagio \bf \metron{\qu}{60}}}\enotes
% mesure 1
\zglu\notes\itenl1K\wh K&\zq f\zqu h\itenl2d\wh d|\ilegu3o\ibbu0h0\qh0h\tbbu0\qh0g\enotes
\Notes&|\tbu0\itenl0h\qh0h\enotes
\NOTes&\zq f\qu h|\tten0\hu h\enotes
\temps\NOTes&\zq f\qu h\enotes
\temps\NOTes&\zq f\qu h|\qu i\enotes
\alaligne
\NOTes\tten1\hu K&\zq e\zqu g\qsk\tten2\wh d|\hu g\enotes
\temps\NOTes&\zq e\qu g\enotes
\temps\NOTes\soupir&\zq e\qu g|\soupir\enotes
\temps\Notes\qu K&\zq e\qu g|\ibu0h3\qh0g\enotes
\notes&|\nbbu0\qh0h\enotes
\notes&|\tleg3\tbu0\qh0i\enotes
\suspmorceau
\bye
