\chapter{Preparing to Enter Notes}\label{preparing} \section{After the setup, what next?} The command \keyindex{startmuflex} initiates the serious business of \musixtex. On the first \TeX\ pass it opens \ital{jobname}{\tt .mx1} for writing bar-by-bar tabulations of all hard and scalable space to be fed to \verb|musixflx| on the second pass. \verb|musixflx| generates \ital{jobname}{\tt .mx2} which defines the number of bars in each system and the factors relating scalable space to hard space in each system. On the third pass both files will be opened and read to define the final spacing. These files should be closed before leaving \TeX, preferably before \keyindex{bye} or \keyindex{end}, with \keyindex{endmuflex}. Normally \TeX\ closes all open files on its own when terminating the program, but it is still cleaner to do this explicitly. After \verb|\startmuflex|, the command \keyindex{startpiece} will initiate the first system, containing all instruments you have previously defined. The indentation will be \keyindex{parindent}, so if you want nonzero indentation, this register should be set to the desired hard dimension before issuing \verb|\startpiece|. \section{Horizontal spacing commands}\label{newspacings} \subsection{Basic note spacing} \musixtex\ provides a set of macros each of which defines a particular increment of scalable spacing. The default set is tabulated in Figure~\ref{spacingtable}. \begin{table} \begin{small} \begin{center} \tinynotesize \renewcommand{\arraystretch}{1.5}% I hate LaTeX (attributed to Daniel Taupin) \begin{tabular}{|l|l|l@{~~~~}l|} \multicolumn{1}{c}{Usage}& \multicolumn{1}{c}{spacing}& \multicolumn{2}{c}{Suggested use}\\\hline \keyindex{znotes}\verb| ... & ... & ... \en|&(non spacing) &&specials\\ \keyindex{notes}\verb| ... & ... & ... \en|&\verb=2=\keyindex{elemskip} &\ccu1&16th\\ \keyindex{notesp}\verb| ... & ... & ... \en|&\verb=2.5\elemskip= &\pt1\ccu1&dotted 16th, 8th triplet\\ \keyindex{Notes}\verb| ... & ... & ... \en|&\verb=3\elemskip= &\cu1&8th\\ \keyindex{Notesp}\verb| ... & ... & ... \en|&\verb=3.5\elemskip= &\cup1&dotted 8th, quarter triplet\\ \keyindex{NOtes}\verb| ... & ... & ... \en|&\verb=4\elemskip= &\qu1&quarter\\ \keyindex{NOtesp}\verb| ... & ... & ... \en|&\verb=4.5\elemskip= &\qup1&dotted quarter, half triplet\\ \keyindex{NOTes}\verb| ... & ... & ... \en|&\verb=5\elemskip= &\hu1&half\\ \keyindex{NOTesp}\verb| ... & ... & ... \en|&\verb=5.5\elemskip= &\hup1&dotted half\\ \keyindex{NOTEs}\verb| ... & ... & ... \en|&\verb=6\elemskip= &\wh1&whole\\\hline \end{tabular}\end{center} \end{small} \caption{Spacing Commands} \label{spacingtable} \end{table} What each of these macros actually does is to set an internal dimension register \keyindex{noteskip} to the given multiple of the fundamental spacing unit \keyindex{elemskip} (which has dimensions of length, usually given in points). Normally, every \itxem{spacing note} (e.g., \keyindex{qu}, \keyindex{qb}, \keyindex{hl}) will then be followed by a spacing of width \keyindex{noteskip}. By selecting a particular note spacing macro from the above table, the typesetter can thus control the relative spacing between notes. The actual spacing will therefore be determined by the value of \verb|\elemskip|. On the first pass, \TeX\ will set a default value for \verb|\elemskip| based on the declared music size, or the user can set it to any hard dimension he chooses. However, the value on the first pass doesn't matter as much as you might think (more about that later). On the second pass, \verb|musixflx| determines where the system breaks will come, and then computes the final value of \verb|\elemskip| for each system. If the arithmetic progression of note spacings in the above table does not meet your wishes, you may activate an alternate set with the command \keyindex{geometricskipscale}. As implied by the name, this is a geometric progression, where {\Bslash Notes} is $\sqrt{2}$ times wider than {\Bslash notes}, {\Bslash NOtes} is $\sqrt{2}$ times wider than {\Bslash Notes}, and so forth. Then the factors in the middle column of the above table will be replaced by the sequence $2.00$, $2.38$, $2.83$, $3.36$, $4.00$, $4.76$, $5.66$, $6.72$, and $8.00$. Two additional macros, \verb|\NOTEsp| and \verb|\NOTES|, will be defined corresponding to factors $9.52$ and $11.32$. The original arithmetic progression can be restored by \keyindex{arithmeticskipscale}. If neither of the predefined progressions satisfies you, you may define your own, using the more general macro \verb|\vnotes| in the same manner that \musixtex\ uses it for the predefined progressions. So for example \verb|\def\NOtes{\vnotes5.34\elemskip}| will redefine \verb|\NOtes| in the obvious way, and the extension to the other spacing macros should likewise be obvious. The following abbreviations may be useful: \begin{quote} \begin{tabular}{lcl} \keyindex{nnotes} &for&\verb|\vnotes1.6\elemskip|\\ \keyindex{nnnotes} &for&\verb|\vnotes1.28\elemskip| \end{tabular} \end{quote} In addition, inside any pair \verb|\notes...\en| there are two equivalent ways to locally redefine \verb|\noteskip| to another scalable value, namely by issuing a command like \verb|\noteskip=2.4\noteskip| or \keyindex{multnoteskip}\verb|{2.4}|, which have the expected effect until the notes group is terminated or \verb|\noteskip| is further redefined. Finally, by issuing a command like \keyindex{scale}\verb|{2.4}| outside any notes group, you can scale all subsequent \verb|\noteskip|s by any desired factor. These facilities may be useful, for example, to control spacing when there are three equal duration notes in one staff against two in another. %\subsection{\Bslash{\tt elemskip}, \Bslash{\tt beforeruleskip} and %\Bslash{\tt afterruleskip}} % % avr wants to call these "commands", but das doesn't. %\subsection{Commands {\Bslash\texttt{elemskip}}, %{\Bslash\texttt{beforeruleskip}} %and {\Bslash\texttt{afterruleskip}}} %\subsection{{\Bslash\texttt{elemskip}}, %{\Bslash\texttt{beforeruleskip}} %and {\Bslash\texttt{afterruleskip}}} \subsection{Before and after rule skips} We've just seen how \verb|\elemskip| is used to scale the spacings between notes. There are two other spacing units that share some behavior with \verb|\elemskip|: \verb|\beforeruleskip| is the horizontal space that is automatically inserted \ital{before} every bar line, while \verb|\afterruleskip| goes \ital{after} every bar line. (In practice \verb|\beforeruleskip| is almost aways set to \verb|0pt| because there will typically already be a space of \verb|1\noteskip| before every barline.) On the first pass, just as with \verb|\elemskip|, \musixtex\ assigns them default values according to the following table: %\begin{quote}\begin{tabular}{lrrr}\hline %\ital{using}&\keyindex{elemskip}&\keyindex{afterruleskip} % &\keyindex{beforeruleskip}\\\hline %\keyindex{normalmusicsize}&6pt&8pt&0pt\\ %\keyindex{smallmusicsize}&4.8pt&6pt&0pt\\\hline %\end{tabular}\end{quote} \begin{center}\begin{tabular}{lrrr}\hline \ital{using}&\keyindex{elemskip}&\keyindex{afterruleskip} &\keyindex{beforeruleskip}\\\hline \keyindex{normalmusicsize}&{\tt 6pt}&{\tt 8pt}&{\tt 0pt}\\ \keyindex{smallmusicsize}&{\tt 4.8pt}&{\tt 6pt}&{\tt 0pt}\\\hline \end{tabular}\end{center} \noindent In the second pass, \verb|musixflx| assigns new values to each of these dimensions, a different set for each line or system. It does this in such a way that available scalable horizontal space in each system is exactly filled up. The values that are assigned to these dimensions on the first pass, whether by default or explicitly by the user or in some combination, only matter insofar as their relative sizes. That's why we earlier stated that the first-pass value of \verb|\elemskip| didn't matter as much as you might think. For both music sizes in the table above, it appears that by default \verb|\afterruleskip| is \verb|1.3333\elemskip|\footnote{Editor's note: It is a mystery why the authors %of \musixtex\ didn't simply define \Bslash{\tt beforeruleskip} and \Bslash{\tt afterruleskip} as %specific multiples of \Bslash{\tt elemskip}}. of \musixtex\ didn't simply define \Bslash\texttt{beforeruleskip} and \Bslash\texttt{afterruleskip} as specific multiples of \Bslash\texttt{elemskip}.}. Note that if you do want to change any of these values, you have to do so \ital{after} setting the music size and before \verb|\startpiece|. Here is an example that illustrates the various dimensions under discussion:\\ %\check \begin{music}\nostartrule \afterruleskip7pt \beforeruleskip2pt \parindent0pt \setclefsymbol1\empty % special problems afford special solutions \makeatletter\global\clef@skip\z@ \makeatother \startpiece \zchar{16}{\hbox to\afterruleskip{\downbracefill}}% \zchar{19}{\hbox to\afterruleskip{\hss a\hss}}% \addspace\afterruleskip \zchar{16}{\hbox to2\elemskip{\downbracefill}}% \zchar{19}{\hbox to2\elemskip{\hss b\hss}}% \zchar{3}{\hbox to\elemskip{\upbracefill}\hbox to\elemskip{\upbracefill}}% \zchar{-1}{\hbox to\elemskip{\hss e\hss}\hbox to\elemskip{\hss e\hss}}% \notes\qa l\en \znotes\en \zchar{16}{\hbox to4\elemskip{\downbracefill}}% \zchar{19}{\hbox to4\elemskip{\hss c\hss}}% \zchar{3}{\hbox to\elemskip{\upbracefill}\hbox to\elemskip{\upbracefill}% \hbox to\elemskip{\upbracefill}\hbox to\elemskip{\upbracefill}}% \zchar{-1}{\hbox to\elemskip{\hss e\hss}\hbox to\elemskip{\hss e\hss}% \hbox to\elemskip{\hss e\hss}\hbox to\elemskip{\hss e\hss}}% \NOtes\qa l\en \znotes\en \zchar{16}{\hbox to\beforeruleskip{\downbracefill}}% \zchar{19}{\hbox to\beforeruleskip{\hss d\hss}}% \setemptybar\endpiece \end{music} \begin{quote}\begin{tabular}{l@{~$\rightarrow$~}l} a&\keyindex{afterruleskip}\\ b&\keyindex{notes}\verb| = \vnotes 2\elemskip|\\ c&\keyindex{NOtes}\verb| = \vnotes 4\elemskip|\\ d&\keyindex{beforeruleskip}\\ e&\keyindex{elemskip} \end{tabular}\end{quote} \section{Moving from one staff or instrument to another} \label{movingtostaffs} When entering notes inside \verb|\notes ... \en|, the usual way to suspend input for one instrument and start the next (higher) is with the character ``\verb|&|''\index{"&@{\tt\char'046}}. If the instrument has more than one staff, to switch to the next (higher) one you can use the character ``\verb+|+''\index{\tt\char'174@{\tt\char'174}}. There are some alternate navigation commands that may be useful in special situations. Due to ``catcode problems'' (see Section~\ref{catcodeprobs}) it may sometimes be necessary to use the more explicit commands \keyindex{nextinstrument} and \keyindex{nextstaff}, which have the same meanings as ``\verb|&|'' and ``\verb+|+'' respectively. To switch to the previous (next lower) staff of the same instrument, use \keyindex{prevstaff}. This might be useful if a beam starts in a higher staff than where it ends. More generally, to switch to an arbitrary instrument $n$, use \keyindex{selectinstrument}\onen, and to switch to an arbitrary staff $n$ of the current instrument, use \keyindex{selectstaff}\verb|{|$n$\verb|}|. In the latter case if $n$ exceeds the number of staves defined for the instrument, you will receive an error message. You can enter part of a successive voice on the \ital{same} staff by using \verb|\selectstaff{|$n$\verb|}| with $n$ for the \ital{current} staff. \section{Automatic note spacing} \label{autosp} A preprocessor called \texttt{autosp}\index{autosp@{\tt autosp}} automates the generation of note-spacing commands by converting (non-standard) commands of the form \verb|\anotes ... \en| into one or more conventional note-spacing commands, as determined by the note values themselves, with \verb|\sk| spacing commands inserted as necessary. The coding for an entire measure can be entered one part at a time, without concern for note-spacing changes within the part or spacing requirements of other parts. For example, from the input \begin{verbatim} \anotes\qa J\qa K&\ca l\qa m\ca n\en \end{verbatim} \texttt{autosp} generates \begin{verbatim} \Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en \end{verbatim} \texttt{autosp} also supports non-standard commands for adding ``global'' skips (i.e., in every staff) and centered whole-bar rests. As an option, \emph{all} note-spacing commands (except \verb|\znotes| and \verb|\vnotes|) will be processed similarly; this is useful for correcting the spacing in single-instrument parts extracted from a multi-instrument score; see Section~\ref{musixtnt}. The \texttt{autosp} package is available in \href{https://www.tug.org/texlive/}{\underline{TeXLive}} and \href{http://miktex.org/}{\underline{MiKTeX}}, and can also be found at the \href{http://icking-music-archive.org/software/autosp/autosp.zip} {\underline{Werner Icking Music Archive}} or at \href{http://mirrors.ctan.org/support/autosp.zip}{\underline{CTAN}} (the Comprehensive \TeX\ Archive Network).