diff options
Diffstat (limited to 'macros/musixtex/doc/musixdoc')
31 files changed, 10707 insertions, 0 deletions
diff --git a/macros/musixtex/doc/musixdoc/accidentals.tex b/macros/musixtex/doc/musixdoc/accidentals.tex new file mode 100644 index 0000000000..a504837530 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/accidentals.tex @@ -0,0 +1,74 @@ +\chapter{Accidentals} +\vspace*{-3ex} +Accidentals can be introduced in two ways. + The first way, using explicit macros, consists for +example in coding \keyindex{fl}\pitchp~to put a \ital{flat} at the +pitch $p$, presumably right before a note at the same pitch. This is a +non-spacing command and will automatically place the accidental an +appropriate distance to the left of the anticipated note head. +Naturals, sharps, double flats and double sharps are coded \keyindex{na}\pitchp, +\keyindex{sh}\pitchp, \keyindex{dfl}\pitchp~and \keyindex{dsh}\pitchp~respectively. + +The alternate macros \keyindex{lfl}, \keyindex{lna}, \keyindex{lsh}, +\keyindex{ldfl} and \keyindex{ldsh} +place the same accidentals, but shifted one note head width +to the left. These can be used if a note head has been shifted to the left, or +to avoid collision with other accidentals +in a chord. If you want to shift an accidental by some other amount for +more precise positioning, you could use \keyindex{loffset} with the normal +accidental macro as the second parameter. + + The second way of coding accidentals is to modify the parameter of a +note command. Just put the symbol +\verb|^| for a sharp, \verb|_| for a flat, \verb|=|~for a natural, +\verb|>| for a double sharp, or \verb|<| for a double +flat, right before the letter or number representing the pitch. +For example, \verb|\qb{^g}| yields a +$G\sharp$. This may be used effectively in collective coding, e.g. +\verb|\qu{ac^d}|. + + There are two sizes of accidentals. By default they will be large unless there +is not enough space between notes, in which case they will be made small. Either +size can be forced locally by coding \keyindex{bigfl}, \keyindex{bigsh}, etc., or +\keyindex{smallfl}, \keyindex{smallsh}, etc. If you want all accidentals to +be large, then declare \keyindex{bigaccid} near the top of the input file. For +exclusively small ones use \keyindex{smallaccid}; \keyindex{varaccid} will restore +variable sizes. + + For editorial purposes, small accidentals can be placed \ital{above} note +heads. This is done using \keyindex{uppersh}\pitchp, \keyindex{upperna}\pitchp, or +\keyindex{upperfl}\pitchp: + +\begin{music}\nostartrule +\startextract +\NOtes\uppersh l\qa l\en +\NOtes\upperna m\qa m\en +\NOtes\upperfl l\qa l\en +\zendextract +\end{music} + +\vspace*{-2ex} +It also possible to introduce \ital{\ixem{cautionary accidental}s}, +i.e.,~small accidentals enclosed in parentheses. This is done by preceding +the name of the accidental keyword with ``\verb|c|''\label{cautionary}. +Available cautionary accidentals are \keyindex{csh}, \keyindex{cfl}, +\keyindex{cna}, +\keyindex{cdfl} and \keyindex{cdsh}, which give + +\begin{music}\nostartrule +\startextract +\NOtes\csh g\qa g\en +\NOtes\cfl h\qa h\en +\NOtes\cna i\qa i\en +\NOtes\cdfl j\qa j\en +\NOtes\cdsh k\qa k\en +\zendextract +\end{music} + +\vspace*{-2ex} +\noindent The distance between notes and accidentals is controlled by +\keyindex{accshift}\verb|=|\ital{any \TeX\ dimension}, where +positive values shift to the left and negative to right, with a +default of~\verb|0pt|. +For ``big'' cautionary accidentals, use, for example, +\verb|{|\keyindex{largenotesize}\verb|\csh|\pitchp\verb|}| or see Section~\ref{brapar}. diff --git a/macros/musixtex/doc/musixdoc/barlines.tex b/macros/musixtex/doc/musixdoc/barlines.tex new file mode 100644 index 0000000000..0303b7a9a4 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/barlines.tex @@ -0,0 +1,308 @@ +\chapter{Bar Lines} + \section{Single, double, and invisible bar lines}\label{doublebars} +The usual macro to typeset a single bar line is \keyindex{bar}. +There is a possibility of +confusion with a command in \TeX's math mode that has exactly the same name. +However, there will generally be no problem, because inside +\verb|\startpiece...\endpiece|, +\verb|\bar| will take the musical meaning, while outside, it will have the +mathematical one. +If for some reason you need the math \verb|\bar| inside, you can use +\verb|\endcatcodesmusic...\bar...\catcodesmusic|. + +To typeset a double bar line with two thin rules, use \keyindex{doublebar}. You could +also issue \keyindex{setdoublebar} to cause the next \verb|\bar| (or +\keyindex{stoppiece}, \keyindex{alaligne}, or \keyindex{alapage}) to be replaced +by a double bar. + +There is no specific command to print a thin-thick double bar line, but +\keyindex{setdoubleBAR} will cause one in the same cases where +\verb|\setdoublebar| would cause a thin-thin double bar line. + +To make the next bar line invisible, use \keyindex{setemptybar} before +\verb|\bar|. + +You can suppress the beginning vertical rule with saying \keyindex{nostartrule} +and restore the default with \keyindex{startrule} after that. Note that +it is conventional practice to omit beginning rules for single-staff music. + +\section{Simple discontinuous bar lines} +Normally, bars (as well as double bars, final bars and repeat bars) are +drawn continuously from the bottom of the lowest staff of the +lowest instrument to the top of the highest staff of the uppermost +instrument. However, if desired, they can be made discontinuous between +instruments by saying \keyindex{sepbarrules}. An example of this is given in +%avrb +%{\tt ANGESCAO} (or {\tt ANGESCAM}) example; it has also been used in the +%avre +\texttt{avemaria.tex} in Section~\ref{avemaria}\label{avemaria2}. + +Continuous bar lines can be restored with \keyindex{stdbarrules}. In +the extension library are some more types of bar rules, mainly for very old +music, see Section~\ref{otherbars}. + +% DAS. Andre, are there some other kinds of bars in an addon? + +\section{Elementary asynchronous bar lines} + + Situations may arise where the bar lines in different instruments are not +aligned with one another. To set this up, first say \verb|\sepbarrules|. +Then use a combination of the following five commands: + +\begin{itemize}\setlength{\itemsep}{0ex} +\item\keyindex{hidebarrule}\onen~hides the bar rule for instrument $n$, until +this is changed by \verb|\showbarrule|\onen. +\item\keyindex{showbarrule}\onen~stops hiding the bar rule for instrument $n$, +until this is changed by \verb|\hidebarrule|\onen. +\item\keyindex{Hidebarrule}\onen~hides the bar rule for instrument $n$, only +for the next bar. +\item\keyindex{Showbarrule}\onen~shows the bar rule for instrument +$n$ once only, +and then resets it. +% +% DAS ??? +% and then resets it to \verb|hidebarrule|. +% +\item\keyindex{showallbarrules} resets all defined instruments to +\verb|\showbarrule|\onen. This command is automatically inserted with double +bars, final bars and repeats. +\end{itemize} + +Thus, this example + +\begin{music} +\instrumentnumber3 +\setmeter3{{\meterfrac{3}{4}}} +\setmeter2{{\meterfrac{2}{4}}} +\setmeter1{{\meterfrac{3}{8}}} +\nobarnumbers +\sepbarrules + +\startextract +\NOtes\pt f\qa f&\qa f&\qa f\en +\hidebarrule2\hidebarrule3\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\showbarrule2\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\hidebarrule2\showbarrule3\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\showbarrule2\hidebarrule3\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\hidebarrule2\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\setdoublebar +\bar\hidebarrule3 +\NOtes\pt f\qa f&\qa f&\qa f\en +\Hidebarrule2\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\message{Showbarrule3 coming}% +\Hidebarrule2\Showbarrule3\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\Hidebarrule2\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\setrightrepeat +\endextract +\end{music} + +\noindent was obtained with the following coding: +\begin{quote}\begin{verbatim} +\instrumentnumber3 +\setmeter3{{\meterfrac{3}{4}}} +\setmeter2{{\meterfrac{2}{4}}} +\setmeter1{{\meterfrac{3}{8}}} +\nobarnumbers +\sepbarrules + +\startextract +\NOtes\pt f\qa f&\qa f&\qa f\en +\hidebarrule2\hidebarrule3\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\showbarrule2\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\hidebarrule2\showbarrule3\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\showbarrule2\hidebarrule3\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\hidebarrule2\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\setdoublebar +\bar\hidebarrule3 +\NOtes\pt f\qa f&\qa f&\qa f\en +\Hidebarrule2\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\message{Showbarrule3 coming}% +\Hidebarrule2\Showbarrule3\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\bar +\NOtes\pt f\qa f&\qa f&\qa f\en +\Hidebarrule2\bar +\NOtes\multnoteskip{.333}\Tqbu fff&\qa f&\qa f\en +\setrightrepeat +\zendextract +\end{verbatim}\end{quote} + +\section{Dotted, dashed, asynchronous and discontinuous bar lines}\label{musixdbr} + +The extension +package \href{http://icking-music-archive.org/software/musixtex/add-ons/musixdbr.tex} +{\underline{\ttxem{musixdbr.tex}}} by Rainer {\sc Dunker} provides commands for +dashed, dotted, and arbitrarily discontinuous bar lines. It supports +individual bar line settings for each instrument, multi-staff instruments, +different sizes of staves, and even different numbers of lines per staff, + +To use the package, you must \verb|\input musixdbr| after \verb|musixtex|, and +execute the macro \keyindex{indivbarrules} which activates individual bar line +processing. Then the following commands are available: + +\begin{itemize}\setlength{\itemsep}{0ex} + +\item \keyindex{sepbarrule}\onen~separates bar lines of instrument $n$ from those of instrument $n-1$ + +\item \keyindex{condashbarrule}\onen~connects bar lines of instrument $n$ to those of instrument $n-1$ + with a dashed line + +\item \keyindex{condotbarrule}\onen~connects bar lines of instrument $n$ to those of instrument $n-1$ + with a dotted line + +\item \keyindex{conbarrule}\onen~connects bar lines of instrument $n$ to those of instrument $n-1$ + +\item \keyindex{hidebarrule}\onen~hides bar lines of instrument $n$ + +\item \keyindex{showdashbarrule}\onen~dashes bar lines of instrument $n$ + +\item \keyindex{showdotbarrule}\onen~dots bar lines of instrument $n$ + +\item \keyindex{showbarrule}\onen~shows bar lines of instrument $n$ + +\item \keyindex{sepmultibarrule}\onen~separates bar lines within multistaff instrument $n$ + +\item \keyindex{condashmultibarrule}\onen~dashes bar lines between staves of multistaff instrument $n$ + +\item \keyindex{condotmultibarrule}\onen~dots bar lines between staves of multistaff instrument $n$ + +\item \keyindex{conmultibarrule}\onen~ shows bar lines between staves of multistaff instrument $n$ + +\item \keyindex{allbarrules}[\ital{any of the above commands, without numerical parameter}] sets bar +line style for all instruments together. + +\end{itemize} + +Dashing and dotting style may be changed by redefining the macros +\verb|\barlinedash| or \verb|\barlinedots| respectively (see original definitions in \verb|musixdbr.tex|). + +Here is an example of the use of these macros: + +\begin{music} +\input musixdbr + +\instrumentnumber4 \setstaffs23 \setstaffs32 \setlines14\setsize2\tinyvalue +\indivbarrules +\parindent0pt\startextract +%\startpiece +%\scale{2} + % normal barlines + \bar + % separate instrument 2 from 1 + \sepbarrule2 + \notes\en\bar + % barlines on staves + \allbarrules\sepbarrule + \allbarrules\sepmultibarrule + \allbarrules\showbarrule + \NOTes\en\bar + % barlines between staves + \allbarrules\conbarrule + \allbarrules\conmultibarrule + \allbarrules\hidebarrule + \NOTes\en\bar + % dashed barlines on staves + \allbarrules\sepbarrule + \allbarrules\sepmultibarrule + \allbarrules\showdashbarrule + \NOTes\en\bar + % dashed barlines between staves + \allbarrules\condashbarrule + \allbarrules\condashmultibarrule + \allbarrules\hidebarrule + \NOTes\en\bar + % dotted barlines on staves + \allbarrules\sepbarrule + \allbarrules\sepmultibarrule + \allbarrules\showdotbarrule + \NOTes\en\bar + % dotted barlines between staves + \allbarrules\condotbarrule + \allbarrules\condotmultibarrule + \allbarrules\hidebarrule + \NOTes\en\bar + % a wild mixture of all + \showdotbarrule1\hidebarrule2\showdashbarrule3\showbarrule4% + \condashbarrule2\conbarrule3\condotbarrule4% + \condashmultibarrule2\sepmultibarrule3% + \NOTes\en\bar + % conventional ending + \allbarrules\showbarrule + \allbarrules\conbarrule + \allbarrules\conmultibarrule + \NOTes\en\setdoubleBAR\endextract +\end{music} + +This is the code: + +\begin{quote}\begin{verbatim} +\input musixdbr +\instrumentnumber4\setstaffs23\setstaffs32\setlines14\setsize2\tinyvalue +\indivbarrules\parindent0pt\startextract + % normal barlines + \bar + % separate instrument 2 from 1 + \sepbarrule2 + \notes\en\bar + % barlines on staves + \allbarrules\sepbarrule + \allbarrules\sepmultibarrule + \allbarrules\showbarrule + \NOTes\en\bar + % barlines between staves + \allbarrules\conbarrule + \allbarrules\conmultibarrule + \allbarrules\hidebarrule + \NOTes\en\bar + % dashed barlines on staves + \allbarrules\sepbarrule + \allbarrules\sepmultibarrule + \allbarrules\showdashbarrule + \NOTes\en\bar + % dashed barlines between staves + \allbarrules\condashbarrule + \allbarrules\condashmultibarrule + \allbarrules\hidebarrule + \NOTes\en\bar + % dotted barlines on staves + \allbarrules\sepbarrule + \allbarrules\sepmultibarrule + \allbarrules\showdotbarrule + \NOTes\en\bar + % dotted barlines between staves + \allbarrules\condotbarrule + \allbarrules\condotmultibarrule + \allbarrules\hidebarrule + \NOTes\en\bar + % a wild mixture of all + \showdotbarrule1\hidebarrule2\showdashbarrule3\showbarrule4% + \condashbarrule2\conbarrule3\condotbarrule4% + \condashmultibarrule2\sepmultibarrule3% + \NOTes\en\bar + % conventional ending + \allbarrules\showbarrule + \allbarrules\conbarrule + \allbarrules\conmultibarrule + \NOTes\en\setdoubleBAR\zendextract +\end{verbatim}\end{quote} + diff --git a/macros/musixtex/doc/musixdoc/barnumbering.tex b/macros/musixtex/doc/musixdoc/barnumbering.tex new file mode 100644 index 0000000000..9ad9d5c79c --- /dev/null +++ b/macros/musixtex/doc/musixdoc/barnumbering.tex @@ -0,0 +1,127 @@ +\chapter{Bar Numbering} +The current bar number is stored in a count register call \keyindex{barno}. +When \verb|\startpiece| is encountered, \verb|\barno| is set equal to +another count register called \verb|\startbarno|, whose default value is one. +Therefore, if you want the first bar to have a number $n$ different from~$1$, you +may either say \verb|\startbarno=|$n$ before \verb|\startpiece|, or say +\verb|\barno=|$n$ afterwards, but before the first bar line. You may also alter the bar +number at any time, either by explicitly resetting \verb|\barno|, or by +incrementing it with a command like \verb|\advance\barno-1|. + +\musixtex\ supports two distinct modes for printing bar numbers. In \ital{periodic} +bar numbering, the bar number is +placed above the top staff with a user-selectable frequency. In +\ital{system} bar numbering, the +number will appear at the beginning of each system. + +\section{Periodic bar numbering} +In a normal piece, periodic bar number printing is turned on by default, with a frequency +of one. In an extract, the default is to not print bar numbers. +To turn off bar numbering say \keyindex{nobarnumbers}. To reinstate periodic +bar numbering, or to initiate it in an extract, say \keyindex{barnumbers}. +To change to a +different frequency $n$, say \verb|\def|\keyindex{freqbarno}\verb|{|$n$\verb|}|. + +The appearance and positioning of the bar number is controlled by the +token \keyindex{writethebarno}, which by default is defined as\\ +\verb|\def\writethebarno{\fontbarno\the\barno\kernm\qn@width}| +where the font is defined as \verb|\def\fontbarno{\it}|. You can change +either of these as desired, for example + + \medskip +\begin{music}\barnumbers +\parindent0pt\startpiece +\Notes\Dqbu gh\Dqbl jh\en +\notes\Dqbbu fg\Dqbbl hk\en\bar +\Notes\Tqbu ghi\Tqbl mmj\en +\def\fontbarno{\bf}% +\notes\Tqbbu fgj\Tqbbl njh\en\bar +\Notes\Qqbu ghjh\Qqbl jifh\en\bar +\notes\Qqbbu fgge\Qqbbl jhgi\en\endpiece +\end{music} +\noindent which was coded as +\begin{quote}\begin{verbatim}\barnumbers +\Notes\Dqbu gh\Dqbl jh\en +\notes\Dqbbu fg\Dqbbl hk\en\bar +\Notes\Tqbu ghi\Tqbl mmj\en +\def\fontbarno{\bf}% +\notes\Tqbbu fgj\Tqbbl njh\en\bar +\Notes\Qqbu ghjh\Qqbl jifh\en\bar +\notes\Qqbbu fgge\Qqbbl jhgi\en +\end{verbatim}\end{quote} + +\section{System bar numbering} +To have a bar number printed just above the beginning of each system, use +\keyindex{systemnumbers}. The distance above the staff is controlled +by \verb|\raisebarno|, which by default is \verb|4\internote| (to fit +above a treble clef). This can be redefined with the command +\begin{quote} +\verb|\def|\keyindex{raisebarno}\verb|{|\ital{any \TeX~dimension}\verb|}| +\end{quote} +Similarly, the horizontal position is defined by \keyindex{shiftbarno} +which by default is \verb|0pt|. + +The number normally is enclosed in a +box. If you don't like that, you may redefine the macro \verb|\writebarno| +which by default is defined as +\begin{quote} +\verb|\def|\keyindex{writebarno}\verb|{\boxit{\eightbf\the\barno\barnoadd}}| +\end{quote} +This uses the utility \musixtex\ macro \keyindex{boxit} which will enclose +any text string in a box. + +Here are some possible alternate formats for system bar numbers: + +\medskip +\begin{music}\nostartrule +\def\fontbarno{\it}% +\let\extractline\hbox +\startbarno=36 +\hbox to \hsize{% +\hss + \raise20pt\hbox{(a) }% + \systemnumbers\startextract + \Notes\wh g\en + \zendextract +\hss + \def\writebarno{\tenrm\the\barno\barnoadd}% + \def\raisebarno{2\internote}% + \def\shiftbarno{2.5\Interligne}% + \raise20pt\hbox{(b) }% + \systemnumbers\startextract + \Notes\wh g\en + \zendextract +\hss + \def\writebarno{\llap{\tenbf\the\barno\barnoadd}}% + \def\raisebarno{2\internote}% + \def\shiftbarno{1.3\Interligne}% + \raise20pt\hbox{(c) }% + \systemnumbers\startextract + \Notes\wh g\en + \zendextract +\hss} +\end{music} +\noindent These were coded as +\begin{itemize}\setlength{\itemsep}{0ex} + \item[(a)] (default) + \item[(b)] + \begin{verbatim} +\def\writebarno{\tenrm\the\barno\barnoadd}% +\def\raisebarno{2\internote}% +\def\shiftbarno{2.5\Interligne}% + \end{verbatim} + \item[(c)] + \begin{verbatim} +\def\writebarno{\llap{\tenbf\the\barno\barnoadd}}% +\def\raisebarno{2\internote}% +\def\shiftbarno{1.3\Interligne}% + \end{verbatim} +\end{itemize} + +If the previous line does not stop with a bar rule, then the next +printed system bar number will immediately be followed by the contents +of the token \keyindex{writezbarno}, whose +default setting is the lower case character `\verb|a|'. You might want to +change this to `\verb|+|', in which case you should say +\verb|\def\writezbarno{+}|. + diff --git a/macros/musixtex/doc/musixdoc/beams.tex b/macros/musixtex/doc/musixdoc/beams.tex new file mode 100644 index 0000000000..354906640e --- /dev/null +++ b/macros/musixtex/doc/musixdoc/beams.tex @@ -0,0 +1,618 @@ +\chapter{Beams} +\section{Starting a beam} + +Each beam must be declared with a macro issued before the first spacing +note under the beam is coded. Two distinct kinds of macros are provided +for this. The first kind initiates a ``fixed-slope'' beam, with an arbitrary +slope and starting height chosen by the user, while the second kind, a +``semi-automatic'' beam, +\ital{computes}~the slope and, in addition, adjusts the starting height in some +cases. + +\def\nps{{\tt\char123}$n${\tt\char125}\pitchp{\tt\char123}$s${\tt\char125}} + +The basic form of the macros for starting fixed-slope beams is exemplified +by the one for a single upper beam, \keyindex{ibu}\nps. Here +$n$ is the reference number of the beam, $p$ the starting ``pitch'', and +$s$ the slope. + +The reference number is assigned by the user. +It is needed because more than one beam may be open at +a time, and it tells \musixtex\ to which beam subsequent beamed notes and +other beam specification commands are assigned. +By default, the reference number must be in the range [$0,5$], +but the range for 8th to 128th beams will be expanded to [$0,8$] or [$0,11$] +if \verb|musixadd| or \verb|musixmad| respectively has been \verb|\input|. + +Alternatively, you can specify the number of $8$th to $64$th beams +directly\footnote{$8$th to $64$th beams are so basic that the maximum +number of these beams is related to the maximum number of instruments +by this command. +Using $m>12$ may require e-\TeX.} +with \keyindex{setmaxinstruments}\verb|{|$m$\verb|}| +within the range $7<m\leq 100$; the corresponding reference number may then be +in the range from 0 to $(m-1)$. +\label{musixmad_setmaxinstruments_ccxviiibeams} +For $128$th beams, use \keyindex{setmaxcxxviiibeams}\verb|{|$m$\verb|}|. +For $256$th notes, which can only appear in beams, see Section~\ref{musixbbm}. + +The ``pitch'' parameter $p$ is a pitch that is three +staff spaces \ital{below} the bottom of the heavy connecting bar (\ital{above} +the bar for a lower beam); in many (but not all) +cases it should be input as the actual pitch of the first note. The slope $s$ +is an integer in the range [$-9,9$]. When multipled +by $5$\%~it gives the actual slope of the heavy bar. Typically a slope of $2$ or $3$ +is okay for ascending scales, and $6$ to $9$ for ascending arpeggios. + +The full set of fixed-slope beam initiation macros is as follows: +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + + \item[\keyindex{ibu}\nps~:]initiates an \ital{upper beam}. + \item[\keyindex{ibl}\nps~:]initiates a \ital{lower beam}. + \item[\keyindex{ibbu}\nps~:]initiates a \ital{double upper beam}. + \item[\keyindex{ibbl}\nps~:]initiates a \ital{double lower beam}. + \item[\keyindex{ibbbu}\nps~:]initiates a \ital{triple upper beam}. + \item[\keyindex{ibbbl}\nps~:]initiates a \ital{triple lower beam}. + \item[\keyindex{ibbbbu}\nps~:]initiates a \ital{quadruple upper beam}. + \item[\keyindex{ibbbbl}\nps~:]initiates a \ital{quadruple lower beam}. +\end{description}\end{quote} + +A semi-automatic beam is initiated with a command that has \ital{four} +parameters, the beam number, the first and last pitches, and the total +horizontal extent in +\verb|\noteskip|s, based on the value in effect at the start. For example, +if you input \verb|\Ibu2gj3|, \musixtex\ will understand that you want to +build an upper beam (beam number $2$) horizontally extending \verb|3\noteskip|, +the first note of which is a \verb|g| and the last note a \verb|j|. +Knowing these parameters it will choose the highest slope number that +corresponds to a slope not more than $(\hbox{\tt j}-\hbox{\tt +g})/(3\keyindex{noteskip})$. The nominal height of the heavy bar is offset the same as +for fixed-slope beams. However, if there is no sufficiently steep beam +slope available, then \musixtex\ will raise (or lower) the starting point. + + Eight such macros are available: \keyindex{Ibu}, \keyindex{Ibbu}, +\keyindex{Ibbbu}, \keyindex{Ibbbbu}, \keyindex{Ibl}, \keyindex{Ibbl}, +\keyindex{Ibbbl} and \keyindex{Ibbbbl}. + +\section{Adding notes to a beam} + +Spacing notes belonging to beams are coded with the macro +\keyindex{qb}\verb|{|$n$\verb|}|\pitchp~where $n$ is +the beam number and $p$ the pitch of the note. \musixtex\ adjusts the +length of the note stem to link to the beam. + +Chord notes within a beam are entered before the main note with the +non-spacing macro \keyindex{zqb}\verb|{|$n$\verb|}|\pitchp. Again, +the stem length will be automatically adjusted as required. + +There are also special macros for semi-automatic beams with +two, three, or four notes: +\keyindex{Dqbu}, \keyindex{Dqbl}, \keyindex{Dqbbu}, \keyindex{Dqbbl}, +\keyindex{Tqbu}, \keyindex{Tqbl}, \keyindex{Tqbbu}, \keyindex{Tqbbl}, +\keyindex{Qqbu}, \keyindex{Qqbl}, \keyindex{Qqbbu} and \keyindex{Qqbbl}. + %\check +For example \verb|\Dqbu gh| is equivalent to \verb|Iqbu1gh\qb1 g\tbu1\qb1 h|, +except that the special macros don't require a beam number. +Their use is illustrated in the following example: + +\medskip +\begin{music}\nostartrule +\parindent0pt\startpiece +\Notes\Dqbu gh\Dqbl jh\en +\notes\Dqbbu fg\Dqbbl hk\en\bar +\Notes\Tqbu ghi\Tqbl mmj\en +\notes\Tqbbu fgj\Tqbbl njh\en\bar +\Notes\Qqbu ghjh\Qqbl jifh\en +\notes\Qqbbu fgge\Qqbbl jhgi\en\setemptybar\endpiece +\end{music} +\noindent This was coded as\footnote{Editor's note: Most music +typesetting books recommend beam slopes that are \ital{less} than +the slope between the starting and ending note; these macros cannot +provide that.}: +\begin{quote}\begin{verbatim} +\Notes\Dqbu gh\Dqbl jh\en +\notes\Dqbbu fg\Dqbbl hk\en\bar +\Notes\Tqbu ghi\Tqbl mmj\en +\notes\Tqbbu fgj\Tqbbl njh\en\bar +\Notes\Qqbu ghjh\Qqbl jifh\en +\notes\Qqbbu fgge\Qqbbl jhgi\en +\end{verbatim}\end{quote} + %\check + +\section{Ending a beam} + The termination of a given +beam must be declared \ital{before} coding the last spacing note +connected to that beam. The macros for doing that are +\keyindex{tbu}\verb|{|$n$\verb|}| for an upper beam and +\keyindex{tbl}\verb|{|$n$\verb|}| for a lower one. These work for +beams of any +multiplicity. So for example an upper triple beam with +32nd notes is initiated by +\verb|\ibbbu|\nps\ but terminated by \verb|\tbu{|$n$\verb|}|. + + Since beams usually finish with a \verb|\qb| for the last note, the +following shortcut macros have been provided: + +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + \item \keyindex{tqb}\enpee~is equivalent to \verb|\tbl{|$n$\verb|}\qb|\enpee + \item \keyindex{tqh}\enpee~is equivalent to \verb|\tbu{|$n$\verb|}\qb|\enpee + \item \keyindex{ztqb}\enpee~is equivalent to \verb|\tbl{|$n$\verb|}\zqb|\enpee~i.e., no spacing afterwards + \item \keyindex{ztqh}\enpee~is equivalent to \verb|\tbu{|$n$\verb|}\zqb|\enpee~i.e., no spacing afterwards +\end{description}\end{quote} +The following +synonyms may be used: +\begin{quote}\begin{tabular}{lcl} +\keyindex{tql} & for & \keyindex{tqb}\\ +\keyindex{tqu} & for & \keyindex{tqh}\\ +\keyindex{ztql} & for & \keyindex{ztqb}\\ +\keyindex{ztqu} & for & \keyindex{ztqh}\\ +\end{tabular}\end{quote} + + +\section{Changing multiplicity after the beam starts} +Multiplicity (the number of heavy bars) can be increased at any position after +the beam starts. The commands are \keyindex{nbbu}\onen~which increases the multiplicity of +upper beam +number $n$ to two starting at the current position, \keyindex{nbbbu}\onen~to +increase it to three, and \keyindex{nbbbbu}\onen~to increase to four. The +commands \keyindex{nbbl}\onen\dots\keyindex{nbbbbl}\onen~do the same +for lower beams. +Thus, the +sequence + +\begin{music}\nostartrule +\startextract +\Notes\ibu0h0\qb0e\nbbu0\qb0e\nbbbu0\qb0e\nbbbbu0\qb0e\tbu0\qb0e\en +\zendextract +\end{music} +\noindent has been coded as +\begin{quote}\begin{verbatim} +\Notes\ibu0h0\qb0e\nbbu0\qb0e\nbbbu0\qb0e\nbbbbu0\qb0e\tbu0\qb0e\en +\end{verbatim}\end{quote} + +To decrease multiplicity to one, use \keyindex{tbbu}\onen~or +\keyindex{tbbl}\onen. To decrease to two or three use +\keyindex{tbbbu}\onen\dots\keyindex{tbbbbl}\onen. For example, + +\begin{music}\nostartrule +\startextract +\Notes\ibbbu0h0\qb0e\tbbbu0\qb0e\tbbu0\qb0e\tbu0\qb0e\en +\zendextract +\end{music} +\noindent has been coded as + +\begin{quote}\begin{verbatim} +\startextract +\Notes\ibbbu0h0\qb0e\tbbbu0\qb0e\tbbu0\qb0e\tbu0\qb0e\en +\zendextract +\end{verbatim}\end{quote} + +Although at first it may seem counterintuitive, +the macros \keyindex{tbbu} and \keyindex{tbbl} and higher order counterparts +may also be invoked when the multiplicity is one. In this case +a second, third, or fourth heavy bar will be opened one note width \ital{before} +the current stem, and immediately closed \ital{at} the stem. +Thus the following sequences + +\begin{music}\nostartrule +\let\extractline\hbox +\hbox to \hsize{% +\hss + \startextract + \Notes\ibu0e0\qbp0e\roff{\tbbu0\tqh0e}\en + \zendextract +\hss\hss + \startextract + \Notes\ibu0e0\qbpp0e\roff{\tbbbu0\tbbu0\tqh0e}\en + \zendextract +\hss} +\end{music} +\noindent are coded +\hspace*{\fill}\begin{minipage}{.4\textwidth}\begin{verbatim} +\Notes\ibu0e0\qbp0e% + \roff{\tbbu0\tqh0e}\en +\end{verbatim}\end{minipage}\hfill +\begin{minipage}{.4\textwidth}\begin{verbatim} +\Notes\ibu0e0\qbpp0e% + \roff{\tbbbu0\tbbu0\tqh0e}\en +\end{verbatim}\end{minipage}\hfill\\[4ex] +The following abbreviations have been provided: +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + \item \keyindex{tqqb}\enpee~is equivalent to \verb|\tbbl{|$n$\verb|}\tqb|\enpee + \item \keyindex{tqqh}\enpee~is equivalent to \verb|\tbbu{|$n$\verb|}\tqh|\enpee + \item \keyindex{tqqqh}\enpee~is equivalent to \verb|\tbbbu{|$n$\verb|}\tqqh|\enpee + \item \keyindex{tqqqb}\enpee~is equivalent to \verb|\tbbbl{|$n$\verb|}\tqqb|\enpee + \item \keyindex{nqqb}\enpee~is equivalent to \verb|\tbbl{|$n$\verb|}\qb|\enpee + \item \keyindex{nqqh}\enpee~is equivalent to \verb|\tbbu{|$n$\verb|}\qb|\enpee + \item \keyindex{nqqqh}\enpee~is equivalent to \verb|\tbbbu{|$n$\verb|}\qb|\enpee + \item \keyindex{nqqqb}\enpee~is equivalent to \verb|\tbbbl{|$n$\verb|}\qb|\enpee +\end{description}\end{quote} +and the following +synonyms may be used: +\begin{quote}\begin{tabular}{lcl} +\keyindex{tqql} & for & \keyindex{tqqb}\\ +\keyindex{tqqu} & for & \keyindex{tqqh}\\ +\keyindex{tqqql} & for & \keyindex{tqqqb}\\ +\keyindex{tqqqu} & for & \keyindex{tqqqh}\\ +\keyindex{nqql} & for & \keyindex{nqqb}\\ +\keyindex{nqqu} & for & \keyindex{nqqh}\\ +\keyindex{nqqql} & for & \keyindex{nqqqb}\\ +\keyindex{nqqqu} & for & \keyindex{nqqqh}\\ +\end{tabular}\end{quote} + +\medskip + +The symmetrical pattern is also possible. For example: + +\begin{music}\nostartrule +\startextract +\Notes\ibbl0j0\roff{\tbbl0}\qb0j\tbl0\qbp0j\en +\zendextract +\end{music} +\noindent has been coded as: +\begin{quote}\begin{verbatim} +\Notes\ibbl0j0\roff{\tbbl0}\qb0j\tbl0\qbp0j\en +\end{verbatim}\end{quote} + +The constructions in this section illustrate some general +properties of +beam initiation and termination commands: To mate properly with the +expected stems, the starting position of the heavy bar(s) (for initiation commands) +and the ending position (for terminations) will be at +different horizontal locations +depending on whether they are for upper or lower beams: The position for +upper beam commands is one note head width to the right of those for +lower beams. In fact this is the \ital{only} difference between upper +and lower termination commands. Both types will operate on whatever kind of +beam is open and has the same beam number. + +Recognizing this principle, in the example just given it was necessary to +shift the double termination to the right by one note head width, using the +command \keyindex{roff}\verb|{|\dots\verb|}|, which does precisely that for +any \musixtex\ macro. + +Here is another, slightly more complicated example which also uses +\verb|\roff|: + +\begin{music}\nostartrule +\startextract +\notes\ibbbu0e0\roff{\tbbbu0}\qb0f\en +\notesp\tbbu0\qbp0f\en +\Notes\tbu0\qb0f\en +\notesp\ibbu0f0\roff{\tbbu0}\qbp0f\en +\Notes\qb0f\en +\notes\tbbbu0\tbbu0\tbu0\qb0f\en +\zendextract +\end{music} +\noindent has been coded as: +\begin{quote}\begin{verbatim} +\notes\ibbbu0e0\roff{\tbbbu0}\qb0f\en +\notesp\tbbu0\qbp0f\en +\Notes\tbu0\qb0f\en +\notesp\ibbu0f0\roff{\tbbu0}\qbp0f\en +\Notes\qb0f\en +\notes\tbbbu0\tbbu0\tbu0\qb0f\en +\end{verbatim}\end{quote} + +\noindent Note that the first beam opening command used a pitch one step +below the note. This makes the stem shorter by one pitch unit, since it is always +the \ital{closest} heavy bar that is separated from the given pitch by +three staff spaces. + +We close this section with an example showing how to +open a beam of one sense, increase multiplicity, then terminate with +opposite sense: + +\begin{music}\nostartrule +\startextract +\Notes\ibl0p0\qb0p\nbbl0\qb0p\nbbbl0\qb0p\tbu0\qb0e\en +\zendextract +\end{music} +\noindent which has been coded as +\begin{quote}\begin{verbatim} +\Notes\ibl0p0\qb0p\nbbl0\qb0p\nbbbl0\qb0p\tbu0\qb0e\en +\end{verbatim}\end{quote} + +One may save some typing by defining personalized +\TeX\ macros to +perform any oft-repeated sequence of commands. For example, +one could define a set of four sixteenths by the macro: + +\verb|\def\qqh#1#2#3#4#5{\ibbl0#2#1\qb#2\qb#3\qb#4\tbl0\qb#5}| + +\noindent where the first argument is the slope and the other four +arguments are the pitches of the four successive sixteenths. + + %\check + \section{Shorthand beam notations for repeated or alternated notes}\index{repeated patterns} +Sometimes you may want to indicate repeated or alternated short notes with open note heads joined +by a beam. Here are examples of how to do that +using the \keyindex{hb} macro: + +\begin{music}\nostartrule +\startextract +\Notes\ibbl0j0\hb0j\tbl0\hb0j\en +\Notes\ibbl0h4\hb0h\tbl0\hb0j\en +\zendextract +\end{music} +\noindent which has been coded as: +\begin{quote}\begin{verbatim} +\Notes\ibbl0j0\hb0j\tbl0\hb0j\en +\Notes\ibbl0h4\hb0h\tbl0\hb0j\en +\end{verbatim}\end{quote}\noindent +A different look could be obtained as follows: + +\begin{music}\nostartrule +\startextract +\notes\ha j\loffset{0.5}{\ibbl1n3}\qsk\tbl1\qsk\ha l\sk\en +\zendextract +\end{music} +\noindent which has been coded as: +\begin{quote}\begin{verbatim} +\notes\ha j\loffset{0.5}{\ibbl1n4}\qsk\tbl1\qsk\ha l\sk\en +\end{verbatim}\end{quote} +It is possible to combine this notation +with a conventional beam, as in + +\begin{music}\nostartrule +\startextract +\notes\ibl0h3\qb0j\loffset1{\ibbbl1m3}\qsk\tbl1\qsk\tql0l\en +\zendextract +\end{music} +\noindent which has been coded as: +\begin{quote}\begin{verbatim} +\notes\ibl0h3\qb0j\loffset1{\ibbbl1m3}\qsk\tbl1\qsk\tql0l\en +\end{verbatim}\end{quote}\noindent +or, for whole notes, to dispense with stems: + +\begin{music}\nostartrule +\startextract +\Notes\loff{\zw j}\ibbl0l4\sk\tbl0\wh l\en +\Notes\ibbu0e4\wh g\tbu0\roff{\wh i}\en +\zendextract +\end{music} +\noindent which has been coded as: +\begin{quote}\begin{verbatim} +\Notes\loff{\zw j}\ibbl0l4\sk\tbl0\wh l\en +\Notes\ibbu0e4\wh g\tbu0\roff{\wh i}\en +\end{verbatim}\end{quote} + +Short ``beams'' centered on note stems (or directly over +or under whole notes) +indicate \emph{tremolos}. Commands that generate tremolo indications are described in Section~\ref{tremolos}. + + +% \begin{music}\nostartrule +%\startextract +%\Notes\ibl0h0\qb0{hhh}\tbl0\qb0h\bsk\bsk\bsk\bsk +% \ibu0j0\qb0{jjj}\tbu0\qb0j\en +%\NOTes\loffset{0.5}{\ibl0j9}\roffset{0.5}{\tbl0}\zhl h% +% \loffset{0.5}{\ibu0g9}\roffset{0.5}{\tbu0}\hu j\en\bar +%\notes\ibbl0i0\qb0{hhh}\tbl0\qb0h\bsk\bsk\bsk\bsk +% \ibbu0i0\qb0{jjj}\tbu0\qb0j% +% \ibbl0i0\qb0{hhh}\tbl0\qb0h\bsk\bsk\bsk\bsk +% \ibbu0i0\qb0{jjj}\tbu0\qb0j\en +%\NOTes\loffset{0.5}{\ibbl0k9}\roffset{0.5}{\tbl0}\zhl h% +% \loffset{0.5}{\ibbu0f9}\roffset{0.5}{\tbu0}\hu j\en +%\zendextract +% \end{music} +% \noindent whose coding (due to Werner {\sc Icking}) is +% +%\begin{quote}\begin{verbatim} +%\Notes\ibl0h0\qb0{hhh}\tbl0\qb0h\bsk\bsk\bsk\bsk +% \ibu0j0\qb0{jjj}\tbu0\qb0j\en +%\NOTes\loffset{0.5}{\ibl0j9}\roffset{0.5}{\tbl0}\zhl h% +% \loffset{0.5}{\ibu0g9}\roffset{0.5}{\tbu0}\hu j\en\bar +%\notes\ibbl0i0\qb0{hhh}\tbl0\qb0h\bsk\bsk\bsk\bsk +% \ibbu0i0\qb0{jjj}\tbu0\qb0j% +% \ibbl0i0\qb0{hhh}\tbl0\qb0h\bsk\bsk\bsk\bsk +% \ibbu0i0\qb0{jjj}\tbu0\qb0j\en +%\NOTes\loffset{0.5}{\ibbl0k9}\roffset{0.5}{\tbl0}\zhl h% +% \loffset{0.5}{\ibbu0f9}\roffset{0.5}{\tbu0}\hu j\en +%\end{verbatim}\end{quote} + + \section{Beams that cross line breaks} + +Although careful typesetting can usually avoid it, occasionally +a beam may need to cross a line break. If so, it must be manually terminated at +the end of one line and continued in the next. This +can be done by shifting beam terminations and initiations +using \keyindex{roff} and/or +\keyindex{loff}, or by inserting a spacing command such as +\keyindex{hsk}. We give an example from {\sc Grieg}'s ``Hochzeit auf +Troldhaugen'':\index{Grieg, E.@{\sc Grieg, E.}}\medskip + +\begin{music} +\parindent0pt +\def\rqs{\lower\Interligne\rlap\qs} +\def\snotes{\vnotes1\elemskip} +\setstaffs1{2} +\generalsignature{2} +\setclef1{\bass} +\interstaff{12} +\startpiece +%%% bar 1 +\addspace\afterruleskip +\snotes|\tinynotesize\ibsluru0n\ibbu0m5\qb0{=m}\tqh0n\en +\qspace +\Notes\zchar{-7}\sPed\loffset{.3}{\fl E}\zq E\qu{_I}% + |\zql g\ibu2l0\busf2\qb2{=m}\en +\Notes|\tubslur0o\qb2{_l}\en +\Notes\loffset{.3}{\fl L}\zq L\ibl0L0\qb0{_b}% + |\ibl1h0\zqb1g\bupz2\qb2l\en +\Notes\zq L\tqb0b|\tbl1\zqb1g\bupz2\tqh2l\en +\NOtes\zq L\ql b|\zql g\qu l\en +\notes\zchar{-7}\sPed\zchar{-7}{\eightit ~~~sempre}% + \zchar{14}{\pp\eightit~sempre}\zq I\ibbu1J0\qb1L|\qs\en +\notes\qs|\zq N\ibbu3d0\qb3{_d}\en +\notes\qb1E|\rqs\en +\notes\qs|\fl e\zq N\rq e\qb3d\en +%%% bar 2 +\bar +\notes\loffset{.3}{\fl I}\zq I\qb1{_L}|\rqs\en +\qspace +\notes\qs|\lfl d\zq d\zq {=f}\qb3N\en +\notes\tqh1{_E}|\rqs\en +\notes\qs|\zq d\zq g\tqh3N\en +\notes\zq I\ibbu0J0\qb0L|\rqs\en +\notes\qs|\zq d\ibbu1d0\qb1N\en +\notes\qb0E|\rqs\en +\notes\qs|\fl e\rq e\zq d\qb1N\en +\notes\zq I\qb0L|\rqs\en +\notes\qs|\zq f\zq d\qb1N\en +\notes\tqh0E|\rqs\en +\notes\qs|\zq g\zq d\tqh1N\en +\notes\zq I\ibbu0J0\qb0L|\rqs\en +\notes\qs|\zq d\ibbu1d0\qb1N\en +\notes\qb0E|\rqs\en +\notes\rlap\qs\hsk\tbu0|\rq e\zq d\zqb1N\hsk\tbu1\en +\endpiece +\end{music} +\noindent The prolongation of the two upper beams at the end is +illustrated in the code fragment +\begin{quote}\begin{verbatim} +\notes\rlap{\qs}\hsk\tbu0|\rq e\zq d\zqb1N\hsk\tbu1\en +\end{verbatim}\end{quote} + %\check + + \section{Beams with notes on several different staves} + +Here's a simple example from {\sc Brahms}'s +Intermezzo Op.~118, provided by +Miguel {\sc Filgueiras}:\index{Brahms, J.@{\sc Brahms, J.}}\medskip + +\begin{music} +\interstaff{12} +\setstaffs1{2} +\setclef1\bass +\generalmeter\allabreve +\startextract +\NOtes\qp\nextstaff\isluru0q\zq{q}\ql{j}\en +\bar +\nspace +\Notes\ibu0L2\qb0{CEJLcL}% + \nextstaff\roff{\zw{l}}\pt{p}\zh{_p}\pt{i}\hl{_i}\en +\Notes\qb0J\itied1a\qb0a\nextstaff\tslur0o\zq{o}\ql{h}\en +\bar +\Notes\ttie1\zh{.L.a}\hl{.e}% + \nextstaff\qb0{chj}\tbl0\qb0l\cl{q}\ds\en +\NOtes\qp\nextstaff\zq{q}\ql{j}\en +\endextract +\end{music} + %\check +\noindent The coding is +\begin{verbatim} +\interstaff{13} +\instrumentnumber{1} +\setstaffs1{2} +\setclef1\bass +\generalmeter\allabreve +\startextract +\NOtes\qp\nextstaff\isluru0q\zq{q}\ql{j}\en +\bar +\nspace +\Notes\ibu0a1\qb0{CEJLcL}% + \nextstaff\roff{\zw{l}}\pt{p}\zh{_p}\pt{i}\hl{_i}\en +\Notes\qb0J\itied1a\qb0a\nextstaff\tslur0o\zq{o}\ql{h}\en +\bar +\Notes\ttie1\zh{.L.a}\hl{.e}% + \nextstaff\qb0{chj}\tbl0\qb0l\cl{q}\ds\en +\NOtes\qp\nextstaff\zq{q}\ql{j}\en +\endextract +\end{verbatim} + +\noindent (This example also shows that there is no problem in extending +a beam across a bar line.) + +The general features that enable this type of coding as well as the +more complex example to follow are + \begin{itemize}\setlength{\itemsep}{0ex} +% \item Commands like \Bslash{\tt ibu}, \Bslash{\tt ibl}, +%\Bslash{\tt Ibu}, and \Bslash{\tt Ibl} \rm +%define beams whose initial vertical position and slope are fixed +%relative +%to the staff where they begin, but notes in other staves can still be +%connected to them using \Bslash{\tt qb}\onen. +% +% \item The commands \keyindex{tbu}\onen\rm~or \keyindex{tbl}\onen\rm~terminate +%beam $n$ at the specified position, but \musixtex\ remembers the beam +%parameters until a new beam with the same number is defined. +%Therefore, even after beam $n$ has been ``finished'' by a \verb|\tbu| or +%\verb|\tbl| command, commands like \Bslash{\tt qb}\enpee\rm~will still +%generate notes connected to the phantom extension of this beam, +%\ital{provided they are issued in a different staff}. If the command +%\verb|\qb|\enpee\rm~were issued on the same staff as the beam after +% the beam had ended, an error would result. +% + \item Commands like {\Bslash\texttt{ibu}}, {\Bslash\texttt{ibl}}, +{\Bslash\texttt{Ibu}}, and {\Bslash\texttt{Ibl}} +define beams whose initial vertical position and slope are fixed +relative +to the staff where they begin, but notes in other staves can still be +connected to them using {\Bslash\texttt{qb}\onen}. + + \item The commands {\keyindex{tbu}\onen} or {\keyindex{tbl}\onen} +terminate +beam $n$ at the specified position, but \musixtex\ remembers the beam +parameters until a new beam with the same number is defined. +Therefore, even after beam $n$ has been ``finished'' by a \verb|\tbu| or +\verb|\tbl| command, commands like {\Bslash{\tt qb}\enpee} will still +generate notes connected to the phantom extension of this beam, +\ital{provided they are issued in a different staff}. If the command +\verb|\qb|\enpee\ were issued on the same staff as the beam after + the beam had ended, an error would result. + + + + + + \item If the beam is initiated on one staff, +notes in a lower staff can be connected to it, but only \ital{after} the beam +has been defined. This may require using the command \keyindex{prevstaff} +to go back one staff, as described in Section~\ref{movingtostaffs}. + + \end{itemize} + + Here is an example: + + \begin{music} + \setstaffs13 + \setclef1{6000} + \startextract + \notesp + \nextstaff\Ibbbu0Af7\prevstaff + \qb0{AEH^JLa}\relax\nextstaff + \qb0{******^c}\tqh0e\relax + |\zq{h^jl}\ql o\en + \notesp + \nextstaff + \Ibbbu0hG6\qb0{hec}\prevstaff + \qb0{***aLJ}\tqh0H\relax\nextstaff + |\zq{h^jl}\ql o\en \nspace + \zendextract + \end{music} + + \noindent which is coded as: + + \begin{quote} + \begin{verbatim} + \setstaffs13 + \setclef1{6000} + \startextract + \notesp + \nextstaff\Ibbbu0Af7\prevstaff + \qb0{AEH^JLa}\relax\nextstaff + \qb0{******^c}\tqh0e\relax + |\zq{h^jl}\ql o\en + \notesp + \nextstaff + \Ibbbu0hG6\qb0{hec}\prevstaff + \qb0{***aLJ}\tqh0H\relax\nextstaff + |\zq{h^jl}\ql o\en \nspace + \zendextract + \end{verbatim} + \end{quote} +In this example we see not only multiple uses of \keyindex{nextstaff} and +\keyindex{prevstaff}, but also the character \verb|*| to make virtual beam notes +(see Section~\ref{CollectiveCoding}). + diff --git a/macros/musixtex/doc/musixdoc/changing.tex b/macros/musixtex/doc/musixdoc/changing.tex new file mode 100644 index 0000000000..24b329a5f2 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/changing.tex @@ -0,0 +1,498 @@ +\chapter{Changing Clefs, Keys and Meters} + +\section{Introduction}\label{contextintro} + +To define clefs, key signatures, or meters at the start of a piece, +or to change one or more of these attributes\footnote{In this section, +\ital{attribute} will refer to any clef, key signature, or meter.}~anywhere +else in a score, +\musixtex\ requires two steps. The first step is to \ital{set} the new values of +the attributes. +Most of the commands for this have the form \verb|\set|...~. They will be +described in the following subsections. + +But this alone will +not cause anything to be changed or printed. The second step is to activate the +change. This is done by issuing one of the +following commands (outside \verb|\notes|$\dots$\verb|\en|): +\verb|\startpiece|, \verb|\startextract|, \verb|\contpiece|, +\verb|\Contpiece|, +\verb|\alaligne|, \verb|\alapage|, \verb|\zalaligne|, \verb|\zalapage|, +\verb|\changecontext|, +\verb|\Changecontext|, \verb|\zchangecontext|, \verb|\changesignature|, +\verb|\changeclefs|, or \verb|\zchangeclefs|. Most of these perform +other functions as well, and some may be used even when no attributes +change. Features unrelated to changing attributes are detailed elsewhere. +The first eleven will activate all pending new attributes. +If more than one type is activated by a single command in this manner, +then regardless of the order +they were set, they will always appear in the following order: clef, key signature, +meter. +The last three commands in the above list obviously activate only +the specific type of attribute referred to in the name of the command. + +The macros \verb|\changecontext|, \verb|\Changecontext|, \verb|\zchangecontext| +will respectively insert a single, double, or invisible bar +line before printing the attributes. + +\section{Key Signatures} + +We've already seen in Section~\ref{whatspecify} how to set key +signatures for all instruments with \keyindex{generalsignature}, or for +specific instruments with \keyindex{setsign}. As just noted, these commands only +prepare for the insertion of the signatures into the score; it is +really \verb|\startpiece| that puts them in place at the beginning of the +score. + +The commands \verb|\generalsignature| and \verb|\setsign| also serve to set +new key signature(s) anywhere in score. The change can then be activated with one of +the eleven general commands listed above, or with \keyindex{changesignature} if +in the middle of a bar. +While neither \verb|\changesignature| nor \verb|\zchangecontext| prints a bar +line, the differences are that the latter increments the bar number counter and +inserts a horizontal space of \verb|\afterruleskip| after the new signature(s). +All of these options will repost signatures that have not been changed. + +Normally, changing a signature from flats to sharps or vice-versa, or +reducing the number of sharps or flats, will produce the appropriate set of +naturals to indicate what has been suppressed. This standard feature can be +temporarily inhibited by the command \keyindex{ignorenats} issued right before +the change-activating command. + +Here is an example showing various possibilities for changing key signatures. +Note the comments between the code lines. + +\begin{quote}\begin{verbatim} +\instrumentnumber2\setstaffs22% +\setclef1{\bass}\generalsignature2% +\startextract +\Notes\qu K&\qu d|\qu e\en +% Signature change in a single instrument with two staves. +% Naturals appear by default, indicating cancelled sharps. +\setsign20\changesignature +\Notes\qu J&\qu d|\qu e\en +% When changing signature in the middle of a bar and no naturals +% are posted, the new signature can be confused with a simple accidental. +\setsign11\ignorenats\changesignature +\Notes\qu M&\qu d|\qu e\en +% New signatures after a double bar line +\generalsignature{-2}\Changecontext% +\Notes\qu K&\qu d|\qu e\en% +\Notes\qu K&\qu d|\qu e\en% +% New signatures after an invisible bar line. Note the +% difference in spacing compared with beat 3 of the prior measure +\generalsignature{1}\zchangecontext% +\Notes\qu K&\qu d|\qu e\en% +\end{verbatim}\end{quote} + +\begin{music} +\instrumentnumber2\setstaffs22% +\setclef1{\bass}\generalsignature2% +\startextract +\Notes\qu K&\qu d|\qu e\en +% Signature changing in a single instrument with 2 staves +% Naturals are allowed to shown there are no more sharps +\setsign20\changesignature +\Notes\qu J&\qu d|\qu e\en +% Signature changing in a single staff without naturals +% if there is no bar line, the signatures are confusing: +% it is not clear if they are for a single note or not +\setsign11\ignorenats\changesignature +\Notes\qu M&\qu d|\qu e\en +% New signatures after a double bar line +\generalsignature{-2}\Changecontext% +\Notes\qu K&\qu d|\qu e\en% +\Notes\qu K&\qu d|\qu e\en% +% New signatures after an invisible bar line +% see the difference in space comparing beat 2 +\generalsignature{1}\zchangecontext% +\Notes\qu K&\qu d|\qu e\en% +\endextract +\end{music} + + +\section{Clefs}\label{treblelowoct}\label{ClefChanges} + +Macros that define clefs have already been discussed in Section~\ref{whatspecify}. By way of review, here are all of the possible clefs +(applied to the lowest staff): +%avrb +\newcommand{\musicintextsign}[1]{\musicintext#1{\notes\en}} + +\begin{center}\vskip-1ex\footnotesize%\small +\begin{tabular}{||c|c|c|c|c||}\hline\hline +&&&&\\ +\verb+\setclef1\treble+&&&\verb+\setclef1\alto+&\\ +\verb+\setclef10+&\verb+\setclef11+&\verb+\setclef12+ +&\verb+\setclef13+&\verb+\setclef14+\\[-2ex]%\hline +\musicintextsign{\treble}&\musicintextsign1&\musicintextsign2 +&\musicintextsign{\alto}&\musicintextsign4\\[3ex]\hline +%\end{tabular} +&&&&\\ +%\begin{tabular}{ccccc} +&\verb+\setclef1\bass+&&\verb+\setclefsymbol1\empty+\footnotemark&\\ +\verb+\setclef15+&\verb+\setclef16+&\verb+\setclef17+ +&\verb+\setclef18+&\verb+\setclef19+\\[-2ex]%\hline +\musicintextsign5&\musicintextsign{\bass}&\musicintextsign7 +&\musicintextsign8&\musicintextsign9\\[3ex]\hline\hline +%This one uses \setclefsymbol1\empty : +%&\musicintextnoclef{\notes\qu h\en}&\musicintextsign9\\[3ex]\hline\hline +\end{tabular} +\footnotetext{Details of the macro {\tt\Bslash setclefsymbol} will be discussed later} +\end{center} +%avre + +Just as with key signatures, these commands only \ital{prepare} for clef changes. +To \ital{activate} them, any of the first eleven commands listed in Section~\ref{contextintro} could be used. However, one should keep in mind that, +according to modern conventions, a clef change at a bar line is posted +\emph{before} the bar line, whereas, for example, \verb|\changecontext|, would post it +\emph{after} the bar line. In part for this reason, we have the special command +\keyindex{changeclefs}. It can be used anywhere outside +\verb+\notes...\en+ to activate a clef change and insert an amount of +horizontal space to accommodate the new clef symbol(s), without printing a +bar line. Sometimes no added +space is required, in which case \keyindex{zchangeclefs} should be used. + +Here are some examples of clef changes: + +\begin{quote}\begin{verbatim} +\instrumentnumber2\setstaffs22% +\setclef1{\bass}\generalsignature2% +\startextract +% Change in one staff only, with added space +\setclef1\treble\changeclefs% +\Notes\qu k&\qu e|\cu{.d}\ccu{e}\en% +% Combined with signature change, also no extra space needed +% twice the same clef in staff 2 - with the help of a blank clef +\setclef28\zchangeclefs\setclef2\treble% +\setclef1\bass\zchangeclefs\setsign1{-2}\setsign2{-2}% +\ignorenats\changesignature% +\Notes\qu K&\cu{de}|\qu e\en% +% clef change before barline +\setclef1\treble\zchangeclefs\bar% +\Notes\qu k&\cu{de}|\qu e\en% +% clef change after barline +\setclef1\bass\bar\changeclefs% +\Notes\qu K&\cu{de}|\qu e\en% +% clef change after barline with changecontext +\setclef1\treble\changecontext% +\Notes\cu k&\cu d|\qu e\en% +% twice the same clef +\setclef18\zchangeclefs\setclef1\treble\changeclefs% +\Notes\cu k&\cu e |\en% +\zendextract +\end{verbatim}\end{quote} +\begin{music} +\instrumentnumber2\setstaffs22% +\setclef1{\bass}\generalsignature2% +\startextract +% Change in one staff only, with added space +\setclef1\treble\changeclefs% +\Notes\qu k&\qu e|\cu{.d}\ccu{e}\en% +% Combined with signature change, also no extra space needed +% twice the same clef in staff 2 - with the help of a blank clef +\setclef28\zchangeclefs\setclef2\treble% +\setclef1\bass\zchangeclefs\setsign1{-2}\setsign2{-2}% +\ignorenats\changesignature% +\Notes\qu K&\cu{de}|\qu e\en% +% clef change before barline +\setclef1\treble\zchangeclefs\bar% +\Notes\qu k&\cu{de}|\qu e\en% +% clef change after barline +\setclef1\bass\bar\changeclefs% +\Notes\qu K&\cu{de}|\qu e\en% +% clef change after barline with changecontext +\setclef1\treble\changecontext% +\Notes\cu k&\cu d|\qu e\en% +% twice the same clef +\setclef18\zchangeclefs\setclef1\treble\changeclefs% +\Notes\cu k&\cu e |\en% +\endextract +\end{music} + +\noindent Of course the examples in the last two bars are contrary +to accepted practice. + +If \keyindex{atnextbar} is being used to center material and new clefs before +the bar line should be +excluded from the ``notes'' region within which material is centered, +you may use the command \keyindex{Changeclefs}, as in the following: + +\begin{music} +\nobarnumbers +\nostartrule +\generalmeter{\meterC} +\startextract% +\NOTEs\en +\def\atnextbar{\znotes\centerHpause{11}\en}% +\setclef1\bass\Changeclefs% +\setleftrepeat% +\generalmeter{\allabreve}% +\changecontext% +\NOTEs\en +\def\atnextbar{\znotes\centerHpause{12}\en}% +\setclef1\treble\Changeclefs% +\setrightrepeat\bar% +\NOTEs\en +\def\atnextbar{\znotes\centerHpause{13}\en}% +\endextract +\end{music}\noindent +which was coded as +\begin{quote} +\begin{verbatim} +\generalmeter{\meterC} +\startextract% +\NOTEs\en +\def\atnextbar{\znotes\centerHpause{11}\en}% +\setclef1\bass\Changeclefs% +\setleftrepeat% +\generalmeter{\allabreve}% +\changecontext% +\NOTEs\en +\def\atnextbar{\znotes\centerHpause{12}\en}% +\setclef1\treble\Changeclefs% +\setrightrepeat\bar% +\NOTEs\en +\def\atnextbar{\znotes\centerHpause{13}\en}% +\endextract +\end{verbatim} +\end{quote} + +Clef changes initiated with the \verb|\setclef| command have several features +in common. When activated after the beginning of the piece, the printed symbol +is smaller than the normal one used at the beginning of the piece. Also, +\musixtex\ automatically adjusts vertical positions of noteheads consistent +with the new clef. + +There is an additional group of macros for setting new clefs which does not share +either of these features. In other words, they will always print full sized symbols, and they +won't change the vertical positions of noteheads from what they would have been +before the new symbol was printed. We could call this process ``clef symbol substitution'', +because all it does is print a different symbol (or no symbol at all) in place of +the underlying clef which was set in the normal way. + +You'll need to use clef symbol substitution if you want to have a so-called +\index{octave clefs}\label{octclef}octave treble clef or octave bass +clef, i.e., one containing a numeral 8 above or +below the normal symbol. The syntax for setting upper +octaviation +is \keyindex{setbassclefsymbol}\onen\keyindex{bassoct}\\ +or \keyindex{settrebleclefsymbol}\onen\keyindex{trebleoct}; for lower octaviation +it is\\ \keyindex{setbassclefsymbol}\onen\keyindex{basslowoct} or +\keyindex{settrebleclefsymbol}\onen\keyindex{treblelowoct}. Because these sequences act to +\ital{replace} normal bass or treble clefs with a different symbol, they +require that the normal clefs be set first. For example + +\noindent\begin{minipage}{80mm} +\begin{music}\nostartrule + \parindent 19mm + \instrumentnumber{4} + \generalmeter{\empty} + \setclef1\bass \setclef2\bass \setclef3\treble \setclef4\treble + \setbassclefsymbol1\basslowoct + \setbassclefsymbol2\bassoct + \settrebleclefsymbol3\treblelowoct + \settrebleclefsymbol4\trebleoct +\startextract +\Notes\qu{`abcdefghi}&\qu{`abcdefghi}&\qu{abcdefghi}&\qu{abcdefghi}&\en +\zendextract +\end{music} +\end{minipage} +\begin{minipage}{50mm} +\begin{verbatim} +\parindent 19mm +\instrumentnumber{4} +\generalmeter{\empty} +\setclef1\bass \setclef2\bass +\setclef3\treble \setclef4\treble +\setbassclefsymbol1\basslowoct +\setbassclefsymbol2\bassoct +\settrebleclefsymbol3\treblelowoct +\settrebleclefsymbol4\trebleoct +\startextract +\Notes\qu{`abcdefghi}&\qu{`abcdefghi}% +&\qu{abcdefghi}&\qu{abcdefghi}&\en +\zendextract +\end{verbatim} +\end{minipage} + +\index{clefs (empty)} +Another application of clef symbol substitution is to cause no clef to be +printed, as for example might be desired in percussion music, This +can be accomplished with \keyindex{setclefsymbol}\onen\verb|\empty|, which +once activated would replace \ital{all} clef symbols in the first (lowest) +staff of instrument $n$ with blanks. + +Normal symbols for those clefs that have been substituted can be restored by +\keyindex{resetclefsymbols}. + +Four other small clef symbols are available: \verb|\smalltrebleoct|, +\verb|\smalltreblelowoct|, \verb|\smallbassoct|, and \verb|\smallbasslowoct|. +They look just like the corresponding normal-sized symbols, and are useful by +clef symbol substitution for clef changes after the beginning of a piece, as +demonstrated in the following example. + +The various clef symbol substitution commands can only be used to substitute for +\texttt{treble}, \texttt{alto}, or \texttt{bass} clefs. + +In the following example, (1) is two normal clef changes. At (2) the clef is first changed +back to treble and then the \verb|\treblelowoct| symbol is substituted by using +\verb|\settrebleclefsymbol|. +When changing the clef away from treble and then back as at (3), the substitution +symbol is still in force. At (4), \verb|\resetclefsymbols| cancels the symbol substitution. +If using \verb|\setclefsymbol| all available clefs are changed to the same symbol, as you can see +in the three clefs after (5) in comparison with (2). These also illustrate the use of the small +octave clef symbol. Obviously the second clef after (5) is +nonsense; \verb|\resetclefsymbols| puts matters in order at (6) and (7). + +\begin{music} +\instrumentnumber1\setclef1\bass +\startpiece +\notes\zchar{-5}{1}\qu H\en\setclef1\treble\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{2}\qu J\en +\setclef1\treble\settrebleclefsymbol1\treblelowoct\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{3}\qu I\en\setclef1\treble\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{4}\qu J\en\resetclefsymbols\setclef1\treble\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\doublebar +\notes\zchar{-5}{5}\qu J\en +\setclef1\treble\setclefsymbol1\smalltreblelowoct\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\qu I\en\setclef1\treble\changeclefs +\notes\zchar{-5}{6}\qu i\en\resetclefsymbols\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{7}\qu J\en\setclef1\treble\changeclefs +\notes\qu i\en +\endpiece +\end{music} + +\noindent This is the code: + +\begin{quote}\begin{verbatim} +\instrumentnumber1\setclef1\bass +\startpiece +\notes\zchar{-5}{1}\qu H\en\setclef1\treble\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{2}\qu J\en +\setclef1\treble\settrebleclefsymbol1\treblelowoct\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{3}\qu I\en\setclef1\treble\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{4}\qu J\en\resetclefsymbols\setclef1\treble\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\doublebar +\notes\zchar{-5}{5}\qu J\en +\setclef1\treble\setclefsymbol1\smalltreblelowoct\changeclefs +\notes\qu i\en\setclef1\bass\changeclefs\bar +\notes\qu I\en\setclef1\treble\changeclefs +\notes\zchar{-5}{6}\qu i\en\resetclefsymbols\setclef1\bass\changeclefs\bar +\notes\zchar{-5}{7}\qu J\en\setclef1\treble\changeclefs +\notes\qu i\en +\endpiece +\end{verbatim}\end{quote} + +\section{Meter changes} + +As mentioned in Section~\ref{generalmeter}, a common \itxem{meter} for all +staves can be specified by \keyindex{generalmeter}\verb|{|$m$\verb|}|, +where $m$ denotes the meter. On the other hand, meter changes in specific +staves are implemented with +\keyindex{setmeter}\onen\verb|{{|$m1$\verb|}{|$m2$\verb|}{|$m3$\verb|}{|$m4$\verb|}}|, +where $n$ is the number of the instrument, $m1$ specifies the meter +of the first (lowest) staff, $m2$ the second staff, and so forth. (Only enter +as many $m$'s as necessary.) + +Since meter changes are meaningful only across bars, there is no special command to +activate a new meter; rather, they are activated with the general commands +\keyindex{changecontext}, etc., listed in Section~\ref{contextintro}. + +The next example shows a few methods to get a meter change, in all staves or +in a single staff. + +\begin{small} +\begin{quote}\begin{verbatim} +\instrumentnumber2\setstaffs22% +\generalmeter{\meterfrac{4}{4}\meterfrac{2}{4}\meterfrac{1}{4}}% +\setclef1{\bass}\generalsignature2% +\startextract +\setmeter1{{\meterfrac{2}{4}}}% +\setmeter2{{\lower2pt\hbox{\meterfrac{\meterlargefont 2}{}}}% +{\meterfrac{3}{4}}}\changecontext +\Notes\qu K&\cu{de}|\qu e\en +% bar 11 +% Meters, clefs, and key signatures. +% All 3 clefs after bar (probably bad form) if no changeclefs +\setmeter1{{\meterfrac{2}{8}}}% +\setmeter2{{\meterfrac{3}{6}}{\meterfrac{3}{8}}}% +\setsign2{-1}% +% How to force showing the bass clef? +\setclef1\bass\setclef2{23}% +\Changecontext +\Notes\qu K&\cu{de}|\qu e\en +% bar 12 +% Meters, clefs, and key signatures, with clef before the bar. +% Maybe not best form if signatures are involved +\setmeter1{{\meterfrac{2}{4}}}% +\setmeter2{{\meterfrac{3}{8}}{\meterfrac{3}{6}}}% +\setsign2{-1}% +\setclef1\treble\zchangeclefs\changecontext +\Notes\qu k&\cu{de}|\qu e\en +\end{verbatim}\end{quote} +\end{small} +\begin{music} +\instrumentnumber2\setstaffs22% +\generalmeter{\meterfrac{4}{4}\meterfrac{2}{4}\meterfrac{1}{4}}% +\setclef1{\bass}\generalsignature2% +\startextract +\setmeter1{{\meterfrac{2}{4}}}% +% How big the '2' must be? +\setmeter2{{\lower2pt\hbox{\meterfrac{\meterlargefont 2}{}}}% +{\meterfrac{3}{4}}}\changecontext +\Notes\qu K&\cu{de}|\qu e\en +% bar 11 +% Meter Clefs and Key Signatures +% all 3 clefs after bar if no changeclefs +\setmeter1{{\meterfrac{2}{8}}}% +\setmeter2{{\meterfrac{3}{6}}{\meterfrac{3}{8}}}% +\setsign2{-1}% +% How to force showing the bass clef? +\setclef1\bass\setclef2{23}% +\Changecontext +\Notes\qu K&\cu{de}|\qu e\en +% bar 12 +% Meter Clefs Keys Signatures all 3 with clef before the bar +% probably not if signatures are involved +\setmeter1{{\meterfrac{2}{4}}}% +\setmeter2{{\meterfrac{3}{8}}{\meterfrac{3}{6}}}% +\setsign2{-1}% +\setclef1\treble\zchangeclefs\changecontext +\Notes\qu k&\cu{de}|\qu e\en +\endextract +\end{music} + +\section{Changes at the end of a system} +It is conventional music-typesetting practice to indicate changes of clef, time signature, +and key signature that apply to the start of a \emph{new} system +also at the end of the previous system, as in the following: + +\begin{music} +\nobarnumbers +\setstaffs12 +\setclef{1}{\bass} +\generalmeter{\meterfrac44} +\generalsignature{+2} +\startextract% +\Notes\wh K|\qa{fghi}\en +\setclef{1}{66}\changeclefs% +\generalmeter{\meterfrac34}% +\generalsignature{-1}% +\Changecontext% +\zendextract% +\generalsignature{-1} +\setclef{1}{66} +\generalmeter{\meterfrac34} +\startextract% +\NOtes\ha{.K}|\qa{Mad}\en% +\bar% +\Notes\ha{.K}|\qa{Mad}\en% +\endextract% +\end{music} diff --git a/macros/musixtex/doc/musixdoc/embedding.tex b/macros/musixtex/doc/musixdoc/embedding.tex new file mode 100644 index 0000000000..519eb93220 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/embedding.tex @@ -0,0 +1,180 @@ +\chapter{Embedding Musical Excerpts in Text Documents} + +Here we discuss the options for including music in text documents. The first +decision is whether or not to use \LaTeX\footnote{We'll assume a user wanting +to embed a musical excerpt in a \LaTeX\ document is already familiar with the +fundamentals of \LaTeX. For more information about it, see for example the manual +\ital{\LaTeX: A Document Preparation System} by Leslie {\sc Lamport}}. +Because \LaTeX\ so effectively simplifies +production of text-based \TeX\ documents, most users take that path, and most of the +descriptions given here will assume that's the case\footnote{Please do not be confused; +while \LaTeX\ is recommended for text-based documents containing musical +excerpts, its use is definitely discouraged for ordinary self-contained musical scores +of any sort.}. + +If for some reason you choose not to use \LaTeX\ for musical excerpts, +the basic approach is simply to set off the musical +parts between \verb|\startpiece| or \verb|\contpiece| and \verb|\stoppiece| or +\verb|\endpiece|, or between \verb|\startextract| and \verb|\zendextract|. But +some details in what follows will also apply without \LaTeX. + +There are two basic approaches to embedding musical excerpts in \LaTeX\ +documents. The first method is to directly include the \musixtex\ code in +the \LaTeX\ source file. That will be the subject of the next subsection. The +other is to create an EPS (encapsulated Postscript) or PDF file containing only the +excerpt, and then ``paste'' it into the \LaTeX\ file. That will be covered in +Section~\ref{embedeps}. + +The advantages of using the direct method are that all of the source code for +all excerpts can be kept in the same file as the text, and that there is no +limit on the length of the excerpt. +The advantage of the EPS/PDF method is that you don't have to burden the \LaTeX\ +source with any of the \musixtex\ paraphernalia. That in turn permits use of +primitive versions of the \TeX\ compiler that may not have the capacity +to handle the direct method (due to the number of registers consumed by \LaTeX\ +and \musixtex). The disadvantages are that you must create and keep +track of a separate \TeX\ and EPS/PDF file for every excerpt, and that the excerpt +must not span any page breaks. On balance, the +direct method is probably to be preferred. + +\section{Directly embedding excerpts in \LaTeX\ documents}\label{excerpts} + +To use the direct method, add \verb|\usepackage{musixtex}| to the preamble. +This will cause the file +\ttxem{musixtex.sty} to be loaded, so naturally you must make that file +available in a place where \TeX\ can find it. That file simply inputs two +other files, \verb|musixtex.tex| and \ttxem{musixltx.tex}, which again must +obviously be available to \TeX. + +Now you are in position to directly embed an excerpt by inserting code at the +appropriate place in the source file. The most common type of excerpt is +one that occupies less than a full line and is to be horizontally centered. In +that case, the extract should begin with the command \keyindex{begin\LBR music\RBR}, +followed by any preliminary commands. Then, instead of \verb|\startpiece|, +use \keyindex{startextract}. Now comes the normal \musixtex\ coding. Finally, +end the extract with \keyindex{endextract} instead of \verb|\endpiece| +or \verb|\stoppiece|, followed by \keyindex{end\LBR music\RBR}. + +To terminate an extract without any bar line, use \keyindex{zendextract} +instead of \verb|\endextract|. +To create a left-justified excerpt, use the sequence +\begin{quote} +\verb|\let\extractline\leftline|. +\end{quote} +If several extracts are to be placed on the same line, you can +redefine \keyindex{extractline} as demonstrated in the following +example\footnote{The macro {\tt\Bslash extractline} is defined once and for all in +{\tt musixtex.tex} as {\tt\Bslash centerline}. You might think that the suggested +coding would permanently redefine {\tt\Bslash extractline}, thereby upsetting the +normal function of {\tt\Bslash startextract ... \Bslash endextract} for subsequent use. +But it doesn't, because any actions within +\keyindex{begin\LBR music\RBR}...\keyindex{end\LBR music\RBR} are local, not +global.}: + +% DAS temp (where is the reference???) +%An example of this is given at \ref{extractline} on page \pageref{extractline}. +% end DAS temp +\begin{quote}\begin{verbatim} +\begin{music}\nostartrule +\let\extractline\hbox +\hbox to \hsize{% +\hss\startextract ... \zendextract\hss% +\hss\startextract ... \zendextract\hss} +\end{music} +\end{verbatim}\end{quote} + +An even shorter type of extract is one that is embedded \ital{within} a line of text. +To insert \musixtex\ symbols within a line of text, you could begin by defining +\keyindex{notesintext} as follows\footnote{provided by Rainer {\sc Dunker}}: + +\begin{quote}\begin{verbatim}\begin{music}\nostartrule +\makeatletter +\def\notesintext#1{% + {\let\extractline\relax + \setlines10\smallmusicsize \nobarnumbers \nostartrule + \staffbotmarg0pt \setclefsymbol1\empty \global\clef@skip0pt + \startextract\addspace{-\afterruleskip}#1\zendextract}} +\makeatother +\end{music}\end{verbatim}\end{quote} + +Then, for example, the code + +\begin{verbatim} +Use \raisebox{0ex}[0ex][0ex]{\notesintext{\notes\rql1\qu2\en}} +not \raisebox{0ex}[0ex][0ex]{\notesintext{\notes\ql2\lqu1\en}} +\end{verbatim} + +\noindent would produce: ``Use \raisebox{0ex}[0ex][0ex]{\notesintext{\notes\rql1\qu2\en}} not +\raisebox{0ex}[0ex][0ex]{\notesintext{\notes\ql2\lqu1\en}}~''. + +\noindent The \verb|\raisebox| voids the vertical space that is introduced by the notes. + +Finally, you may want to insert an extract containing more than one line +of music. This is the easiest of all: between +\verb|\begin{music}| and \verb|\end{music}|, use \ital{exactly} the same +coding you would to make an ordinary score. + +\enlargethispage*{4ex} +The best way to learn how to apply these methods is to study +the source files for this document\footnote{Do note, +however, that {\tt musixdoc.tex} loads a \texttt{musixdoc.sty} package +in its preamble, not just \texttt{musixtex.sty}; the former performs the functions of \texttt{musixtex.sty} +as well as numerous tasks peculiar to this particular document.}. + +%DAS I don't think this section is worth including. + +% \section{Wide music in \LaTeX}\label{musixblx} +% Another difficulty appears with \LaTeX: internal \LaTeX\ macros handle the +%page size in a way which is not supposed to be changed within a given document. +%This means that text horizontal and vertical sizes are somewhat frozen so that +%one can hardly insert pieces of music of page size different from the size +%specified by the \LaTeX{} \itxem{style}. +%Although a \ttxem{musixblx.tex} has been provided, which makes the +%\ital{environment} \verb|bigmusic| available. +%\zkeyindex{begin\LBR bigmusic\RBR} +%The main drawback is an unpredictable behaviour of top and bottom +%printouts, especially page numberings. +% +% If the whole of a document has wide pages, it can be handled with the +%\ttxem{a4wide} style option, or any derivate of it. + +\section{Embedding musical excerpts as PDF or EPS files} +\label{embedeps} +To use this method of including excerpts, you first must create a separate +\musixtex\ input file for each excerpt. Process each such file with +\TeX\ and \verb|musixflx| to generate a \verb|.dvi| file. Generate +a Postscript file from each \verb|.dvi| using \verb|dvips|. Then +convert each Postscript file to a \verb|.pdf| or \verb|.eps| file using +\verb\ps2pdf\ or \verb\ps2eps\; +if you are using Windows, {GSview} can be used for either. Note that +conversion to EPS (Encapsulated Postscript) is possible only for \emph{single-page} Postscript files. + +To set up your \LaTeX\ document for including \verb|.pdf| or \verb|.eps| files, you must post +the command \verb|\usepackage{graphicx}| in the preamble of the +document. Now, you may include each \texttt{sample.pdf} or \texttt{sample.eps} file at the appropriate place +in the {\LaTeX} document with a command +like \keyindex{includegraphics}\verb|{sample}|. If an embedded file is a PDF (rather than an EPS), +the document must be processed with \verb|pdflatex| (rather than \verb|latex|). + +\section{Issues concerning \texorpdfstring{{\Bslash catcodes}}{catcodes}} +\label{catcodeprobs} + +\musixtex\ uses the following symbols differently from plain \TeX: \verb|>|, + \verb|<|, \verb&|&, \verb|&|, \verb|!|, \verb|*|, \verb|.|, and \verb|:|\ .\\ +The symbols are given their special meanings by executing the macro +\keyindex{catcodesmusic}, and are restored to their plain \TeX\ meanings with +\keyindex{endcatcodesmusic}. When setting either a self-contained score or +a musical extract, you normally need not worry +about this at all, because \verb|\startpiece| or \verb|\startextract| executes +\verb|\catcodesmusic| and \verb|\endpiece| or \verb|\endextract| executes +\verb|\endcatcodesmusic|. But there are some special situations where you +might need to use these catcode-modifying macros explicitly. One is if you +were to define a personalized macro outside +\verb|\startpiece ... \endpiece|, but which incorporated any of the +symbols with their \musixtex\ meanings. Another would be if you wished to have +access to facilities enabled by alternate style files such as +{\tt\ixem{french.sty}} which change \keyindex{catcode}s themselves. In +such cases, provided you have input \verb|musixtex.tex|, you can always +invoke \keyindex{catcodesmusic} to set the \keyindex{catcode}s at their +\musixtex\ values, and \keyindex{endcatcodesmusic} to restore them to their +prior values. diff --git a/macros/musixtex/doc/musixdoc/examples.tex b/macros/musixtex/doc/musixdoc/examples.tex new file mode 100644 index 0000000000..d0aeb1e6cd --- /dev/null +++ b/macros/musixtex/doc/musixdoc/examples.tex @@ -0,0 +1,124 @@ +\chapter{\musixtex\ Examples} + +The file \verb|musixdoc.tex|, the source for this manual, contains many useful +examples. In the manual, many examples are accompanied by a display of the code +that produced them, while for a few only an image of the extract is included and you'll +have to look in the \verb|musixdoc| source files to see the coding. + +Other useful examples cannot be embedded in the source, either because they are +meant to be in \TeX, not \LaTeX, or because they are simply too large. For +these the source files also are provided separately. + +When compiling or viewing any of the examples, you should keep in mind that +most DVI previewers and laser printers have +their origin one inch below and one inch to the right of the upper right corner +of the paper, while the musical examples have their upper left +corner just one centimeter to the right and below the top left corner of the page. +Therefore, special parameters may have to be given to the DVI transcription +programs unless special \keyindex{hoffset} and \keyindex{voffset} \TeX\ +commands have been included within the \TeX\ source. + +\section{Small examples} + +\begin{itemize}\setlength{\itemsep}{0ex} + +\item{\tt ossiaexa.tex}~: This is a stand-alone example of the use of ossia, +provided by Olivier Vogel (Section~\ref{ossia} on page \pageref{ossia}). + +\item{\tt 8bitchar.tex}~: Using 8bit characters. + +\end{itemize} + +\section{Full examples} +The small examples above and the longer ones mentioned below are included in +the documentation folder of the \musixtex\ package. +Some of them require +\verb|musixcpt.tex| which makes examples created in +Music\TeX\ compatible with \musixtex. Here we mention a few of +special interest. + +\subsection{Examples mentioned in the manual} + +\begin{itemize}\setlength{\itemsep}{0ex} + \item{\tt avemaria.tex}~: the ``M\'editation'' (alias ``Ave Maria'') by +Charles {\sc Gounod} for organ and violin or voice.\index{Gounod, C.@{\sc Gounod, C.}} +To run this five-page example you'll also need \texttt{avemariax.tex}. +It demonstrates the use of separated bar rules (Section~\ref{avemaria2}) +and the use of staves of different sizes (Section~\ref{avemaria}). +Also, an additional instrument is created for lyrics. This was a common +practice before the \texttt{musixlyr} package was created by Rainer Dunker. + + \item{\tt glorias.tex}~: a local melody for the French version of +\ital{Gloria in excelsis Deo}, a three-page piece demonstrating the use of the hardlyrics +commands (Section~\ref{glorias}). {\tt gloriab.tex} is the same piece, but with organ accompaniment. + +\end{itemize} + +\subsection{Other examples, provided by the authors of \musixtex } + +\begin{itemize}\setlength{\itemsep}{0ex} + + \item{\tt traeumer.tex}~: the famous ``Tr\"aumerei'' by +Robert {\sc Schumann}\index{Schumann, R.@{\sc Schumann, R.}} for piano, in genuine +\musixtex\ but with some +additions to perform ascending bitmapped \itxem{crescendos}. +There are also S-shaped slurs between 2 staves. + + \item{\tt parnasum.tex}~: the first page of ``Doctor gradus ad +Parnassum'' by Claude {\sc Debussy}\index{Debussy, +C.@{\sc Debussy, C.}} for piano. +It contains a rather complex example of a new command \verb+\Special+ +to create staff-jumping doubly beamed notes. +\end{itemize} + +\subsection{Additional documentation} + +\begin{itemize}\setlength{\itemsep}{0ex} + + \item{\tt sottieng}~: Notation mistakes, provided by Jean-Pierre Coulon. + +\end{itemize} + +\section{Compiling \texttt{musixdoc.tex}} + +This manual is an excellent example of a primarily text document with embedded +musical excerpts. For this reason, it is a \LaTeX\ document and must be compiled +with \verb|latex| rather than \verb|etex|. Those wishing to combine text and +musical excerpts should carefully study how it is done here. + +Before compiling or recompiling \verb|musixdoc.tex|, you should remove all the auxiliary +files {\tt musixdoc.[mx1\|\allowbreak mx2\|\allowbreak aux\|\allowbreak toc\|\allowbreak ind\|\allowbreak idx\|\allowbreak ilg\|\allowbreak out]} +if they are present. Then the following command sequence will produce \verb|musixdoc.ps|: +\begin{quote}\begin{verbatim} +latex musixdoc +musixflx musixdoc +latex musixdoc +makeindex musixdoc +latex musixdoc +latex musixdoc +dvips -e0 musixdoc +\end{verbatim}\end{quote} +The initial three steps \verb|latex|\allowbreak$\to$\allowbreak\verb|musixflx|\allowbreak$\to$\allowbreak\verb|latex| build up the basic appearance of the document including musical examples. +The \verb|makeindex| step produces the database for the index. +After that, \verb|latex| must be run at least twice to complete cross referencing. +Finally, \verb|dvips| converts the \verb|.dvi| file into \verb|.ps|. +To produce \verb|musixdoc.pdf|, use \verb|ps2pdf| or the Distiller component of Adobe Acrobat, or open \verb|musixdoc.ps| in \texttt{GSview}, go to +{\tt File\|Convert}, select \verb|pdfwrite| at 600 dpi resolution, and click +\verb|OK|. +Or if you have the \verb|musixtex| script, just run +\begin{quote} +\verb|musixtex -l -x musixdoc| +\end{quote} +where the \verb|-l| option is to use \verb|latex| as the processing engine +and \verb|-x| is to create a new index database. + +%If you use an older version of \LaTeX\ which doesn't automatically +%invoke $\varepsilon$\hbox{-}\nobreak\TeX, you will encounter the +%error ``{\tt !~No room for new \string\count}''. +%This is because \verb|musixdoc.tex| invokes \verb|musixtex.tex|, which together with \LaTeX\ +%requires more storage registers than available in \TeX. +%You may be able get around this by using the command +%\verb|elatex| instead of \verb|latex|; +%however, it is strongly recommended to upgrade your \TeX\ system to a more recent +%version in which \verb|latex| automatically invokes $\varepsilon$\hbox{-}\nobreak\TeX. + diff --git a/macros/musixtex/doc/musixdoc/extensions.tex b/macros/musixtex/doc/musixdoc/extensions.tex new file mode 100644 index 0000000000..7d60a4dbc5 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/extensions.tex @@ -0,0 +1,2192 @@ +\chapter{Extension Library} +All of the following files are invoked by saying \keyindex{input} \ital{filename}. +In some cases, +\verb\musixtex\ must be input \emph{before} the extension, +but most of them are fully compatible with \verb\musixtex.tex\ in that they do not redefine +any existing macros and just provide additional functionality. +In future +versions of \musixtex\ we may very well incorporate many of them directly into +\verb|musixtex.tex|, but for now we leave them separate. + + \section{musixadd}\ixtt{musixadd.tex} +Increases the number of instruments, slurs and beams from six to nine. + + \section{musixadf} +\input musixadf +This file and the associated fonts (by Hiroaki \textsc{Morimoto}) +define some additional and alternative musical accents, as follows. +\begin{description} +\item[small swells, larger sforzatos:] +\ \\\begin{music} +\nostartrule +\startextract +\NOTes + \ccharnote{-8}{\Bslash ulsw}\ulsw l\ql l% + \ccharnote{13}{\Bslash llsw}\llsw f\qu f% +\en\bar +\NOtes + \ccharnote{-8}{\Bslash uSfz}\uSfz l\ql l% + \ccharnote{13}{\Bslash lSfz}\lSfz f\qu f\qsk% +\en +\endextract +\end{music} +\item[breaths:] +\ \\ +\begin{music} +\nostartrule +\startextract +\NOTes + \zcharnote{-8}{\Bslash cuBreath}\cuBreath \qu f% + \zcharnote{13}{\Bslash clBreath}\clBreath \qu f% +\en\bar +\NOtes + \ccharnote{-8}{\Bslash zuBreath}\zuBreath \qu f% + \ccharnote{13}{\Bslash zlBreath}\zlBreath \qu f% +\en +\endextract +\end{music} +\item[coda with serifs, upright segno:] +\ \\ +\begin{music} +\nostartrule +\startextract +\NOTes + \sk + \ccharnote{-4}{\Bslash scoda}\scoda n\sk\sk% + \ccharnote{-4}{\Bslash upsegno}\upsegno n\sk% +\en +\endextract +\end{music} +\end{description} +The following commands will replace the default specified accents by the new ones +defined in \texttt{musixadf.tex}: + \verb|\replacesforzato|, + \verb|\replacecoda|, + \verb|\replacesegno|. + + \section{musixbm} +This file does nothing; it is retained only for compatibility with +\musixtex{} version 1.10 or earlier. +Since version 1.11, \verb|musixtex.tex| itself contains all the functions +of the older \texttt{musixbm}, namely +commands for 128th notes, either with flags or with beams: +\keyindex{ibbbbbu}, +\keyindex{ibbbbbl}, +\keyindex{nbbbbbu}, +\keyindex{nbbbbbl}, +\keyindex{tbbbbbu}, +\keyindex{tbbbbbl}, +\keyindex{Ibbbbbu}, +\keyindex{Ibbbbbl}, +\keyindex{cccccu}, +\keyindex{cccccl}, +\keyindex{ccccca}, +\keyindex{zcccccu} and +\keyindex{zcccccl}. + + + \section{musixbbm}\label{musixbbm} + Provides $256$th notes, but only for use within beams, via the commands +\keyindex{ibbbbbbu}, +\keyindex{ibbbbbbl}, +\keyindex{nbbbbbbu}, +\keyindex{nbbbbbbl}, +\keyindex{tbbbbbbu}, +\keyindex{tbbbbbbl}, +\keyindex{Ibbbbbbu} and +\keyindex{Ibbbbbbl}. + +By default \texttt{musixbbm} provides six $256$th beams with +reference number $0$ to $5$. +You can specify a larger maximum number +directly with \keyindex{setmaxcclvibeams}\verb|{|$m$\verb|}| within the +range\footnote{This may require e-\TeX.} $7\leq m\leq 100$. + +\section{musixcho}\label{song} + Enables certain macros intended for choral music\footnote{Remember +that we now recommend using \texttt{musixlyr} for any except the +simplest lyrics. The extension \texttt{musixcho} is only for those +diehards who choose to ignore this advice}. Provides the following commands: +\keyindex{biglbrace}, \keyindex{bigrbrace}, \keyindex{braceheight}, +\keyindex{Dtx} and \keyindex{Drtx} for two-line text, \keyindex{Ttx} and +\keyindex{Trtx} for three-line text, \keyindex{Qtx} and \keyindex{Qrtx} for +four-line text. To eliminate zigzagging lyrics lines, all multiple line texts +are automatically vertically justified with the macro \keyindex{ChroirStrut}, +defined as \verb|\vphantom{\^Wgjpqy}|. + +The macros \keyindex{tx}\verb|{|$text$\verb|}|, +\keyindex{rtx}\verb|{|$text$\verb|}| cause song text to be left-justified +on the insertion point rather then centered. + \keyindex{hf}\verb|{|$m$\verb|}| sets a text +continuation rule of length $m$ \verb|\noteskip|. + +Consult the source file {\tt musixdoc.tex} to see the coding of the following +example: + +\begin{music} +\ninerm +\parindent9mm +\braceheight5.4\Interligne\relax +%\rightline{Arr.: H.~W.~Eichholz} +\instrumentnumber2 +\generalsignature{-2} +\generalmeter{\meterfrac22} +\setclef1\bass +\relativeaccid +\setinterinstrument1{11\Interligne} +\songtop2 +\songbottom1 +\setname2{\vbox{\hsize\parindent\centerline{Sop}\centerline{Alt}}} +\setname1{\vbox{\hsize\parindent\centerline{Ten}\centerline{Bass}}} +\sepbarrules\nobarnumbers +\beforeruleskip-2pt +\startpiece +%% bar 1 +\znotes&\rlap{\kernm2em\Qrtx 1.|2.|3.|4.*}\en +\NOTes\sslur ILd1\sslur bNu1\zhl I\hu b% + &\Qtx\ixhf{Oh}|No|No|There'll*\issluru0f\sslur dad1\zhup f\hl d\en +\Notes\zhl L\hu N&\Qtx ~|more|more|~be*\hl{^c}\en +\NOtes&\tsslur0g\qu g\en +%%% bar 2 +\bar +\NOtes\zql I\qu b&\Qrtx\thf freedom,|weepin',|moanin',|singin',*\zqu i\ql d\en +\NOTesp\lpt I\zhl I\hup b&\zhup i\hlp d\en +%%% bar 3 +\bar +\nspace +\NOTes\sslur JMd1\sslur bau1\zhl J\hu b% + &\Qtx\ixhf{oh}|no|no|there'll*\issluru0j\sslur edd1\zhup j\hl{^e}\en +\Notes\zhl M\hu a&\Qtx~|more|more|~be*\hl{=e}\en +\NOtes&\tsslur0k\qu k\en +%%% bar 4 +\bar +\NOtes\zql I\qu b&\Qrtx\thf freedom,|weepin',|moanin',|singin',*\zqu j\ql d\en +\NOTesp\lpt I\zhl I\hup b&\zhup i\hlp d\en +%%% bar 5 +\bar +\NOTesp\sslur IJd1\sslur bau1\lpt I\zhl I\hup b% + &\Qtx\ixhf{oh}|no|no|~there'll*\isslurd0f\issluru1j\zhup k\hlp f\en +\NOtes\zql J\qu a&\Qtx~|more|more|~be*\tsslur1f\zqu f\roff{\tsslur0e\ql e}\en +%%% bar 6 +\bar +\NOtes\zql K\qu b&\Qrtx\thf freedom,|weepin',|moanin',|singin',*\zqu i\ql f\en +\NOtes\zql J\qu b&\zqu i\ql e\en +\NOtes\zql I\qu b&\rlap{\kernm1\Internote\bigrbrace}\rtx~~~~over*\zqu i\ql d\en +\NOtes\zql G\qu b&\zqu k\ql f\en +%%% bar 7 +\bar +\nspace +\NOTes\zhl J\hu b\caesura&\tx ~me,*\zhu j\hl{^e}\caesura\en +\Notes\zcl J\cu b&\rtx ~over*\zcu j\cl e\en +\NOtesp\zqlp J\qup b&\zqup k\lpt e\ql e\en +\endpiece +\end{music} + +\section{musixcpt} + +Empowers \musixtex\ to run files created under +Musi\textbf{c}TeX, the predecessor of \musixtex, such as some of the examples +provided by Daniel {\sc Taupin}. It is not needed for any files created +under \musixtex, and is included mainly for historical completeness. + +\section{musixdat} +Enables the command \keyindex{today}, which sets the current date in one of +several possible languages. The language is selected by an optional + preparatory command \verb|\date...|. +The default is \keyindex{dateUSenglish}, but this can changed, either at the +end of \ttxem{musixdat.tex} for a permanant change, or right before issuing +\verb|\today|. Available choices and sample results are summarized below: +\smallskip +\begin{quote}\begin{tabular}{ll}\hline +\verb|\dateUSenglish|&\dateUSenglish\today\\ +\verb|\dateaustrian|&\dateaustrian\today\\ +\verb|\dateenglish|&\dateenglish\today\\ +\verb|\datefrench|&\datefrench\today\\ +\verb|\dategerman|&\dategerman\today\\\hline +\end{tabular}\end{quote} + +\section{musixdbr} +Enables dashed and dotted bar lines (see Section~\ref{musixdbr}). + +\section{musixdia}\label{diam} +Enables notes with diamond-shaped heads as follows: +\begin{itemize}\setlength{\itemsep}{0ex} + \item Solid note heads (\raise.5ex\hbox to .6em{\musixchar37}) are obtained +using the macros + \keyindex{yqu}, \keyindex{yqup}, +\keyindex{yqupp}, \keyindex{yql}, \keyindex{yqlp}, \keyindex{yqlpp}, +\keyindex{yzq}, \keyindex{yzqp}, \keyindex{yzqpp}, \keyindex{yqb}, +\keyindex{ycu}, \keyindex{yccu}, \keyindex{ycccu}, \keyindex{yccccu}, +\keyindex{ycl}, \keyindex{yccl}, \keyindex{ycccl}, \keyindex{yccccl}, +\keyindex{ycup}, \keyindex{ycupp}, \keyindex{yclp}, \keyindex{yclpp}. +(Think of d{\it y}\kern.5pt amond). A solid diamond with no stem is obtained +with \keyindex{ynq} (spacing) or \keyindex{yznq} (non-spacing). + \item Open note heads (\raise.5ex\hbox to .6em{\musixchar38}) are obtained +using the macros +\keyindex{dqu}, \keyindex{dqup}, +\keyindex{dqupp}, \keyindex{dql}, \keyindex{dqlp}, \keyindex{dqlpp}, +\keyindex{dzq}, \keyindex{dzqp}, \keyindex{dzqpp}, \keyindex{dqb}, +\keyindex{dcu}, \keyindex{dccu}, \keyindex{dcccu}, \keyindex{dccccu}, +\keyindex{dcl}, \keyindex{dccl}, \keyindex{dcccl}, \keyindex{dccccl}, +\keyindex{dcup}, \keyindex{dcupp}, \keyindex{dclp}, \keyindex{dclpp}. +(Think of {\it d}\kern.5pt iamond). +An open diamond with no stem is obtained +with \keyindex{dnq} (spacing) or \keyindex{dznq} (non-spacing). + \end{itemize} + +One use of these note heads is for a string part with \itxem{harmonic notes}. +%(see \ref{othernotes}) +% DAS removed description which was misplaced in the samll=notes section 2.18 4/30/06 +For example, + +\begin{music} +\parindent0pt +\generalsignature{-2} +\generalmeter\allabreve +\startextract +\NOTes\dzq o\zh d\hu h\en +\Notes\ibu0k0\zq g\yqb0k\qb0j\zq e\yqb0i\tbu0\qb0j\en +\bar +\NOTes\dzq g\hu k\en +\NOTes\hpause\en +\bar +\NOTes\dzq o\zh d\hl h\en +\Notes\ibl0e0\zq g\yqb0k\qb0j\zq e\yqb0i\tbl0\qb0j\en +\bar +\NOTes\dzq g\hu k\en +\NOTes\hpause\en +\endextract +\end{music} +\noindent was coded as follows: +\begin{quote}\begin{verbatim} +\generalsignature{-2} +\generalmeter\allabreve +\startextract +\NOTes\dzq o\zh d\hu h\en +\Notes\ibu0k0\zq g\yqb0k\qb0j\zq e\yqb0i\tbu0\qb0j\en +\bar +\NOTes\dzq g\hu k\en +\NOTes\hpause\en +\bar +\NOTes\dzq o\zh d\hl h\en +\Notes\ibl0e0\zq g\yqb0k\qb0j\zq e\yqb0i\tbl0\qb0j\en +\bar +\NOTes\dzq g\hu k\en +\NOTes\hpause\en +\endextract +\end{verbatim}\end{quote} + +Another use is for percussion parts. In fact the file \verb|musixdia.tex| +is automatically loaded if you input {\tt musixper.tex} (see Section~\ref{perc}). + +\section{musixec}\label{ecfonts} + This package will replace the \texttt{OT1}-encoded Computer Modern fonts +by \texttt{T1}-encoded EC versions. +Use as follows: +\begin{quote}\begin{verbatim} +\input musixtex +\input musixec +[\input musixsty] +... +\end{verbatim}\end{quote} +For example, + +\begin{music} +\input musixec +é è â ç ü ñ\\ +\end{music} + \noindent may be coded as +\begin{quote} +\begin{verbatim} +\input musixec +é è â ç ü ñ\\ +\end{verbatim} +\end{quote} + + + \section{musixeng} + This package is provided for music typesetters who are allergic to the default +rest names, which are +taken from French, German or Italian. It does not provide new features, only +new command names: +\medskip + \begin{quote}\begin{tabular}{ll}\hline +\ital{original}&\ital{alternate}\\\hline +\keyindex{PAUSe}&\keyindex{Qwr}\\ +\keyindex{PAuse}&\keyindex{Dwr}\\ +\keyindex{liftpause}&\keyindex{liftwr}\\ +\keyindex{pausep}&\keyindex{wrp}\\ +\keyindex{pause}&\keyindex{wr}\\ +\keyindex{lifthpause}&\keyindex{lifthr}\\ +\keyindex{hpausep}&\keyindex{hrp}\\ +\keyindex{hpause}&\keyindex{hr}\\ +\keyindex{qp}&\keyindex{qr}\\ +\keyindex{ds}&\keyindex{er}\\ +\keyindex{qs}&\keyindex{eer}\\ +\keyindex{hs}&\keyindex{eeer}\\ +\keyindex{qqs}&\keyindex{eeeer}\\\hline +\end{tabular}\end{quote} + +\section{musixext} + +This file does nothing; it is retained only for compatibility with +\musixtex{} version 1.17 or earlier. +Since version 1.18, \verb|musixtex.tex| itself contains all the functions +of the older \texttt{musixext}, namely +definitions of +\begin{itemize} +\item +\keyindex{raggedstoppiece}~, which inhibits right-justification of the last +line of a score. +\item +\keyindex{slide}\itbrace{p}\itbrace{x}\itbrace{s}~, which provides a glissando +starting at pitch {\it p} and extending for {\it x} \verb|\internote|s with +slope {\it s} (ranging from $-8$ to $8$). +\end{itemize} + + \section{musixf{}l{}l} + \input musixfll + Enables modification of \ixem{ledger lines}. Ledger lines normally exceed the +width of a note head by $25$ percent in each direction. If the space between +notes is insufficient, the ledger lines of +consecutive notes may meet, creating visual ambiguities. Therefore, +\musixtex{} shortens the +ledger lines if notes are set so close together that the ledger lines may +meet. But because \musixtex{} does not know whether consecutive notes need +ledger lines, this automatic shortening may be superfluous. The extension +file \ttxem{musixfll.tex} allows this feature to be switched off and on. +Upon inputting \verb|musixfll.tex|, the automatic shortening of ledger lines +is switched off. From then on, it may be switched on again using +\keyindex{autoledgerlines} and switched off again using +\keyindex{longledgerlines}. Both macros have global effect. + + The following example shows that narrowly set scales look better with +\keyindex{autoledgerlines} (the default behavior), whereas single notes +requiring ledger lines look better with \keyindex{longledgerlines}. + +\medskip +\begin{music} +\nostartrule +\startextract +\notes\multnoteskip{0.7}\Uptext{autoledgerlines}\autoledgerlines + \ibbbu0b0\qb0{cba`gfg'a}\tbu0\qb0b% + \ibbbl0{''b}0\qb0{abcdedc}\tbl0\qb0b% + \ibbbu0{``b}0\qb0{dad}\tbu0\qb0a% + \ibbbl0{''b}0\qb0{`g'c`g}\tbl0\qb0{'c}\en +\endextract +\medskip +\startextract +\notes\multnoteskip{0.7}\Uptext{longledgerlines}\longledgerlines + \ibbbu0b0\qb0{cba`gfg'a}\tbu0\qb0b% + \ibbbl0{''b}0\qb0{abcdedc}\tbl0\qb0b% + \ibbbu0{``b}0\qb0{dad}\tbu0\qb0a% + \ibbbl0{''b}0\qb0{`g'c`g}\tbl0\qb0{'c}\en +\endextract +\autoledgerlines +\end{music} + + \section{musixgre}\label{gregnotes}\index{gregorian chant} + +% \section{Gregorian chant: staffs and clefs} +Gregorian chant is often coded using four line staffs +(see +%sections \ref{gregorian} and +Section~\ref{stafflinenumber}) and using special notes called +\itxem{neumes} (which are described later in this section). It also requires +special clefs. One way to substitute them for the modern ones is for example +with commands like + +\keyindex{setaltoclefsymbol}\verb|3\gregorianCclef| + +\noindent or + +\keyindex{setbassclefsymbol}\verb|3\gregorianFclef| , + +\noindent which will cause instrument number~$3$ to display the selected gregorian +clef. The standard clefs can be restored for every instrument with +\keyindex{resetclefsymbols}. Note that when using this method you must +specify whether to substitute for the bass or alto clef +symbol (there is no treble clef in gregorian +chant). The reason is that \musixtex\ selects and +raises the F and C clefs differently, according to the arguments of the +\keyindex{setclef} command. Therefore, if one had substituted any F clef +symbol while saying \verb|\setclef1{1000}|, then an F clef would duly appear +on the staff, but it would be set at the position of an alto clef, thus +seriously misleading the musician. + +Another method of clef substitution employs \keyindex{setclefsymbol} (see +Section~ \ref{treblelowoct}), which substitutes the clef given by +the second argument \ital{for all clef symbols} of the instrument given by the first, +regardless of the actual musical meaning of the new clef symbol. This method is +generally appropriate only if you want to change the clef symbol(s) of +an instrument for the whole of the score. + + As an example, the same gregorian scale has been written with a gregorian C +clef on all four lines of the staff: + + \begin{music}\nostartrule + \parindent 19mm + \instrumentnumber{4} + \setname1{1st line} \setname2{2nd line} + \setname3{3rd line} \setname4{4th line} + \setlines1{4}\setlines2{4}\setlines3{4}\setlines4{4} + \sepbarrules + \generalmeter{\empty} + \setclef1{1000} \setclef2{2000} \setclef3{3000} \setclef4{4000} + \setaltoclefsymbol1\gregorianCclef + \setaltoclefsymbol2\gregorianCclef + \setaltoclefsymbol3\gregorianCclef + \setaltoclefsymbol4\gregorianCclef +\startextract +\Notes\squ{abcdefghi}&\squ{abcdefghi}&\squ{abcdefghi}&\squ{abcdefghi}&\en +\zendextract +\end{music} + + The coding was: + \begin{verbatim} + \instrumentnumber{4} + \setname1{1st line} \setname2{2nd line} + \setname3{3rd line} \setname4{4th line} + \setlines1{4}\setlines2{4}\setlines3{4}\setlines4{4} + \sepbarrules + \generalmeter{\empty} + \setclef1{1000} \setclef2{2000} \setclef3{3000} \setclef4{4000} + \setaltoclefsymbol1\gregorianCclef + \setaltoclefsymbol2\gregorianCclef + \setaltoclefsymbol3\gregorianCclef + \setaltoclefsymbol4\gregorianCclef +\startextract +\Notes\squ{abcdefghi}&\squ{abcdefghi}&\squ{abcdefghi}&\squ{abcdefghi}&\en +\zendextract + \end{verbatim} + +All of the special gregorian symbols available in \musixtex\ are described +in the following subsections. + +\subsection{Clefs} + +\begin{itemize}\setlength{\itemsep}{0ex} + \item Gregorian C clef: \raise 2.5pt\hbox to 1cm{\gregorianCclef\hfil}~= + \keyindex{gregorianCclef}, normally activated for instrument $n$ with the +command + \keyindex{setaltoclefsymbol}\itbrace{n}\keyindex{gregorianCclef} +\item Gregorian F clef: \raise 2.5pt\hbox to 1cm{\gregorianFclef\hfil}~= +\keyindex{gregorianFclef}, normally activated with the command +\keyindex{setbassclefsymbol}\itbrace{n}\keyindex{gregorianFclef} + \end{itemize} + + \subsection{Elementary symbols} + + + \begin{itemize}\setlength{\itemsep}{0ex} + + \item Diamond shaped \itxem{punctum} (This has a different shape compared to the +percussion diamond): \raise 2.5pt\hbox{\xgregchar1}~ = +\keyindex{diapunc}\pitchp\ . + \item Square \itxem{punctum}: \raise 2.5pt\hbox{\xgregchar5}~ = +\keyindex{squ}\pitchp\ or \keyindex{punctum}\pitchp\ . + \item Left stemmed \itxem{virga} (not in the 1905 gregorian standard): \raise +2.5pt\hbox{\xgregchar6}~ = \keyindex{lsqu}\pitchp\ . + \item Right stemmed \itxem{virga}: \raise 2.5pt\hbox{\xgregchar7}~ = +\keyindex{rsqu}\pitchp\ or \keyindex{virga}\pitchp\ . + \item \ital{Apostropha}\index{apostropha}: \raise 2.5pt\hbox{\xgregchar3}~ = +\keyindex{apostropha}\pitchp\ . + \item \ital{Oriscus}\index{oriscus}: \raise 2.5pt\hbox{\xgregchar10}~ = +\keyindex{oriscus}\pitchp\ . + + \item \ital{Quilisma}\index{quilisma}: \raise 2.5pt\hbox{\xgregchar125}~ = +\keyindex{quilisma}\pitchp\ . + \item \ital{Punctum auctum} (up)\index{punctum auctum}: \raise +2.5pt\hbox{\xgregchar9}~ = +\keyindex{punctumauctup}\pitchp\ . + \item \ital{Punctum auctum} (down)\index{punctum auctum}: \raise +2.5pt\hbox{\xgregchar8}~ = +\keyindex{punctumauctdown}\pitchp\ . + \item Diamond shaped \ital{punctum auctum} (down)\index{punctum auctum}: +\raise 2.5pt\hbox{\xgregchar2}~ = \keyindex{diapunctumauctdown}\pitchp\ . + \item \ital{Punctum deminutum}\index{punctum deminutum}: \raise +2.5pt\hbox{\xgregchar4}~ = \keyindex{punctumdeminutum}\pitchp\ . + \item \ital{Apostropha aucta}\index{apostropha aucta}: \raise +2.5pt\hbox{\xgregchar11}~ = \keyindex{apostropha aucta}\pitchp\ . + +\end{itemize} + All non-\ital{liquescens} symbols have non-spacing variants, namely +\keyindex{zdiapunc}, \keyindex{zsqu}, \keyindex{zlsqu}, \keyindex{zrsqu}, +\keyindex{zapostropha} and \keyindex{zoriscus}. + +\subsection{Plain complex neumes} +Other \itxem{neumes} can be obtained by combining two or more of these +symbols. Since \itxem{neumes} have a special note head width, an additional +shifting macro is provided, namely \keyindex{groff}. It is similar to +\verb|\roff|, but the offset is smaller. For use with comples neumes, another +shifting macro is provided, namely \keyindex{dgroff}, which causes an +offset twice the offset of \verb|\groff|. + + Since most of these symbols depend on relative pitches of their components, +we cannot provide all possible compact combinations as single symbols. The ones +that are available in \verb|musixgre| are described below. In the following, +$p_1$, $p_2$, $p_3$, and $p_4$ represent pitches specified as usual. Please refer to +the source file \verb|musixtex.tex| if you wish to see the coding of those +examples for which it is not quoted here. + +\def\twop{\itbrace{p_1}\itbrace{p_2}} +\def\threep{\twop\itbrace{p_3}} +\def\fourp{\threep\itbrace{p_4}} + +\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{bivirga}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \bivirga ab\en + \notes \bivirga cc\en + \zendextract + \end{music} + + This example was coded as: + \begin{quote}\begin{verbatim} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \bivirga ab\en + \notes \bivirga cc\en + \zendextract + \end{verbatim}\end{quote} + + \item[\keyindex{trivirga}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \trivirga abc\en + \Notes \trivirga cca\en + \zendextract + \end{music} + + \item[\keyindex{bistropha}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \bistropha ab\en + \notes \bistropha cc\en + \zendextract + \end{music} + + \item[\keyindex{tristropha}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \tristropha abc\en + \Notes \tristropha cca\en + \zendextract + \end{music} + + \item[\keyindex{clivis}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \clivis ba\en + \notes \clivis ca\en + \zendextract + \end{music} + + \item[\keyindex{lclivis}\twop], for example: + + \begin{music}\nostartrule + \setsize1{\Largevalue} + \elemskip 10pt + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \lclivis ba\en + \notes \lclivis ca\en + \zendextract + \end{music} + + \item[\keyindex{podatus}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \podatus ab\en + \notes \podatus ac\en + \notes \podatus cf\en + \zendextract + \end{music} + + \item[\keyindex{podatusinitiodebilis}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \podatusinitiodebilis ab\en + \notes \podatusinitiodebilis ac\en + \notes \podatusinitiodebilis cf\en + \zendextract + \end{music} + + \item[\keyindex{lpodatus}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \lpodatus ab\en + \notes \lpodatus ce\en + \zendextract + \end{music} + + \item[\keyindex{pesquassus}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \pesquassus ab\en + \notes \pesquassus ae\en + \zendextract + \end{music} + + \item[\keyindex{quilismapes}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \quilismapes ab\en + \notes \quilismapes ae\en + \zendextract + \end{music} + + \item[\keyindex{torculus}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \torculus aba\en + \notes \torculus cfd\en + \notes \torculus afc\en + \zendextract + \end{music} + + \item[\keyindex{torculusinitiodebilis}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \torculusinitiodebilis aba\en + \notes \torculusinitiodebilis cfd\en + \notes \torculusinitiodebilis afc\en + \zendextract + \end{music} + + \item[\keyindex{Porrectus}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \Porrectus bab\en + \notes \Porrectus bac\en + \notes \Porrectus bNd\en + \notes \Porrectus bMe\en + \notes \Porrectus bLe\en + \zendextract + \end{music} +\noindent coded: + \begin{quote}\begin{verbatim} + \notes \Porrectus bab\en + \notes \Porrectus bac\en + \notes \Porrectus bNd\en + \notes \Porrectus bMe\en + \notes \Porrectus bLe\en + \end{verbatim}\end{quote} + + \verb|\Porrectus| exists in four different shapes, depending on the +difference between first and second argument. The constraint is that + $$ p_1-4 \leq p_2 \leq p_1-1 $$ otherwise a diagnostic occurs. Note also that +\keyindex{bporrectus} provides the first curved part of the \verb|porrectus| +command, if you should need it. It has two arguments, the starting pitch and the lower +pitch. + + \item[\keyindex{Porrectusflexus}\fourp], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \Porrectusflexus bacN\en + \notes \Porrectusflexus bNdb\en + \notes \Porrectusflexus bMeb\en + \notes \Porrectusflexus bLea\en + \zendextract + \end{music} +\noindent coded: + \begin{quote}\begin{verbatim} + \notes \Porrectusflexus bacN\en + \notes \Porrectusflexus bNdb\en + \notes \Porrectusflexus bMeb\en + \notes \Porrectusflexus bLea\en + \end{verbatim}\end{quote} + + + \item[\keyindex{climacus}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \climacus cbN\en + \Notes \climacus cba\en + \Notes \climacus dbN\en + \zendextract + \end{music} + + \item[\keyindex{climacusresupinus}\fourp], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \climacusresupinus cbNa\en + \Notes \climacusresupinus cbab\en + \Notes \climacusresupinus dbNb\en + \zendextract + \end{music} + + \item[\keyindex{lclimacus}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} +\instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \lclimacus cbN\en + \notes \lclimacus cfd\en + \notes \lclimacus afc\en + \zendextract + \end{music} + + \item[\keyindex{scandicus}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \scandicus abe\en + \notes \scandicus ceg\en + \zendextract + \end{music} + + \item[\keyindex{salicus}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \salicus abe\en + \Notes \salicus ceg\en + \zendextract + \end{music} + + \item[\keyindex{salicusflexus}\fourp], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \salicusflexus abec\en + \Notes \salicusflexus cegd\en + \zendextract + \end{music} + + \item[\keyindex{trigonus}\threep], +%DAS ???????????? +%for example\footnote{The second example is in principle irrelevant, +%but it shows the possibilities, in case of.}: +for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \trigonus aaN\en + \Notes \trigonus cef\en + \zendextract + \end{music} + +\end{description} + +\subsection{Liquescens complex neumes}\index{liquescens neumes} +\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{clivisauctup}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \clivisauctup ba\en + \notes \clivisauctup ca\en + \zendextract + \end{music} + \item[\keyindex{clivisauctdown}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \clivisauctdown ba\en + \notes \clivisauctdown ca\en + \zendextract + \end{music} + \item[\keyindex{podatusauctup}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \podatusauctup ab\en + \notes \podatusauctup ac\en + \notes \podatusauctup cf\en + \zendextract + \end{music} + \item[\keyindex{podatusauctdown}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \podatusauctdown ab\en + \notes \podatusauctdown ac\en + \notes \podatusauctdown cf\en + \zendextract + \end{music} + + \item[\keyindex{pesquassusauctdown}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \pesquassusauctdown ab\en + \notes \pesquassusauctdown ae\en + \zendextract + \end{music} + + \item[\keyindex{quilismapesauctdown}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \quilismapesauctdown ab\en + \notes \quilismapesauctdown ae\en + \zendextract + \end{music} + + \item[\keyindex{torculusauctdown}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \torculusauctdown aba\en + \notes \torculusauctdown cfd\en + \notes \torculusauctdown afc\en + \zendextract + \end{music} + + \item[\keyindex{Porrectusauctdown}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \Porrectusauctdown bac\en + \notes \Porrectusauctdown bNd\en + \notes \Porrectusauctdown bMe\en + \notes \Porrectusauctdown bLe\en + \zendextract + \end{music} + + \item[\keyindex{climacusauctdown}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \climacusauctdown cbN\en + \Notes \climacusauctdown caM\en + \Notes \climacusauctdown aNM\en + \zendextract + \end{music} + + \item[\keyindex{scandicusauctdown}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \scandicusauctdown abe\en + \notes \scandicusauctdown ceg\en + \zendextract + \end{music} + + \item[\keyindex{salicusauctdown}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \salicusauctdown abe\en + \Notes \salicusauctdown ceg\en + \zendextract + \end{music} + + \item[\keyindex{clivisdeminut}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \setsize1{\Largevalue} + \instrumentnumber 1 + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \clivisdeminut ba\en + \notes \clivisdeminut ca\en + \zendextract + \end{music} + + \item[\keyindex{podatusdeminut}\twop], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \podatusdeminut ab\en + \notes \podatusdeminut ac\en + \notes \podatusdeminut cf\en + \zendextract + \end{music} + + \item[\keyindex{torculusdeminut}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \torculusdeminut aba\en + \notes \torculusdeminut cfd\en + \notes \torculusdeminut afc\en + \zendextract + \end{music} + + \item[\keyindex{torculusdebilis}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \torculusdebilis aba\en + \notes \torculusdebilis cfd\en + \notes \torculusdebilis afc\en + \zendextract + \end{music} + + \item[\keyindex{Porrectusdeminut}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \Porrectusdeminut bac\en + \notes \Porrectusdeminut bNd\en + \notes \Porrectusdeminut bMe\en + \notes \Porrectusdeminut bLe\en + \zendextract + \end{music} + + \item[\keyindex{climacusdeminut}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \Notes \climacusdeminut cbN\en + \Notes \climacusdeminut caM\en + \Notes \climacusdeminut aML\en + \zendextract + \end{music} + + \item[\keyindex{scandicusdeminut}\threep], for example: + + \begin{music}\nostartrule + \elemskip 10pt + \instrumentnumber 1 + \setsize1{\Largevalue} + \setstaffs 1 1 + \setlines 1 4 + \setclef 1{3000} + \setaltoclefsymbol 1 \gregorianCclef + \startextract + \notes \scandicusdeminut abe\en + \notes \scandicusdeminut ceg\en + \zendextract + \end{music} +\end{description} + +\section{musixgui}\ixtt{musixgui.tex} Provides macros for +typesetting modern style \itxem{guitar chords}. For example: + +\begin{music} +\hsize130mm +\tenrm +\parindent0pt +\generalmeter{\meterfrac34} +\generalsignature1 +\startbarno0 +\def\txh{-6.5} +\def\tx#1*{\zchar\txh{\lrlap{\kern3\Internote#1}}} +\def\rtx#1*{\zchar\txh{\kern-3\Internote#1}} +\stafftopmarg10\Interligne +\raiseguitar{20} +\nostartrule +\startpiece +\addspace{.5\afterruleskip}% +\NOtes\tx We*\qa d\en +\bar +\NOtes\guitar G{}o-----\gbarre3\gdot25\gdot35\gdot44\tx wish*\qa g\en +\Notes\tx you*\ca g\en +\Notes\tx a*\ca h\en +\Notes\zchar\txh{merry}\ca g\en +\Notes\ca f\en +\bar +\NOtes\guitar C5o-----\gbarre4\gdot26\gdot36\gdot45\rtx christmas,*\qa e\en +\NOtes\qa e\en +\NOtes\guitar {e/H}5o-----\gbarre3\gdot35\gdot45\gdot54\tx we*\qa e\en +\bar +\NOtes\guitar {A$\!^7$}5o-----\gbarre1\gdot23\gdot42\tx wish*\qa h\en +\Notes\tx you*\ca h\en +\Notes\tx a*\ca i\en +\Notes\zchar\txh{merry}\ca h\en +\Notes\ca g\en +\bar +\NOtes\guitar D{}xxo---\gdot42\gdot53\gdot62\rtx christmas,*\qa f\en +\NOtes\qa d\en +\zbar +\NOtes\guitar{D/c}{}xo----\gdot23\gdot42\gdot53\gdot62\tx we*\qa d\en +\bar +\NOtes\guitar{B$^7$}{}xo----\gdot22\gdot31\gdot42\gdot62\tx wish*\qa i\en +\Notes\tx you*\ca i\en +\Notes\tx a*\ca j\en +\Notes\tx ~mer-*\ca i\en +\Notes\tx ry*\ca h\en +\bar +\NOtes\guitar e{}xxo---\gdot32\tx ~christ-*\qa g\en +\NOtes\tx mas*\qa e\en +\Notes\guitar {G/d}{}xxo---\gdot63\tx and*\ca d\en +\Notes\tx a*\ca d\en +\bar +\NOtes\guitar{C$^6$}{}xo----\gdot23\gdot32\gdot42\gdot51\tx ~~hap~-*\qa e\en +\NOtes\tx py*\qa h\en +\NOtes\guitar{D$^7$}{}xo---x\gdot25\gdot34\gdot45\gdot45\gdot53\tx new*\qa f\en +\bar +\NOTes\guitar G{}o-----\gbarre3\gdot25\gdot35\gdot44\tx ~year.*\ha g\en +\setdoublebar\endpiece +\end{music} + +\medskip +The macro \keyindex{guitar} sets the grid, chord name, barre type, +and on-off indicators for the strings. For example, the first +chord in above example was coded as + +\verb|\guitar G{}o-----\gbarre3\gdot25\gdot35\gdot44| + +\noindent where the first argument is the text to be placed above the grid, the +second is empty (relative barre), and the next six characters indicate if the string +is played or not with either \verb|x|, \verb|o| or \verb|-|. The dots are set with +\keyindex{gdot}~$sb$ where the $s$ is the string and $b$ is the barre. The +rule is set with \keyindex{gbarre}~$b$ where $b$ indicates the position of the barre. + +The whole symbol may be vertically shifted with +\keyindex{raiseguitar}\onen, where $n$ is a number +in units of \keyindex{internote}. When using guitar chords, it might be +useful to reserve additional +space above the chord by advancing \keyindex{stafftopmarg} to +something like \verb|stafftopmarg=10\Interligne|. + +For frequently used chords, it might be useful to define your own +macros, e.g. + +\verb|\def\Dmajor{\guitar D{}x-----\gdot42\gdot53\gdot62}%| + +\section{musixhv}\label{helvetica} + + +Replaces the default Computer Modern text fonts by Helvetica (sans serif) fonts; +see Section~\ref{UserFonts}. +Use as follows: +\begin{quote}\begin{verbatim} +\input musixtex +\input musixhv +... +\end{verbatim}\end{quote} + +The usual ``small'' type commands are supported: +\begin{quote} +\begin{tabular}{lr} +\keyindex{tinytype} & 7pt \\ +\keyindex{smalltype} & 8pt \\ +\keyindex{Smalltype} & 9pt \\ +\keyindex{normtype}& 10pt \\ +\keyindex{medtype} & 12pt \\ +\end{tabular} +\end{quote} +For all of these, the following variants are supported: +\begin{quote} +\begin{tabular}{ll} +\verb|\rm| & ``Roman'' (sans serif) \\ +\verb|\bf| & bold \\ +\verb|\it| & ``italic'' (actually oblique) \\ +\verb|\bi| & ``bold-italic'' (actually bold-oblique) \\ +\verb|\sc| & small capitals\\ +\end{tabular} +\end{quote} +The ``big'' type commands are as follows: +\begin{quote} +\begin{tabular}{lr} +\keyindex{bigtype} & 14pt\\ +\keyindex{Bigtype} & 17pt\\ +\keyindex{BIgtype}& 20pt\\ +\keyindex{BIGtype} & 25pt\\ +\end{tabular} +\end{quote} +The default variant for all of these is small-caps; +however, \keyindex{font} commands are defined +for all the usual variants at all of these sizes. +To letter-space a title, use the \verb|\so| +command in the \verb\soul\ package. + + +The following bold-oblique fonts for dynamic marks are defined: +\begin{quote}\begin{tabular}{lr} +\keyindex{ppfftwelve} & 8pt \\ +\keyindex{ppffsixteen} & 10pt\\ +\keyindex{ppfftwenty} & 12pt \\ +\keyindex{ppfftwentyfour} & 14pt \\ +\keyindex{ppfftwentynine} & 17pt \\ +\end{tabular}\end{quote} + + \section{musixlit}\label{litu}\label{otherbars} + Provides a notation style intermediate between gregorian and baroque, for +example + +\makeatletter +\catcodesmusic +%\def\vnotes#1\elemskip{\noteskip#1\@l@mskip \multnoteskip\scal@noteskip +% \not@s} + +%\def\not@s{\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@ +% \ifx\@ne\V@sw \widthtyp@\z@\t@rmskip \let\V@sw\empty \fi} + +\def\double#1{\roffset{1.2}{\advancefalse#1}#1} +\makeatother + + % Don't know if this example correct ??? But looks nice... +\begin{music} +\ninerm +\parindent0pt +\instrumentnumber{2} +\interstaff{11} +\generalsignature2 +\setclefsymbol2\oldGclef +\setstaffs1{2} +\setclef1\bass +\setinterinstrument1{-\Interligne} +\startpiece +\shortbarrules +\addspace\afterruleskip +\hardlyrics{Il nous a sign\'es de son + }\notes\zw d\wh K|\zw f\wh h&\rtx\thelyrics*\Hpause h1\en +\qspace\qspace +\NOTes\zhl N\hu d|\zhl g\hu i&\tx sang*\double{\cnql i}\en +\bar +\hardlyrics{Et nous avons \'e- + }\notes\zw d\wh K|\zw f\wh h&\rtx\thelyrics~-*\Hpause h1\en +\qspace\qspace +\NOTes\zhl M\hu c|\zhl f\hu h&\rtx t\'e*\double{\cnql i}\en +\NOtes\zql L\qu e|\zql b\qu g&\tx ~pro-*\cnqu g\en +\NOtes\zql b\qu d|\zql d\qu f&\tx ~t\'e-*\cnqu f\en +\NOTes\zhl a\hu c|\zhl e\hu h&\tx g\'es.*\double{\cnqu h}\en +\bar +\NOtes\zql M\qu d|\zql d\qu h&\tx ~~Al~-*\cnqu h\en +\NOtes\zql K\qu a|\zql f\qu k&\tx ~~le~-*\cnql k\en +\NOTes\zhl H\hu a|\zhl e\hu j&\tx ~~lu~-*\double{\cnql j}\en +\bar +\NOTEs\zhl K\hu a|\zhl f\hu k&\tx ~~ia !*\cnhl k\en +\sepbarrules +\endpiece + +\startpiece +\interbarrules +\addspace\afterruleskip +\hardlyrics{Il nous a sign\'es de son + }\notes\zw d\wh K|\zw f\wh h&\rtx \thelyrics*\Hlonga h1\en +\qspace\qspace +\NOTes\zhl N\hu d|\zhl g\hu i&\tx sang*\chl i\en +\bar +\hardlyrics{Et nous avons \'e + }\notes\zw d\wh K|\zw f\wh h&\rtx \thelyrics~-*\Hlonga h1\en +\qspace\qspace +\NOTes\zhl M\hu c|\zhl f\hu h&\rtx t\'e*\chl i\en +\NOtes\zql L\qu e|\zql b\qu g&\tx ~pro-*\cqu g\en +\NOtes\zql b\qu d|\zql d\qu f&\tx ~t\'e-*\cqu f\en +\NOTes\zhl a\hu c|\zhl e\hu h&\tx g\'es.*\chu h\en +\bar +\NOtes\zql M\qu d|\zql d\qu h&\tx ~~Al~-*\cqu h\en +\NOtes\zql K\qu a|\zql f\qu k&\tx ~~le~-*\cql k\en +\NOTes\zhl H\hu a|\zhl e\hu j&\tx ~~lu~-*\chl j\en +\bar +\NOTEs\zbreve K\breve a|\zbreve f\breve k&\tx ~~ia !*\zbreve k\en +\sepbarrules +\endpiece +\end{music} +\endcatcodesmusic + + This package provides: + \begin{itemize}\setlength{\itemsep}{0ex} + \item\keyindex{oldGclef} which replaces the ordinary G clef with an old one, +using (for instrument 2 as an example): + \verb|\settrebleclefsymbol2\oldGclef| + + \item\keyindex{cqu} $p$ provides a square-headed quarter note with stem up at +pitch $p$. + + \item\keyindex{cql} $p$ provides a square-headed quarter note with stem down at +pitch $p$. + + \item\keyindex{chu} $p$ provides a square-headed half note with stem up at +pitch $p$. + + \item\keyindex{chl} $p$ provides a square-headed half note with stem down at +pitch $p$. + + \item\keyindex{cqb} $n$ $p$ provides a square-headed beam note for beam $n$ at pitch $p$. + + \item\keyindex{zcqb} $n$ $p$ provides a non-spacing square-headed beam note for beam $n$ at pitch $p$. + + \item\keyindex{cnqu} $p$ and \keyindex{cnql} $p$ provide a stemless square +headed +quarter note at pitch $p$. + + \item\keyindex{cnhu} $p$ and \keyindex{cnhl} $p$ provide a stemless square +headed half note at pitch $p$. + +%\item\keyindex{Hpause} $p$ $n$ provides an arbitrary length pause at pitch +%$p$ and of length $n$ \keyindex{noteskip}. However, in the first of the above +%example, this feature has been used to denote an arbitrary length note rather +%than a rest! + + \item\keyindex{Hlonga} $p$ $n$ provides an arbitrary length note at pitch +$p$ and of length $n$ \keyindex{noteskip}. +This feature has been used to denote an arbitrary length note in the second of +the above examples; +in the first example, \keyindex{Hpause} +was used to denote an arbitrary length note rather +than a rest. + + \item\keyindex{shortbarrules} has been used to provide bar rules shorter than +the staff vertical width. + + \item\keyindex{interbarrules} has been used to provide bars between the +staffs, rather that over them. This is an arbitrary question of taste\ldots + \end{itemize} + + \section{musixlyr} \ixtt{musixlyr.tex} + Enables the recommended method for adding lyrics to a score (see Section~\ref{musixlyr}). + + \section{musixmad} \ixtt{musixmad.tex} Increases the number of +instruments, slurs and beams up to twelve. When using this extension, it is +not necessary to explicitly input \verb|musixadd.tex|. +If you need greater numbers of these elements, see Sections~\ref{musixmad_setmaxgroups}, +\ref{musixmad_setmaxinstruments_ccxviiibeams}, +\ref{musixmad_setmaxoctlines}, +\ref{musixmad_setmaxslurs} and +\ref{musixmad_setmaxtrills}. + + +\section{musixper}\label{perc} + +Provides special symbols intended for percussion parts. Included are a +\ital{drum clef}---comprising two vertical parallel lines---and notes with +various specially shaped heads. The note symbols that are available are as +follows: + + \begin{itemize}\setlength{\itemsep}{0ex} + \item The \raise.5ex\hbox{\musixchar113}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceded by a +``\verb|dc|'' (think of {\it d}iagonal {\it c}ross). +Available are +\keyindex{dcqu}, +\keyindex{dcql}, +\keyindex{dcqb}, +\keyindex{dczq}, +\keyindex{dccu}, +\keyindex{dcccu}, +\keyindex{dccl} and +\keyindex{dcccl}. + + \item The \raise.5ex\hbox{\musixchar112}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceded by a +``\verb|dh|'' +(think of {\it d}iagonal cross {\it h}alf open). +Available are +\keyindex{dhqu}, +\keyindex{dhql}, +\keyindex{dhqb}, +\keyindex{dhzq}, +\keyindex{dhcu}, +\keyindex{dhccu}, +\keyindex{dhcl} and +\keyindex{dhccl}. + + \item The \raise.5ex\hbox{\musixchar111}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceded by a +``\verb|do|'' +(think of {\it d}iagonal cross {\it o}pen). +Available are +\keyindex{doqu}, +\keyindex{doql}, +\keyindex{doqb}, +\keyindex{dozq}, +\keyindex{docu}, +\keyindex{doccu}, +\keyindex{docl} and +\keyindex{doccl}. + + \item The \raise.5ex\hbox{\musixchar114}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceeded by +``\verb|x|'' (e.g.\ for spoken text of songs). +Available are +\keyindex{xqu}, +\keyindex{xql}, +\keyindex{xqb}, +\keyindex{xzq}, +\keyindex{xcu}, +\keyindex{xccu}, +\keyindex{xcl} and +\keyindex{xccl}. + + \item The \raise.5ex\hbox{\musixchar115}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceeded by +``\verb|ox|'' . +Available are +\keyindex{oxqu}, +\keyindex{oxql}, +\keyindex{oxqb}, +\keyindex{oxzq}, +\keyindex{oxcu}, +\keyindex{oxccu}, +\keyindex{oxcl} and +\keyindex{oxccl}. + + \item The \raise.5ex\hbox{\musixchar118}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceeded by +``\verb|ro|'' (think of {\it r}h{\it o}mbus). +Available are +\keyindex{roqu}, +\keyindex{roql}, +\keyindex{roqb}, +\keyindex{rozq}, +\keyindex{rocu}, +\keyindex{roccu}, +\keyindex{rocl} and +\keyindex{roccl}. + + \item The \raise.5ex\hbox{\musixchar116}~{}~symbol which is obtained using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc. macros preceeded by +``\verb|tg|'' (think of {\it t}rian{\it g}le). +Available are +\keyindex{tgqu}, +\keyindex{tgql}, +\keyindex{tgqb}, +\keyindex{tgzq}, +\keyindex{tgcu}, +\keyindex{tgccu}, +\keyindex{tgcl} and +\keyindex{tgccl}. + + \item The \raise.5ex\hbox to 1em{\musixchar117\hfil}~{}~symbol which is obtained +using the +\verb|\qu|, \verb|\qb|, \verb|\cu|, etc.~macros preceeded by +``\verb|k|'' . +Available are +\keyindex{kqu}, +\keyindex{kql}, +\keyindex{kqb}, +\keyindex{kzq}, +\keyindex{kcu}, +\keyindex{kccu}, +\keyindex{kcl} and +\keyindex{kccl}. + \end{itemize} + +The diamond shaped noteheads described in Section~\ref{diam} are also +available, because \verb|musixper.tex| inputs \verb|musixdia.tex|. + +If any of the foregoing notes need to be dotted, you must use the explicit +dotting macros \verb|\pt|, \verb|\ppt|, or \verb|\pppt| as described in +Section~\ref{dots}. + +Since the usage of these note symbols is +not standardized, it would be wise to include in the score a explanation +of which symbol corresponds to which specific percussion instrument. + +A special \itxem{drum clef}---comprising two heavy vertical bars---can +be made to replace the normal clef for the $n$-th intrument by saying +\keyindex{setclefsymbol}\onen\keyindex{drumclef} . +To cause this to appear at the right vertical position, the instrument should +previously have been assigned a treble clef (or not explicitly assigned any +clef, thereby giving it a treble clef by default). + +Percussion music might be written on a staff with either one or five lines. +If there are several different percussions instruments it may be useful to +use a five-line staff with a drum clef, and differentiate the instruments +by the type of the note heads and the apparent +pitch of the note on the staff. Here is an example of the +latter\footnote{provided by Agusti {\sc Mart\'in Domingo}}: + +\medskip +\begin{music} +\generalmeter{\meterfrac44} +\setclefsymbol1\drumclef +\parindent0pt\startpiece +\leftrepeat +\Notes\zql f\rlap\qp\ibu0m0\xqb0{nn}\en +\Notes\kzq d\zql f\zq j\xqb0n\tbu0\xqb0n\en +\Notes\zql f\rlap\qp\ibu0m0\xqb0{nn}\en +\Notes\kzq d\zql f\zq j\xqb0n\tbu0\xqb0n\en +\bar +\Notes\zql f\rlap\qp\ibu0m0\kqb0{nn}\en +\Notes\xzq d\zql f\zq j\kqb0n\tbu0\kqb0n\en +\Notes\zql f\rlap\qp\ibu0m0\kqb0{nn}\en +\Notes\xzq d\zql f\zq j\kqb0n\tbu0\kqb0n\en +\bar +\Notes\zql f\rlap\qp\ibu0m0\oxqb0{nn}\en +\Notes\oxzq d\zql f\zq j\kqb0n\tbu0\oxqb0n\en +\Notes\zql f\rlap\qp\ibu0m0\oxqb0{nn}\en +\Notes\oxzq d\zql f\zq j\kqb0n\tbu0\oxqb0n\en +\setrightrepeat\endpiece +\end{music} +\noindent Its coding is + \begin{quote}\begin{verbatim} +\begin{music} +\instrumentnumber{1} +\generalmeter{\meterfrac44} +\setclefsymbol1\drumclef +\parindent0pt\startpiece +\leftrepeat +\Notes\zql f\rlap\qp\ibu0m0\xqb0{nn}\en +\Notes\kzq d\zql f\zq j\xqb0n\tbu0\xqb0n\en +\Notes\zql f\rlap\qp\ibu0m0\xqb0{nn}\en +\Notes\kzq d\zql f\zq j\xqb0n\tbu0\xqb0n\en +\bar +\Notes\zql f\rlap\qp\ibu0m0\kqb0{nn}\en +\Notes\xzq d\zql f\zq j\kqb0n\tbu0\kqb0n\en +\Notes\zql f\rlap\qp\ibu0m0\kqb0{nn}\en +\Notes\xzq d\zql f\zq j\kqb0n\tbu0\kqb0n\en +\bar +\Notes\zql f\rlap\qp\ibu0m0\oxqb0{nn}\en +\Notes\oxzq d\zql f\zq j\kqb0n\tbu0\oxqb0n\en +\Notes\zql f\rlap\qp\ibu0m0\oxqb0{nn}\en +\Notes\oxzq d\zql f\zq j\kqb0n\tbu0\oxqb0n\en +\setrightrepeat\endpiece +\end{music} + \end{verbatim}\end{quote} + +Here is an example of a single-line percussion staff using +diamond-shaped note heads: + +\begin{music} +\parindent 19mm +\instrumentnumber{3} +\setname1{keyboard} \setname2{drum} \setname3{monks} +\setlines2{1} +\setlines3{4} +\setinterinstrument1{-2\Interligne}% less vertical space above +\setinterinstrument2{-2\Interligne}% and below the percussion +\sepbarrules +\setsign1{-1} % one flat at keyboard +\generalmeter{\meterfrac24} +\setmeter3\empty +\setclef3\alto +\setclef1\bass +\setstaffs12 % 2 staffs at keyboard +\setclefsymbol3\gregorianCclef % gregorian C clef at instrument 3 +\setclefsymbol2\drumclef % cancel G clef at instrument 2 +\startextract +\Notes\hu F|\zh c\hu h&\dnq4&\squ{acd}\en\bar +\NOtes\qu I|\zq N\qu d&\qp&\diapunc f\en +\NOtes\qu J|\zq a\qu e&\ynq4&\diapunc e\en\bar +\notes\hu G|\zh b\hu d&\dnq4&\zsqu d\rsqu g\squ{hgh}\en +\endextract +\end{music} +\noindent which is coded as follows: + +\begin{verbatim} +\parindent 19mm +\instrumentnumber{3} +\setname1{keyboard} \setname2{drum} \setname3{monks} +\setlines2{1} +\setlines3{4} +\setinterinstrument1{-2\Interligne}% less vertical space above +\setinterinstrument2{-2\Interligne}% and below the percussion +\sepbarrules +\setsign1{-1} % one flat at keyboard +\generalmeter{\meterfrac24} +\setmeter3{\empty} +\setclef3{\alto} +\setclef1{\bass} +\setstaffs1{2} % 2 staffs at keyboard +\setclefsymbol3{\gregorianCclef} % gregorian C clef at instrument 3 +\setclefsymbol2{\drumclef} % cancel G clef at instrument 2 +\startextract +\end{verbatim} + +% (DAS) Sorry, guys, I couldn't figure out how to get the |'s to work in this +% verbatim. +% +\vskip-11pt +\def\Vert{{\tt\char'174}} +\noindent\verb|\Notes\hu F|\Vert\verb|\zh c\hu h&\dnq4&\squ{acd}\en\bar|\\ +\verb|\NOtes\qu I|\Vert\verb|\zq N\qu d&\qp&\diapunc f\en|\\ +\verb|\NOtes\qu J|\Vert\verb|\zq a\qu e&\ynq4&\diapunc f\en\bar|\\ +\verb|\notes\hu G|\Vert\verb|\zh b\hu d&\dnq4&\zsqu d\rsqu g\squ{hgh}\en|\\ +\verb|\endextract| + + \section{musixplt}\index{musixplt@{\tt musixplt.tex}}\label{palatino} +Replaces the default Computer Modern text fonts by Palatino fonts; +see Section~\ref{UserFonts}. +Use as follows: +\begin{quote}\begin{verbatim} +\input musixtex +\input musixplt +... +\end{verbatim}\end{quote} + +The usual ``small'' type commands are supported: +\begin{quote} +\begin{tabular}{lr} +\keyindex{tinytype} & 7pt \\ +\keyindex{smalltype} & 8pt \\ +\keyindex{Smalltype} & 9pt \\ +\keyindex{normtype}& 10pt \\ +\keyindex{medtype} & 12pt \\ +\end{tabular} +\end{quote} +For all of these, the following variants are supported: +\begin{quote} +\begin{tabular}{ll} +\verb|\rm| & Roman \\ +\verb|\bf| & bold \\ +\verb|\it| & italic \\ +\verb|\bi| & bold italic \\ +\verb|\sc| & small capitals (and old-style figures)\\ +\end{tabular} +\end{quote} +The ``big'' type commands are as follows: +\begin{quote} +\begin{tabular}{lr} +\keyindex{bigtype} & 14pt\\ +\keyindex{Bigtype} & 17pt\\ +\keyindex{BIgtype}& 20pt\\ +\keyindex{BIGtype} & 25pt\\ +\end{tabular} +\end{quote} +The default variant for the ``small'' types is Roman and for +the ``big'' ones, small-caps; +however, \keyindex{font} commands are defined +for all the usual variants at all of these sizes. +To letter-space a title, use the \verb|\so| +command in the \verb\soul\ package. + + +The following bold-italic fonts for dynamic marks are defined: +\begin{quote}\begin{tabular}{lr} +\keyindex{ppfftwelve} & 8pt \\ +\keyindex{ppffsixteen} & 10pt\\ +\keyindex{ppfftwenty} & 12pt \\ +\keyindex{ppfftwentyfour} & 14pt \\ +\keyindex{ppfftwentynine} & 17pt \\ +\end{tabular}\end{quote} + + \section{musixpoi} + Adds definitions of less common singly and doubly dotted notes. +Available are +\keyindex{ccup}, +\keyindex{zccup}, +\keyindex{cclp}, +\keyindex{zcclp}, +\keyindex{ccupp}, +\keyindex{zccupp}, +\keyindex{cclpp}, +\keyindex{zcclpp}, +\keyindex{cccup}, +\keyindex{zcccup}, +\keyindex{ccclp}, +\keyindex{zccclp}, +\keyindex{cccupp}, +\keyindex{zcccupp}, +\keyindex{ccclpp}, +\keyindex{zccclpp}, +\keyindex{ccccup}, +\keyindex{zccccup}, +\keyindex{cccclp}, +\keyindex{zcccclp}, +\keyindex{ccccupp}, +\keyindex{zccccupp}, +\keyindex{cccclpp} and +\keyindex{zcccclpp}. + + \section{musixppff}\label{musixppff}\index{musixppff@{\tt musixppff.tex}} + +This replaces the default definitions used for dynamic marks to use a ``mini-font'' +\verb\xppff10\ designed by Hiroaki \textsc{Morimoto}. It is used as follows: + +\begin{quote}\begin{verbatim} +\input musixtex +\input musixppff +... +\end{verbatim}\end{quote} +\noindent The new dynamic marks are as follows: +\font\xppff=xppff10 +\begin{quote} +\xppff +pppp\ ppp\ pp\ p\ mp\ mf\ f\ fp\ sf\ ff\ fff\ ffff\ sfz\ sfzp +\end{quote} +Note that the \verb|xppff10| font has defined glyphs only for the following five characters: f, m, p, s and~z; +use \keyindex{ppff} etc.\@ +for other bold-italic text in music. + + \section{musixps}\label{musixps}\index{musixps@{\tt musixps.tex}} + Activates type K Postscript slurs, ties, and hairpins; see Chapter~\ref{PostscriptSlurs}. +Use as follows: +\begin{quote}\begin{verbatim} +\input musixtex +\input musixps +... +\end{verbatim}\end{quote} + + \section{musixstr}\label{musixstr}\index{musixstr@{\tt musixstr.tex}} + Provides bowing and other symbols for \itxem{string instruments}\footnote{provided +by Werner {\sc Icking}}. The symbol can be posted at the desired position using + \verb|\zcharnote|\pitchp\verb|{|$command$\verb|}|. The available symbols and +their meanings are as follows: + +{\input musixstr +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + + \item[\hbox to 1em{\AB}~: \keyindex{AB} or \keyindex{downbow}] down-bow + + \item[\hbox to 1em{\AUF}~: \keyindex{AUF} or \keyindex{upbow}] up-bow + + \item[\hbox to 1em{\SP}~: \keyindex{SP}] at the top of bow + + \item[\hbox to 1em{\FR}~: \keyindex{FR}] at the nut of bow + + \item[\GB\ or \Gb~: \keyindex{GB} or \keyindex{Gb}] whole bow + + \item[\UH\ or \Uh~: \keyindex{UH} or \keyindex{Uh}] lower half of bow + + \item[\OH\ or \Oh~: \keyindex{OH} or \keyindex{Oh}] upper half of bow + + \item[\MI\ or \Mi~: \keyindex{MI} or \keyindex{Mi}] middle of bow + + \item[\UD\ or \Ud~: \keyindex{UD} or \keyindex{Ud}] lower third of bow + + \item[\OD\ or \Od~: \keyindex{OD} or \keyindex{Od}] upper third of bow + + \item[\Pizz~: \keyindex{Pizz}] left hand pizzicato or trill + + \end{description}\end{quote} + } + + + %\check + \section{musixsty}\index{musixsty@{\tt musixsty.tex}}\label{musixsty} + + Provides certain text-handling facilities for titles, footnotes, and other +items not related to lyrics. It should not be used with \LaTeX. It includes + \begin{itemize}\setlength{\itemsep}{0ex} + \item definitions of \keyindex{hsize}, \keyindex{vsize}, +\keyindex{hoffset}, \keyindex{voffset} suitable for A$4$ paper; those using +other sizes may wish to modify it once and for all; + \item a \keyindex{rectoverso}\verb|{|\emph{dimension}\verb|}| command to set up even/odd-page + asymmetric margins; + \item a set of text size commands: + + \begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{eightpoint}] which sets the usual \keyindex{rm}, +\keyindex{bf}, \keyindex{sl}, \keyindex{it} commands to $8$ point font size; + \item[\keyindex{tenpoint}] which sets the usual \keyindex{rm}, +\keyindex{bf}, \keyindex{sl}, \keyindex{it} commands to $10$ point font size; + \item[\keyindex{twlpoint}] (or \keyindex{twelvepoint}) to get $12$ point font size; + \item[\keyindex{frtpoint}] to get $14.4$ point font size; + \item[\keyindex{svtpoint}] to get $17.28$ point font size; + \item[\keyindex{twtypoint}] to get $20.74$ point font size; + \item[\keyindex{twfvpoint}] to get $24.88$ point font size; + \end{description} + \item commands for creating title-page headings: + \begin{itemize}\setlength{\itemsep}{0ex} \item \keyindex{author} or +\keyindex{fullauthor} to be put at the right of the first page, below the +title of the piece; the calling sequence is, for example + + \verb| \author{Daniel TAUPIN\\organiste \`a Gif-sur-Yvette}| + + \noindent where the \verb|\\| causes the author's name to be displayed on +two lines; + + \item \keyindex{shortauthor} to be put at the bottom of each page; + \item \keyindex{fulltitle} which is the main title of the piece; + \item \keyindex{subtitle} is displayed below the main title of the piece; + \item \keyindex{shorttitle} or \keyindex{title} + which is the title repeated at the bottom of each page; + \item \keyindex{othermention} which is displayed on the left of the page, +vertically aligned with author's name. It may contain \verb|\\| to display it on +several lines; + \item \keyindex{headline} which displays the argument at the top of the title page (use + \verb|\hss| after or before the argument text or both to left-align or + right-align or center the text); + \item \keyindex{maketitle} which displays all the previous stuff; + \end{itemize} + + \item commands for making \itxem{footnotes}: + \begin{itemize}\setlength{\itemsep}{0ex} + \item The normal Plain-\TeX\ \keyindex{footnote} command, which has two +arguments---not just one as in \LaTeX\protect\index{LATEX@\LaTeX}---namely +the label of the footnote, which can be any sequence of characters, and +the text of the footnote. This command does not work inside +boxes, so it cannot be issued within music; + + \item The \keyindex{Footnote} command, which counts the footnotes and uses a +number as the label of the footnote (equivalent to \LaTeX's \verb|\footnote| +command). The same restriction as with \verb|\footnote| applies concerning +its use within the music coding; + + \item The \keyindex{vfootnote} command, taken from the Plain-\TeX, which +places a footnote at the bottom of the current page, but does not put +the footnote label at the place the command is entered in the main text. This +also may not be used within music, but if a footnote is needed whose reference +lies inside the music, it can be entered in two steps: + \begin{enumerate} + \item manually insert the reference inside the music, using e.g., \verb|zcharnote|; + \item post the footnote itself with \verb|\vfootnote| outside the music, +either before \keyindex{startpiece} or between \keyindex{stoppiece} and +\keyindex{contpiece} or equivalent commands. + \end{enumerate} + + \end{itemize} + + \end{itemize} + + \section{musixtmr}\index{musixtmr@{\tt musixtmr.tex}}\label{times} + Replaces the default Computer Modern text fonts by Times fonts; + see Section~\ref{UserFonts}. +Use as follows: +\begin{quote}\begin{verbatim} +\input musixtex +\input musixtmr +... +\end{verbatim}\end{quote} + +The usual ``small'' type commands are supported: +\begin{quote} +\begin{tabular}{lr} +\keyindex{tinytype} & $7$pt \\ +\keyindex{smalltype} & $8$pt \\ +\keyindex{Smalltype} & $9$pt \\ +\keyindex{normtype}& $10$pt \\ +\keyindex{medtype} & $12$pt \\ +\end{tabular} +\end{quote} +For all of these, the following variants are supported: +\begin{quote} +\begin{tabular}{ll} +\verb|\rm| & Roman \\ +\verb|\bf| & bold \\ +\verb|\it| & italic \\ +\verb|\bi| & bold italic \\ +\verb|\sc| & small capitals \\ +\end{tabular} +\end{quote} +The ``big'' type commands are as follows: +\begin{quote} +\begin{tabular}{lr} +\keyindex{bigtype} & $14$pt\\ +\keyindex{Bigtype} & $17$pt\\ +\keyindex{BIgtype}& $20$pt\\ +\keyindex{BIGtype} & $25$pt\\ +\end{tabular} +\end{quote} +The default variant for all of them is Roman; +however, \keyindex{font} commands are defined +for all the usual variants at all of these sizes. +To letter-space a title, use the \verb|\so| +command in the \verb\soul\ package. + + +The following bold-italic fonts for dynamic marks are defined: +\begin{quote}\begin{tabular}{lr} +\keyindex{ppfftwelve} & 8pt \\ +\keyindex{ppffsixteen} & 10pt\\ +\keyindex{ppfftwenty} & 12pt \\ +\keyindex{ppfftwentyfour} & 14pt \\ +\keyindex{ppfftwentynine} & 17pt \\ +\end{tabular}\end{quote} + +\section{musixtnt}\label{musixtnt} +This package (tnt = Transform Notes) provides a macro \keyindex{TransformNotes} which makes +possible several ``transformations'' of the effect of notes commands such as \keyindex{notes}. +The \verb\musixtnt\ package is distributed separately from \verb\musixtex\. + +In general the effect of \verb|\TransformNotes{|\textit{input}\verb|}{|\textit{output}\verb|}| +is that subsequent notes commands in the source will expect their arguments +to match the \textit{input} pattern but +the notes will be typeset according to the \textit{output} pattern. + +For example, +\begin{verbatim} + \TransformNotes{#2}{#2} +\end{verbatim} +would be appropriate for a four-instrument score (arguments \verb|#2|, \verb|#3|, \verb|#4|, and \verb|#5|, separated by three +\verb\&\s, but the third instrument (\verb|#4|) will be discarded. + +The instrument/staff numbers in the first argument must start at $2$ and increase +consecutively, using \verb|&| (or \| for multi-staff instruments) as a separator. +The reason that the segment identifiers start at $2$ is that the first argument for \keyindex{vnotes} +is a spacing parameter. + +It is +essential that every \verb|\znotes|, \verb|\notes|, \verb|\Notes|, \verb|\NOtes|, etc.\@ command in +the score match the pattern of the first argument to \keyindex{TransformNotes} exactly; for example, +too few (or too many) +note segments will result in unintentionally discarded material and possibly compilation failure. +Similarly, it is not possible to use \keyindex{nextinstrument}, \keyindex{nextstaff}, \keyindex{selectinstrument} or \keyindex{selectstaff}, or to hide the \verb|&| (or \|) tokens inside +a user-defined macro. +An auxiliary program \verb|msxlint| distributed in the \verb\musixtnt\ package can be used to detect such incompatibilities. + +\keyindex{TransformNotes} may be used anywhere between \keyindex{startpiece} +and the command that ends the piece. + +\subsection{Extracting single-instrument parts from multi-instrument scores} + +To extract +a single-instrument part from a (copy of a) multi-instrument \musixtex\ score: +\begin{itemize} +\item Set \verb|\nbinstrument| to 1; for example, with command \verb|\instrumentnumber1|. +\item Use \keyindex{TransformNotes} to discard all but one of the note segments in notes +commands. +For example, the following line placed after +\verb|\startpiece| (but before any note commands) would be appropriate for a +four-instrument score and will result in a single-instrument part for the second of +these: +\begin{verbatim} + \TransformNotes{#2}{#3}% +\end{verbatim} +\end{itemize} +Caveats: +\begin{itemize} +\item +Some additional revisions to the source for the part might be necessary: +\begin{itemize} +\item adjusting \verb|\setname|, \verb|\setclef|, \verb|\setsign|, +\verb|\setmeter| and \verb|\setstaffs| commands, as necessary; see +Section~\ref{CodingRules} for coding techniques that will make this easier. + +\item ensuring that tempo and roadmap markings (\textbf{D.C.}, \textbf{Fine}, etc.) are in + the appropriate instrument segment; +\end{itemize} +\item +When the extracted part score is compiled and viewed, it may be seen +that horizontal-spacing commands designed for \emph{multiple} instruments can produce bad +spacing when used for a \emph{single} instrument. Bad spacing can be corrected manually but +this is very tedious; an auxiliary program called \verb\autosp\ +can be used to automate this process; see Section~\ref{autosp}. +\end{itemize} + +\subsection{Other applications} + +The \keyindex{TransformNotes} macro may be used for other purposes. Here are some examples: +\begin{list}{}{}\item + \verb|\TransformNotes{#2}{#2&\transpose+7#3}%| +\end{list} +will begin transposing\index{transpose@{\Bslash transpose}} just the second instrument (argument \verb|#3|). +\begin{list}{}{}\item + \verb|\TransformNotes{#2|\|\verb|#3}{#2|\|\verb|#3&\tinynotesize#4}%| +\end{list} +will begin typesetting the notes of the second instrument (\verb|#4|) in tiny size. +\begin{list}{}{}\item + \verb|\TransformNotes{#2}{#3}%| +\end{list} +will switch the order of the two instruments. +\begin{list}{}{}\item + \verb|\TransformNotes{#2}{#2}%| +\end{list} +will restore normal two-instrument processing. + + +The \texttt{musixtnt} implementation of \keyindex{TransformNotes} is not compatible with the +\texttt{musixlyr} extension +package for lyrics described in Section~\ref{musixlyr}. For extracting or omitting parts +in scores with lyrics, one may either use the +\texttt{autosp}\index{autosp@{\tt autosp}} preprocessor discussed in Section~\ref{autosp}, which provides +an alternative implementation of \keyindex{TransformNotes}, +or the techniques described in Chapter~\ref{parts}. + + \section{musixtri}\index{musixtri@{\tt musixtri.tex}} +Provides triply dotted note symbols. +Available are: +\keyindex{lpppt}, +\keyindex{whppp}, +\keyindex{zwppp}, +\keyindex{huppp}, +\keyindex{hlppp}, +\keyindex{zhppp}, +\keyindex{zhuppp}, +\keyindex{zhlppp}, +\keyindex{quppp}, +\keyindex{qlppp}, +\keyindex{zquppp}, +\keyindex{zqlppp}, +\keyindex{zqppp}, +\keyindex{cuppp}, +\keyindex{zcuppp}, +\keyindex{clppp}, +\keyindex{zclppp}, +\keyindex{qbppp} and +\keyindex{zqbppp}. + + +\section{tuplet} + +This file does nothing; it is provided for compatibility with +\musixtex{} version 1.20 or earlier and legacy scores. +Since version 1.21, \verb|musixtex.tex| itself contains all the functions +of the older \texttt{tuplet.tex}, namely +definitions of +\begin{itemize} +\item \keyindex{tuplettxt} +\item \keyindex{uptuplet} +\item \keyindex{downtuplet} +\end{itemize} +See Section~\ref{tuplet}. diff --git a/macros/musixtex/doc/musixdoc/extracting.tex b/macros/musixtex/doc/musixdoc/extracting.tex new file mode 100644 index 0000000000..2039733fd0 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/extracting.tex @@ -0,0 +1,101 @@ +\chapter{Extracting Parts from a Multi-Instrument Score}\label{parts} +From the typesetting viewpoint, the major characteristic of orchestral and +chamber music is that the scores not only have several instruments, but +variants of the same basic score are needed in which one of the instruments is +highlighted while some others are typeset in smaller notes or are +omitted. +Of course, it must be possible to permute the highlighted instruments and +the small-type instruments or +omitted instruments, depending on the instrument to which the +version of the score is dedicated. + +The following is the most general approach to part extraction when +using \musixtex\ without \textbf{PMX} or \textbf{M-Tx} pre-processors. A +simpler approach which will work for most purposes is described in Section~\ref{musixtnt}. + +\section{Coding rules}\label{CodingRules} + To make a ``selectable'' orchestral score you must prepare the master score +(i.e., the score with all instruments typed) as follows: + + \begin{enumerate} + \item Avoid referring to instrument numbers with roman +numerals. For example use \verb|\setclefs|~$n$ instead of +\verb|\cleftoksiii=| . + \item Introduce symbolic names for the instruments; for example, define: + \begin{verbatim} + \def\Piano{1}% + \def\Flute{2}% + \def\Oboe{3}% + \def\Soprano{4}% + \end{verbatim} +and code, for example + \smallskip + + \verb|\setstaffs\Piano2| rather than \verb|\setstaffs12|. + + \item If, initially, the Piano is the instrument number 1, replace all +\verb|\notes|, \verb|\Notes|, \verb|\NOtes|, etc., with +\verb|\notes\selectinstrument\Piano|, \verb|\Notes\selectinstrument\Piano|, +\verb|\NOtes\selectinstrument\Piano|, etc. + + \item Instead of using \verb|&| or \verb|\nextinstrument| to move to +instrument $n+1$, use \verb|\selectinstrument\Flute| and similar instead. + \end{enumerate} +For example, +\begin{verbatim} + \Notes\selectinstrument\Piano ... | ... + \selectinstrument\Flute ... + \selectinstrument\Oboe ... + \selectinstrument\Soprano ... \en +\end{verbatim} +With this coding, difficult things such as putting the Flute above the Oboe +are done easily: just say \verb|\def\Flute{3}| and \verb|\def\Oboe{2}|. + + \section{Selecting, hiding or putting instruments in the background} + + To put, for example, the Flute and the Oboe in the background, i.e., typesetting +them in small notes, state at the beginning: + \begin{quote} + \verb|\setsize\Flute\tinyvalue\setsize\Oboe\tinyvalue| + \end{quote} +where the value \keyindex{tinyvalue} for \keyindex{setsize} corresponds to notes and staffs +of size \keyindex{tinynotesize}. + If, instead of putting an instrument in the background, one wants to omit it, +this is done by: + \begin{quote} + \verb|\setstaffs\Flute{0}\setstaffs\Oboe{0}| + \end{quote} +since nothing is typeset for +instruments having \emph{zero} staffs (not to be confused with one-line staffs such +as percussions). + + \section{Recommendations} + \begin{itemize} + \item When hiding instruments, reduce +\keyindex{instrumentnumber} by the number of hidden instruments; otherwise +bars and leading braces will enclose the position of these dummy arguments, +which would be ugly. + + \item Exchange the actual instrument numbers so that hidden instruments have +numbers \emph{greater} than the value of \verb|\instrumentnumber|. + Hidden instruments with numbers +less than \verb|\instrumentnumber| will cause an excess of vertical +space at their phantom positions; this is not +recommended. + + \item In hidden instruments, rests no longer behave like \verb|\hbox{...}| and +\verb|raise|-ing them will result in an error. + + \item In hidden instruments, explicit \verb|\hbox|es will remain as empty +boxes, thus causing abnormal vertical spacings between instruments. Therefore, +anything suspect should be made conditional with: + +\begin{quote} +\keyindex{ifactiveinstrument}\ \textit{code to be omitted if instrument is hidden}\ \verb|\fi| +\end{quote} +Most \musixtex{} commands become properly hidden if requested. But +problematic +parts of code can nonetheless be protected with \verb|\ifactiveinstrument|. + + \end{itemize} + diff --git a/macros/musixtex/doc/musixdoc/fonts.tex b/macros/musixtex/doc/musixdoc/fonts.tex new file mode 100644 index 0000000000..2326b86c95 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/fonts.tex @@ -0,0 +1,231 @@ +\chapter{Font Selection and Text Placement} + +\section{Predefined text fonts} +While any font with support for \TeX\ can be used by \musixtex, certain styles and +sizes can be selected using shortcut commands. +For ordinary text, the shortcuts cover fonts of nine different +sizes and six styles. The sizes in points are $7$, $8$, $9$, $10$, $12$, $14$, $17$, $20$, and $25$; +the styles are from the standard Computer Modern family: Roman, bold, italic, bold italic +and small capitals. +The size selection macros from smallest to biggest are +\keyindex{tinytype}, +\keyindex{smalltype}, +\keyindex{Smalltype}, +\keyindex{normtype}, \keyindex{medtype}, \keyindex{bigtype}, +\keyindex{Bigtype}, +\keyindex{BIgtype} and \keyindex{BIGtype}. +The style may be selected or changed using \keyindex{rm} (Roman), \keyindex{bf} +(bold), \keyindex{it} (italic), \keyindex{bi} (bold italic) or +\keyindex{sc} (small-capitals). If no style is explicitly selected, Roman style +will be used for the sizes \verb|\medtype| or smaller; for the larger sizes, +bold style is the default. Thus, for example, +eight point italic is selected with \verb|\smalltype\it|, while +twelve point Roman is selected using \verb|\medtype\rm| or simply +\verb|\medtype|. To change between styles while maintaining the same size, +code \verb|\rm|, \verb|\it|, \verb|\bf|, \verb|\bi| or \verb|\sc|, as in Plain \TeX. +When \musixtex\ is started, the default font for ordinary text is +ten point Roman, equivalent to \verb|\normtype\rm|. + +Another group of fonts, in bold extended italic style, is predefined in point sizes +$8$, $10$, $12$, $14$, and $17$ for dynamic markings. The appropriate font for the current +staff size may be selected simply by using \keyindex{ppff} as a +font specification. Macros \keyindex{tinydyn}, \keyindex{smalldyn}, \keyindex{normdyn}, or \keyindex{meddyn} may be +used to redefine \verb|\ppff| to represent one of the smallest four. + + +A selection of predefined fonts is summarized in Table~\ref{predefinedfonts}. The second column gives an +explicit control sequence that can alternatively be used locally as a font specification. +\font\ctinytype=cmr7 +\font\ctinytypebf=cmbx7 +\font\ctinytypeit=cmti7 +\font\csmalltype=cmr8 +\font\csmalltypebf=cmbx8 +\font\csmalltypeit=cmti8 +\font\cSmalltype=cmr9 +\font\cSmalltypebf=cmbx9 +\font\cSmalltypeit=cmti9 +\font\cnormtype=cmr10 +\font\cnormtypebf=cmbx10 +\font\cnormtypeit=cmti10 +\font\cnormtypebi=cmbxti10 +\font\cnormtypesc=cmcsc10 +\font\cmedtype=cmr12 +\font\cmedtypebf=cmbx12 +\font\cmedtypeit=cmti12 +\font\cmedtypebi=cmbxti10 scaled \magstep1 +\font\cmedtypesc=cmcsc10 scaled \magstep1 +\font\cbigtype=cmbx12 scaled \magstep1 +\font\cBigtype=cmbx12 scaled \magstep2 +\font\cBIgtype=cmbx12 scaled \magstep3 +\font\cBIGtype=cmbx12 scaled \magstep4 +\font\cppfftwelve=cmbxti10 at 8pt +\font\cppffsixteen=cmbxti10 +\font\cppfftwenty=cmbxti10 scaled \magstep1 +\font\cppfftwentyfour=cmbxti10 scaled \magstep2 +\font\cppfftwentynine=cmbxti10 scaled \magstep3 +\font\cbigtype=cmbx12 scaled \magstep1 +\font\cBigtype=cmbx12 scaled \magstep2 +\font\cBIgtype=cmbx12 scaled \magstep3 +\font\cBIGfont=cmbx12 scaled \magstep4 +\begin{table} +\begin{center} +\renewcommand{\arraystretch}{1.15} + \begin{tabular}{lll} + \hline + Size and style & Font specification & Example \\ + \hline + \verb|\tinytype| & \verb|\sevenrm| & {\ctinytype tiny Roman} \\ + \verb|\tinytype\bf| & \verb|\sevenbf| & {\ctinytypebf tiny bold} \\ + \verb|\tinytype\it| & \verb|\sevenit| & {\ctinytypeit tiny italic} \\ + \verb|\smalltype| & \verb|\eightrm| & {\csmalltype small Roman} \\ + \verb|\smalltype\bf| & \verb|\eightbf| & {\csmalltypebf small bold} \\ + \verb|\smalltype\it| & \verb|\eightit| & {\csmalltypeit small italic} \\ + \verb|\Smalltype| & \verb|\ninerm| & {\cSmalltype Small Roman} \\ + \verb|\Smalltype\bf| & \verb|\ninebf| & {\cSmalltypebf Small bold} \\ + \verb|\Smalltype\it| & \verb|\nineit| & {\cSmalltypeit Small italic} \\ + \verb|\normtype| & \verb|\tenrm| & {\cnormtype normal Roman} \\ + \verb|\normtype\bf| & \verb|\tenbf| & {\cnormtypebf normal bold} \\ + \verb|\normtype\it| & \verb|\tenit| & {\cnormtypeit normal italic}\\ + \verb|\normtype\bi| & \verb|\tenbi| & {\cnormtypebi normal bold italic}\\ + \verb|\normtype\sc| & \verb|\tensc| & {\cnormtypesc normal small capitals}\\ + \verb|\medtype| & \verb|\twelverm| & {\cmedtype medium Roman} \\ + \verb|\medtype\bf| & \verb|\twelvebf| & {\cmedtypebf medium bold} \\ + \verb|\medtype\it| & \verb|\twelveit| & {\cmedtypeit medium italic}\\ + \verb|\medtype\bi| & \verb|\twelvebi| & {\cmedtypebi medium bold italic}\\ + \verb|\medtype\sc| & \verb|\twelvesc| & {\cmedtypesc medium small capitals}\\ + \verb|\bigtype| & \verb|\frtbf| & {\cbigtype big bold} \\[.4ex] + \verb|\Bigtype| & \verb|\svtbf| & {\cBigtype Big bold} \\[.4ex] + \verb|\BIgtype| & \verb|\twtybf| & {\cBIgtype BIg bold} \\[.4ex] + \verb|\BIGtype| & \verb|\twfvbf| & {\cBIGtype BIG bold} \\ + ~ & \verb|\ppfftwelve| & {\cppfftwelve pp ff diminuendo}\\ + ~ & \verb|\ppffsixteen| & {\cppffsixteen pp ff diminuendo}\\ + ~ & \verb|\ppfftwenty| & {\cppfftwenty pp ff diminuendo}\\ + ~ & \verb|\ppfftwentyfour| & {\cppfftwentyfour pp ff diminuendo}\\[.4ex] + ~ & \verb|\ppfftwentynine| & {\cppfftwentynine pp ff diminuendo}\\[.4ex] + \hline + \end{tabular} +\end{center} +\caption{Various predefined fonts} +\label{predefinedfonts} +\end{table} + +\section{User-defined text fonts} + +Since \musixtex\ is a superset of \TeX, you are free to use the standard \TeX\ +machinery for defining and using any special font you desire. You must first +of course ensure that (a)~all the necessary font files (e.g., \verb|bla10.tfm|, +\verb|bla10.pfb|, or equivalents) are installed in the right places in your system, (b)~all +configuration files (e.g., \verb|config.ps| or equivalent) have been updated, and +(c)~the \TeX\ file-name database has been updated, as required by your \TeX\ system. Then you can use the font just as +in any \TeX\ document, e.g., by coding \verb|\font blafont=bla10| and then +\verb|\zchar{10}{\blafont Text in user-defined font}|. + +You might also wish to replace once and for all the typefaces invoked by the +commands described in the previous section. Again, before doing this, you must +follow steps (a-c) of the previous paragraph for all fonts in question. +\label{UserFonts} +You can use bitmapped fonts, which are converted to +Postscript by e.g.,~\verb|dvips|, but you also may replace them +by native Postscript fonts. + +The extension library +\verb|musixtmr.tex|\footnote{by Hiroaki {\sc Morimoto}} +replaces the default Computer Modern text fonts by +the Times series of fonts; see Section~\ref{times}. +Other extension libraries, \verb|musixplt.tex| and \verb|musixhv.tex|, replace the default text fonts by +Palatino and Helvetica fonts, respectively; see Sections~\ref{palatino} and \ref{helvetica}. +\font\tnormtype=ptmr7t +\font\tnormtypebf=ptmb7t +\font\tnormtypeit=ptmri7t +\font\tbigtype=ptmr7t scaled \magstep2 +\font\tBigtype=ptmr7t scaled \magstep3 +\font\pnormtype=pplr8r +\font\pnormtypebf=pplb8r +\font\pnormtypeit=pplri8r +\font\pbigtype=pplrc8r at 14pt +\font\pBigtype=pplrc8r at 17pt +\font\hnormtype=phvr8r at 10pt +\font\hnormtypebf=phvb8r at 10pt +\font\hnormtypeit=phvro8r at 10pt +\font\hbigtype=phvr8r at 14pt +\font\hBigtype=phvr8r at 17pt +Here is a comparison of some Times, +Palatino and Helvetica fonts: +\begin{center} + \begin{tabular}{lll} + \hline + {\tnormtype normal Times Roman} & {\pnormtype normal Palatino Roman} &{\hnormtype normal Helvetica Roman} \\ + {\tnormtypebf normal Times bold} & {\pnormtypebf normal Palatino bold}& {\hnormtypebf normal Helvetica bold} \\ + {\tnormtypeit normal Times italic} & {\pnormtypeit normal Palatino italic } & {\hnormtypeit normal Helvetica italic }\\[.4ex] + {\tbigtype Times big} & {\pbigtype Palatino big } & {\hbigtype Helvetica big } \\[.4ex] + {\tBigtype Times Big } & {\pBigtype Palatino Big } & {\hBigtype Helvetica Big } \\ + \hline + \end{tabular} +\end{center} + +For users who prefer to stick with the default Computer Modern +family but want to use the T$1$-encoded EC variants, the extension library +\verb|musixec.tex| is available; see Section~\ref{ecfonts}\@. + +\section{Text placement}\label{textplacement} +Special macros are provided to allow precise placement of any \TeX\ text, vertically +relative to the staff, and horizontally relative to any note in +the staff. + +The macros in the first group will vertically position the text with the +baseline at any specified pitch or staff line. They must be used +inside \verb|\notes...\en|. They will not insert any additional +horizontal space. They have the forms +\keyindex{zcharnote}\pitchp\verb|{|\ital{text}\verb|}|, \keyindex{lcharnote}\pitchp\verb|{|\ital{text}\verb|}|, +and \keyindex{ccharnote}\pitchp\verb|{|\ital{text}\verb|}|, +where \ital{p} is the pitch. With the first one, text will spill to the right +from the current insertion point, with the second it will spill to the left, and with the +third it will be centered horizontally. +The following abbreviations are available: +\begin{quote} +\begin{tabular}{lcl} +\keyindex{zcn}& for&\verb|\zcharnote| \\ +\keyindex{lcn}& for&\verb|\lcharnote| \\ +\keyindex{ccn}& for&\verb|\ccharnote| \\ +\end{tabular} +\end{quote} + +There are similar macros \keyindex{zchar}\pitchp\verb|{|\ital{text}\verb|}|, +\keyindex{lchar}\pitchp\verb|{|\ital{text}\verb|}|, and \keyindex{cchar}\pitchp\verb|{|\ital{text}\verb|}|, +which differ from the previous three in that the pitch \ital{must} be given with +a number (representing the number of staff positions up from the lowest line), +and that the number need not be an integer. + +To vertically position any text midway between two consecutive staves, use +\keyindex{zmidstaff}\verb|{|{\it text}\verb|}|, \keyindex{lmidstaff}\verb|{|{\it text}\verb|}|, +or \keyindex{cmidstaff}\verb|{|{\it text}\verb|}| at the appropriate point in the lower staff. + +The macros \keyindex{uptext}\verb|{|\ital{text}\verb|}| and +\keyindex{Uptext}\verb|{|\ital{text}\verb|}| +are simply shorthands for +\verb|\zchar{10}{|\ital{text}\verb|}| and +\verb|\zchar{14}{|\ital{text}\verb|}|, +respectively. + +The text items handled by all of the above macros can include any appropriate +string of \TeX\ +control sequences, including font definitions, \verb|\hbox|'es, etc. + +Material posted with any of the macros described in this section will not +create any additional horizontal or vertical space within the current system, +and will overwrite anything in the current system that gets in the way. It is +the typesetter's responsibility to ensure there is adequate white space +within the current system to accommodate any text placed with +these macros. On the other hand, if text is placed far above or below a +system, \musixtex\ will usually insert additional vertical space if needed. + +\section{Rehearsal marks} + +Rehearsal marks are usually +boxed or circled uppercase letters or digits. They can be defined using the macros +\keyindex{boxit}\verb|{|\ital{text}\verb|}| or +\keyindex{circleit}\verb|{|\ital{text}\verb|}|. For boxed text, +the margin between the text and box is controlled by the dimension +register \keyindex{boxitsep}, which can be reset to any \TeX\ dimension if the +default value of \verb|3pt| is unsatisfactory. To place the mark, use \verb|\Uptext| or +any of the other macros defined in the previous section. diff --git a/macros/musixtex/doc/musixdoc/frontmatter.tex b/macros/musixtex/doc/musixdoc/frontmatter.tex new file mode 100644 index 0000000000..42d4e645c0 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/frontmatter.tex @@ -0,0 +1,143 @@ +\title{\Huge\bfseries\musixtex\\[\bigskipamount] +\LARGE\bfseries Using \TeX{} to write polyphonic\\or +instrumental music\\\Large\itshape Version 1.29} +\author{} + + +%\author{\Large\rm Daniel \sc Taupin\\\large\sl +% Laboratoire de Physique des Solides\\\normalsize\sl +% (associ\'e au CNRS)\\\normalsize\sl +% b\^atiment 510, Centre Universitaire, F-91405 ORSAY Cedex\\\medskip +% \\\Large\rm Ross \sc Mitchell\\\large\sl +% CSIRO Division of Atmospheric Research,\\\normalsize\sl +% Private Bag No.1, Mordialloc, Victoria 3195,\\ Australia \\\medskip +% \\\Large\rm Andreas \sc Egler\\\large\sl +% (Ruhr--Uni--Bochum)\\ Ursulastr. 32\\ D-44793 Bochum} +\date{Revised \today} +\maketitle +\vfill +\thispagestyle{empty} +\begin{flushright}\it +If you are not familiar with \TeX{} at all, I would recommend\\ +to find another software package to do musical typesetting.\\ +Setting up \TeX{} and \musixtex\ on your machine and mastering it is\\ +an awesome job which gobbles up a lot of your time and disk space.\\[\medskipamount] +But, once you master it\ldots\\[\smallskipamount] +Hans {\sc Kuykens} (ca.~1995) + +\vspace*{4ex} +In my humble opinion, that whole statement is obsolete.\\[\smallskipamount] +Christof\/ {\sc Biebricher} (2006) +\end{flushright} + +\clearpage + +\pagenumbering{roman}\setcounter{page}{2} + + +\vspace*{20ex} +\begin{quote} +\musixtex{} may be freely copied, duplicated and used in conformance to +the GNU General Public License (Version 2, 1991, see included file {\tt +copying})\footnote{Thanks to the Free Software Foundation for advice. See +\href{http://www.gnu.org}{\underline{\tt http://www.gnu.org}}}. + +You may take it or parts of it to include in other packages, but no packages +called \musixtex{} without specific suffix may be distributed under the name +\musixtex{} if different from the original distribution (except obvious bug +corrections). + + Adaptations for specific implementations (e.g., fonts) should be provided as +separate additional \TeX\ or \LaTeX\ files which override original definitions. + \end{quote} + +\clearpage + +\chapter*{Preface} +\addcontentsline{toc}{chapter}{Preface} +\musixtex\ was developed by Daniel Taupin, Ross Mitchell and Andreas +Egler, +building +on earlier work by Andrea Steinbach and Angelika Schofer. +Unfortunately, Daniel Taupin, the main developer, died all too early in a 2003 +climbing accident. The \musixtex\ community was shocked by this tragic and unexpected +event. You may read tributes to Daniel Taupin that are archived at the +\href{http://icking-music-archive.org}{\underline{Werner Icking Music Archive}} (WIMA\index{WIMA}). + +Since then, the only significant update to \musixtex\ has been in version 1.15 (April 2011) which +takes advantage of the greater capacity of the e\TeX\ version of \TeX. +This manual +is the definitive reference to all features of +\musixtex\ version~1.29. + +Novice users need not start here. +Most +music typesetting tasks can be accomplished entirely by using the \textbf{PMX} +(for instrumental music) or \mbox{\textbf{M-Tx}} (for vocal music) +preprocessors to generate the \musixtex\ input file, relieving the user of +learning any of the commands or syntax of \musixtex\ itself. It is only +for out-of-the-ordinary constructions that one must learn these details in order +to insert the necessary \musixtex\ commands into the preprocessor's input file +as so-called inline \TeX. + +Advanced users might +want to use \verb|autosp|, another preprocessor. It simplifies +the production of \musixtex\ scores by automating the choice of +note-spacing commands; see Section~\ref{autosp}. + +It is possible to create inputs for \musixtex, \textbf{PMX}, \mbox{\textbf{M-Tx}} or +\texttt{autosp} using any text editor, such as \verb|notepad| or \verb|vi| or +\verb|emacs|. Currently there is no graphical user interface for +generating input files, other than \TeX-oriented integrated +graphical development environments such as \TeX Works. + +The \href{http://icking-music-archive.org/software/indexmt6.html} +{\underline{Werner Icking Music Archive}} contains excellent and detailed +instructions for installing \TeX, \musixtex{} and the strongly recommended +preprocessors \textbf{PMX} +and \mbox{\textbf{M-Tx}} on +\href{http://icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html#SECTION00022000000000000000} +{\underline{Linux/\unix}}, +\href{http://icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html#SECTION00021000000000000000} +{\underline{Windows}} and +\href{http://icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html#SECTION00023000000000000000} +{\underline{Mac OS}}. +See +\href{http://icking-music-archive.org/software/htdocs/Introduction.html#SECTION00012000000000000000} +{\underline{this}} +page at WIMA for documentation of +\textbf{PMX} and \mbox{\textbf{M-Tx}}. + +\begin{flushright} +Oliver Vogel\\ Don Simons\\ Andre van Ryckeghem\\ Cornelius Noack\\ +Hiroaki Morimoto\\ +Bob Tennent\\ \today +\end{flushright} + +\clearpage + +\makeatletter +\renewcommand\tableofcontents{% + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse + \fi + \chapter*{\contentsname + \@mkboth{% + \contentsname}{\contentsname}}% + \addcontentsline{toc}{chapter}{Contents} % added by RDT + \@starttoc{toc}% + \if@restonecol\twocolumn\fi + } +\makeatother + + +%\begin{small} +\tableofcontents +%\end{small} + +\clearpage +\setcounter{page}{1} +\pagenumbering{arabic} +\renewcommand{\thepage}{\arabic{page}} diff --git a/macros/musixtex/doc/musixdoc/index.tex b/macros/musixtex/doc/musixdoc/index.tex new file mode 100644 index 0000000000..c56508b6d8 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/index.tex @@ -0,0 +1,10 @@ +\makeatletter +\renewenvironment{theindex} + {\pagestyle{plain}\parindent\z@ + \parskip\z@ \@plus .3\p@\relax + \let\item\@idxitem} + {\thispagestyle{plain}} +\makeatother +\begin{multicols}{3}[\chapter*{Index}\addcontentsline{toc}{chapter}{Index}] + \printindex +\end{multicols} diff --git a/macros/musixtex/doc/musixdoc/introduction.tex b/macros/musixtex/doc/musixdoc/introduction.tex new file mode 100644 index 0000000000..e396c200f7 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/introduction.tex @@ -0,0 +1,823 @@ +\chapter{Introduction to \musixtex} + +This chapter is not a tutorial on the use of \musixtex, but instead serves as +an overview of some of its capabilities, quirks, and history. + +\musixtex\ is a set of macros and fonts which enables music typesetting +within the \TeX\ system. It requires as a prerequisite a working +installation of \TeX. +\musixtex\ might be regarded as the digital equivalent of a box of type. It +contains symbols for staves, notes, chords, beams, slurs and ornaments, +ready to be arranged to form a sheet of music. But it must be told how to position +those symbols on the page. This could be done by the typesetter +himself, if he or she elects to proceed by entering \musixtex\ commands manually +into an input file. However most users will find it far less taxing to let +such decisions be made largely by the preprocessor +\href{http://icking-music-archive.org/software/indexmt6.html#pmx} +{\underline{\textbf{PMX}}}, which in addition uses a much simpler input +language than \musixtex. + +Lyrics can also be handled by \musixtex. There is a set of primitive +commands for this which are described later. But there is also a far +more adaptable set of macros contained in the extension file +\verb|musixlyr.tex|, and there is the preprocessor +\href{http://icking-music-archive.org/software/indexmt6.html#mtx} +{\underline{\mbox{\textbf{M-Tx}}}}\ which provides easy, transparent access to +these macros. + +Most users of \TeX\ are familiar with \LaTeX, a set of \TeX\ macros +which eases document layout. In fact many may only use \LaTeX. +Until recently, \LaTeX\ and \musixtex\ coexisted only grudgingly, owing +primarily to the limited availabily of storage registers. But with modern +versions of \TeX\ and with the use of e\LaTeX, only a modest increase in +complexity is incurred with the addition of musical excerpts to a \LaTeX\ +document. Still, fortunately, for typesetting a musical score there is +rarely if ever any advantage to using \LaTeX. Only if one wanted to create a +text document with embedded musical examples would there be much use for it. +Even in that case there is a perfectly fine way to avoid using \musixtex\ +directly in the document file, namely, by using \musixtex\ to create +\verb|pdf| or \verb|eps| files for +each of the examples, and then embedding references to those in the file for +the larger document. But for anyone who still wants to use both together, there is +no better example than this manual, as generated with the files +\verb|musixdoc.tex| and \verb|musixdoc.sty|. A few further details about such +nonstandard applications are given in Section~\ref{excerpts}. + +\section{Primary features of \musixtex} + \subsection{Music typesetting is two-dimensional} Written music is not +usually a linear sequence of symbols like a literary text. Rather, +except for unaccompanied single-note instruments like clarinets, +trumpets and human voices, it has the form of a two-dimensional matrix. + Thus, a logical way of coding music consists +in horizontally accumulating a set of \ital{vertical combs} with +\ital{horizontal teeth} as depicted in Table~\ref{readtable}. +%\def\hboxit#1{\boxit{\rlap{#1}\hphantom{note sequence three}}} + \begin{table} + \begin{center} + \small + \renewcommand{\arraystretch}{1.4} + \setlength{\arrayrulewidth}{1.5pt} + \setlength{\tabcolsep}{2ex} + \begin{tabular}{|ll|ll|}\fbox{note sequence one} + &\fbox{note seq.\ four} + &\fbox{note seq.\ seven} + &\fbox{note seq.\ ten}\\\fbox{note sequence two} + &\fbox{note seq.\ five} + &\fbox{note seq.\ eight} + &\fbox{note seq.\ eleven}\\\fbox{note sequence three} + &\fbox{note seq.\ six} + &\fbox{note seq.\ nine} + &\fbox{note seq.\ twelve}\\ + \end{tabular} + \end{center} + \caption{A logical way of coding music}\label{readtable} + \end{table} +Accordingly, in \musixtex\ the fundamental macro used to represent +one of those vertical combs (or one of the columns in Table~\ref{readtable}) +is of the form +\begin{center} +\verb|\notes ... & ... & ... \en|\footnote{The command +\keyindex{en} is an abbreviation for the command \keyindex{enotes}, which may also be used.} +\end{center}\index{"&@{\tt\char'046}} +\noindent where the character \verb|&| is used to separate the notes to be +typeset on respective staves of the various instruments, starting from the +bottom. + +In the case of an instrument whose score has to be written with +several staves, they are separated by the +character \|\index{\tt\char'174@{\tt\char'174}}. + +Thus, a score written for a keyboard instrument and +a single-line instrument (e.g., piano and violin) +will be coded as follows: +\begin{center} +\verb=\notes ... | ... & ...\en= +\end{center} +\noindent for each column of simultaneous \ital{groups of notes}. +Each of those groups, represented by a single box in Table~\ref{readtable}\ +and by a sequence of three dots in the the two example macros above, may contain +not only chord notes to be played simultaneously, but short sequences of +consecutive +notes or chords. As we'll soon see, this implies the need for two fundamentally different +kinds of basic macros in \musixtex: those whose tokens are automatically followed +by some amount of space (called \ital{spacing} macros), and those that are not. +The former type, for example, +would be used to produce the notes and rests in a single-line score; +the latter would be used, for example, for chord notes and ornaments. + +\subsection{Horizontal spacing} +Deciding upon the proper horizontal spacing of notes is a very complicated matter +that we will not address in any detail here. Obviously short-duration notes +should be closer together than longer ones. Almost as obviously, the spacing +cannot be linearly proportional to the duration; otherwise for example a whole +note would occupy 32 times as much horizontal space as a thirty-second note. And +in polyphonic scores the spacing in one staff is often influenced by the notes +in another. This is a decision that the typesetter or preprocessor +must make. Once the decision is made, \musixtex\ can provide the desired spacing. +The main mechanism is through a set of macros described in +Section~\ref{newspacings}. At this point we shall only mention that to control +spacing, one of those +macros will be selected to replace the symbol \verb|\notes| in the two examples +above, and it will imply that whenever a spacing macro in encountered within +a group of notes, a +certain specific amount of horizontal space will be inserted. + + \subsection{Music tokens} +The tokens provided by \musixtex\ include +\begin{itemize}\setlength{\itemsep}{0ex} + \item note symbols without stems; + \item note symbols with stems, and flags for eighth notes and +shorter; + \item beam beginnings and endings; + \item beginnings and endings of ties and slurs; + \item accidentals; + \item ornaments: arpeggios, trills, mordents, turns, staccatos, +pizzicatos, fermatas, etc.; + \item bar lines; + \item meters, key signatures, clefs. +\end{itemize} +For example, \verb|\wh a| produces a whole note at nominal frequency 222.5~Hz, +\verb|\wh h| produces one an octave higher, \verb|\qu c| +produces an up-stemmed quarter note C (250~Hz), and \verb|\cl J| produces a down-stemmed C +eighth note an octave lower. + + To generate chords with solid note heads, the non-spacing macro \keyindex{zq} +can be used. It produces a solid note head at the specified pitch, +the vertical position of which +is memorized and recalled whenever the next stemmed note (possibly with a flag) is +coded. The stem length is automatically adjusted to link all simultaneous notes. Thus, the +\mbox{C-major} chord + +\begin{music}\nostartrule +\startextract\NOtes\zq{ceg}\qu j\en\zendextract +\end{music} + \noindent is coded \verb|\zq c\zq e\zq g\qu j| or more concisely, +\verb|\zq{ceg}\qu j|; the \verb|u| in the spacing note macro +\verb|\qu| is what generates the upstem. + + \subsection{Beams} +Each beam \index{beams} is generated by a pair of macros. The first defines +the beginning horizontal position (implicitly the current position), altitude, +direction (upper or lower), multiplicity (number of lateral bars), slope and +reference number. This latter feature is needed so independent beams +can overlap. The second macro of the pair specifies the termination +location (again implicitly) and the reference number. + + \subsection{Setting anything on the score} +A general macro (\keyindex{zcharnote}) provides a means of +putting any sequence of symbols (possibly contained in an \verb|\hbox{...}|) at any +pitch of any staff of any instrument. This allows any symbol defined in a font +(letters, math symbols, etc.) to be placed in the score at a position keyed +to the music both in time (horizontally) and pitch (vertically) on the staff, +\section{A simple example} + Before going into more detail, we give below an example of the two first +bars of the sonata in \mbox{C-major} KV545 by {\sc Mozart}\index{Mozart, W.A.@{\sc +Mozart, W.A.}}: + +\begin{music} +\parindent11mm +\setname1{Piano} +\setstaffs12 +\generalmeter{\meterfrac44} +\startextract +\Notes\ibu0f0\qb0{cge}\tbu0\qb0g|\hl j\en +\Notes\ibu0f0\qb0{cge}\tbu0\qb0g|\ql l\sk\ql n\en +\bar +\Notes\ibu0f0\qb0{dgf}|\qlp i\en +\notes\tbu0\qb0g|\ibbl1j3\qb1j\tbl1\qb1k\en +\Notes\ibu0f0\qb0{cge}\tbu0\qb0g|\hl j\en +\zendextract +\end{music} + The coding is as follows: +\begin{quote}\begin{verbatim} +\begin{music} + \parindent10mm + \instrumentnumber{1} % a single instrument + \setname1{Piano} % whose name is Piano + \setstaffs1{2} % with two staffs + \generalmeter{\meterfrac44} % 4/4 meter chosen + \startextract % starting real score + \Notes\ibu0f0\qb0{cge}\tbu0\qb0g|\hl j\en + \Notes\ibu0f0\qb0{cge}\tbu0\qb0g|\ql l\sk\ql n\en + \bar + \Notes\ibu0f0\qb0{dgf}|\qlp i\en + \notes\tbu0\qb0g|\ibbl1j3\qb1j\tbl1\qb1k\en + \Notes\ibu0f0\qb0{cge}\tbu0\qb0g|\hl j\en + \zendextract % terminate excerpt +\end{music} + \end{verbatim}\end{quote} +\begin{itemize}\setlength{\itemsep}{0ex} + \item \verb|\ibu0f0| begins an upper beam, aligned on the +\ital{f}, reference number 0, slope 0 + \item \verb|\tbu0| terminates this beam before writing +the second \ital{g} by means of \verb|\qb0g| + \item \verb|\qb..| indicates a note belonging to a beam. + \item \verb|\sk| sets a space between the two quarters in the right +hand, so that the second one is aligned with the third eighth in the left hand. + \item\verb|\qlp| is a dotted quarter note. + \item\verb|\ibbl1j3| begins a double beam, aligned on the \ital{C} +(\verb|j| at this pitch) with slope 15\%. +\end{itemize} + +\section{The three pass system}\label{threepass} +\subsection{Introduction} +\TeX's line-breaking procedure implicitly assumes +that a normal line of text will contain many words, so that inter-word +glue need not stretch or shrink too much to justify the line. +One might at first consider extending this to music, treating each bar like a +word with no stretchable internal space. But typically this would lead to unsightly +gaps before each bar rule, simply because the number of bars per line +is normally many fewer than the number of words in a line of text. +\musixtex\ needs a more sophisticated horizontal spacing algorithm +than is used in \TeX. + +To understand how \musixtex\ solves this problem, we have to +recognize two different kinds of horizontal space, \ital{hard}\ and +\ital{scalable}. Hard space is fixed and always represents the same +physical distance. +Examples of hard space are the widths of bar rules, clefs, +and key signatures. Scalable space can be stretched as needed. It +is what is normally used for the space after notes or rests. At the +outset it is only defined in a relative sense. In other words, +scalable spaces are defined as multiples of \verb|\elemskip|, an +initially undefined basic spacing unit. For example, in \textbf{PMX}\ +all sixteenth notes +are typically assigned a scalable width of \verb|1.41\elemskip|. +One main job of \musixtex\ is to compute the physical value of +\verb|\elemskip|, often expressed in points (72nds of an inch). +The correct value is that which makes all the scalable space on +a line just fill up what's not occupied by hard space. Obviously +it may vary from line to line. + +To this end a three pass system was developed. To start the +first pass on the file \verb|jobname.tex|, you would enter\footnote{ +In many cases it will suffice to run {\tt tex}, but with \musixtex~1.15, +it is possible to create a file requiring the enhanced capacity of +{\tt etex}. Since {\tt etex} can handle any file {\tt tex} can, it's best +always to use {\tt etex}.} +\verb|etex jobname|. +Information about each bar is written to +an external file named \verb|jobname.mx1|. +This file begins with a header containing parameters +such as line width and paragraph indentation. Then the hard and +scalable space is listed for each bar. +\index{scalable width}\index{hard width} + +The second pass, which is started with \verb|musixflx jobname|, +determines optimal values of the basic spacing unit \verb|\elemskip| +for each line, so as to properly fill each line, and to spread +the piece nicely over an integral number of full lines. This routine was originally written +in \textsc{fortran} rather than \TeX, the main reason +being the lack of an array handling capability in \TeX; the current version +of \verb|musixflx| is a \textsc{lua} script, which may be executed without +compilation in any standard \TeX\ system. + +\verb|musixflx| reads in the file \verb|jobname.mx1|, and writes its +output to \verb|jobname.mx2|. The latter file contains a single entry for +each line of music in the reformatted output. The key piece of information +is the revised value of \keyindex{elemskip} for each line. + +Next, the file is \TeX-ed again, by entering \verb|etex jobname|. On this third pass, +the \verb|jobname.mx2| file is read in, and the information +is used to physically define the final score and embed the +page descriptions into a \verb|dvi|\ file. + +You may wonder how the same command can +cause something different to happen the second time it is issued. The explanation +is that \musixtex\ checks for the presence of \verb|jobname.mx2|. If it's +not present, the first pass is executed; if it is, the third pass. Obviously if +you've made some corrections that affect any horizontal spacing, you must remember +to delete the old \verb|jobname.mx2| and then rerun all three passes, or +build or use a script that does so. + +\subsection{An example} + +Here's an example. Here, no value for \verb|\elemskip| is explicitly specified, +so \musixtex\ assigns a single, default value. After the first pass you might get +the following output: + +\begin{music} +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\setsign1{-3} +\nostartrule +\startpiece\bigaccid +\NOtes\qu{ce}\en +\bar +\NOtes\qu{gh}\en +\bar +\NOtes\qu{=b}\en +\Notes\ds\cu g\en +\bar +\NOtes\qu{^f=f}\en +\raggedstoppiece\contpiece% this is cheated, the problem was to get +% pass 1 and pass 3 at the same time +\NOtes\qu{=e}\itied0e\qu{_e}\en +\bar +\Notes\ttie0\Qqbu ed{_d}c\en +\bar +\Notes\ibu0b{-2}\qb0{=b}\en +\notes\nbbu0\qb0{=a}\tqh0N\en +\Notes\Dqbu cf\en +\raggedstoppiece\contpiece +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\en +\bar +\NOtes\qu c\qp\en +\setdoubleBAR\raggedstoppiece +\end{music} + +\noindent Note that the space after every quarter note is the same, and +that lines are not justified. +After running \verb|musixflx| and \TeX-ing the second time you'll +get: + +\begin{music} +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\generalsignature{-3} +\nostartrule +\startpiece\bigaccid +\NOtes\qu{ce}\en +\bar +\NOtes\qu{gh}\en +\bar +\NOtes\qu{=b}\en +\Notes\ds\cu g\en +\bar +\NOtes\qu{^f=f}\en +\bar +\NOtes\qu{=e}\itied0e\qu{_e}\en +\bar +\Notes\ttie0\Qqbu ed{_d}c\en +\bar +\Notes\ibu0b{-2}\qb0{=b}\en +\notes\nbbu0\qb0{=a}\tqh0N\en +\Notes\Dqbu cf\en +\bar +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\en +\bar +\NOtes\qu c\qp\en +\Endpiece +\end{music} + +\noindent Now \musixtex\ has determined a number of lines +(which is different from the original number), the lines are justified, +and if you look carefully you +can see that the space after quarters in the first line +is smaller than in the second. This example was coded as: +\begin{verbatim} +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\generalsignature{-3} +\nostartrule +\startpiece\bigaccid +\NOtes\qu{ce}\en\bar +\NOtes\qu{gh}\en\bar +\NOtes\qu{=b}\en +\Notes\ds\cu g\en\bar +\NOtes\qu{^f=f}\en\bar +\NOtes\qu{=e}\itied0e\qu{_e}\en\bar +\Notes\ttie0\Qqbu ed{_d}c\en\bar +\Notes\ibu0b{-2}\qb0{=b}\en +\notes\nbbu0\qb0{=a}\tqh0N\en +\Notes\Dqbu cf\en\bar +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\en\bar +\NOtes\qu c\qp\en\Endpiece +\end{verbatim} + +\subsection{Adjusting the layout} + +One benefit of the 3-pass system is the quick and easy +alteration to the layout which can be achieved +by changing only one parameter, namely \keyindex{mulooseness}. This value +acts analogously to \TeX's \verb|\looseness| command. For non-\TeX-perts: if you +state \verb|\looseness=-1| somewhere inside any paragraph, then +\TeX\ will try to make the paragraph one line shorter than it normally would. +With \verb|\mulooseness|, \musixtex\ does the same, but for \ital{systems} +and \ital{sections} rather than lines and paragraphs. A system is just a group of +staves treated as a unit, and in this discussion is analogous to a line of text. +What is a \ital{section}? It's any chunk of coding not containing a +forced system break, System breaks can be forced with +\keyindex{stoppiece}, \keyindex{endpiece}, \keyindex{zstoppiece}, +\keyindex{Stoppiece}, \keyindex{Endpiece}, \keyindex{alaligne} +\keyindex{zalaligne}, \keyindex{alapage} or \keyindex{zalapage}. If none +of these is present, the section comprises the whole piece. +Somewhere\footnote{Advisably, at the beginning or +at the end of the section, for the sake of clarity.} +before the end of the section, you can change the value of +\keyindex{mulooseness} to something different from the default of $0$, and +\musixtex\ will typeset that section with a different number of systems. + +To give an easy example, changing the last line in the previous example to: +\begin{verbatim} +\NOtes\qu c\qp\en\mulooseness=1\Endpiece +\end{verbatim} +yields: + +\begin{music} +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\generalsignature{-3} +\nostartrule +\startpiece\bigaccid +\NOtes\qu{ce}\en +\bar +\NOtes\qu{gh}\en +\bar +\NOtes\qu{=b}\en +\Notes\ds\cu g\en +\bar +\NOtes\qu{^f=f}\en +\bar +\NOtes\qu{=e}\itied0e\qu{_e}\en +\bar +\Notes\ttie0\Qqbu ed{_d}c\en +\bar +\Notes\ibu0b{-2}\qb0{=b}\en +\notes\nbbu0\qb0{=a}\tqh0N\en +\Notes\Dqbu cf\en +\bar +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\en +\bar +\NOtes\qu c\qp\en +\mulooseness1\Endpiece +\end{music} + +\noindent On the other hand, +\begin{verbatim} +\NOtes\qu c\qp\en\mulooseness=-1\Endpiece +\end{verbatim} +yields + +\begin{music} +\hsize=100mm +\generalmeter{\meterfrac24}% +\parindent 0pt +\generalsignature{-3} +\nostartrule +\startpiece\bigaccid +\NOtes\qu{ce}\en +\bar +\NOtes\qu{gh}\en +\bar +\NOtes\qu{=b}\en +\Notes\ds\cu g\en +\bar +\NOtes\qu{^f=f}\en +\bar +\NOtes\qu{=e}\itied0e\qu{_e}\en +\bar +\Notes\ttie0\Qqbu ed{_d}c\en +\bar +\Notes\ibu0b{-2}\qb0{=b}\en +\notes\nbbu0\qb0{=a}\tqh0N\en +\Notes\Dqbu cf\en +\bar +\NOtes\uptext{\it tr}\qu e\uptext{\it tr}\qu d\en +\bar +\NOtes\qu c\qp\en +\mulooseness-1\Endpiece +\end{music} + +\noindent which is tighter than you would ever want, but serves to further +demonstrate the use of \keyindex{mulooseness}. + +If you want to build up a \musixtex\ input file +manually (which in fact very few users will ever need to do, considering the +availability of \textbf{PMX}), here is a roadmap for one way to proceed: +\begin{enumerate} + \item Enter the data one \verb|\notes| group at a time, taking care to select the +relative horizontal spacing for each group (via the macros discussed in Section~\ref{newspacings}) +so as to maintain a consistent relationship between scalable space and note durations. +This will be discussed in a great deal more detail in Chapter~\ref{preparing}. + \item \TeX~$\Longrightarrow$ {\tt musixflx} $\Longrightarrow$ \TeX. + \item Look at the output and decide if you want to have more or fewer +systems, e.g.,~to fill the page or to get an even number of +pages.\index{musixflx@{\tt musixflx}} + \item If you want to change the number of systems in a section, adjust +\keyindex{mulooseness} accordingly. Keep in mind that each section cannot have fewer +systems than bars. +\item Delete \verb|jobname.mx2| and repeat the process\\ +\TeX~$\Longrightarrow$ \verb|musixflx| $\Longrightarrow$ \TeX. + +\end{enumerate} + +There is an alternate way to proceed if you know at the outset +how many systems +you want in a section. You can specify it directly by assigning a +positive number to \keyindex{linegoal} somewhere within the +section (\verb|\linegoal| requires +version 0.83 or later of \verb|musixflx|). +\keyindex{mulooseness} must be zero +for \keyindex{linegoal} to work. Both are automatically reset to +zero after processing the end of a section e.g., as defined by +\keyindex{stoppiece}. + +Finally, for large scores (more than 4 pages or so), having +only one section and an overall value of \verb|\mulooseness| becomes +impractical since one wants not only to have nicely spaced systems, but also +completely filled pages without empty top and +bottom margins on the last page. It is then wise to force the total number of +pages and possibly the line breaks in each page, which can be done using +\keyindex{alapage} and/or \keyindex{alaligne}\footnote{This is the technique +always used by \textbf{PMX} in constructing a \musixtex\ input file.}. +%avrb +%, or more automatically by +%means of the \keyindex{autolines} command borrowed from \musictex\ and +%implemented in the additional {\ttxem{musixcpt.tex}} file +%avre + +There is another advantage to \musixtex's way of using scalable space and +the three pass system. In +\TeX nical terms it eliminates the need for \ital{glue}, and enables +every horizontal position in a line to be computed. This in turn enables certain +variable length symbols such as slurs to be specified by macros entered at +their beginning and ending points, rather than having to estimate the +length of the symbol and enter it at the starting point. + + \subsection{Using \texttt{musixflx}} + +On most systems, \verb|musixflx| can be invoked by typing the name of the program +and the name of the file to be acted upon; i.e., +\begin{quote} +\verb|musixflx jobname.mx1| +\end{quote} +Optionally, you can add a letter to indicate one of the debug modes, which are: +\begin{quote} +\verb|d | for debug information to screen\\ +\verb|f | for debug information to file \verb|jobname.mxl|\\ +\verb|s | to get the computed lines immediately on screen +\end{quote} +To allow for ease of use with scripts, \verb|musixflx| can be fed +with either \verb|jobname.mx1|, \verb|jobname.tex| or only +\verb|jobname|, any one of which will open \verb|jobname.mx1|. + + \subsection{Unrecorded spaces: the novice's bugaboo} + +Because of the way \musixtex\ accounts for hard and scalable space and avoids +using glue, it is absolutely essential that every horizontal space be +properly entered into the input file. The most common error in this regard +is including a blank space in the midst \ital{or at the end} of an input line. +Such a blank space, or for that matter any stray character not entered with +an appropriate \musixtex\ macro, will not be properly +recognized and recorded by \musixtex, but it will still be treated like +ordinary text by \TeX. The symptoms of such a transgression will be an +{\bf Overfull hbox} warning during the third pass, and the appearance of +either excessive blank horizontal space or thick black vertical lines in +the page image. + +\medskip +\centerline{\fbox{Considerable discipline is needed to avoid this problem!}} +\smallskip + +The best technique for avoiding such unpleasantness is to avoid entering +any nonessential blanks within input lines, and to end every +input line with either \verb|%|\index{%@{\tt\char37}} or +\keyindex{relax}, unless it already ends with a control sequence +ending in a letter. + +There are other ways to enter unrecorded space which should be +avoided. Between \verb|\startpiece| and \verb|\stoppiece| or +\verb|\endpiece|, never use \verb|\hskip| or \verb|\kern| except +within \ital{zero}-boxes like \verb|\rlap|, \verb|\llap|, +\verb|\zcharnote|, \verb|\uptext|, etc., and never assign hard +values to scalable dimensions like \verb|\noteskip|, +\verb|\elemskip|, \verb|\afterruleskip| and \verb|\beforeruleskip|\footnote{Note that {\Bslash hardspace} does not fall in this +category; it is specifically designed to enter hard space in a way +that \musixtex\ can properly record it}. + +Here is a checklist of tips related to spacing issues. Because the +foregoing several paragraphs are so important, some of their content +is repeated in the list. + +\begin{enumerate} + \item +Between \verb|\startpiece| and \verb|\stoppiece| or \verb|\endpiece|, +end every input line with a either \verb|%| or a command with no arguments +(including \verb|\relax| and \verb|\en|). + \item \verb|\off| must only be used with scalable values, e.g., +\verb|\noteskip|, \verb|\elemskip|, \verb|\afterruleskip|, and + \verb|\beforeruleskip|. + \item Remember that \verb|\qqsk|, \verb|\qsk| and \verb|\hqsk| are scalable, i.e., \verb|\qsk| + doesn't necessarily mean exactly one note head width (it depends on \verb|\elemskip|). + \item Lyrics and any other non-\musixtex\ text must be put in zero-width boxes +such as + \verb|\zcharnote|, \verb|\zchar|, \verb|\rlap|, \verb|\lrlap|, \verb|\llap|, +\verb|\uptext|, or \verb|\zsong|. Additional specific capabilities for entering +lyrics are provided by + \verb|\hardlyrics|, \verb|\hsong|, and---most significantly---the +text-placement macros defined in \verb|musixlyr.tex| (see Chapter~\ref{lyrics}, +p.~\pageref{lyrics}). + \item +Between \verb|\startpiece| and \verb|\stoppiece| or \verb|\endpiece|, +don't assign hard values to \verb|\noteskip|, \verb|\beforeruleskip|, +or \verb|\afterruleskip|. +\end{enumerate} + + +\section{Further highlights} + %\check + \subsection{Key signatures} +\begin{sloppypar} +A single key signature can be assigned~to~all~instruments,~for~example~by +\keyindex{generalsignature}\verb|{-2}| +which sets two flats on each staff. \keyindex{generalsignature} +can be overridden for selected instruments, for example by +\keyindex{setsign}\verb|2{1}| which puts one sharp on each staff +of instrument number 2. Of course, the current signature as well +as meters and clefs may change at any time.\end{sloppypar} +\subsection{Transposition} +With some extra attention, a score can be input in such a way that it is +fairly easily transposed. There is an internal register +called \keyindex{transpose}, the default value of which is zero, but which may be +set to any reasonable positive or negative value. It defines a number of pitch +steps (lines or spaces on a staff) by which all pitched symbols with be offset, provided +they have been entered with letter values to represent their pitch. +However, +it will neither change the local accidentals nor the key signature. + +For +example, suppose a piece were originally input in F major, and it contained a +B natural, and you wanted to transpose it to G. If you simply set +\verb|\transpose| to 1 with no other special considerations, then +the key signature would not change, and +the B~natural would appear as a C~natural, whereas it should be a C~sharp. +So first you must explicitly change the key signature. Then, to +solve the problem with accidentals, you should declare +\verb|\relativeaccid|, which will cause the actual appearance of any +accidental to depend on the pitch of +the accidental as well as the current key signature. But the use of this +facility requires the typesetter to have entered the original set of accidentals +according to a nonstandard convention wherein an accidental does not +specifically refer to the black or white keys on a piano, but to the +amount by which the pitch is altered up or down from what it would naturally +have been, taking the key signature into account.\index{relative accidentals} This +is discussed in more detail in Section~\ref{transposeaccids}. Now, finally, you +can enter \verb|\transpose=1| with more or less the desired effect. + +More or less, because there is also an issue with stem +and beam directions. Normally a typesetter would want full control over them, +and would exercise that control by entering them with macros that explicitly +assign the direction. Naturally the assigned directions would persist +even after changing \verb|\transpose|. With respect to stems of unbeamed notes, +this matter can also be addressed at +the input level, by using special macros for notes that leave the +decision about stem directions up to \musixtex. These macros do the right +thing in the face of transposition. They are discussed in +Chapter~\ref{autostemdirections}. Unfortunately there is no corresponding +such facility for beams, so the typesetter will have to edit the transposed +score to adjust beam directions as required\footnote{\textbf{PMX} +will automatically adjust both stem and beam directions when transposing, which +is yet another reason to use it. However +if a piece is to be transposed, the typesetter must still explicitly activate relative accidentals +and enter accidentals according to the relative-accidental convention.}. + + %\check + \subsection{Extracting parts from a score} +It is possible to extract separate scores for +each individual instrument of a multi-instrument score. +If you use \textbf{PMX}, it is very easy; +see the documentation for \textbf{PMX}. +If you use \musixtex\ without a preprocessor, +see Chapter~\ref{parts}. + +%After assigning symbolic numbers to instruments, +%there are macros (see \ref{instrum-inhibit}) that permit +% \begin{itemize}\setlength{\itemsep}{0ex} +% \item choosing which instrument the following source code is attached to, +% \item choosing which staff of an instrument the following source code is +%attached to, +% \item hiding one or several instruments by zeroing out their staff sizes and staff +%numbers. +% \end{itemize} + + %\check + \subsection{Staff and note sizes} + Although the standard staff size is 20pt, \musixtex\ allows scores with +sizes of 16, 24, or 29pt. Furthermore, any instrument may be assigned its own special staff +size (usually smaller than the overall staff size), and there are special macros +(e.g., \verb|\smallnotesize|, \verb|\tinynotesize|) that cause notes, beams, and +accidentals all to take a different size. + +\subsection{Add-in macro libraries} +During the early stages of \musixtex's development, common versions of \TeX\ itself were +very limited in capacity, especially in terms of the numbers of registers that could +be defined for use in macros. For this historical reason, many important enhancements +to \musixtex\ are available only via add-in libraries. The user can thus pick and choose +which to include for any particular compilation. Most of these are included in +a \musixtex\ distribution, and their uses are discussed in this manual. The +libraries have names like \verb|blabla.tex|, and are activated by including a line +like \verb|\input blabla|\ within the the input file. The most common such files +are \ttxem{musixadd.tex} and \ttxem{musixmad.tex} which respectively increase the +number of instruments from the default 6 to 9 or 12 as well as increasing available numbers +of other features; \verb|musixps.tex| which enables Type~K Postscript slurs; and +\verb|musixlyr.tex| which greatly eases typesetting lyrics. In fact the latter two, +while now included in \musixtex\ distributions, are not documented in this manual but +in separate files, namely \verb|musixps.tex| itself and +\verb|mxlyrdoc.pdf| respectively. + + +\section{Installing and Using \musixtex}\label{using} + +As stated in the preface, +the \href{http://icking-music-archive.org/software/indexmt6.html} +{\underline{Werner Icking Music Archive}}\ (WIMA) contains excellent and detailed +instructions for installing \TeX, \musixtex{} and the strongly recommended +preprocessors \textbf{PMX} +(for instrumental music) and \mbox{\textbf{M-Tx}} (for vocal music) under +\href{http://icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html#SECTION00022000000000000000} +{\underline{Linux/\unix}}, +\href{http://icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html#SECTION00021000000000000000} +{\underline{Windows}} and +\href{http://icking-music-archive.org/software/htdocs/Getting_Started_Four_Scenar.html#SECTION00023000000000000000} +{\underline{Mac OS}}. + +As stated in Section~\ref{threepass}, to compile a \musixtex-formatted score, you must run +in sequence \verb|etex|, \verb|musixflx|, +and \verb|etex| again. This will produce a \verb|.dvi| file. From this point +forward, this file can be processed like the device-independent output file +for any \TeX\ document. The most common approach and the only one to +be discussed here is to next generate a Postscript file. This is accomplished +by running \verb|dvips|, which is included in every \TeX\ system. To view the +Postscript, most users run {\tt GSview} or {\tt gv}, a front-end to {\tt ghostscript}, which must +be separately downloaded and installed. Finally, you may produce a PDF file +using \verb|ps2pdf| or GSview, and view that with any PDF viewer, such as +the Adobe Reader or {\tt GSview}. + +You also can view the \verb|.dvi| file directly using a DVI viewer such as Yap or \verb|xdvi|, +but, if you are using type K Postscript slurs, some DVI viewers will not display them. + +Rather than executing all the foregoing programs separately, most users will +find it more convenient to use the \verb|musixtex| script that comes in most +distributions of \musixtex. For example, + +\verb|musixtex jobname| + +\noindent will run the three passes described in Section~\ref{threepass}, +convert the result to PDF and delete intermediate files. +There are many options available to +change the behavior; run + +\verb|musixtex -h| + +\noindent to get a summary. + + +\section{Where to get help using \musixtex} + +The home base for all matters related to \musixtex\ is the +Werner Icking Music Archive, at +\href{http://icking-music-archive.org}{\underline{http://icking-music-archive.org}}. +There is a +\href{http://tug.org/mailman/listinfo/tex-music}{\underline{mailing list}}, +hosted by TUG, the \TeX\ Users Group, where you will always find +someone willing to answer questions and help solve problems. + + \section{A very brief history of \musixtex} +The idea of using \TeX\ to typeset music appears to have originated +around 1987 with the master's thesis of Andrea +{\sc Steinbach} and Angelika {\sc Schofer}\footnote{Steinbach A. \& Schofer +A., \ital{Automatisierter Notensatz mit \TeX}, master's thesis, +Rheinische Friedrich-Wilhelms Universit\"at, +Bonn, Germany, 1987}. They called their package +\mutex\index{mutex@\protect\mutex}. It was limited to a single staff. +It introduced two key concepts: (1) using +a large number of font characters to construct beams and slurs, and (2) using +\TeX\ glue to help control horizontal spacing and justification. + +The next major step came around 1991 when Daniel {\sc Taupin} created \musictex. +Its major enhancement was to allow multiple staves. But this came at a +price: some flexibility was lost in controlling horizontal spacing and +a great deal of trial and error became necessary to avoid excessive or +insufficient gaps before and after bar lines. + +\musictex\ was a single-pass system. To remedy its shortcomings it became clear +that a multi-pass system would be required. Around 1997 Dr.~Taupin along with Ross {\sc Mitchell} +and Andreas {\sc Egler} created the first version of \musixtex. At last a fully +automatic procedure was coded so as to provide pleasing horizontal spacing in +multi-staff scores. + +Significant enhancements to \musixtex, which have already been mentioned, have been provided +by Stanislav {\sc Kneifl} (Type~K Postscript slurs) and +Rainer {\sc Dunker} (Lyrics handling via \verb|musixlyr.tex|). + +Since Dr.~Taupin passed away in 2003, \musixtex\ has been maintained by a +varying cast including Olivier {\sc Vogel}, Hiroaki {\sc Morimoto}, +Bob {\sc Tennent}, Andre {\sc Van Ryckeghem}, +Cornelius {\sc Noack}, and Don {\sc Simons}. + +No discussion of the history of \musixtex\ would be complete without mentioning +the contributions of Werner {\sc Icking}. From the early days of \mutex\ until +his untimely death in 2001, he served this line of software as its most prominent +proponent, beta tester, web site and mailing list editor, consultant, +problem solver, and inspiration for +many third-party enhancements including \textbf{PMX}. In fact he founded the +mailing list and the archive that now is named in his honor. The web site is +currently edited by Christian {\sc Mondrup}, the software page by Bob {\sc Tennent}, +and the mailing list by Maurizio {\sc Codogno}. + + diff --git a/macros/musixtex/doc/musixdoc/layout.tex b/macros/musixtex/doc/musixdoc/layout.tex new file mode 100644 index 0000000000..10d8bbc3cf --- /dev/null +++ b/macros/musixtex/doc/musixdoc/layout.tex @@ -0,0 +1,183 @@ +\chapter{Managing the Layout of your Score} +\section{Line and page breaking}\label{linebreak} +If every bar ends with \verb|\bar| and no other line- or page-breaking commands +are used, then the external program \verb|musixflx| will decide where to insert +line and page breaks. Line breaks will only come at bar lines. The total +number of lines will depend on the initial value of \verb|\elemskip|, which by +default is \verb|6pt| in \verb|\normalmusicsize|. + +You can force a line or page break by replacing \keyindex{bar} with +\keyindex{alaligne} or \keyindex{alapage} respectively. On the other hand, +to forbid line-breaking at a particular bar, replace \verb|\bar| +with \keyindex{xbar}. To force a line or page break where there is +no bar line, use \keyindex{zalaligne} or \keyindex{zalapage}. To mark any +mid-bar location as an optional line-breaking point, use \keyindex{zbar}. + +The heavy final double bar of a piece is one of the consequences of +\keyindex{Endpiece} or \keyindex{Stoppiece}. If you just want to terminate +the text with a simple bar, say \keyindex{stoppiece} or \keyindex{endpiece}. +If you want to suppress right-justification of the last line of a score, +use \keyindex{raggedstoppiece}. +To terminate it with no bar line at all, code \keyindex{zstoppiece}. + +Once you have stopped the score by any of these means, you may want to restart +it, and there are several ways to do so. If you don't need to change the key +signature, meter, or clef, +you can use \keyindex{contpiece} for no indentation, or \keyindex{Contpiece} +to indent by \keyindex{parindent}. If you do want to change some score +attribute that takes up space, for example +with \keyindex{generalsignature} after \verb|\stoppiece|, then to restart you +must use \keyindex{startpiece}. However, if you don't want \verb|\barno| reset +to 1, you must save its new starting value to \verb|\startbarno|. You may also +wish to modify instrument names or \verb|\parindent| before restarting. + +Recall that thin-thin or thin-thick double bars or blank bar lines can be +inserted without stopping by using the commands described in Section~\ref{doublebars}. +Those commands can also be used before \verb|\stoppiece|, +\verb|\alaligne|, or \verb|\alapage| + +\section{Page layout} +Blank space above and below each staff is controlled by the dimension +registers \keyindex{stafftopmarg} and \keyindex{staffbotmarg}. For more +info see Chapter~\ref{LayoutParameters}. + +The macro \keyindex{raggedbottom} will remove all vertical glue and +compact everything toward the top of page. +In contrast, the macro \keyindex{normalbottom} will restore default +behavior, in which vertical space between the systems is distributed +so that the first staff +on the page is all the way at the top and the last staff all the way at +the bottom. +The macro \keyindex{musicparskip} will allow the existing space between +systems to increase by up to \verb|5\Interligne|. + +The following values of page-layout parameters will allow as much material +as possible +on a page, provided the printer supports these dimensions which +imply approximately half-inch margins: + +\begin{center} +\begin{tabular}{|l|l|}\hline +\multicolumn{1}{|c|}{A$4$}&\multicolumn{1}{|c|}{letter}\\\hline +\verb+\hsize=190mm+&\verb+\hsize=7.5in+\\\hline +\verb+\vsize=270mm+&\verb+\vsize=10in+\\\hline +\end{tabular} +\end{center} +\zkeyindex{parindent}\zkeyindex{hoffset}\zkeyindex{voffset} +\zkeyindex{hsize}\zkeyindex{vsize} +You may have to be more conservative if you have headlines or footlines +or want +even/odd-page asymmetry, such as with the \keyindex{rectoverso} +command in \verb|musixsty.tex| (Section~\ref{musixsty}). +If a score is going to be ``published'' at a public repository (such as +\mbox{\textsc{imslp}}), you may want to allow for \emph{either} +A$4$ \emph{or} letter paper, for example by setting the \verb|\hsize| to~190~mm +and the \verb|\vsize| to~10~in. + +To generate a score in ``landscape''\index{landscape mode} mode, adjust the +text-size parameters above accordingly (e.g., \verb+\hsize=10in+ and \verb+\vsize=7.5in+) +and add a suitable \verb\papersize\ ``special'' to the \TeX\ output, as in +\verb+\special{papersize=11in,8.5in}+. + + +For \emph{any} values of +\verb|\hsize| and \verb|\vsize|, +material will normally be centered on the page by using +command sequences such as the following, which simply split the difference between the page size and the text size, +and then subtract one inch because of \TeX\ conventions: +\begin{enumerate} +\item[For A$4$ paper, portrait mode (210~mm $\times$ 297~mm):]\quad\\[-2ex] +\begin{verbatim} +\hoffset=210mm\advance\hoffset-\hsize\divide\hoffset2 +\advance\hoffset-1.0in +\voffset=297mm\advance\voffset-\vsize\divide\voffset2 +\advance\voffset-1.0in +\end{verbatim} +\item[For letter-size paper, portrait mode (8.5~in $\times$ 11~in):] \quad\\[-2ex] +\begin{verbatim} +\hoffset=8.5in\advance\hoffset-\hsize\divide\hoffset2 +\advance\hoffset-1.0in +\voffset=11in\advance\voffset-\vsize\divide\voffset2 +\advance\voffset-1.0in +\end{verbatim} +\end{enumerate} + +To determine the maximal dimensions that \emph{your} printer is capable of, +process the standard file \verb|testpage.tex| with \LaTeX\ and +print the result. The ``rulers'' on four sides will indicate +how much of the one-inch ``margin'' material outside the frame can actually be printed. +Your \verb|\hsize| and \verb|\vsize| parameters can be increased, or, if necessary, decreased +accordingly. If your score is going to be printed by a publisher or a colleague, you can send +\verb|testpage.pdf| to them to determine what margins are necessary for their +printer. + +However, if the margins on the \verb|testpage| output are \emph{not} +symmetric, +the printer is mis-aligned. +If this can't be corrected, the margin offsets will +have to be adjusted. Ideally, this should be done in the \TeX\ configuration +so all \TeX\ output will be corrected, but offsets can be adjusted +for just \verb|musixtex| output using +\verb|\advance\hoffset ...| and/or +\verb|\advance\voffset ...| +after the ``normal'' settings given above. + + + + +\section{Page numbering, headers and footers}\index{page +number}\index{footnote} + +There are no special page numbering facilities in \musixtex; you must rely on +macros from plain \TeX. There is a count register in \TeX\ called +\verb|\pageno|. It is always initialized to $1$ and incremented by one +at every page break. By saying \keyindex{pageno}\verb|=|$n$, it can be reset to any +value at any time, and will continue to be incremented from the new value. + +By default, \TeX\ will place a page number on +every page, centered at the bottom. Unfortunately, this is not the preferred +location according to any standard practice. To suppress this default +behavior, say \keyindex{nopagenumbers}. + +One way to initiate page numbering in a more acceptable location is to take +advantage of the facts that (a) \TeX\ prints the contents of the control sequences +\keyindex{headline} and \keyindex{footline} at the top and bottom +respectively of every page, and (b) the value of \verb|\pageno| can be printed by +saying \keyindex{folio}. Therefore, for example, the following sequence of +commands, issued anywhere before the end of the first page, will cause page +numbers and any desired text to be printed at the top of every page, +alternating between placement of the number at the left and right margins, and +alternating between the two different text strings (the capitalized text in +the example): + +\begin{quote}\begin{verbatim} +\nopagenumbers +\headline={\ifodd\pageno\rightheadline\else\leftheadline\fi}% +\def\rightheadline{\tenrm\hfil RIGHT RUNNING HEAD\hfil\folio}% +\def\leftheadline{\tenrm\folio\hfil LEFT RUNNING HEAD\hfil}% +\voffset=2\baselineskip +\end{verbatim}\end{quote} + +\section{Controlling the total number of systems and pages}\index{page/line layout} + +Once all the notes are entered into a \musixtex\ score, it would be convenient +if there were a simple sequence of commands to +cause a specified number of systems to be uniformly distributed over a +specified number of pages. Unfortunately that's not directly +possible\footnote{It \textit{is} possible in \textbf{PMX}.}. +Rather, some trial and error will usually be required to achieve the desired final +layout. To this end, some combination of the following strategies may be used: + + \begin{enumerate}\setlength{\itemsep}{0ex} + \item Assign a value to the count register \keyindex{linegoal} representing +the total number of systems. The count register \keyindex{mulooseness} must be $0$ if using +\verb|\linegoal|. + \item Explicitly force line and page breaking as desired, using +the macros \verb|\alaligne|, \verb|\alapage|, \verb|\zalaligne| +or \verb|\zalapage|. + \item Adjust both \keyindex{mulooseness} and the initial value of +\keyindex{elemskip}: increasing \verb|\mulooseness| from its default of 0 will +increase the total number of systems, while changing the initial value of +\verb|\elemskip| (use \verb|\showthe\elemskip| to find its default value) may change the +total number of systems accordingly. + \end{enumerate} diff --git a/macros/musixtex/doc/musixdoc/lyrics.tex b/macros/musixtex/doc/musixdoc/lyrics.tex new file mode 100644 index 0000000000..41d52fa221 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/lyrics.tex @@ -0,0 +1,407 @@ +\chapter{Lyrics}\index{lyrics}\label{lyrics} +\musixtex{} itself doesn't manage lyrics very well. You should use +\verb+musixlyr+ instead, a \musixtex\ extension package for lyrics handling by Rainer Dunker. +The \TeX~source and +\href{http://icking-music-archive.org/software/musixtex/add-ons/mxlyrdoc.pdf} +{\underline{documentation}}~are included in the \musixtex~distribution. + +But first we recall briefly the older methods, which may still be useful when +only a small number of words are involved. + +\section{Native lyrics method: placing single words} +\subsection{Native \musixtex\ commands for lyrics} + \begin{enumerate}\setlength{\itemsep}{0ex} + \item An obvious solution is to use the commands +\keyindex{zcharnote} (expanded to the right), +\keyindex{lcharnote} (expanded to the left), +\keyindex{ccharnote} (centered), to post the text at any position (computed in +\verb|\internote|s) with respect to the lower line of the current staff. +The pitch should be usually negative, to have the text below the staff. + +Example:\quad +\raisebox{0ex}[4ex][3ex]{\musicintextnoclefn{\notes\sk\zcharnote{N}{Word}\wh g\sk\en}} +\quad is coded by \quad +\verb|\zcharnote{N}{Word}\wh g|~. + +\item The vertical position can also be given with a number in the commands +\keyindex{zchar} (expanded to the right), +\keyindex{lchar} (expanded to the left), +\keyindex{cchar} (centered). The number is internally multiplied by \verb|\internote|~. + +Example:\quad +\raisebox{0ex}[4ex][3ex]{\musicintextnoclefn{\notes\sk\cchar{-4}{Word}\wh g\sk\en}} +\quad is coded by \quad +\verb|\cchar{-5}{Word}\wh g|~. + +\item Of easier use are the commands \keyindex{zsong} (right of the note), +\keyindex{lsong} (left) and \keyindex{csong} (centered) which post the lyrics +at the lower staff line \ital{minus} the previous +\keyindex{interinstrument}~$n$ or the \keyindex{staffbotmarg} quantity. These +commands only have one argument, namely the lyrics text: +%\begin{center} +\keyindex{zsong}\verb|{|\ital{text}\verb|}|\quad +\keyindex{lsong}\verb|{|\ital{text}\verb|}|\quad +\keyindex{csong}\verb|{|\ital{text}\verb|}| +%\end{center} + Depending on the values of the inter-instrument spacings and margins, the +resulting vertical position might be inappropriate. Then it can be changed for +any specific $n$-th instrument until further change using +\begin{quote} +\keyindex{setsongraise}~$n$\verb|{|\ital{any \TeX-dimension}\verb|}| +\end{quote} +As an example, the following French song\\ + \begin{music} + \generalsignature{1} + \startextract + \geometricskipscale + \NOtes\zsong{Au }\qu g\en + \NOtes\zsong{clair }\qu g\en + \NOtes\zsong{de }\qu g\en + \NOtes\zsong{la }\qu h\en + \bar + \NOTes\zsong{lu- }\hu i\en + \NOTes\zsong{ne, }\hu h\en + \bar + \NOtes\zsong{mon }\qu g\en + \NOtes\zsong{a- }\qu i\en + \NOtes\zsong{mi }\qu h\en + \NOtes\zsong{Pier- }\qu h\en + \bar + \NOTes\zsong{rot, }\wh g\sk\en + \endextract + \end{music} + +\noindent was coded as: +\begin{quote}\begin{verbatim} + \generalsignature{1} + \startextract + \geometricskipscale + \NOtes\zsong{Au }\qu g\zsong{clair }\qu g\en + \NOtes\zsong{de }\qu g\zsong{la }\qu h\en\bar + \NOTes\zsong{lu- }\hu i\zsong{ne, }\hu h\en\bar + \NOtes\zsong{mon }\qu g\zsong{a- }\qu i\en + \NOtes\zsong{mi }\qu h\zsong{Pier- }\qu h\en\bar + \NOTes\zsong{rot, }\wh g\sk\en + \zendextract +\end{verbatim}\end{quote} +\end{enumerate} + +\subsection{Adapting note spacing for lyrics} + +The command \keyindex{hardlyrics}\verb|{longword}| provides a spacing that is equal to the length +of the text argument \verb|{longword}|. In the same time the argument \verb|{longword}| +is saved in \keyindex{thelyrics} + +As an example \quad +\raisebox{0ex}[5ex][4ex]% +{\musicintextnoclefn{\staffbotmarg2\Interligne% +\hardlyrics{clair}\notes\hsong{\thelyrics}\wh g\en\notes\wh{gg}\en}} +\quad is coded by: +\begin{tabular}{l} +\verb|\hardlyrics{clair}%|\\ +\verb|\notes\hsong{\thelyrics}\wh g\en|\\ +\verb|\notes\wh{gg}\en|\\ +\end{tabular} + +All notes with long lyrics need such a treatment. The commands only carry out on +\verb|\notes| (not on \verb|\Notes|, \verb|\NOtes|...). + +If you want to go back to the normal placing on an easy way, you simply can replace +'\verb|\hardlyrics|' by '\verb|\softlyrics|'. + + A complete score is given in example {\tt glorias.tex}\label{glorias} and in +{\tt gloriab.tex}, the latter exhibiting not only the song tune but also the +organ accompaniment. + +Alternate versions of \verb|\hsong| are \keyindex{dhsong} which has a fixed +length of \verb|2\noteskip| and \keyindex{thsong} whose fixed length is +\verb|3\noteskip|. These are useful when the text is set below (or above) a +collective coding of two or three notes. + +\section{Musixlyr}\label{musixlyr} + +Lyrics are best handled by the \texttt{musixlyr}\index{musixlyr} package by Rainer Dunker. +The package can be used by inserting a line in your source code: +\begin{quote}\begin{verbatim} +\input musixtex +\input musixlyr +... +\end{verbatim}\end{quote} + +The manual, the input file and a few examples are in \musixtex\ distributions, or they +may be downloaded +\href{http://icking-music-archive.org/software/musixtex/add-ons/musixlyr21c.zip} +{\underline{for Windows}} or \href{http://icking-music-archive.org/software/musixtex/add-ons/musixlyr21c.tgz} +{\underline{for \unix}}. Look at the manual for a detailed description. Here is an overview +of the commands and an example of use.\pagebreak + +\def\keyexample#1{\keyindex{#1}} + +\noindent\begin{small}\begin{tabbing} +\verb|\NOtes|\keyexample{assignlyricshere}\verb|{alto}\qa c\en|\quad\= assigning without staff number\kill +Example\> Explanation +\end{tabbing} +\vspace{-1ex} +\hrule +\vspace{-2ex} +\begin{tabbing} +\verb|\NOtes|\keyexample{assignlyricshere}\verb|{alto}\qa c\en|\quad\= assigning without staff number\kill +\keyexample{setlyrics}\verb|{sopr}{the ly_-ric words_}|\> defining the lyrics text\\ +\keyexample{copylyrics}\verb|{sopr}{alto}|\> alto has same lyrics as soprano\\ +\keyexample{appendlyrics}\verb|{alto}{more words}|\> alto lyrics is longer\\ +\keyexample{assignlyrics}\verb|2{sopr,alto}|\>soprano and alto lyrics at staff $2$\\ +\keyexample{assignlyricsmulti}\verb|{1}{2}{alto}|\>assign alto lyrics to staff $2$ of instrument $1$\\ +\verb|\NOtes|\keyexample{assignlyricshere}\verb|{alto}\qa c\en|\>assigning without staff number\\ +\keyexample{auxlyr}\verb|\assignlyrics{2}{sopr}|\> assign soprano above staff $2$\\[.8ex] +\keyexample{lyrrule}\verb|\qu c|...\keyexample{lyrruleend}\verb|\qu c|\>make a melisma by hand\\ +\keyexample{beginmel}\verb|\qu c|...\keyexample{endmel}\verb|\qu c|\>melisma, same as word extension underline\\[.8ex] +\keyexample{lyr}\verb|\qu c|\>force a syllable from lyrics text at this note or rest\\ +\keyexample{lyric}\verb|{word}\qu c|\>insert syllable 'word' at this note\\ +\verb|\loffset{2}{|\keyexample{lyric*}\verb|{1.}}\qu c|\>combine \verb|1.| with regular syllable\\ +\keyexample{lyrich}\verb|{syl}\qu c|\>same as \verb|\lyric|, but with hyphenation\\ +\keyexample{lyrich*}\verb|{}\qu c|\>same as \verb|\lyric*|, but with hyphenation\\ +\keyexample{lyricsoff}...\keyexample{lyricson}\>stop lyrics, then start again\\ +\keyexample{nolyr}\verb|\qu c|\>no syllable at this note\\[.8ex] +\keyexample{llabel}\verb|{labelname}name|\>labelling a ``go to'' target in text\\ +\keyexample{golyr}\verb|{labelname}\qu c|\>perform a jump, in music code\\[.8ex] +\keyexample{lyrpt}\verb|,\qu c|\>add a comma to the syllable under this note\\ +\keyexample{lyrnop}\verb|\qu c|\>remove last character in syllable\\ +\keyexample{lclyr}\verb|\qu c|\>make first character lower case\\ +\keyexample{llyr}\verb|\qu c|\>left justified syllable\\ +\keyexample{leftlyrtrue}\verb|\qu c|...\keyexample{leftlyrfalse}\verb|\qu c|\>start and stop left justification as the default\\ +\keyexample{lyroffset}\verb|{-4}\qu c|\>shift syllable $1$ notehead to the left\\[.8ex] +\keyexample{minlyrspace}\verb|{3pt}\qu c|\>define minimum space between the words\\ +\keyexample{forcelyrhyphenstrue}\verb|\qu c|\>always use a hyphen from now on\\ +\keyexample{forcelyrhyphensfalse}\verb|\qu c|\>remove hyphen and make one word if necessary \\ +\keyexample{showlyrshifttrue}\verb|\qu c|\>show the lyric shift\\[.8ex] +\keyexample{lyrraise}\verb|{1}{a 2\Interligne}|\>raise lyrics below staff $1$ by \verb|2\Interligne|\\ +\keyexample{lyrraisemulti}\verb|{1}{2}{a 2\Interligne}|\>raise alto lyrics above staff $2$ of instrument $1$\\ +\keyexample{lyrraisehere}\verb|{b 2\Interligne}\qu c|\>raise lyrics below this staff by \verb|2\Interligne|\\[.8ex] +\keyexample{minlyrrulelength}\verb|{2mm}|\>melismas shorter than $2$mm are not shown \\ +\keyexample{minmulthyphens}\verb|{15mm}|\>distance between hyphens in 'hyphen melisma'\\ +\verb|\def|\keyexample{lyrhyphenchar}\verb|{-}|\>chose a hyphen character\\ +\verb|\setlyrics{|\keyexample{lyrlayout}\verb|{\it}..}|\>apply italics to all lyrics lines\\ +\keyexample{verses}\verb|{,\beginmel}\qu c|\>initiate melisma at second verse\\[.8ex] +\verb|\small|\keyexample{setlyrstrut}\>adapt the vertical distance between lyrics lines\\ +\keyexample{lyrstrutbox}\verb|{10pt}|\> (re)define the distance between the lyrics lines\\[.8ex] +\keyexample{lyrmodealter}\verb|2|\>attach lyrics of staff $2$ to the upper voice\\ +\keyexample{lyrmodealtermulti}\verb|{1}{2}|\>attach lyrics of instr.\ $1$ staff $2$ to the upper voice\\ +\keyexample{lyrmodealterhere}\verb|\qu c|\>attach lyrics of this staff to the upper voice\\ +\keyexample{lyrmodenormal}\verb|2|\>restore the default behaviour\\ +\keyexample{lyrmodenormalmulti}\verb|{1}{2}|\>restore the default behaviour at staff $2$ of instr.\ $1$\\ +\keyexample{lyrmodenormalhere}\verb|\qu c|\>restore the default behaviour of this staff\\[.8ex] +\keyexample{lyrlink}\>linking two words with a '$_{_\smile}$'\\ +\keyexample{lowlyrlink}\>same as \verb|\lyrlink| but a little bit lower\\[.8ex] +\keyexample{resetlyrics}\>set word pointer to the first word in all lyrics lines\\[.8ex] +\keyexample{enableauxlyrics}\>don't use this anymore\\ +\keyexample{setsongraise}\verb|{1}{2\Interligne}|\>same as \verb|{\lyrraise}{1}{b 2\Interligne}|\\ +\keyexample{auxsetsongraise}\verb|{1}{2\Interligne}|\>same as \verb|{\lyrraisemulti}{1}{b 2\Interligne}|\\ +\keyexample{oldlyrlinestart}\>don't let the lyrics extend to the left margin\\ +\end{tabbing}\end{small} + +As a further illustration of the use of the commands, have a look at the following +example\footnote{The example is taken from the \texttt{musixlyr} manual.}: + +\medskip\medskip +%\oneversespace +\begin{music} +\input musixlyr + \resetlyrics \small +\lyrmodealter0 + \setlyrics{soprano}{bring her die Gans,} \auxlyr{\assignlyrics1{soprano}} + \copylyrics{soprano}{alto} \assignlyrics1{alto} + + \generalsignature{-2} + \advance\stafftopmarg1\Interligne + \advance\staffbotmarg2\Interligne + + \startextract\addspace\afterruleskip + \NOtes\zqu g\ql e\en + \bar + \Notes\zqu i\beginmel\ibslurd0f\ibl0f{-1}\qb0{fe}\en + \Notes\auxlyr\beginmel\ibsluru1i\zqup i\qb0d\en + \Notes\tqb0e\en + \Notes\endmel\tbslurd0e\ql c\en + \notes\ibbu0h{-1}\qb0h\tqh0g\en + \NOtes\auxlyr\endmel\tbsluru1h\zqu h\ql c\en + \bar + \NOTEs\auxlyr\lyr\zwh i% The lyrics of the whole notes + \lyr\wh b\en % must be given manually. + \endextract + \lyrmodenormal0 +\end{music} +\medskip + +%\oneversespace + +which was coded as: +\begin{quote} +\begin{verbatim} +% define lyrics above the staff +\setlyrics{soprano}{bring her die Gans,} +% lyric beneath the staff are the same +\copylyrics{soprano}{alto} +% assign alto lyrics below staff 1 on the notes with stem down +\assignlyrics1{alto} +% assign soprano lyrics above staff 1 on the notes with stem up +\auxlyr{\assignlyrics1{soprano}} +% attach both lyrics to the upper voice +\lyrmodealter0 +\generalsignature{-2} +% make place for the lyrics +\advance\stafftopmarg1\Interligne\advance\staffbotmarg2\Interligne +\startextract\addspace\afterruleskip +\NOtes\zqu g\ql e\en\bar +% start melisma in lower lyrics +\Notes\zqu i\beginmel\ibslurd0f\ibl0f{-1}\qb0{fe}\en +% start melisma in upper lyrics +\Notes\auxlyr\beginmel\ibsluru1i\zqup i\qb0d\tqb0e\en +% end melisma in lower lyrics +\Notes\endmel\tbslurd0e\ql c\en +\notes\ibbu0h{-1}\qb0h\tqh0g\en +% start melisma in upper lyrics +\NOtes\auxlyr\endmel\tbsluru1h\zqu h\ql c\en\bar +% The lyrics of the whole notes (without stem) must be given manually. +\NOTEs\auxlyr\lyr\zwh i\lyr\wh b\en +\endextract +\lyrmodenormal0 +\end{verbatim}\end{quote} + + \section{Getting enough vertical space for lyrics} + Since songs are +usually equivalent to a one-staff instrument (possibly with several voices) +the recommended solution consists in adjusting the distance between +instruments using either \keyindex{interinstrument}\verb|=|\ital{any +\TeX-dimension} to give more place below all instruments or using +\keyindex{setinterinstrument} to make more space above. Note that {\Bslash +setinterinstrument} defines spacing above and not below an instrument. Since +lyrics are usually set below the staff, the first argument of a +\verb|\setinterinstrument| should be the song instrument number \ital{minus +one}. + + In the case of a single staff tune, or if the song instrument is the lowest +one, then additional place can be provided using \keyindex{staffbotmarg}. + +\section{Fine tuning the placement of the lyrics} + When not using \verb|\hardlyrics|, on short notes, sometimes + the lyrics are shifted away from the notes or they collide with other words. + This are a few approaches to get around this: +\begin{enumerate}\setlength{\itemsep}{0ex} +\item Making more music lines for the notes to go further apart. This could be done with +\verb|\mulooseness|. +\item Stretch a bar with short notes in it by i.e.,~replacing \verb|\notes| by \verb|\NOTes|. +\item Insert space between the notes by using \verb|\sk|, \verb|\hsk|, \verb|\qsk|, \verb|\qqsk|, ... +\item Stretch a bar with short notes in it by using the command \keyindex{scale}: +\begin{verbatim} +\scale{1.6}\notes..\en\scale{1}% +\end{verbatim} +This method can be used in \textbf{PMX} but only with care, because it changes horizontal spacing +in a way that \textbf{PMX} will not be aware of. It will not move bars to the next line, but +will shorten the other bars on the line. + +As an example, the lyrics of this music line are better placed by using \verb|\scale| in +the first bar and moving to the left the word 'mon'. Note that the hyphen is removed +when there is no place for it: + + \begin{music} + \input musixlyr + \resetlyrics + \setlyrics{v1}{Au clair de la lu-ne, mon a-mi Pier-rot,}% + \assignlyrics1{}\assignlyrics1{v1}% + \staffbotmarg2\Interligne\generalsignature{1}% + \startextract + \geometricskipscale + \notes\qu{gggh}\en\bar + \Notes\hu{ih}\en\bar + \notes\qu{gihh}\en\bar + \Notes\wh g\en + \endextract +% \end{music} +%%%%% combined for saving registers %%%%% +% \begin{music}\nostartrule +% \input musixlyr + \resetlyrics + \setlyrics{v1}{Au clair de la lu-ne, \kernm1exmon a-mi Pier-rot,}% + \assignlyrics1{}\assignlyrics1{v1}% + \staffbotmarg2\Interligne\generalsignature{1}% + \startextract \geometricskipscale + \scale{1.4}\notes\qu{gggh}\en\bar\scale{1}% + \Notes\hu{ih}\en\bar + \notes\qu{gihh}\en\bar + \Notes\wh g\en + \endextract + \end{music} + +\medskip +The code of the second music line is (\verb|\assignlyrics1{}| is only needed because +lyrics are assigned before this in this manual): +\begin{quote}\begin{verbatim} + \begin{music} + \input musixlyr + \resetlyrics + \setlyrics{v1}{Au clair de la lu-ne, \kernm1exmon a-mi Pier-rot,}% + \assignlyrics1{}\assignlyrics1{v1}% + \staffbotmarg2\Interligne\generalsignature{1}% + \startextract \geometricskipscale + \scale{1.4}\notes\qu{gggh}\en\bar\scale{1}% + \Notes\hu{ih}\en\bar + \notes\qu{gihh}\en\bar + \Notes\wh g\en + \endextract + \end{music} +\end{verbatim}\end{quote} + +\item Moving a word in any direction + +\begin{small} +\noindent\begin{tabular}{ll} +\multicolumn{2}{l}{\Bslash setlyrics\{alto\}\{\Bslash kernm3ex1.$\sim\sim$firstsyllable...\}}\\ +& left-move verse number\\ +\verb|\setlyrics{alto}{...\kern1exword...}| &right-move a single word\\ +\verb|\setlyrics{alto}{...\lower2pt\hbox{word}...}|& lower a single word\\ +\verb|\setlyrics{alto}{...\raise2pt\hbox{word}...}|& raise a single word\\ +\multicolumn{2}{l}{\Bslash def\Bslash strut\{\Bslash vbox to 2\Bslash Interligne\{\}\}% +\Bslash setlyrics\{alto\}\{\Bslash lyrlayout\{\Bslash strut\}...\}} \\ +& control distance between verses\\ +\verb|\lyrlayout{\vphantom{Mp(\lowlyrlink}|& minimum distance between verses\\ +\multicolumn{2}{l}{\Bslash setbox\Bslash lyrstrutbox=\Bslash hbox\{\Bslash vphantom\{yM\Bslash lyrlink\}\}}\\ +& redefine default lyrstrut +\end{tabular} +\end{small} + +\item Placing of accents can be made easier as shows this example: +\begin{center} +\begin{minipage}{50mm} +\begin{music}\nostartrule +\input musixlyr +\catcode`\ä\active \defä{\"a} +\catcode`\ö\active \defö{\"o} +\catcode`\å\active \letå\aa +\setlyrics1{å ä ö} +\assignlyrics1{}\assignlyrics11 +\startextract + \setsongraise1{1ex}\NOtes\qa{ggg}\en +\zendextract +\end{music} +\end{minipage}% +\begin{minipage}{80mm} +\verb|\catcode`\|\"a\verb|\active \def|\"a\verb|{\"a}|\\ +\verb|\catcode`\|\"o\verb|\active \def|\"o\verb|{\"o}|\\ +\verb|\catcode`\|\aa\verb|\active \let|\aa\verb|\aa|\\ +\verb|\setlyrics1{|\aa\ \"a\ \"o\verb|} \assignlyrics1{}|\\ +\verb|\assignlyrics11|\\ +\verb|\startextract|\\ +\verb|\NOtes\qa{ggg}\en|\\ +\verb|\zendextract|\\ +\end{minipage} +\end{center} +\item Using an 8-bit encoded characterset.\label{8bit} +If you use default (Computer Modern) fonts, you will want to switch to +the EC variants +by putting +%\verb+\input plainenc\relax\inputencoding{cp850}+ % doesn't work! +\verb+\input musixec+ +after \verb+\input musixtex+ in your source file. + +\end{enumerate} + diff --git a/macros/musixtex/doc/musixdoc/miscellaneous.tex b/macros/musixtex/doc/musixdoc/miscellaneous.tex new file mode 100644 index 0000000000..50be2c0344 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/miscellaneous.tex @@ -0,0 +1,958 @@ +\chapter{Miscellaneous Other Notations} +%avre + \section{Metronomic indications} +%Metronomic indication deserves a special macro. The mention: +% +%\medskip +%\centerline{\def\nbinstruments{0}\metron{\hup}{60}} +% +%\smallskip\noindent +%is coded by \keyindex{metron}\verb|{\hup}{60}| (normally embedded in +%\keyindex{Uptext} which is in turn embedded within \verb|\notes...\en|). +% +% On the other hand, music writers sometimes want to specify that the duration +%of a previous note is equal to a distinct furthernote. Thus +% +% \smallskip +%\centerline{\def\nbinstruments{0}\metronequiv{\qup}{\qu}} +% +%\smallskip\noindent +%is coded by \keyindex{metronequiv}\verb|{\qup}{\qu}|. + +By way of example, the notations +\begin{quote} +\def\nbinstruments{0} +\metron{\qu}{60} +\quad and\quad +\def\nbinstruments{0}\metronequiv{\qup}{\qu} +\end{quote} +are +respectively coded as +\keyindex{metron}\verb|{\qu}{60}| and \keyindex{metronequiv}\verb|{\qup}{\qu}|, +which are normally placed using \keyindex{Uptext}. +Also, you can set a smaller metronomic indication like +\begin{quote} + \def\nbinstruments{0}\metron{\smallnotesize\lqu}{ca.~72} +\quad or \quad +\def\nbinstruments{0}\metron{\tinynotesize\lqu}{ca.~72} +\end{quote} +by writing +\begin{quote} +\verb|\metron{\smallnotesize\lqu}{ca.~72}| +\end{quote} +or +\begin{quote} +\verb|\metron{\tinynotesize\lqu}{ca.~72}| +\end{quote} + + \section{Accents} + +You may use\footnote{Note from the editor: the reason the names of some of +these macros don't seem to be constructed to suggest the terms used in the +descriptions is that whoever originally defined the macros had in mind terms +that did not agree with normal English usage.} +\begin{itemize}\setlength{\itemsep}{0ex} + \item \keyindex{upz}\pitchp~(upper \itxem{staccato}) to put a dot above a note +head at pitch $p$, + \item \keyindex{lpz}\pitchp~(lower \ital{staccato}) to put a dot below a note +head at pitch $p$, + \item \keyindex{usf}\pitchp~(upper \itxem{sforzando}) to put a $>$ accent above +a note head at pitch $p$, + \item \keyindex{lsf}\pitchp~(lower \itxem{sforzando}) to put a $>$ accent below +a note head at pitch $p$, + \item \keyindex{ust}\pitchp~(upper \itxem{tenuto}) to put a +hyphen above a note head at pitch $p$, + \item \keyindex{lst}\pitchp~(lower \ital{tenuto}) to put a +hyphen below a note head at pitch $p$, + \item \keyindex{uppz}\pitchp~(upper \itxem{staccatissimo}) to put a solid vertical +wedge above a note head at pitch $p$, + \item \keyindex{lppz}\pitchp~(lower \ital{staccatissimo}) to put an inverted +solid vertical wedge below a note head at pitch $p$, + \item \keyindex{usfz}\pitchp~(upper \itxem{forzato}) to put a +``dunce cap'' above a note head at pitch $p$, + \item \keyindex{lsfz}\pitchp~(lower \ital{forzato}) to put an inverted +``dunce cap'' below a note head at pitch $p$, + \item \keyindex{upzst}\pitchp~(upper \itxem{mezzo-staccato/portato}) to put a +dot and a hyphen above a note head at pitch $p$, + \item \keyindex{lpzst}\pitchp~(lower \ital{mezzo-staccato/portato}) to put a +dot and a hyphen below a note head at pitch $p$, + \item \keyindex{flageolett}\pitchp~to put a +small circle above a note head at pitch $p$. +\end{itemize} +These marks are horizontally centered relative to solid note heads. +To +compensate for the fact that whole notes are wider, you should use +\keyindex{wholeshift}\verb|{|\ital{Any nonspacing macro}\verb|}| to center accents +and other items (e.g.,~\verb|\Fermataup|) above a whole note. + +There are also variants of the most common accents\footnote{Thanks to Klaus +{\sc Bechert}'s corrections.} which will be automatically positioned +above or below a beam. They are spelled like the corresponding normal +accent, but preceded with the letter \verb|b|, and their argument, instead of +the pitch, is the beam reference number . Thus + +\medskip +\begin{music}\nostartrule +\startextract +\Notes\ibu0f3\busfz0\qb0f\bupz0\qb0g\bust0\qb0h% + \buppz0\qb0i\busf0\qb0j\butext0\tqh0k\en +\Notes\Ibl0lg5\blsfz0\qb0l\blpz0\qb0k\blst0\qb0j% + \blppz0\qb0i\blsf0\qb0h\bltext0\tqb0g\en +\zendextract +\end{music} +\noindent was coded as +\begin{quote}\begin{verbatim} \startextract +\Notes\ibu0f3\busfz0\qb0f\bupz0\qb0g\bust0\qb0h% + \buppz0\qb0i\busf0\qb0j\butext0\tqh0k\en +\Notes\Ibl0lg5\blsfz0\qb0l\blpz0\qb0k\blst0\qb0j% + \blppz0\qb0i\blsf0\qb0h\bltext0\tqb0g\en +\zendextract +\end{verbatim}\end{quote} +\zkeyindex{busfz} +\zkeyindex{bupz} +\zkeyindex{bust} +\zkeyindex{buppz} +\zkeyindex{busf} +\zkeyindex{butext} +\zkeyindex{blsfz} +\zkeyindex{blpz} +\zkeyindex{blst} +\zkeyindex{blppz} +\zkeyindex{blsf} +\zkeyindex{bltext} + +The macros \verb|\bltext| and \verb|\butext| are detailed in the next section, +where the mystery of why they produce the number~$3$ is resolved. + + +\section{Numbers and brackets for xtuplets}\label{tuplet} + +The following table lists all the special macros that place a number indicating +an xtuplet. Some also place a bracket above or below the notes, and are +intended for use with unbeamed notes. +In the table, $p$ is a pitch, $k$ is a number, $n$ is a beam number, +$w$ is a bracket width in \verb|\internote|s, and $s$ is the bracket slope as +a multiple of $1.125$~degrees. The macro \verb|\txt| contains a default number +which will be placed by the first and third through sixth macros, +and is initially defined as \verb|\def\txt{3}|. +The macro +\verb|\tuplettxt| serves the same role for the last two macros. +The font used is defined by +\verb|\txtfont| and is, by default, \verb|\eightit| (in normal music size) but may be re-defined. + +The first four commands in the table +are normally used with beamed xtuplets. As indicated in the +last column, the last four produce a sloping bracket and may be used with +unbeamed xtuplets. + + +\begin{center} + \begin{tabular}{lclcc} + \hline + ~ & Number & ~ & Needs & ~ \\ + Macro and arguments & printed & Where invoked & Bracket \\ + \hline + \verb|\triolet|\pitchp & \verb|\txt| & before beam & none \\ + \verb|\xtuplet|\itbrace{k}\pitchp & $k$ & before beam & none \\ + \verb|\butext|\itbrace{n} & \verb|\txt| & before note at number & none \\ + \verb|\bltext|\itbrace{n} & \verb|\txt| & before note at number & none \\ + \verb|\uptrio|\pitchp\itbrace{w}\itbrace{s} & \verb|\txt| & before first note & solid \\ + \verb|\downtrio|\pitchp\itbrace{w}\itbrace{s} & \verb|\txt| & before first note & solid \\ + \verb|\uptuplet|\pitchp\itbrace{w}\itbrace{s} & \verb|\tuplettxt| & before first note & with gap \\ + \verb|\downtuplet|\pitchp\itbrace{w}\itbrace{s} & \verb|\tuplettxt| & before first note & with gap \\ + \hline + \end{tabular} +\end{center} +\medskip + +Here are some examples of the first six macros in the table:\\ +\vskip-3pt +\begin{music} +\parindent0mm +\generalmeter{\meterfrac24} +\nostartrule +\startpiece +\addspace\afterruleskip +\notesp\xtuplet6n\isluru0l\ibl0l0\qb0{lllll}\tslur0l\tqb0l\en\bar +\notesp\triolet n\isluru0l\Ibl0ln2\qb0{lm}\tslur0n\tqb0n\en +\notesp\ibslurd0k\Ibl0km2\qb0k\bltext0\qb0l\tdbslur0m\tqb0m\en\bar +\Notesp\triolet o\isluru0l\ql{lm}\tslur0n\ql n\en\bar +\Notesp\uptrio o16\ql l\en\notesp\cl n\en +%avrb +\Notesp\downtrio O16\qu e\en\notesp\cu g\en +%avre +\endpiece +\end{music} +whose coding is +\begin{quote}\begin{verbatim} +\notesp\xtuplet6n\isluru0l\ibl0l0\qb0{lllll}\tslur0l\tqb0l\en\bar +\notesp\triolet n\isluru0l\Ibl0ln2\qb0{lm}\tslur0n\tqb0n\en +\notesp\ibslurd0k\Ibl0km2\qb0k\bltext0\qb0l\tdbslur0m\tqb0m\en\bar +\Notesp\triolet o\isluru0l\ql{lm}\tslur0n\ql n\en\bar +\Notesp\uptrio o16\ql l\en\notesp\cl n\en +\Notesp\downtrio O16\qu e\en\notesp\cu g\en +\end{verbatim}\end{quote} +\zkeyindex{xtuplet}\zkeyindex{triolet} + +\medskip +Next are examples using \keyindex{uptuplet} and \keyindex{downtuplet}. +A re-definition of \verb|\tuplettxt| inside a notes group only applies +inside that group and leaves the default definition intact. +To get the +number properly centered in the gap, you must include some extra space after +the number in the definition of \verb|\tuplettxt|. As you can see in +the last bar, if the span becomes too small, the macros still won't provide +enough room for the number in the gap; in this case it would be better to +use the macros without gaps. + +% 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{\smallppff 6\/\/} +% \downtuplet{a}{2.5}{-4} + +\begin{music} +%\input tuplet +\parindent0mm +\generalmeter{\meterfrac24} +%\startpiece +\nostartrule +\startextract +\addspace\afterruleskip +\notesp\triolet o\Ibl0ln2\qb0{lm}\tqb0n\en +\notesp\Ibl0km2\qb0k\bltext0\qb0l\tqb0m\en\bar +\notesp\def\tuplettxt{5\/\/}\uptuplet o{4.1}2\cl{jklmn}\en\bar +\Notesp\uptuplet o16\ql l\en\notesp\cl n\en +\Notesp\downtuplet O16\qu e\en\notesp\cu g\en\bar +\notesp\uptuplet o16\ccl l\en\notesp\cccl n\en +\notesp\downtuplet O16\ccu e\en\notesp\cccu g\en +%\endpiece +\endextract +\end{music} + +\noindent with coding + +\begin{quote}\begin{verbatim} +\parindent0mm +\generalmeter{\meterfrac24} +\startextract +\addspace\afterruleskip +\notesp\triolet o\Ibl0ln2\qb0{lm}\tqb0n\en +\notesp\Ibl0km2\qb0k\bltext0\qb0l\tqb0m\en\bar +\notesp\def\tuplettxt{5\/\/}\uptuplet o{4.1}2\cl{jklmn}\en\bar +\Notesp\uptuplet o16\ql l\en\notesp\cl n\en +\Notesp\downtuplet O16\qu e\en\notesp\cu g\en\bar +\notesp\uptuplet o16\ccl l\en\notesp\cccl n\en +\notesp\downtuplet O16\ccu e\en\notesp\cccu g\en +\end{verbatim}\end{quote} + +A modern notation uses a \emph{ratio} such as $5$:$6$ to specify the intended duration +of an x-tuplet. This is supported in \musixtex\ by the command +\keyindex{xxtuplet}, as in + +\begin{music} +\nostartrule +\startextract\addspace\afterruleskip +\notes\xxtuplet5:6o\ibl0j3\qb0{jklm}\tql0n\en +\endextract +\end{music} + +\noindent with coding \verb|\xxtuplet5:6o\ibl0j3\qb0{jklm}\tql0n|. For the +other x-tuplet commands (apart from \verb|\triolet|, which is defined in terms of \verb|\xtuplet|), +it is possible to define \verb|\txt| or +\verb|\tupletxt| as a ratio, as in +\begin{quote}\begin{verbatim} +\def\txt{5:6} +\end{verbatim}\end{quote} + + \section{Ornaments} + + + \subsection{Simple ornaments}\index{ornaments} + +The argument $p$ in the following macros for ordinary ornaments is the +pitch at which the ornament itself appears. They are all nonspacing macros. +You may use +\begin{itemize}\setlength{\itemsep}{0ex} + \item \keyindex{mordent}\pitchp\ for \hbox to .75em{\mordent 0\hss} + \item \keyindex{Mordent}\pitchp\ for \hbox to 1.5em{\kern 0.6em\Mordent 0\hss} + \item \keyindex{shake}\pitchp\ for \hbox to .75em{\shake 0\hss} + \item \keyindex{Shake}\pitchp\ for \hbox to 1.5em{\kern 0.6em\Shake 0\hss} + \item \keyindex{Shakel}\pitchp\ for \hbox to 1.5em{\kern 0.6em\Shakel 0\hss} + \item \keyindex{Shakesw}\pitchp\ for \hbox to 1.5em{\kern 0.6em\Shakesw 0\hss} + \item \keyindex{Shakene}\pitchp\ for \hbox to 1.5em{\kern 0.6em\Shakene 0\hss} + \item \keyindex{Shakenw}\pitchp\ for \hbox to 1.5em{\kern 0.6em\Shakenw 0\hss} + \item \keyindex{turn}\pitchp\ for \hbox to 1.5em{\kern 0.6em\turn 0\hss} + \item \keyindex{backturn}\pitchp\ for \hbox to 1.5em{\kern 0.6em\backturn 0\hss} + \item \keyindex{tr}\pitchp\ for \hbox to 1.5em{\kern 0.6em\tr 0\hss} + \item \keyindex{trt}\pitchp\ for \hbox to 1.5em{\kern 0.6em\trt 0\hss}\quad (J. S.~Bach's \textit{trillo und mordant}) + \item \keyindex{xtr}\pitchp\ for \hbox to 1.5em{\kern 0.5em\xtr 0\hss} + \item \keyindex{ptr}\pitchp\ for \hbox to 1.5em{\kern 0.5em\ptr 0\hss} + \end{itemize} +To +compensate for the fact that whole notes are wider, you may use +\begin{quote} +\keyindex{wholeshift}\verb|{|\mbox{\ital{Any nonspacing macro}}\verb|}| +\end{quote} +to center any of these ornaments +above a whole note. + + +In the following macros for fermatas, the argument $p$ is the pitch of the +notehead on which the fermata rests, assuming no additional vertical +adjustments are needed for stems or intervening staff lines. They are all +nonspacing macros. You may use +\begin{itemize}\setlength{\itemsep}{0ex} + \item \keyindex{fermataup}\pitchp\ for +\raisebox{0ex}[0ex][0ex]{\notesintext{\notes\fermataup1\en}}, +\end{itemize} +\begin{itemize}\setlength{\itemsep}{3ex} + \item \keyindex{fermatadown}\pitchp\ for +\raisebox{0ex}[0ex][0ex]{\notesintext{\notes\fermatadown2\en}}, + \item \keyindex{Fermataup}\pitchp\ for +\raisebox{-1ex}[-1ex][0ex]{\musicintextnoclef{\notes\Fermataup 7\zwh{'c}\en}}~, +centered over a whole note, + \item \keyindex{Fermatadown}\pitchp\ for +\raisebox{-1ex}[0ex][0ex]{\musicintextnoclef{\notes\Fermatadown1\zwh{'c}\en}}~, +centered under a whole note. + \end{itemize} +\bigskip + +A \itxem{breath} mark +\raisebox{-5ex}[0ex][0ex]{\notesintext{\notes\zbreath\en}} +can be put just above the staff with \keyindex{zbreath}. This is a nonspacing +macro. On the other hand, \keyindex{cbreath} will cause a space of one +\verb|\noteskip| and place the comma midway through the space. + +The \keyindex{caesura} command inserts a slash \verb|0.5\noteskip| before +the place it is entered, while adding no space: + +\begin{music}\nostartrule +\startextract +\NOTes\zhu j\hl{^e}\caesura\en +\Notes\zcu j\cl e\en +\zendextract +\end{music} + + + \subsection{Arpeggios} +\ital{Arpeggios} (i.e.~~~\arpeggio{-2}3) can be coded with the macro +\keyindex{arpeggio}\pitchp\itbrace{m} +where $p$ is the pitch of +the base of the arpeggio symbol and $m$ is its height in units of +\verb|\interligne|, the distance from one staff line to the next. It should be +issued before the affected chord. It is +automatically positioned to the left of the chord, but inserts no spacing. +Its variant \keyindex{larpeggio} sets the arpeggio symbol roughly +one note head width to the left of the default position, and is intended to +avoid collision with single accidentals on chord notes. + + \subsection{Arbitrary length trills} + There are two styles of arbitrary length trills\index{trills}, each with two +variants. +For a trill with preassigned length, use \keyindex{trille}\pitchp\itbrace{l} +for \hbox to 1cm{\noteskip1cm\trille11\hss} or +\keyindex{Trille}\pitchp\itbrace{l} for~~\hbox to +2cm{\noteskip1cm\Trille12\hss}, where $p$ is the pitch and $l$ the length in +current \verb|\noteskips|. + +To let \musixtex\ compute the length of the trill, or if it extends across a +system break, you can use \keyindex{Itrille}$n$\pitchp\ to start a plain +trill, where $n$ is a trill reference number between 0 and 5; then +\keyindex{Ttrille}$n$ to terminate it. To get the {\it tr} at the +beginning, use \keyindex{ITrille}$n$\pitchp\ to start the trill and +\verb|\Ttrille|$n$ to close it. + +\begin{sloppypar} +As with other elements, you can specify the maximum number +directly with \keyindex{setmaxtrills}\verb|{|$m$\verb|}|, where $7<m\leq 100$% +\footnote{This may require e-\TeX.}; +the reference number $n$ will be in the range between $0$ and $m-1$. +\label{musixmad_setmaxtrills} +\end{sloppypar} + + +For example: + +\medskip + \begin{music} +\instrumentnumber{1} +\setstaffs12 +\setclef1{6000} +% +\startextract +\notes\qu{CDEFGH}|\hu k\sk\ITrille 1p\itenu1l\wh l\en +\bar +\notes\Itrille 2A\itenu2E\whp E|\tten1\hlp l\sk\Ttrille 1\qu {mno}\en +\bar +\Notes\tten2\itenu2E\whp E|\ql{nmlkji}\en +\bar +\Notes\tten2\whp E\sk\sk\sk\sk\Ttrille2|\qu{hgfedc}\en +\endextract +\end{music} +whose coding is +\begin{quote}\begin{verbatim} +\begin{music}\nostartrule +\instrumentnumber{1} +\setstaffs12 +\setclef1{6000} +% +\startextract +\notes\qu{CDEFGH}|\hu k\sk\ITrille 1p\itenu1l\wh l\en +\bar +\notes\Itrille 2A\itenu1e\whp E|\tten1\hlp l\sk\Ttrille 1\qu {mno}\en +\bar +\Notes\tten1\itenu1E\whp E|\ql{nmlkji}\Toctfin1\en +\bar +\Notes\tten1\whp E\sk\sk\sk\sk\Ttrille2|\qu{hgfedc}\en +\endextract +\end{verbatim}\end{quote} + + + \subsection{Tremolos}\label{tremolos} + +The command \keyindex{trml}\verb|{|$p$\verb|}|~is used to indicate that the immediately +following +quarter or half note (normally at pitch $p$ and with a lower stem) is to be repeated in eighth notes. +For example, +\verb|\trml j\ha j| +generates + +\begin{music}\nostartrule +\startextract +\NOTes\trml j\ha j\en +\zendextract +\end{music}\noindent +and is an abbreviation for + +\begin{music}\nostartrule +\startextract +\notes\ibl0j0\qb0{jjj}\tql0j\en +\zendextract +\end{music}\noindent +Similarly, \keyindex{trmu}\verb|{|$p$\verb|}|~generates an eighth-note tremolo +on a quarter or half note with an \emph{upper} stem: + +\begin{music}\nostartrule +\startextract +\NOTes\trmu h\ha h\en +\zendextract +\end{music}\noindent +16th-note and 32-note tremolos are similarly generated by +commands \keyindex{trrml}, \keyindex{trrmu}, \keyindex{trrrml} +and \keyindex{trrrmu}, as in + +\begin{music} +\nostartrule +\startextract +\NOtesp\trrml h\zqlp h\trrmu j\qup j\en +\Notes\stemlength{6.4}\trrml j\zcl j\trrmu l\cu l\en +\NOtes\stemlength{6.4}\trrrml h\zql h\trrrmu j\qu j\en +\endextract +\end{music}\noindent +which is coded as +\begin{quote}\begin{verbatim} +\NOtesp\trrml h\zqlp h\trrmu j\qup j\en +\Notes\stemlength{6.4}\trrml j\zcl j\trrmu l\cu l\en +\NOtes\stemlength{6.4}\trrrml h\zql h\trrrmu j\qu j\en +\end{verbatim}\end{quote} +The \keyindex{stemlength} command is used to adjust +stem lengths; +the new length remains effective to the end of the current notes group. +If necessary, the usual stem length can be restored by using +\verb|\stemlength{\DefaultStemlength}|. + + +For \emph{whole} notes, tremolo indications +should be wider and centered directly over or under the note. These +are generated by commands \keyindex{Trml}, \keyindex{Trmu}, \keyindex{Trrml}, +\keyindex{Trrmu}, \keyindex{Trrrml} and \keyindex{Trrrmu}; for example, + +\begin{music} +\nostartrule +\startextract +\NOTEs\Trml h\zw h\Trmu j\wh j\en +\bar% +\NOTEs\Trrml h\zw h\Trrmu j\wh j\en +\bar% +\NOTEs\Trrrml h\zw h\Trrrmu j\wh j\en +\endextract +\end{music}\noindent +which is coded as +\begin{quote}\begin{verbatim} +\NOTEs\Trml h\zw h\Trmu j\wh j\en\bar +\NOTEs\Trrml h\zw h\Trrmu j\wh j\en\bar +\NOTEs\Trrrml h\zw h\Trrrmu j\wh j\en +\end{verbatim}\end{quote} + +For all of the commands described in this section, the pitch parameter may be used +if it is necessary to raise or lower the tremolo indication. +%however, note values +%must be alphabetic and not numeric, +%because transposition is used to adjust the vertical position of the mini-beams. + + \section{Piano pedal commands} +The macro \keyindex{PED} inserts a piano-pedal command below the staff; +\keyindex{DEP}, a pedal release. Alternate symbols, the first of which +occupies less space, are invoked with \keyindex{sPED} and \keyindex{sDEP}. +For example, + +\begin{music} +\setclef1\bass +\setstaffs1{2} +\startextract +\NOtes\PED\wh J|\qu h\en +\NOtes|\qu g\en +\NOtes|\hu k\en +\Notes\DEP\en +\bar +\NOtes\sPED\wh J|\qu h\en +\NOtes|\qu g\en +\NOtes|\hu k\en +\Notes\sDEP\en +\endextract +\end{music} + \noindent was coded as \begin{quote}\begin{verbatim} + \NOtes\PED\wh J|\qu h\en + \NOtes|\qu g\en + \NOtes|\hu k\en + \Notes\DEP\en \bar + \NOtes\sPED\wh J|\qu h\en + \NOtes|\qu g\en + \NOtes|\hu k\en + \Notes\sDEP\en + \end{verbatim}\end{quote} +The vertical position of +\keyindex{PED}, \keyindex{sPED}, \keyindex{DEP} and \keyindex{sDEP} can be +globally changed by redefining its elevation, which has the default +definition \verb|\def|\keyindex{raiseped}\verb|{-5}|. +To locally change the vertical position of a pedal symbol, use one of the more +fundamental +macros \keyindex{Ped}, \keyindex{sPed}, \keyindex{Dep} and \keyindex{sDep} +in combination with \keyindex{zchar} or \keyindex{zcharnote}. +Since the \hbox to .7cm{ \Ped\hss} symbol is rather wide, it might collide +with adjacent bass notes. To shift it horizontally, you could use \verb|\loff{\PED}|. + +The following excerpt from \textit{Liebestr\"aume} by Franz Liszt illustrates +a more modern approach to specifying piano-pedal usage: + +\begin{music} +\smallmusicsize +\relativeaccid +\parindent=0pt +\generalmeter{\meterfrac64}\generalsignature{-4} +\nobarnumbers +\setstaffs12\setclef1{\bass} +\def\raiseped{-11} +\def\qpl{\raise-2\Interligne\qp} +\def\qpu{\raise2\Interligne\qp} +\def\hppl{\lifthpausep{-2}} +\startpiece\addspace\afterruleskip% +\NOtes\zqu L\qpl|\qp\en +\bar% +\Notes\loff{\pdld}\ql H\sk\qpl\sk\qpl|% + \zhl{.c}\ds\ibu1i0\qb1{ehjh}\tqu1e\en +\Notes\zhu{.c}\hppl|% + \ds\ibu1i0\qb1{ehjh}\tqu1e\en +\bar% +\Notes\pdlud\ql G\sk\qpl\sk\qpl|% + \itied1c\zhl{.c}\ds\ibu1i0\qb1{^eiji}\tqu1e\en +\Notes\hppl\sk\sk\sk\qu c|% + \ttie1\zhl{c}\ds\ibu1i0\qb1{eiji}\tqu1e\en +\stoppiece% +\def\raiseped{-15} +\contpiece%% +\Notes\pdlud\ql F\sk\qpl\sk\zqu c\qpl|% + \zhl{c}\ds\ibu1i0\qb1{=e^hjh}\tqu1e\en +\Notes\hppl\sk\sk\sk\qu c|% + \zhl{d}\ds\ibu1i0\qb1{ehjh}\tqu1e\en +\bar% +\Notes\pdlud\ql B\sk\qpl\sk\qpl|% + \zhl{.c}\ds\ibu1i0\qb1{^d^hjh}\tqu1d\en +\Notes\zqu{M}\hppl\sk\sk\qpu\sk\qu M|% + \ds\ibu1i0\qb1{dhjh}\tqu1d\en +\bar% +\Notes\zmidstaff{$\cdots$}\sk\pdlu\sk|\en +\endpiece% +\end{music} +\vspace*{2ex}\par\noindent +This has been coded using the following commands: +\begin{quote} +\begin{tabular}{lll} +\keyindex{pdld}& pedal down & \huge$\llcorner$\\ +\keyindex{pdlu}& pedal up & \huge$\lrcorner$\\ +\keyindex{pdlud} & pedal up and immediately down & \_\raisebox{2pt}{$\!\bigwedge\!$}\_ +\end{tabular} +\end{quote} +The elevation is determined by the value of \keyindex{raiseped}. +Here is how the excerpt may be coded: +\begin{quote} +\begin{footnotesize} +\begin{verbatim} +\smallmusicsize\relativeaccid\nobarnumbers +\generalmeter{\meterfrac64} +\generalsignature{-4} +\setstaffs12\setclef1{\bass} +\def\raiseped{-11} +\def\qpl{\raise-2\Interligne\qp} +\def\qpu{\raise2\Interligne\qp} +\def\hppl{\lifthpausep{-2}} +\startpiece\addspace\afterruleskip% +\NOtes\zqu L\qpl|\qp\en +\bar% +\Notes\loff{\pdld}\ql H\sk\qpl\sk\qpl|% + \zhl{.c}\ds\ibu1i0\qb1{ehjh}\tqu1e\en +\Notes\zhu{.c}\hppl|% + \ds\ibu1i0\qb1{ehjh}\tqu1e\en +\bar% +\Notes\pdlud\ql G\sk\qpl\sk\qpl|% + \itied1c\zhl{.c}\ds\ibu1i0\qb1{^eiji}\tqu1e\en +\Notes\hppl\sk\sk\sk\qu c|% + \tltie1\zhl{c}\ds\ibu1i0\qb1{eiji}\tqu1e\en +\stoppiece% +\def\raiseped{-15} +\contpiece% +\Notes\pdlud\ql F\sk\qpl\sk\zqu c\qpl|% + \zhl{.c}\ds\ibu1i0\qb1{=e^hjh}\tqu1e\en +\Notes\hppl\sk\sk\sk\qu c|% + \zhl{d}\ds\ibu1i0\qb1{ehjh}\tqu1e\en +\bar% +\Notes\pdlud\ql B\sk\qpl\sk\qpl|% + \zhl{c}\ds\ibu1i0\qb1{^d^hjh}\tqu1d\en +\Notes\zqu{M}\hppl\sk\sk\qpu\sk\qu M|% + \ds\ibu1i0\qb1{dhjh}\tqu1d\en +\bar% +\Notes\zmidstaff{$\cdots$}\sk\pdlu\sk|\en +\endpiece +\end{verbatim} +\end{footnotesize} +\end{quote} + +\pagebreak +\noindent +The following ``mixed'' patterns are also supported: +\begin{quote} +\begin{verbatim} +\PED ... [\pdlud].. ... \pdlu + +\sPED ... [\pdlud].. ... \pdlu +\end{verbatim} +\end{quote} + +\section{Alphabetic dynamic marks} + Conventional dynamic symbols +\pppp, \ppp, \pp, +\p, +\mezzopiano, +\mf, +\f, +\fp, +\sF, +\ff, +\fff, +\ffff, +\sfz\ and +\sfzp\ can be posted using the macros +\keyindex{pppp}, +\keyindex{ppp}, +\keyindex{pp}, +\keyindex{p}, +\keyindex{mp}, +\keyindex{mf}, +\keyindex{f}, +\keyindex{fp}, +\keyindex{sF}, +\keyindex{ff}, +\keyindex{fff}, +\keyindex{ffff}, +\keyindex{sfz} and +\keyindex{sfzp}, respectively, as the second argument of \verb|\zcn| (\verb|\zcharnote|) or +\verb|\ccn| (\verb|\ccharnote|). +See also Section~\ref{musixppff} for an alternative set of dynamic marks. + + + \section{Length of note stems} + +The default length of note stems is the distance of one octave, i.e.,~\verb|7\internote| or \texttt{4.66}\keyindex{interbeam}. The default may be changed +with the macro \keyindex{stemlength}\itbrace{b}\ where $b$ is the length in +\verb|\interbeam|s. + +The command \keyindex{stemcut} causes stems that extend outside the staff +to be shortened depending on the pitch of the notes. It is the default +behavior. To suppress this adjustment, issue the command +\keyindex{nostemcut}. + +Normally, down stems never end above the middle line of the staff and up stems +never below that line. The command \keyindex{stdstemfalse} will inhibit this +adjustment, but only for the next stem generated. There is no command to globally +suppress this behavior. + + \section{Brackets, parentheses, oblique lines and slides}\label{brapar} + +Several varieties of brackets\index{brackets}, parentheses\index{parentheses} and oblique lines\index{oblique lines} are provided for +use within a score. + \begin{itemize}\setlength{\itemsep}{0ex} + \item \keyindex{lpar}\verb|{|$p$\verb|}| and +\keyindex{rpar}\verb|{|$p$\verb|}| yield left and right +parentheses at pitch $p$. They can be used to enclose notes or to build +``big'' cautionary\index{cautionary accidental} accidentals. For example, +\\ +\begin{center} +\begin{tabular}{ll} +\raisebox{-1.5ex}[0ex][0ex]{\musicintextnoclefn{\NOtes\qsk\lpar g\rpar g\hu g\sk% +\loffset{1.5}{\lpar g\rpar g}\loffset{.4}{\sh g}\hu g\sk% +\loffset{2.1}{\lpar g}\loffset{1.5}{\rpar g}\loffset{.4}{\dfl g}\hu g\en}} +\end{tabular} +\end{center} +is coded as +\end{itemize} +\begin{center}\small +\begin{tabular}{l} +\verb+\NOtes\lpar g\rpar g\hu g\sk%+\\ +\verb+\loffset{1.5}{\lpar g\rpar g}\loffset{.4}{\sh g}\hu g\sk%+\\ +\verb+\loffset{2.1}{\lpar g}\loffset{1.5}{\rpar g}\loffset{.4}{\dfl g}\hu g\en+ +\end{tabular} +\end{center} +\begin{itemize} + \item \keyindex{bracket}\verb|{|$p$\verb|}{|$n$\verb|}| posts a +square bracket to the left of a chord, vertically spanning $n$ +\verb|internote|s. + \item \keyindex{doublethumb}\verb|{|$p$\verb|}| indicates a bracket as +above spanning 2\verb|\internote|s. + \item \keyindex{ovbkt}\verb|{|$p$\verb|}{|$n$\verb|}{|$s$\verb|}| and +\keyindex{unbkt}\verb|{|$p$\verb|}{|$n$\verb|}{|$s$\verb|}| +draw a sloped bracket starting at the current position at pitch $p$, +with horizontal extent $n$ \verb|noteskip|s and slope $s$ in multiples of +$1.125$~degrees. + \item \keyindex{uptrio}\verb|{|$p$\verb|}{|$n$\verb|}{|$s$\verb|}| and +\keyindex{downtrio}\verb|{|$p$\verb|}{|$n$\verb|}{|$s$\verb|}| are like +\verb|\ovbkt| but with freely definable \keyindex{txt} centered inside. + + \item \keyindex{varline}\itbrace{h}\itbrace{\ell}\itbrace{s}\ builds an +oblique line starting at the current horizontal position. It must be used +inside a zero-width box, such as for example as the second argument of +\verb|\zcharnote|. $h$ is the height of the starting point, $\ell$ is the +length, and $s$ is the slope. It is used in the definitions of some of +the foregoing macros, and could be used, for example, to construct various +obscure baroque ornaments made up of diagonal lines. + +\item \keyindex{slide}\itbrace{p}\itbrace{x}\itbrace{s}~ provides a \emph{glissando} +starting at pitch {\it p} and extending for {\it x} \verb|\internote|s with +slope {\it s} (ranging from $-8$ to $8$). + +\end{itemize} + +For example, + +\begin{music} +\setstaffs1{2} +\setclef1\bass +\startextract +\NOtes\bracket C8\zq C\qu J\en +\NOtes|\doublethumb g\rq h\qu g\en +\NOtes\lpar c\rpar c\qu c\en +\NOtes\unbkt C15\qu {FH}|\ovbkt n14\ql{kl}\en +\NOtes\downtrio C16\qu {FH}|\uptrio o14\ql{lm}\en +\NOtesp\roffset{1.5}{\slide J33}\ca{JM}|\roffset{1.5}{\slide j33}\ca{jm}\en +\endextract +\end{music} +\noindent is coded as +\begin{quote}\small\begin{verbatim} +\begin{music} +\setstaffs1{2} +\setclef1{\bass} +\startextract +\NOtes\bracket C8\zq C\qu J\en +\NOtes|\doublethumb g\rq h\qu g\en +\NOtes\lpar c\rpar c\qu c\en +\NOtes\unbkt C15\qu {FH}|\ovbkt n14\ql{kl}\en +\NOtes\downtrio C16\qu {FH}|\uptrio o14\ql{lm}\en +\NOtesp\roffset{1.5}{\slide J33}\ca{JM}|\roffset{1.5}{\slide j33}\ca{jm}\en +\zendextract +\end{music} +\end{verbatim}\end{quote} + + \section{Forcing activity at the beginning of systems} +A macro named \keyindex{everystaff} is executed each time a new system +begins. It is normally void, but it can be defined (simply by \verb|\def|% +\keyindex{everystaff}\verb|{...}|) to cause \musixtex\ to post anything +reasonable at the beginning of each system. For it to affect the first system +in a score, it must be defined \ital{before} +\verb|\startpiece|. + +If a macro named \keyindex{atnextline} is defined at any point in a score, +it will be executed just once, viz., at the next computed or forced system +break. More +precisely, it is executed after the break and before the next system begins. +Thus it is suitable for redefining layout parameters. + + \index{octave treble clef}In some scores, tenor parts are not coded using the +\ital{bass} clef, but using rather the \ital{octave treble clef}, which is +subscripted by a numeral {\tt8}. +This clef is supported by the clef substitution command +\keyindex{settrebleclefsymbol}\onen\keyindex{treblelowoct}, as already +explained in Section~\ref{treblelowoct}. However, if for some reason you +aren't happy with the height of the ``8'', it can be posted on selected +staves at the beginning of every system using \keyindex{everystaff} and +\keyindex{zcharnote} as follows: + +\begin{music} +\instrumentnumber{4}\setclef1\bass +\def\everystaff{\znotes&\zchar{-6}{\eightrm\kern-2\Interligne8}% + &\zchar{-6}{\eightrm\kern-2\Interligne8}\en}% +\startextract +\NOTes\ha{HIJK}&\ha{efgh}&\ha{hijk}&\ha{hmlk}\en +\zendextract +\end{music} +\noindent +The coding is +\begin{quote}\begin{verbatim} +\instrumentnumber{4}\setclef1\bass +\def\everystaff{\znotes&\zchar{-6}{\eightrm \kern -2\Interligne 8}% + &\zchar{-6}{\eightrm \kern -2\Interligne 8}\en}% +\startextract +\NOTes\ha{HIJK}&\ha{efgh}&\ha{hijk}&\ha{hmlk}\en +\endextract +\end{verbatim}\end{quote} + + +\section{Tablature} +Tablature is a notational system used for fretted stringed instruments such +as lute, guitar, banjo, mandolin, and so on. Staff lines represent strings +and conventional note heads are replaced by numbers (or sometimes letters) +indicating which fret is to be stopped, with $0$ representing an open string. + +A special clef symbol +\keyindex{tabclef} may be used with \verb|\setclefsymbol| for a tablature staff; commands \verb|\setlines|, \verb|\setsign| +and \verb|\setsize| may be used as usual for a tablature staff. The macros that put numbers (or letters) on staff lines +are as follows: +\begin{itemize} +\item \keyindex{tab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}| +puts $p$ on string $n$ +(counting from top to bottom); $p$ is centered, using \verb|\ccharnote|. +Ledger lines are added for $n$ less than $1$ or greater than the current number of staff lines. +\item \keyindex{ltab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}| +uses \verb|\zcharnote| so $p$ +spills to the right and +\keyindex{rtab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}| +uses \verb|\lcharnote| so $p$ +spills to the left. +\item \keyindex{ztab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}| +is a non-spacing \verb|\tab|, and can be used for building chords. +\item \keyindex{zltab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}| +is a non-spacing \verb|\ltab| and +\keyindex{zrtab}\verb|{|$n$\verb|}|\verb|{|$p$\verb|}| +is a non-spacing \verb|\rtab|. +\end{itemize} +A size-dependent font \keyindex{tabfnt} is used for tab characters; Helvetica is the default font family. + +The default tablature style is to place the fingering notations \emph{on} the staff line; +Postscript specials are used to ``blank'' staff lines below +the tab characters. +If it is desired to locate the fingering notations \emph{above} staff lines, use +the command \keyindex{tabstylespacetrue}. +A size-dependent font \keyindex{tabstringfnt} is defined to allow string names to be +listed using \verb|\setname|. + +Here is an example of a guitar tablature (6th string lowered to D): + +\begin{music} +\input musixps +\def\psslurhgt{0.5} +\instrumentnumber{2} +\songbottom1\songtop2 +\generalmeter{\meterfrac34} +\generalsignature{-1} +\setlines16 +\setclefsymbol1\tabclef\setclefsymbol2\treblelowoct +\setsize1\largevalue +\setsign10 +\nobarnumbers +\interinstrument=4\internote +\parindent=2ex +\setname1{\tabstringfnt\baselineskip=1.5\internote% + \vbox{\hbox to\parindent{\hss E \hss}% + \hbox to\parindent{\hss B \hss}% + \hbox to\parindent{\hss G \hss}% + \hbox to\parindent{\hss D \hss}% + \hbox to\parindent{\hss A \hss}% + \hbox to\parindent{\hss D \hss}% +}} +\startextract +\NOtesp\zltab55\zltab43\ltab32&\zh{d}\zhl{f}\qu{.h}\en +\Notes\ltab32&\cu{h}\en +\bar% +\NOtes\zltab55\zltab45\zltab33\ltab10&\zq d\zql g\zq i\qu l\en +\NOtesp\zltab54\zltab45\zltab32\ltab10&\rhl{^c}\rhu{g}\zh{h}\qu{.l}\en +\Notes\ltab10&\cu{l}\en +\bar% +\NOtes\zltab40\zltab32\zltab23\ltab11&\zq d\zq h\zq k\qu{m}\en +\NOtes\zltab51\zltab43\zltab33\ltab23&\zhl b\zh f\zq{.i}\qu{.k}\en +\Notes\ltab35&\cu j\en +\bar% +\NOtes\zltab65\zltab45\ltab33&\zql N\zq g\qu i\en +\NOtes\zltab50\zltab43\ltab32&\zql a\zq f\qu h\en +\notes\zltab54\ltab45\ilsluru04\ltab43\ltab42\tlslur04\ltab43% +&\zql{^c}\ibbu0g{-1}\qb0{g}\slur eed2\qb0{fe}\tqu0f\en +\bar% +\notes\zltab60\zltab50\ltab45\ilsluru04\ltab42\ltab43\tlslur04\ltab40% +&\zq K\zql a\ibbu0g{-1}\qb0g\slur edd2\qb0e\qb0f\tqu0d\en +\znotes&\lcn{14}{J.S. Bach}\en +\zendextract +\end{music} + +\noindent +The coding is +\begin{footnotesize} +\begin{quote}\begin{verbatim} +\instrumentnumber{2} +\songbottom1\songtop2 +\setclefsymbol2\treblelowoct +\generalmeter{\meterfrac34} +\generalsignature{-1} +\setlines16\setclefsymbol1\tabclef\setsize1\largevalue\setsign10 +\nobarnumbers +\interinstrument=4\internote +\parindent=2ex +\setname1{\tabstringfnt\baselineskip=1.5\internote% + \vbox{\hbox to\parindent{\hss E\hss}% + \hbox to\parindent{\hss B\hss}% + \hbox to\parindent{\hss G\hss}% + \hbox to\parindent{\hss D\hss}% + \hbox to\parindent{\hss A\hss}% + \hbox to\parindent{\hss D\hss}}} +\startextract +\NOtesp\zltab55\zltab43\ltab32&\zh{d}\zhl{f}\qu{.h}\en +\Notes\ltab32&\cu{h}\en +\bar% +\NOtes\zltab55\zltab45\zltab33\ltab10&\zq d\zql g\zq i\qu l\en +\NOtesp\zltab54\zltab45\zltab32\ltab10&\rhl{^c}\rhu{g}\zh{h}\qu{.l}\en +\Notes\ltab10&\cu{l}\en +\bar% +\NOtes\zltab40\zltab32\zltab23\ltab11&\zq d\zq h\zq k\qu{m}\en +\NOtes\zltab51\zltab43\zltab33\ltab23&\zhl b\zh f\zq{.i}\qu{.k}\en +\Notes\ltab35&\cu j\en +\bar% +\NOtes\zltab65\zltab45\ltab33&\zql N\zq g\qu i\en +\NOtes\zltab50\zltab43\ltab32&\zql a\zq f\qu h\en +\notes\zltab54\ltab45\ilsluru04\ltab43\ltab42\tlslur04\ltab43% +&\zql{^c}\ibbu0g{-1}\qb0{g}\slur eed2\qb0{fe}\tqu0f\en +\bar% +\notes\zltab60\zltab50\ltab45\ilsluru04\ltab42\ltab43\tlslur04\ltab40% +&\zq K\zql a\ibbu0g{-1}\qb0g\slur edd2\qb0e\qb0f\tqu0d\en +\znotes&\lcn{14}{J.S. Bach}\en +\zendextract +\end{verbatim}\end{quote} +\end{footnotesize} +Tablature support in \musixtex\ has been adapted +from \verb|tabdefs.tex| by R.J.~Gelten, which is available +\href{http://icking-music-archive.org/software/musixtex/add-ons/tabdefs.tex} +{\underline{here}} +at WIMA\index{WIMA}. diff --git a/macros/musixtex/doc/musixdoc/musixdoc.ltx b/macros/musixtex/doc/musixdoc/musixdoc.ltx new file mode 100644 index 0000000000..c48e40b773 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/musixdoc.ltx @@ -0,0 +1,102 @@ +% +% 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. +% +% +% musixdoc.tex : the document +% +\documentclass[twoside,11pt,notitlepage]{report} + +\usepackage{musixdoc} + + +%\includeonly{% +%frontmatter, +%introduction, +%settingup, +%preparing, +%writingnotes, +%beams, +%restsdoc, +%spacing, +%accidentals, +%transposition, +%slurstiesfont, +%slurstiesTypeK, +%barlines, +%barnumbering, +%layout, +%changing, +%repeats, +%fonts, +%miscellaneous, +%smaller, +%staffsize, +%parameters, +%extracting, +%lyrics, +%embedding, +%extensions, +%examples, +%summary, +%index +%} + +\startmuflex + +\makeindex + +\begin{document} + +\include{frontmatter} + +\setcounter{page}{1} +\pagenumbering{arabic} +\renewcommand{\thepage}{\arabic{page}} + +\include{introduction} +\include{settingup} +\include{preparing} +\include{writingnotes} +\include{beams} +\include{restsdoc} +\include{spacing} +\include{accidentals} +\include{transposition} +\include{slurstiesfont} +\include{slurstiesTypeK} +\include{barlines} +\include{barnumbering} +\include{layout} +\include{changing} +\include{repeats} +\include{fonts} +\include{miscellaneous} +\include{smaller} +\include{staffsize} +\include{parameters} +\include{extracting} +\include{lyrics} +\include{embedding} +\include{extensions} +\include{examples} + +\include{summary} + +\include{index} + +\end{document} diff --git a/macros/musixtex/doc/musixdoc/musixdoc.sty b/macros/musixtex/doc/musixdoc/musixdoc.sty new file mode 100644 index 0000000000..d752fc8b02 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/musixdoc.sty @@ -0,0 +1,148 @@ +% +% 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. +% +% + +\usepackage[papersize={210mm,11in},margin=1.125in]{geometry} % a4 width, letter-paper height +\pagestyle{headings} +\usepackage{makeidx} +\usepackage{multicol} +\usepackage{etex} +\usepackage{amssymb} + + +\newcommand{\comment}[1]{} + +%\usepackage{indentfirst} + +\usepackage{mflogo} + +\usepackage[cp1252]{inputenc} % needed for ç in extensions.tex + +% default is Computer Modern OT1 encoding +\usepackage[T1]{fontenc} % for CM, \input musixec after musixtex +\usepackage[osf]{mathpazo} % Palatino text, with old-style figures; use $n$ for lining figures +%\usepackage{mathptmx} % Times text +%\usepackage{helvet}\renewcommand{\familydefault}{\sfdefault} % Helvetica text + +% use OT1 encoding for tt to avoid need for cm-super fonts +\renewcommand{\ttfamily}{\fontencoding{OT1}\fontfamily{cmtt}\selectfont} + + +\usepackage{textcomp} + +\input musixtex +\input musixbm +\input musixcho +\input musixdat +\input musixext +\input musixgre +\input musixgui +\input musixlit +\input musixltx +\input musixper + +%%% \input musixps deferred to Section 10.2 + +%\input musixec % EC (Computer Modern) text in music +\input musixplt % Palatino text in music +%\input musixtmr % Times text in music +%\input musixhv % Helvetica text in music + +\usepackage{paralist} +\setlength{\pltopsep}{1pt plus 2pt minus 1pt} +\setlength{\plitemsep}{4.5pt plus 2pt minus 1pt} +\renewenvironment{enumerate}{\begin{compactenum}}{\end{compactenum}} +\renewenvironment{itemize}{\begin{compactitem}}{\end{compactitem}} +\renewenvironment{description}{\begin{compactdesc}}{\end{compactdesc}} + +\setcounter{tocdepth}{1} +\setcounter{secnumdepth}{2} + +% more place for section numbers in \tableofcontents +\usepackage{tocloft} +\setlength{\cftsecnumwidth}{3.0em} + +\renewcommand{\chaptermark}[1]{\markboth{\itshape Chapter \thechapter. #1}{}} +\renewcommand{\sectionmark}[1]{\markright{\itshape\thesection. #1}} + +\usepackage[colorlinks=true]{hyperref} + +\nobarnumbers + +\def\st@ffs{1} + +% for usage of notes inside text +\let\nblines\z@ + +\def\notesintext#1{% no staff lines, no clefs + {\let\extractline\relax + \setlines10\smallmusicsize \nobarnumbers \nostartrule + \staffbotmarg0pt \setclefsymbol1\empty \global\clef@skip0pt + \startextract\addspace{-\afterruleskip}#1\zendextract}} +\def\musicintext#1#2{% normal + {\let\extractline\relax + \smallmusicsize \nobarnumbers + \staffbotmarg0pt \setclef1{#1} + \startextract\addspace{-\afterruleskip}#2\endextract}} +% macro adapted to insert music without clef: +\def\musicintextnoclef#1{% no clef small + {\let\extractline\relax + \smallmusicsize \nobarnumbers + \staffbotmarg0pt \setclefsymbol1\empty + \startextract\addspace{-\afterruleskip}#1\endextract}} +\def\musicintextnoclefn#1{% no clef normal + {\let\extractline\relax + \nobarnumbers + \staffbotmarg0pt \setclefsymbol1\empty + \startextract\addspace{-\afterruleskip}#1\endextract}} + +\def\musictex{Music\TeX{}} +\def\onen{{\ttfamily\char123}$n${\ttfamily\char125}} +\def\pitchp{{\ttfamily\char123}$p${\ttfamily\char125}} +\def\itbrace#1{{\ttfamily\char123}$#1${\ttfamily\char125}} +\def\nochange{{\ital{NOT to be changed}}} + +\ifx\setendvolta\undefined\def\setendvolta{\endvolta}\fi +\ifx\setendvoltabox\undefined\def\setendvoltabox{\endvoltabox}\fi +\def\tty{\csname normalshape\endcsname\csname mediumseries\endcsname\ttfamily} +\def\mutex{M\raise\tw@\p@\hbox{\kern\m@ne\p@ u\kern\m@ne\p@}\TeX} +\def\Bslash{\ttfamily\char'134} +\def\|{\texttt{\char'174}} +\def\LBR{\texttt{\char'173}} +\def\RBR{\texttt{\char'175}} +\def\keyindex#1{\leavevmode + \hbox{{\Bslash #1}}\index{#1@{\protect\small\protect\Bslash #1}}} +\def\zkeyindex#1{\index{#1@{\protect\small\protect\Bslash #1}}} +\def\ixem#1{#1\index{#1}} +\def\itxem#1{\textit{#1}\index{#1}} +\def\ttxem#1{\texttt{#1}\index{#1@\texttt{#1}}} +\def\ixtt#1{\index{#1@\texttt{#1}}} +\def\ital#1{\textit{#1\/}} +\def\enpee{{\ttfamily{\char123$n$\char125\char123$p$\char125}}} + +\def\unix{\textsc{unix}} + +\sloppy + + +\def\underscoreSymbol{\leavevmode \kern.06em \vbox{\hrule width.3em}}% +\def\_{\protect\underscoreSymbol} + + +\endinput diff --git a/macros/musixtex/doc/musixdoc/parameters.tex b/macros/musixtex/doc/musixdoc/parameters.tex new file mode 100644 index 0000000000..6cdd48b62f --- /dev/null +++ b/macros/musixtex/doc/musixdoc/parameters.tex @@ -0,0 +1,140 @@ +\chapter{Layout Parameters}\label{LayoutParameters} + Most layout parameters are set by \musixtex\ to reasonable default values. +However, some projects will require altering one or more of them. In this +section we discuss the most important parameters and how to change them. + + \section{List of layout parameters} + In the following, the indication ``\nochange'' does not mean that this +parameter cannot be changed at all, but that it should not be modified +directly, e.g,.~by saying something like \verb|\Interligne=14pt|. In other +words, changes in these parameters must be accomplished only by more +comprehensive macros which not only revise them but at the same time perform +other necessary related changes. Even though you cannot \ital{change} these, +you may \ital{refer} to them in your coding if that proves useful. + +\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{Interligne} :]vertical distance between the bottoms of +consecutive staff lines of the current instrument, taking no account of a +possible alteration by \keyindex{setsize}; \nochange. + \item[\keyindex{internote} :]vertical spacing between notes one scale +step apart in the current instrument, taking account of a possible alteration +by \keyindex{setsize}; \nochange. +Note that each distinct instrument may have a different +\verb|\internote| (see Chapter~\ref{staffspacing}). + \item[\keyindex{Internote} :]vertical spacing between notes one scale +step apart in any instrument whose \keyindex{setsize} has the default +value \keyindex{normalvalue} ($1.0$), equal to \verb|0.5\Interligne|; \nochange. +\item[\keyindex{staffbotmarg} :]margin below the first (lowest) staff of the +first (lowest) instrument. Changes are recognized at the next system. +Default is \verb|3\Interligne|. + \item[\keyindex{stafftopmarg} :]margin above the last (uppermost) staff of +last (uppermost) instrument. Changes are recognized at the next system. +Default is \verb|3\Interligne|. + \item[\keyindex{interbeam} :]vertical distance between beams; \nochange. +\item[\keyindex{interstaff} :]a very important macro with a single numerical +argument representing the factor that multiplies \verb|2\internote| to give the +distance between the bottom of one staff and the bottom of the next one. In +fact the macro redefines the parameter \verb|\interfacteur|. Default is 9. +\verb|\interstaff| applies to all the +instruments; to set the inter-staff spacing for a single instrument, +use \keyindex{setinterstaff}\itbrace{n}\itbrace{m}, +$n$ is the instrument and $m$ is the replacement factor for that instrument. +Note that +after you have used \keyindex{setinterstaff}, +you cannot reset the distances for that instrument with +\keyindex{interstaff}; you must subsequently use +\keyindex{setinterstaff} for that purpose. +\item[\keyindex{interportee} :]distance between the bottom of one staff and +the bottom of the next one. It is always reset to +2 times \keyindex{internote} times the \keyindex{interfacteur} for the current +instrument at the next system. +Therefore, trying to change \verb|\interportee| will have no effect. Change +\verb|\interstaff| or use \keyindex{setinterstaff} instead. +\item[\keyindex{interinstrument} :]additional vertical distance between +two consecutive instruments. This means that the distance between the lowest +line of the previous instrument and the lowest line of the top staff of the current +instrument is \verb|\interportee+\interinstrument|. The +default value of \verb|\interinstrument| is zero, but sometimes you +may want additional space between distinct instruments. This is a general +dimension register. As usual in \TeX, it can be set using a command such as +\verb|\interinstrument=10pt| or \verb|\interinstrument=6\internote|. Its +value can be overridden for the space above any particular instrument +with the macro \keyindex{setinterinstrument}\itbrace{n}\itbrace{s}, where +$n$ is the instrument and $s$ is the replacement value of the space to +be added. The \verb|\setinterinstrument| macro may be useful in some vocal +scores to provide vertical space for lyrics. +Note that +after you have used \keyindex{setinterinstrument}, +you cannot reset the distances for that instrument with +\keyindex{interinstrument}; you must subsequently use +\keyindex{setinterinstrument} for that purpose. + + \item[\keyindex{systemheight} :]distance from the bottom of the +lowest staff to the top of the highest one. This is the length of any +vertical lines such as repeats that span the full height of a system; +\nochange. +\end{description} + + In addition, when handling notes of a given staff of a given instrument, the +following dimensions are available (note these are not true registers, but +\ital{equivalenced symbols} through a \verb|\def|): + +\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{altplancher} :]altitude of the lowest line of the lowest +instrument; \nochange. + \item[\keyindex{altitude} :]altitude of the lowest line of the lowest +staff of the current instrument; \nochange. + \item[\keyindex{altportee} :]altitude of the lowest line of the current +staff; \nochange. + + %??? Next perhaps will change to steps of \verb|\internote|. + + \item[\keyindex{stemfactor} :]parameter defining the length of stems on +half, quarter, and beamed eighth notes, in units of \verb|\interbeam|. +Normally a stem has the length of one octave, +i.e.,~\verb|3.5|\keyindex{Interligne}. However, this is not correct for small or tiny +note sizes. Therefore, stem length is defined as a multiple of the +dimension \keyindex{interbeam}, which is chosen because it is automatically +redefined as a +different multiple of \keyindex{Interligne} whenever note size is changed. For +example, with \verb|\normalmusicsize| when \verb|\setsize| is +\verb|\normalvalue|, \verb|\interbeam| is \verb|0.75|\keyindex{Interligne}. This +legislates a default value for \keyindex{stemfactor} of $4.66$ ($=3.5/0.75$). +To change stem length, it is easiest to use e.g.,~\keyindex{stemlength}\verb|{3.5}|, which simply redefines \verb|\stemfactor|. +Subsequently, \verb|\stemfactor| will not automatically be reset to the default, +but keep in mind that if it is changed +inside a notes group, the change will only be effective within that notes group. +\end{description} + + \section{A convenient macro for changing layout parameters} +Of the parameters just described that can be changed, many should only be +changed between the end of one system and the beginning of the next. The +command sequence \verb|\def\atnextline{|\ital{any control sequence}\verb|}| +may be useful for this purpose. It will cause \ital{any control sequence} to +be inserted right before the next new line is begun, provided the line break +is not initiated by a \verb|\startpiece|. Thus this will work with +automatically generated line breaks, with those forced by \verb|\alaligne|, and +with those forced by explicit use of \verb|\endpiece| or \verb|\stoppiece| +followed by \verb|\contpiece|. (Note, however, that in the latter case it +would be just as convenient to enter the parameter changes explicitly as well.) +The control sequence will only be executed once, +after which \verb|\atnextline| is redefined as \verb|\empty|. + + \section{Changing the number of lines per staff}\label{stafflinenumber} +Naturally, the default number of lines per staff is five. But you may want a +different number in some or all staves, for example for gregorian music, +percussion music, guitar tablature, or early baroque keyboard music. To do so, +use the command \keyindex{setlines}\itbrace{n}\itbrace{m}~where $n$ is the +instrument number and $m$ is the number of lines. + + \section{Resetting normal layout parameters} +The general size can only be changed with one of the commands +\keyindex{smallmusicsize}, +\keyindex{normalmusicsize}, \keyindex{largemusicsize}, or +\keyindex{Largemusicsize}. Beyond that, the command +\keyindex{resetlayout} will reset the following key layout parameters +to their default values: \keyindex{staffbotmarg} (\verb|3\Interligne|), +\keyindex{stafftopmarg} (\verb|3\Interligne|), \keyindex{interstaff} ($9$), + number of lines per staff for all instruments ($5$); and will reset all clef +symbols to standard clef symbols. + diff --git a/macros/musixtex/doc/musixdoc/preparing.tex b/macros/musixtex/doc/musixdoc/preparing.tex new file mode 100644 index 0000000000..88e3756bf4 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/preparing.tex @@ -0,0 +1,285 @@ +\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). + diff --git a/macros/musixtex/doc/musixdoc/repeats.tex b/macros/musixtex/doc/musixdoc/repeats.tex new file mode 100644 index 0000000000..5924d92d43 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/repeats.tex @@ -0,0 +1,272 @@ +\chapter{Repeats} + +To replace a bar line with a left, right, or left-right repeat, use one of the +commands \keyindex{leftrepeat}, \keyindex{rightrepeat} or +\keyindex{leftrightrepeat} in place of \verb|\bar|. If a \verb|\leftrepeat| +happens to come at the end of a system, it will automatically be moved to the +start of the next system. If a \verb|\leftrightrepeat| happens to come at the +end of a system, \musixtex\ will automatically post a right repeat at the end +of the system and a left repeat at the beginning of the next. + +For example, + +\begin{music}\nostartrule +\startextract +\NOTes\ha g\en +\leftrepeat +\NOTes\ha h\en +\leftrightrepeat +\NOTes\ha i\en +\rightrepeat +\NOTEs\wh j\en +\zendextract +\end{music} + \noindent has been coded as: +\begin{quote}\begin{verbatim} +\NOTes\ha g\en +\leftrepeat +\NOTes\ha h\en +\leftrightrepeat +\NOTes\ha i\en +\rightrepeat +\NOTEs\wh j\en +\end{verbatim}\end{quote} + +To insert a right-repeat at a forced line break or at the end of a piece, use +\verb|\setrightrepeat| \textit{before}\ \verb|\alaligne| or \verb|\endpiece|. +In fact it is possible to use \keyindex{setleftrepeat}, +\keyindex{setrightrepeat} or \keyindex{setleftrightrepeat} before any +\keyindex{bar}, \keyindex{stoppiece} or \keyindex{changecontext}; but +be aware that whereas \verb|\setrightrepeat| behaves properly if the bar is at the +end of a system, \verb|\setleftrepeat| and \verb|\setleftrightrepeat| do not, +placing +the left-repeat symbol at the end of the system rather +than at the beginning of the next system; see the +\verb|\zleftrepeat| \verb|\zzleftrepeat| \verb|\zzleftrightrepeat| +and \verb|\zzleftrightrepeat| commands described below. + + +The following commands generate repeat symbols as usual, but +are assumed to be in the \emph{middle} of a bar; that is, +the bar counter is not incremented: +\begin{itemize} +\item[] \keyindex{zrightrepeat} +\item[] \keyindex{zleftrepeat} +\item[] \keyindex{zleftrightrepeat} +\end{itemize} +For example, to insert a left-repeat at a forced line break or at the +beginning of a piece, simply use \verb|\zleftrepeat| immediately \textit{after} +\verb|\startpiece| or \verb|\alaligne|. To insert a left-right repeat at a +forced line break, use \verb|\setrightrepeat\alaligne\zleftrepeat|. + +The following commands are similar but force the mid-bar break to the +end of a system: +\begin{itemize} +\item[] \keyindex{zzrightrepeat} +\item[] \keyindex{zzleftrepeat} +\item[] \keyindex{zzleftrightrepeat} +\end{itemize} +For +\verb|\zzleftrepeat| and \verb|\zzleftrightrepeat|, the left-repeats occur +at the beginning of the following system. The bar numbers are +correctly adjusted, using \keyindex{writezbarno} for the continuation +if \keyindex{systemnumbers} is in use. + +As an example, here is +a \emph{bour\'ee} by G.-F.~Handel coded using \verb|\zleftrepeat| at the beginning +of the \textbf{A} section and \verb|\zzleftrightrepeat| +between the \textbf{A} and the \textbf{B} sections: + +\begin{music} +\smallmusicsize +\generalmeter{\allabreve} +\generalsignature{1} +\startbarno=0 +\nobarnumbers +\nostartrule +\startpiece\addspace\afterruleskip +\systemnumbers +\zleftrepeat% +\znotes\ccn{10}{\boxit{\bf A}}\en +\NOtes\qa d\en% +\bar%1 +\NOtes\qa{g}\qa{i}\qa{h}\qa{g}\en% +\bar%2 +\NOTes\ha{k}\ha{i}\en% +\bar%3 +\NOtes\qa{l}\qa{k}\qa{j}\qa{i}\en% +\bar%4 +\NOtes\qa j\en +\NOTes\ha i\en% +\zzleftrightrepeat% +\znotes\ccn{10}{\boxit{\bf B}}\en +\NOtes\qa k\en% +\bar%5 +\NOtes\qa{l}\qa{j}\qa{h}\en +\Notes\ibl3i2\qb3i\tql3j\en% +\bar%6 +\NOtes\qa{k}\qa{i}\qa{g}\en +\Notes\ibu3h2\qb3h\tqu3i\en% +\bar%7 +\NOtes\qa{j}\qa{i}\qa{h}\qa{g}\en% +\bar%8 +\Notes\ibu3h1\qb3{h}\qb3{g}\qb3{h}\tqu3i\en +\NOtes\qa h\en +\Notes\ibl3i2\qb3i\tql3j\en% +\bar%9 +\NOtes\qa k\en +\Notes\ibl3i2\qb3i\tql3j\en +\NOtes\qa k\en +\Notes\ibl3j{-2}\qb3j\tql3i\en% +\bar%10 +\NOtes\qa j\en +\Notes\ibu3h2\qb3h\tqu3i\en +\NOtes\qa j\en +\Notes\ibu3i{-2}\qb3i\tqu3h\en% +\bar%11 +\NOtes\qa{i}\qa{g}\en +\NOtesp\tr{11}\qa{.h}\en +\Notes\ca g\en% +\bar%12 +\NOTesp\ha{.g}\en% +\setrightrepeat% +\endpiece% +\end{music} + +\noindent No explicit adjustment of \verb|\barno| was necessary. The right-repeat +at the end of the \textbf{B}~section was produced by +\verb|\setrightrepeat\endpiece|. + + + + \section{First and second endings (Voltas)}\index{volta} + +All volta commands must be entered right before the bar line command +(or repeat, etc.) where they are to take effect. There are three +commands that suffice to set all voltas. To start one, use +\keyindex{Setvolta}\verb|{|\textit{text}\verb|}|; to terminate it +with or without a vertical line, use \keyindex{endvolta} or +\keyindex{endvoltabox} respectively. The text by default will be followed +by a period. There are also various alternate +commands (e.g., \verb|\setendvoltabox| is equivalent to \verb|\endvoltabox|). +Some such alternate forms are used in the following example, but the first three +mentioned above are all that are required: + +\medskip \begin{music} + \parindent0pt + \nostartrule + \startpiece + \addspace\afterruleskip + \NOTEs\wh a\en\bar + \NOTEs\wh b\en\setvoltabox{1.-3}\bar + \NOTEs\wh c\en\setvolta4\setendvolta\rightrepeat + \NOTEs\wh d\en\doublebar + \NOTEs\wh e\en\bar + \NOTEs\wh f\en\leftrepeat + \NOTEs\wh g\en\bar + \NOTEs\wh h\en\Setvolta1\bar + \NOTEs\wh i\en\bar + \NOTEs\wh j\en\Setvolta2\setendvoltabox\rightrepeat + \NOTEs\wh i\en\bar + \NOTEs\wh h\en\setendvoltabox + \Endpiece + \end{music} + \noindent This was coded as + \begin{quote}\begin{verbatim} + \startpiece \addspace\afterruleskip + \NOTEs\wh a\en\bar + \NOTEs\wh b\en\setvoltabox{1.-3}\bar + \NOTEs\wh c\en\setvolta4\setendvolta\rightrepeat + \NOTEs\wh d\en\doublebar + \NOTEs\wh e\en\bar + \NOTEs\wh f\en\leftrepeat + \NOTEs\wh g\en\bar + \NOTEs\wh h\en\Setvolta1\bar + \NOTEs\wh i\en\bar + \NOTEs\wh j\en\Setvolta2\setendvoltabox\rightrepeat + \NOTEs\wh i\en\bar + \NOTEs\wh h\en\setendvoltabox + \Endpiece +\end{verbatim}\end{quote} + \zkeyindex{leftrepeat}\zkeyindex{rightrepeat} + +If the volta only spans one measure and ends without a vertical segment, +it can be specified simply by saying +\keyindex{setvolta}\verb|{|\textit{text}\verb|}| before the bar line command +that starts it, and it will automatically terminate at the +second bar line command: + +\medskip \begin{music} + \parindent0pt \nostartrule\startpiece \addspace\afterruleskip + \NOTEs\wh a\en\bar + \NOTEs\wh b\en\setvolta{1.-3}\bar \NOTEs\wh c\en\setvolta4\rightrepeat + \NOTEs\wh d\en\bar + \NOTEs\wh e\en\Endpiece +\end{music} +\noindent which was coded as: + \begin{quote}\begin{verbatim} + \parindent0pt \startpiece \addspace\afterruleskip + \NOTEs\wh a\en\bar + \NOTEs\wh b\en\setvolta{1.-3}\bar \NOTEs\wh c\en\setvolta4\rightrepeat + \NOTEs\wh d\en\bar + \NOTEs\wh e\en\Endpiece +\end{verbatim}\end{quote} + +The height above the top staff line of the horizontal line in a volta symbol +is determined by the token \keyindex{raisevolta} which is \verb|4\internote| by +default. You can change this to any desired dimension. + +The period after the text can be +removed by saying \verb|\def|\keyindex{voltadot}\verb|{}| +and restored by \verb|\def|\keyindex{voltadot}\verb|{.}|\ . + + \section{Special symbols for repeating long sections} + +Four special symbols and corresponding macros are available, namely +\keyindex{coda}~$p$, \keyindex{Coda}~$p$, +and \keyindex{segno}~$p$, where $p$ specifies the pitch; and \keyindex{Segno} +with no argument. Their behavior is illustrated in this example: + +\begin{music} +\startextract +\NOtes\segno n\en +\bar +\NOtes\coda n\en +\NOtes\Segno\en +\bar +\NOtes\Coda n\en +\endextract +\end{music} +\noindent which has been coded: +\begin{quote}\begin{verbatim} +\NOtes\segno m\en\bar +\NOtes\coda m\en +\NOtes\Segno\en\bar +\NOtes\Coda m\en +\end{verbatim}\end{quote} + +\section{Repeating a single bar} + The special symbol for a single-bar repeat is generated by \keyindex{duevolte}, as shown +in the following example: + +\begin{music} +\generalmeter\meterC +\setclef1\bass\setstaffs1{2} +\startextract +\NOtes|\qa{cegj}\en +\def\atnextbar{\znotes\centerpause|\en}\bar +\NOtes\qa{cdef}|\en +\def\atnextbar{\znotes|\centerbar{\duevolte}\en}% +\endextract +\end{music} +\noindent whose coding is: +\begin{quote}\begin{verbatim} +\generalmeter\meterC +\setclef1\bass\setstaffs1{2} +\startextract +\NOtes|\qa{cegj}\en +\def\atnextbar{\znotes\centerpause|\en}\bar +\NOtes\qa{cdef}|\en +\def\atnextbar{\znotes|\centerbar{\duevolte}\en}% +\endextract +\end{verbatim}\end{quote} diff --git a/macros/musixtex/doc/musixdoc/restsdoc.tex b/macros/musixtex/doc/musixdoc/restsdoc.tex new file mode 100644 index 0000000000..1e3a33431c --- /dev/null +++ b/macros/musixtex/doc/musixdoc/restsdoc.tex @@ -0,0 +1,231 @@ +\chapter{Rests} + \section{Ordinary rests} + A separate macro is defined for each kind of ordinary rest. They cause +a space after the symbol, just like spacing note commands, but they have +no parameters. A whole rest is coded as +\keyindex{pause}, +half rest \keyindex{hpause} or \keyindex{hp}, +quarter rest \keyindex{qp} or \keyindex{soupir}, +eighth rest \keyindex{ds}, sixteenth rest \keyindex{qs}, +$32$nd~rest \keyindex{hs}, and $64$th rest \keyindex{qqs}. +Dotted rests may be obtained by +using +\keyindex{pausep}, +\keyindex{hpausep} or \keyindex{hpp}, \keyindex{qpp}, \keyindex{dsp}, \keyindex{qsp}, +\keyindex{hsp} and \keyindex{qqsp}, +and double-dotted rests by +\keyindex{pausepp}, +\keyindex{hpausepp} or \keyindex{hppp}, \keyindex{qppp}, \keyindex{dspp}, \keyindex{qspp}, +\keyindex{hspp} and \keyindex{qqspp},. + + + Longer rests, normally interpreted as lasting +two or four bars respectively, can be coded as \keyindex{PAuse} +and \keyindex{PAUSe}, which yield: + +\begin{music}\nostartrule +\generalmeter{\meterfrac44} +\startextract +\def\atnextbar{\znotes\centerbar\PAuse\en}% +\NOTEs\en\bar +\def\atnextbar{\znotes\centerbar\PAUSe\en}% +\NOTEs\en +\endextract +\end{music} + %\check +\noindent +The command \keyindex{Hpause} $p$ $n$ provides an arbitrary length pause at pitch +$p$ and of length $n$ \keyindex{noteskip}. For example, +\verb|\NOTes\Hpause4{0.83}\en| +produces + +\begin{music} +\nostartrule +\startextract +\NOTes\Hpause4{0.83}\en +\endextract +\end{music} + + + \section{Raising rests and non-spacing rests}\index{raising rests} +All the +previous rests (except \keyindex{pausep}, +\keyindex{hpausep} and \keyindex{Hpause}) are \ital{hboxes}, which means that +they can be vertically offset if needed using the +standard \TeX\ command \keyindex{raise}. For example: + + \begin{quote} + \begin{verbatim} + \raise 2\Interligne\qp + \raise 3mm\qqs + \end{verbatim} + \end{quote} + +\noindent where \keyindex{Interligne} is the distance from one staff line to the +next. +Similarly, non-spacing rests may be coded using the \TeX\ command \keyindex{rlap}, as in + +\begin{music}\nostartrule +\startextract +\notes\ibbu0h{-1}\zccl e\qb0h\raise-4\Interligne\rlap\qs\qb0e\en +\notes\raise-4\Interligne\rlap\ds\qb0f\tqu0g\en +\endextract +\end{music}\noindent +for which the coding is +\begin{verbatim} +\notes\ibbu0h{-1}\zccl e\qb0h\raise-4\Interligne\rlap\qs\qb0e\en +\notes\raise-4\Interligne\rlap\ds\qb0f\tqu0g\en +\end{verbatim} + +In addition, four special macros are available to raise or lower a whole or +half rest. The ordinary \verb|\pause| or +\verb|\hpause| cannot be used outside the staff because a short horizontal line +must be added to distinguish between the whole and the half rest. The commands, +which are non-spacing\footnote{Editor's note: The reason for having defined these +as non-spacing is not obvious}, are + \begin{itemize}\setlength{\itemsep}{0ex} + \item \keyindex{liftpause}~$n$ to get a + \hbox to10pt{\liftpause{-2}\hss} + raised from original position by $n$ staff line intervals, + \item \keyindex{lifthpause}~$n$ to get + \hbox to10pt{\lifthpause{-1}\hss} raised the same way. + \item \keyindex{liftpausep}~$n$ to get a + \hbox to10pt{\liftpausep{-2}\hss} + raised from original position by $n$ staff line intervals, + \item \keyindex{lifthpausep}~$n$ to get + \hbox to10pt{\lifthpausep{-1}\hss} raised the same way. + \end{itemize} + %\check + \section{Bar-centered rests}\label{barcentered} +Sometimes it is necessary to place a rest (or some other symbols) exactly in the middle +of the notes region of a bar +(i.e., excluding any initial clef and key or time signatures). +This can usually be done with combinations of the commands +\keyindex{atnextbar}, +\keyindex{centerbar}, +\keyindex{cPAUSe}, +\keyindex{cPAuse}, +\keyindex{cpause}, +\keyindex{chpause}, +\keyindex{cHpause} $n$, +as demonstrated in the following example: + +\begin{music} +\generalmeter\meterC +\generalsignature{3} +\setclef1\bass +\setstaffs1{2} +\parindent0pt +\startextract +\NOtes|\qa{cegj}\en +\def\atnextbar{\znotes\centerbar{\cpause}|\en}% +\generalsignature{-3}\changecontext +\NOTes\ha{Nc}|\en +\def\atnextbar{\znotes|\centerbar{\cpause}\en}% +\setclef1\alto\changeclefs% +\generalmeter{\meterfrac21}\changecontext% +\NOTEs\wh d\pause|\en +\def\atnextbar{\znotes|\centerbar{\cPAuse}\en}% +\bar +\NOTEs|\en +\def\atnextbar{\znotes\centerbar{\cHpause{12}}|\centerbar{\cHpause{12}}\en}% +\endextract +\end{music} +\noindent with the coding +\begin{verbatim} +\generalmeter\meterC +\generalsignature{3} +\setclef1\bass +\setstaffs1{2} +\parindent0pt +\startextract +\NOtes|\qa{cegj}\en +\def\atnextbar{\znotes\centerbar{\cpause}|\en}% +\generalsignature{-3}\changecontext +\NOTes\ha{Nc}|\en +\def\atnextbar{\znotes|\centerbar{\cpause}\en}% +\setclef1\alto\changeclefs% +\generalmeter{\meterfrac21}\changecontext% +\NOTEs\wh d\pause|\en +\def\atnextbar{\znotes|\centerbar{\cPAuse}\en}% +\bar +\NOTEs|\en +\def\atnextbar{\znotes\centerbar{\cHpause{12}}|\centerbar{\cHpause{12}}\en}% +\endextract +\end{verbatim}\noindent + +The following abbreviations are provided: +\begin{quote} +\begin{tabular}{lcl} +\keyindex{centerpause}& for & \verb|\centerbar{\cpause}|\\ +\keyindex{centerhpause}& for & \verb|\centerbar{\chpause}|\\ +\keyindex{centerPAuse}& for & \verb|\centerbar{\cPAuse}|\\ +\keyindex{centerPAUSe}& for & \verb|\centerbar{\cPAUSe}|\\ +\keyindex{centerHpause} $n$ & for & \verb|\centerbar{\cHpause| $n$\verb|}| +\end{tabular} +\end{quote} +Material other than these rests may be used as arguments to +\verb|\centerbar|, as in:\\ +\begin{music} +\nostartrule +\generalmeter\meterC +\parindent0pt +\startextract +\NOTEs\sk\hqsk\en\def\atnextbar{\znotes\centerbar{\ccn{9}{\meterfont7}}% +\centerbar{\cPAUSe\off{2\elemskip}\cPAuse\off{2\elemskip}\cpause}\en}\bar +\NOtes\ql{ghij}\en +\def\atnextbar{\znotes\centerbar{\liftpause2}\en}\bar +\NOTes\en +\def\atnextbar{\znotes\centerbar{\duevolte}\en}\bar +\NOTes\en +\def\atnextbar{\znotes\loffset{0.7}{\centerbar{\Fermataup l\wh j}}\en} +\endextract +\end{music} +\noindent for which the coding is: +\begin{verbatim} +\generalmeter\meterC +\parindent0pt +\startextract +\NOTEs\en\def\atnextbar{\znotes\centerbar{\ccn{9}{\meterfont7}}% +\centerbar{\cPAUSe\off{2\elemskip}\cPAuse\off{2\elemskip}\cpause}\en}\bar +\NOtes\ql{ghij}\en +\def\atnextbar{\znotes\centerbar{\liftpause2}\en}\bar +\NOTes\en +\def\atnextbar{\znotes\centerbar{\duevolte}\en}\bar +\NOTes\en +\def\atnextbar{\znotes\loffset{0.7}{\centerbar{\Fermataup l\wh j}}\en} +\endextract +\end{verbatim} +In the last measure, +it has been necessary to use \keyindex{loffset} to correct the centering of +the off-center command +\verb|\wh|\ldots. + +%To get proper positioning of \keyindex{centerbar} material before +%a clef change, you may use an invisible bar line as in +%\begin{quote} +%\begin{verbatim} +%\setclef1\bass +%\startextract% +%\NOTEs\Hpause4{0.83}\en +%\def\atnextbar{\znotes\centerbar{\ccn9{\meterfont{4}}}\en}% +%\qspace\setemptybar\bar% invisible bar line +%\setclef1\alto\zchangeclefs\bar% +%\NOtes\qa{abcd}\en +%\endextract +%\end{verbatim} +%\end{quote} +%which produces +% +%\begin{music} +%\nostartrule +%\nobarnumbers +%\setclef1\bass +%\startextract% +%\NOTEs\Hpause4{0.83}\en +%\def\atnextbar{\znotes\centerbar{\ccn9{\meterfont{4}}}\en}% +%%\qspace\setemptybar\bar% invisible bar line +%\setclef1\alto\changeclefs\bar% +%\NOtes\qa{abcd}\en +%\endextract +%\end{music} diff --git a/macros/musixtex/doc/musixdoc/settingup.tex b/macros/musixtex/doc/musixdoc/settingup.tex new file mode 100644 index 0000000000..5de88fc3e6 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/settingup.tex @@ -0,0 +1,367 @@ +\chapter{Setting up the Input File} +\section{What makes a \TeX\ file a \musixtex\ file?} +A \musixtex\ input file is a special kind of \TeX\ input file. What makes it +special is that it must contain the command +\verb|\input musixtex| +before any reference to \musixtex\ macros. After that might follow +\verb|\input musixadd| or \verb|\input musixmad| if you want to have +respectively up to nine or twelve instruments or simultaneous beams, +ties, or slurs.\ixtt{musixtex.tex}\ixtt{musixadd.tex}\ixtt{musixmad.tex} +If you want to have greater numbers of these elements, you can assign them +directly by including one or more of these commands: +\verb|\setmaxinstruments|, +\verb|\setmaxcxxviiibeams|, +\verb|\setmaxcclvibeams|, +\verb|\setmaxgroups|, +\verb|\setmaxslurs|, +\verb|\setmaxtrills|, +\verb|\setmaxoctlines|. + +Since it is still a \TeX\ file, after that, if you wished to, +you could write a whole non-musical book +using normal \TeX\ commands provided that you did not +use \verb|&| as a tab character like in plain \TeX; in \TeX\ lingo, +its \keyindex{catcode} has been changed. + + \section{Cautions for the non \TeX pert} +When \TeX\ reads anything, it inputs one \ital{token} at a time. A token +may be either a \ital{command} or a character. A command (or \ital{macro}, +or \ital{control sequence}) is a +\ital{backslash} (``{\Bslash}'') immediately followed by sequence of +letters with no intervening spaces. For practical purposes, any single symbol (letter, digit, +special character, or space) that is not part of a command counts as a character +and therefore as a token. + +Each command expects a specific number of parameters. +The tokens ``\verb|{|'' and ``\verb|}|'' are very special, in that (1) they +must occur in matched pairs, and (2) any matched pair together with +the stuff inside counts as a single parameter. +If the first +parameter expected is a single letter, it must either be +separated from the command by a space or +enclosed in braces (otherwise it would be interpreted as part of the command). +For example the command \verb|\ibu| expects three parameters, so the +following are all OK: \verb|\ibu123|, \verb|\ibu1A3|, \verb|\ibu1{`A}3|, +\verb|\ibu{1}{2}{3}|, \verb|\ibu1{-2}3|, or \verb|\ibu1{23}4|, but +\verb|\ibu1234| is not OK; the first three digits are taken as parameters, +leaving the ``4'' with no purpose other than to cause some of the dreaded +unrecorded space that we have already mentioned. + +In the rest of this manual, when describing commands we will write +things like \verb|\qb{|$n$\verb|}{|$p$\verb|}|. It should be understood that +when $n$ and $p$ are replaced by their literal values, the braces may +or may not be necessary. In particular, if both are single digits, no +braces are needed; but if $n$ has two digits, or if $p$ has more than +one character, they must be surrounded by braces. + +Spaces (blank characters) in the input file must be handled very carefully. +They are ignored at the beginning of a line, enabling logical +indentation schemes to help make the file human-readable. There are also a few +other places within lines where blank spaces are OK (such as mentioned in the prior paragraph), +but in general is it safest to avoid +any unnecessary blanks between the beginning and end of an input line. +At the end of a line, the truth is that a command with no parameters, such as +\verb|\bar| or \verb|\en| will cause no trouble. However if a command with +one or more parameters is the last item in an input line, it will cause +unrecorded space. The way around this is to end the line with either ``\verb|%|'' +or \verb|\relax|. + + \section{Usual setup commands}\label{whatspecify} + +\subsection{Music size} + + The first decision is what size type to use. \musixtex\ offers four sizes: +``small'' \mbox{(\texttt{16pt}-high staves),} ``normal'' (\texttt{20pt}),\index{sizes} ``large'' +(\texttt{24pt}), and ``Large'' (\texttt{29pt}). The default is +\keyindex{normalmusicsize}. If you want a different size, then you have to +enter \keyindex{smallmusicsize}, \keyindex{largemusicsize}, or +\keyindex{Largemusicsize}. Each of these commands defines not only the +desired staff size but many other related sizes such as note heads, ornaments, +stem lengths, etc. + +\subsection{Number of instruments} + + The command \keyindex{instrumentnumber}\onen~defines the +number of instruments to be $n$. If not entered, the default is $1$. This number is used in loops +that build staves, +set key signatures, set meters, etc., so if it differs from $1$ it must be explicitly +defined before any further commands. The default maximum number of instruments is $6$ +but this can be increased by using \keyindex{setmaxinstruments}\onen. + +\subsection{Number of staves per instrument} + +An instrument may have one or more staves (e.g.,~a piano would normally have 2 staves). +The differences between one +instrument of several staves and several instruments with one staff each are as follows: +\begin{itemize}\setlength{\itemsep}{0ex} + \item Different instruments may have different \itxem{key signatures}, while different +staves of an instrument will all have the same key signature. + \item A \itxem{beam} may include notes in different +staves of the same instrument. + \item A \itxem{chord} may extend across several staves of the same +instrument. + \item If an instrument has more than one staff, they will be linked together +with a big, curly brace at the beginning of each line. +\end{itemize} +The default number of staves per instrument is $1$. If it is different, then it +must be specified by \keyindex{setstaffs}\verb|{|$n$\verb|}{|$p$\verb|}| +where $p$ is the number of staves and $n$ is the +number of the instrument. In \musixtex, instruments are numbered +\ital{starting with the lowest}. +So for example \verb|setstaffs32| +assigns two staves to the third instrument from the bottom. + +\subsection{Clefs for each staff} + + The default clef for every staff is the \ital{treble} clef. To assign +any other clef, the command is +\keyindex{setclef}\verb|{|$n$\verb|}{|$s_1s_2s_3s_4$\verb|}| +where $n$ is the number of the instrument, $s_1$ is a digit specifying the +clef for the first (lowest) staff, $s_2$ for the second staff, and so forth. +Note that like +instruments, staves of a given instrument are numbered starting with +the lowest. The parameters $s_2$, $s_3$ and $s_4$ can be omitted, in which case +any unspecified staves will be assigned a treble clef. + +The digits $s$ can range from $0$ to $9$, with the following meanings: +$s=0$ signifies treble or G clef. +$s=1$ to $4$ mean C-clef, respectively on the first (lowest) through fourth staff line. +$1$ is also called \ital{soprano}, $3$ \ital{alto} and $4$ \ital{tenor}. +$s=5$ to $s=7$ mean F-clef, respectively on the third through fifth staff line. $5$ is +also called \ital{baritone} and $6$ is the normal \ital{bass}. + $s=8$ is used to specify an ``empty'' clef. +$s=9$ represents a G clef on the first line, also called \ital{French violin} clef. + +The three tokens \verb|\treble|, \verb|\alto|, and \verb|\bass| can be used instead +of a digit for $s$, but only if there would have been but one digit in the string. +So for example the clefs for a standard piano score +could be specified by +\keyindex{setclef}\verb|1{\bass}|. + +Treble and bass clefs with the digit $8$ above or below are also possible; see +Section~\ref{treblelowoct}. + +\subsection{Key signatures} + +To set a common key signature for all instruments, use + \keyindex{generalsignature}\verb|{|$s$\verb|}|, +where $s>0$ is the number of \itxem{sharps} in the +signature and $s<0$ the number of \itxem{flats}\footnote{We once saw a +score in G-minor where the signature consisted of two flats (B and E) plus +one sharp (F). This is not directly supported by \musixtex.}. To override +the common key signature for instrument $n$, use +\keyindex{setsign}\verb|{|$n$\verb|}{|$s$\verb|}|. Note that differing +key signatures cannot be assigned to different staves of the same instrument. + +\subsection{Meters} + +A common \itxem{meter} for all staves can be specified by + \keyindex{generalmeter}\verb|{|$m$\verb|}|,\label{generalmeter} +where $m$ describes the appearance of the meter indication, and can take several +different forms. If the meter is a \ital{fraction} (e.g.,~$3/4$) the command is + \verb|\generalmeter{|\keyindex{meterfrac}\verb|{3}{4}}|. +Other possible tokens~$m$ are \keyindex{meterC}, +\keyindex{allabreve}, \keyindex{reverseC}, \keyindex{reverseallabreve}, \keyindex{meterN} and +\keyindex{meterplus}. +To insert extra space before the meter is +written, use \keyindex{meterskip}$d$ where $d$ is any hard \TeX\ +%dimension\footnote{{\Bslash\tt meterskip} is not a macro but a +dimension\footnote{{\tt\Bslash meterskip} is not a macro but a +dimension register. Whatever follows it +must be a \TeX\ dimension and {\it it must not be enclosed in braces}.}. +The assignment must occur outside \verb|\startpiece...\endpiece| and will be +reset to zero after first meter is posted. + +These are illustrated in the following example: + + %\check +\begin{music} +\generalmeter\meterC +\nostartrule +\parindent0pt\startpiece +\NOtes\qa{cegj}\en +\generalmeter\allabreve\changecontext +\NOTes\ha{ce}\en +\generalmeter\reverseC\changecontext +\NOTEs\zbreve g\en +\generalmeter\reverseallabreve\changecontext +\NOTEs\zwq g\en +\generalmeter{\meterfrac{3\meterplus2\meterplus3}8}\changecontext +\notesp\Tqbu ceg\Dqbl jg\Tqbu gec\en +\generalmeter{\meterN3}\meterskip4pt\changecontext +\Notes\qa{ceg}\en\setemptybar +\endpiece +\end{music} +\noindent which was coded as: +\begin{quote}\begin{verbatim} +\generalmeter\meterC +\nostartrule +\parindent0pt\startpiece +\NOtes\qa{cegj}\en +\generalmeter\allabreve\changecontext +\NOTes\ha{ce}\en +\generalmeter\reverseC\changecontext +\NOTEs\zbreve g\en +\generalmeter\reverseallabreve\changecontext +\NOTEs\zwq g\en +\generalmeter{\meterfrac{3\meterplus2\meterplus3}8}\changecontext +\notesp\Tqbu ceg\Dqbl jg\Tqbu gec\en +\generalmeter{\meterN3}\meterskip4pt\changecontext +\Notes\qa{ceg}\en\setemptybar +\endpiece +\end{verbatim}\end{quote} + +To override the common meter for any staff, use +\keyindex{setmeter}\verb|{|$n$\verb|}{{|$m_1$\verb|}{|$m_2$\verb|}{|$m_3$\verb|}{|$m_4$\verb|}}|.\linebreak +This works just like \verb|\setclef|. For example, +\verb|setmeter3{{\meterfrac{12}8}\allabreve}| +sets the meter to 12/8 for the first staff of the third instrument, and +\ital{alla breve} for the second staff. + + +\subsection{Instrument names} + +To set an \itxem{instrument name}, use +\keyindex{setname}\verb|{|$n$\verb|}{|\ital{name of the instrument}\verb|}|. +This will place the name in the space to the left of the +first staff or group of staves for instrument $n$. To specify the amount of space +available, use \verb|\parindent|$d$ where $d$ is any hard \TeX\ dimension. +For multi-line instrument names, use \TeX\ commands as in the following: +\begin{verbatim} + \setname1{\vbox{% + \hbox to\parindent{\hss Bass\hss}% + \hbox to\parindent{\hss Recorder\hss}}} +\end{verbatim} + + \section{Groupings of instruments}\label{curlybrackets} +By default, all staves in a system will be joined +at the left by a thin, vertical rule. In addition, if an instrument has more than +one staff, they will be joined by a big, curly brace. Now we introduce a way +to delineate groups of instruments or choirs with a square brace containing two parallel +vertical rules, the left one thick and the right one thin. This is commonly used +to group together the voices in a choir. + +If there is only one choir, this can be done with + \begin{quote} +\keyindex{songtop}\onen\\ +\keyindex{songbottom}\verb|{|$m$\verb|}| +\end{quote} +\noindent where $m$ and $n$ are the instrument numbers of the first +and last voices. An example is shown in Section~\ref{song}. + +If there is more than one choir to be set off with +square braces, each one can be specified with + \begin{quote} +\keyindex{grouptop}\verb|{|$g$\verb|}{|$n$\verb|}|\\ +\keyindex{groupbottom}\verb|{|$g$\verb|}{|$m$\verb|}| +\end{quote} +\noindent where $m$ and $n$ are the instrument numbers of the first +and last voices of group number~$g$. \musixtex{} allows up to three +groups, numbered from $1$ to $3$. The command \verb|\songtop| is equivalent +to \verb|\grouptop 1|; \verb|\songbottom| is equivalent to +\verb|\groupbottom 1|. + +With \ttxem{musixadd.tex} or \ttxem{musixmad.tex}, the allowable number of +groups is increased to four. +Alternatively, you can specify the allowable number of groups to $m$ by +\keyindex{setmaxgroups}\verb|{|$m$\verb|}|% +\footnote{Using $m>4$ may require e-\TeX.}. +\label{musixmad_setmaxgroups} + +If any of the instruments grouped this way has more than one staff, the +heavy curly brace will be shifted to the left of the square brace. + +Previously defined square braces can be removed by declaring +\verb|\songtop| less than \verb|\songbottom|. The same applies to +\verb|\grouptop| and \verb|\groupbottom| for the same group number. + + An alternate command allows you to specify all choirs at once: +\begin{quote} + \keyindex{akkoladen}\verb|{{|{\it lower\_1\/}\verb|}{|{\it upper\_1\/}% + \verb|}{|{\it lower\_2\/}\verb|}{|{\it upper\_2\/}\verb|}{|% + {\it lower\_3\/}\verb|}{|{\it upper\_3\/}\verb|}}| +\end{quote} +\noindent where {\it lower\_n\/} and {\it upper\_n\/} are instrument +numbers that denote the span of bracket number $n$. For +setting fewer than three brackets, just omit all unneeded +\verb|{|{\it lower\_n\/}\verb|}{|{\it upper\_n\/}\verb|}|~pairs. + +For example, + \verb|\instrumentnumber{5}\akkoladen{{1}{2}{3}{5}}| +\noindent yields the first example below, with five single-staff instruments +divided into two groups. +The second example has two instruments, the first (lower) with two staves and the +second with three. Each instrument is set off by default with a curly bracket. + +If for some reason you want more than one \ital{instrument}\ grouped +within a curly +bracket, then you can use the +command + + \keyindex{curlybrackets}\verb|{{|{\it lower\_1\/}\verb|}{|{\it upper\_1\/}% + \verb|}{|{\it lower\_2\/}\verb|}{|{\it upper\_2\/}\verb|}...| + +\noindent to be used as illustrated in the third example below.\\ +\begin{small} +\begin{minipage}[t]{29ex} +\begin{music} + % just to avoid wasting space ... + \sepbarrules + \smallmusicsize + \instrumentnumber{5} \akkoladen{{1}{2}{3}{5}} + \startextract\notes\en\bar\notes\en\zendextract +\end{music} +\begin{quote}is coded as: +\begin{verbatim} + \sepbarrules + \smallmusicsize + \instrumentnumber{5} + \akkoladen{{1}{2}{3}{5}} + \startextract + \notes\en\bar\notes\en + \zendextract +\end{verbatim}\end{quote} +\end{minipage} +\begin{minipage}[t]{27ex} +\begin{music} + \sepbarrules + \smallmusicsize + \instrumentnumber2 \setstaffs12\setstaffs23 + \startextract \notes\en\bar\notes\en\zendextract +\end{music} +\begin{quote}is coded as: +\begin{verbatim} + \sepbarrules + \smallmusicsize + \instrumentnumber2 + \setstaffs12 + \setstaffs23 + \startextract + \notes\en\bar\notes\en + \zendextract +\end{verbatim}\end{quote} +\end{minipage} +\begin{minipage}[t]{27ex} +\begin{music} + \sepbarrules + \smallmusicsize + \instrumentnumber5 %\setstaffs12\setstaffs23 + \curlybrackets{1235} + \startextract \notes\en\bar\notes\en\zendextract +\end{music} +\begin{quote}is coded as: +\begin{verbatim} + \sepbarrules + \instrumentnumber5 + \smallmusicsize + \curlybrackets{1235} + \startextract + \notes\en\bar\notes\en + \zendextract +\end{verbatim}\end{quote} +\end{minipage} +\end{small} + + + + diff --git a/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex b/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex new file mode 100644 index 0000000000..b7bfca7d64 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/slurstiesTypeK.tex @@ -0,0 +1,378 @@ + \chapter{Postscript Slurs, Ties and Hairpins}\label{PostscriptSlurs} + +\input musixps + + +All of the aforementioned limitations of font-based slurs can be circumvented +by using type~K Postscript slurs\footnote{``K'' stands for Stanislav Kneifl, +the developer of the type~K Postscript slur package.}. As well as slurs, the package includes +ties and crescendos. +Its use is very similar to font-based slurs, and in fact identical if only +the elementary slur and tie initiation and termination macros are used. + +In order to use type~K Postscript slurs, ties and hairpins, you must first place \texttt{musixps.tex} +anywhere \TeX\ can find it. You must also place \texttt{psslurs.pro} +somewhere that \texttt{dvips} can find it. + +The \index{mxsk font}\texttt{mxsk} font is required for ``half ties,'' which +are special symbols that are used by default for the second portion of a tie +that crosses a line break. If you like +this treatment you must install the font in your \TeX\ system. However, perfectly +acceptable line-breaking ties will appear if you invoke \keyindex{nohalfties}, +and then you will not have to install this font. + +Once the software mentioned in the prior two paragraphs is installed and the +\TeX\ filename database is refreshed, the type~K package can be +invoked by including the command \verb|\input musixps| +near the beginning of your source file (but after loading \verb\musixtex.tex\). +The resulting dvi file should then be converted into Postscript using \textbf{dvips}. +If desired, a PDF file can then be generated with \textbf{ps2pdf}, \textbf{ghostscript}, +or \textbf{Adobe Acrobat} (see Section~\ref{using} for more information on this). + +Two minor inconveniences with type~K Postscript slurs are that (1) they won't appear +in many dvi previewers, and (2) they won't appear in PDF files generated with +\textbf{pdftex} or \textbf{dvipdfm}. The former limitation can be circumvented by using a Postscript +viewer such as \textbf{GSview}. The latter simply requires that you create an intermediate +Postscript file with \textbf{dvips}, then make the PDF with any of the software +mentioned above. + + +\section{Initiating and terminating type K Postscript slurs} + +Basic usage of type K slurs is the same as for font-based slurs. To initiate one, +use for example \verb|\isluru0g| to start an upper slur with ID 0 above a virtual note +at pitch level {\tt g}. To terminate one, use a command like +\verb|\tslur0i| which terminates the slur with ID 0 on a +virtual note at pitch level {\tt i}. +Both types of commands are non-spacing and must precede the first or last +note under the slur. + +Termination macros are not restricted to being used +with their initiation counterpart. For example, a slur +beginning as a ``beam'' slur may be terminated as a +normal slur, or \emph{vice versa}. These would be achieved by using macro pairs +\verb|\ibslur...\tslur...| or \verb|\islur...\tbslur...|, respectively. +Unlike font-based slurs, adjusting the vertical positioning of the slur termination should not be necessary. + +You can shift the starting or ending point slightly to the left +or right by substituting one of the commands \keyindex{ilsluru}, +\keyindex{ilslurd}, \keyindex{irsluru}, +\keyindex{irslurd}, \keyindex{trslur} or \keyindex{tlslur}. +For shifts farther to the left, use +\keyindex{iLsluru}, +\keyindex{iLslurd} +or \keyindex{tLslur}. + + +You can control the shape of type~K slurs with variants of +the termination command. To make the slur a bit flatter than default use +\keyindex{tfslur}0f; a bit higher, \keyindex{thslur}0f; higher still, +\keyindex{tHslur}0f; or +even higher, \keyindex{tHHslur}0f. These commands have an effect like +\keyindex{midslur} does for font-based slurs. + +All combinations of the shifting and curvature variants are allowed, +e.g.\ \verb|\trHHslur|. + + +The following examples demonstrate how much better the type K slurs perform +in the extreme situations of the prior two typeset examples. The coding is +exactly the same as above except that \verb|\input musixps| has been added: +\begin{quote}\begin{verbatim} +\begin{music}\nostartrule +\input musixps +\startextract\NOTes\multnoteskip3\isluru0c\ql c\tslur0s\ql s\en +.... +\end{verbatim}\end{quote} + +\begin{music}\nostartrule +\instrumentnumber{1} +\generalmeter{\meterfrac34} +\startextract\NOTes\multnoteskip3\isluru0c\ql c\tslur0j\ql j\en + \bar\NOTes\multnoteskip3\isluru0c\ql c\tslur0n\ql n\en\zendextract +\startextract\NOTes\multnoteskip3\isluru0c\ql c\tslur0s\ql s\en + \bar\NOTes\multnoteskip3\isluru0c\ql c\tslur0z\ql z\en\zendextract + +\startextract +\NOTes\isluru0c\ql c\en\notes\tslur0j\ql j\en\bar +\NOTes\isluru0c\ql c\en\notes\tslur0n\ql n\en +\NOTes\isluru0c\ql c\en\notes\tslur0s\ql s\en\bar +\NOTes\isluru0c\ql c\en\notes\tslur0z\ql z\en +\zendextract +\end{music} + + + + +For maximal control over type K slurs, you can use one of the commands +\keyindex{iSlur}~$npvh$ and +\keyindex{tSlur}~$npvhca$, where the characters in +$npvhca$ respectively stand for ID number, height, vertical offset, horizontal offset, +curvature, and angularity. +All offsets are in \verb|internote|, and the slur direction is determined +by the sign of the vertical offset. See the comments in \verb|musixps.tex| +for precise definitions of the other parameters. Examples of permissible forms for +these commands are +\verb|iSlur0c11| and \verb|tSlur0{!d}11{.2}0|. + +The next example shows how you can use \verb|iSlur| in difficult +circumstances: + + +\begin{music}\nostartrule +\nobarnumbers +\generalsignature1% +\generalmeter{\meterfrac{2}{4}}% +\nostartrule +\startextract +\NOtes\zchar{-8}{\Bslash irslur...\Bslash tlslur}\irslurd0{'b}\zhl b\sk\zq{!e}\qu{'c}\en\bar +\NOtes\zh{'d}\zhu{`f}\off{7.2pt}\tlslur0{'b}\ql b\ql b\en\bar +% +\NOtes\zchar{-8}{\Bslash irslur...\Bslash tlfslur}\irslurd0{'b}\zhl b\sk\zq{!e}\qu{'c}\en\bar +\NOtes\zh{'d}\zhu{`f}\off{7.2pt}\tlfslur0{'b}\ql b\ql b\en\bar +% +\NOtes\zchar{-8}{\Bslash iSlur...\Bslash tSlur}\iSlur0{'b}{-.5}3\zhl b\sk\zq{!e}\qu{'c}\en\bar +\NOtes\zh{'d}\zhu{`f}\off{7.2pt}\tSlur0{'b}{.5}{-1}{.3}0\ql b\ql b\en +\zendextract +\end{music} +\noindent with this coding: + +\begin{quote}\begin{verbatim} +\NOtes\irslurd0{'b}\zhl b\sk\zq{!e}\qu{'c}\en\bar +\NOtes\zh{'d}\zhu{`f}\off{7.2pt}\tlslur0{'b}\ql b\ql b\en\bar +% +\NOtes\irslurd0{'b}\zhl b\sk\zq{!e}\qu{'c}\en\bar +\NOtes\zh{'d}\zhu{`f}\off{7.2pt}\tlfslur0{'b}\ql b\ql b\en\bar +% +\NOtes\iSlur0{'b}{-.5}3\zhl b\sk\zq{!e}\qu{'c}\en\bar +\NOtes\zh{'d}\zhu{`f}\off{7.2pt}\tSlur0{'b}{.5}{-1}{.3}0\ql b\ql b\en +\end{verbatim}\end{quote} + + +The ID number for a slur, tie or crescendo should +normally range from $0$ to $9$. If it is bigger +than nine but less than $15$, +the object can cross a line break but not a page break. If bigger than +14 but less than $2^{31}$, it can't be broken at all, + nor can a slur termination be positioned at a beam with + e.g., \verb|\tbsluru{17684}{16}|; however \verb|\ibsluru{152867}{16}| is okay. + +It's also okay to have opened simultaneously a slur, tie and crescendo all +with the same ID, or a slur, tie and decrescendo, but not a crescendo and +decrescendo. + +\def\emen{{\tt\char123}$n${\tt\char125\char123}$m${\tt\char125}} + +` +\section{Type~K Postscript beam slurs} +Type~K beam slurs are defined differently than the font-based ones: +They require as parameters both a slur ID number $n$ and a beam ID number $m$, +but that's all. The commands are +\keyindex{iBsluru}\emen, \keyindex{iBslurd}\emen, and +\keyindex{tBslur}\emen. +They must be placed \ital{after} the beam initiation or termination command. +Type~K slurs may start on one beam and end on another. +For example, + +\begin{quote}\begin{verbatim} +\Notes\ibu0i0\iBsluru00\qb0{eh}\tbu0\qb0i\ibu0j0\qb0{jl}\tbu0% + \slurtext{6}\tBslur00\qb0e\en +\end{verbatim}\end{quote} + +\noindent produces +%\begin{center} +%\includegraphics[scale=1]{./mxdexamples/psbeamslur.eps} +%\end{center} + +\begin{music}\nostartrule\startextract +\Notes\ibu0g2\iBsluru00\qb0{eh}\tbu0\qb0i\ibu0j0\qb0{jl}\tbu0% + \slurtext{6}\tBslur00\qb0e\en +\zendextract +\end{music} + +This example also illustrates the use of the macro +\keyindex{slurtext}. It has just one parameter---some text to be +printed---and it centers it just above or below the midpoint of +the next slur that is closed. +This works only for non-breaking slurs; if the slur is broken, +the text +disappears\footnote{If you insist on viewing files with a dvi viewer that +doesn't display +type~K slurs, you may also find that +figures placed with \keyindex{slurtext} will appear at the end of the +slur rather than the middle.}. +%The placing of the slur text is done with a very dirty Postscript +%hack, so I am not really sure that everything you want to typeset +%will be placed at the correct position (if you are interested, see +%the end of psslurs.pro for details). If you find something that won't +%work, let me know. + +% DAS: why do we need this ??? +%\paragraph{General coding for Postscript slurs and ties of type K.} +%This can be done by: +%\begin{quote}\begin{verbatim} +%\i[h.shift]slur[u|d]{slur ID}{note height} +%\t[h.shift][slur height]slur{slur ID}{note height} +%\iBslur[u|d]{slur ID}{beam ID} +%\tB[slur.height]slur{slur ID}{beam ID} +%\end{verbatim}\end{quote} +%\noindent where h.shift can be 'l', 'r' or nothing +%and slur.height can be 'f', nothing, 'h', 'H' or 'HH' +% +%Example: \keyindex{tlfslur} means 'terminate left flat slur'. +% +% +%There are also simple slurs with same invocation and parameters as the +%original ones. + +\section{Type~K Postscript ties} +All of the foregoing Type~K slur commands +except the shape-changing ones +have counterparts for ties. Simply +replace ``\verb|slur|'' with ``\verb|tie|'', and for terminations omit +the pitch parameter. Type~K ties not only are positioned differently by +default, but they also have different shapes than slurs. If you want to change +the shape of a tie, redefine \verb|\pstiehgt| from its default of $0.7$. + +\section{Dotted type K slurs and ties.}%please check the capital D(otted) +A slur or tie can be made dotted simply by entering \keyindex{dotted} anywhere before +the beginning of the slur or tie. Only the first slur or tie following this +command will be affected. On the other hand, if you enter \keyindex{Dotted}, then \emph{all} +slurs and ties from this point forward will be dotted until you say +\keyindex{Solid}. Furthermore, inside \verb|\Dotted...\Solid| you can make any individual +slur or tie solid saying \verb|\solid| before its beginning. + +\section{Avoiding collisions with staff lines.} +In Postscript it is possible to do computations that would be very hard +to implement directly in TeX. Type~K slurs can use this facility to check whether +the curve of a slur or tie is anywhere nearly tangent to any staff line, and if +so, to adjust +the altitude of the curve to avoid the collision. By default this feature is turned +on. +You can disable it either +globally (\keyindex{Nosluradjust}, \keyindex{Notieadjust}) or locally +(\keyindex{nosluradjust}, \keyindex{notieadjust}), and you can also turn it +back on globally (\keyindex{Sluradjust}, +\keyindex{Tieadjust}) or locally (\keyindex{sluradjust}, \keyindex{tieadjust}). +Here ``locally'' +means that the command will only affect the next slur or tie to be opened. + +\section{Type K Postscript hairpins}\label{kcresc} + +There are two different types. The first type is normally initiated with either +\keyindex{icresc}\onen~or \keyindex{idecresc}\onen, and terminated with +\keyindex{tcresc}\onen, where $n$ is a hairpin index, +which is virtually unlimited but certain restrictions apply if it exceeds $14$. +The altitude is set by the value of \keyindex{setcrescheight}, which by default +is $-5$ and which must be expressed numerically. Note that +\keyindex{tcresc}~is the same as \keyindex{tdecresc}. + +You can shift the starting or ending point horizontally by replacing the +foregoing macros with +\keyindex{ilcresc}, \keyindex{ildecresc}, +\keyindex{ircresc}, \keyindex{irdecresc}, +\keyindex{tlcresc}, \keyindex{tldecresc}, +\keyindex{trcresc}, \keyindex{trdecresc}, +for example to make space for an alphabetic dynamic mark. + +The second form of Postscript hairpin macros allows individual and arbitrary +specification of the altitude and horizontal offset. The syntax is +\keyindex{Icresc}\itbrace{n}\itbrace{h}\itbrace{s}, where $h$ is the +altitude---which must be numerical---and $s$ is the horizontal offset +in \verb|\internote|. Similar syntax obtains for \keyindex{Idecresc}\ +and \keyindex{Tcresc}. + +These hairpins may span several lines. If one of them spans three systems +then the height of the middle section can be adjusted with +\keyindex{liftcresc}\itbrace{n}\itbrace{h}. The height of the first and last +parts of a broken crescendo will be defined by the height parameter in +\keyindex{Icresc}~or \keyindex{Tcresc}. + +There are numerous other nuances and shorthand macros that are described +in the comments in \verb|musixps.tex|. + +As an example of a Postscript hairpin, + +\begin{music}\nostartrule +\generalmeter{\meterfrac{12}8} +\startextract +\Notes\ccharnote{-8}{\ppp}\Icresc0{-7}6\ca{bdegh'bde}\en +\Notes\Tcresc0{-4}{-2}\zcharnote{-5}{\fff}\ca{'f}\en +\zendextract +\end{music} + +\noindent was coded as +\begin{quote}\begin{verbatim} +\input musixps +\generalmeter{\meterfrac{12}8} +\startextract +\Notes\ccharnote{-8}{\ppp}\Icresc0{-7}6\ca{bdegh'bde}\en +\Notes\Tcresc0{-4}{-2}\zcharnote{-5}{\fff}\ca{'f}\en +\zendextract +\end{verbatim}\end{quote} + + +\section{Line-breaking slurs, ties and hairpins} +Tyle K slurs, ties and crescendos going across line breaks are handled +automatically. In fact they can go over more lines than two (this is +true also for ties, though it would be somewhat strange). + +There is a switch \verb|\ifslopebrkslurs| that controls the default +height of the end point +of the first segment of all broken slurs. By default the height will be +the same as the beginning. To have it raised by \verb|3\internote|, simply +issue the command \keyindex{slopebrkslurstrue}. To revert to the default, +use \keyindex{slopebrkslursfalse}. + +To locally override the default height of the end of the first segment, +use the command \keyindex{breakslur}\enpee, +which sets the height for slur number $n$ to pitch $p$, just like with +font-based slurs. + +You can raise or lower the starting point of the second segment of a broken slur +with the command \keyindex{liftslur}\verb|{|$n$\verb|}{|$h$\verb|}|, with +parameters slur ID and relative offset in +\verb|\internote|s measured from the slur beginning. Its effect is +the same as \keyindex{Liftslur} for font-based slurs, except it is not +necessary to code +it within \verb|\atnextstaff{}|, just anywhere inside the slur. + +As already mentioned, anything with $\mathrm{ID}<10$ is broken fully automatically, but +you should be careful about slurs, ties and crescendos with $10\le\mathrm{ID}<15$. +These cannot cross page breaks, although they can cross line breaks. + +If the second segment of a broken tie is less than 15pt long, then by +default it will have a special shape which begins horizontally. These shapes are +called \ital{half ties} and are contained in the font \index{mxsk font}\verb|mxsk|. +Of course if they are to be used, the font files must be integrated into the +\TeX\ installation. Their use can be turned off with \keyindex{nohalfties} +and back on with \keyindex{halfties}. + +%\paragraph{Backwards compatibility.} +%There are several ``aliases'' which allow to use the old, bitmapped slur +%commands for PS slurs without any change. There are however a few differences: +%the \keyindex{invertslur} is not implemented yet and +%the \keyindex{curve} and \keyindex{midslur} macros have no effect. + +%\paragraph{Memory requirements.} +\enlargethispage*{4ex} +\section{A few final technical details} +Each \verb|\i...| and \verb|\t...| +produces a \verb|\special| command, which must be stored in TeX's main memory. +Therefore, if too many slurs occur in one page, some memory problems could +occur. The only solution is to use font-based slurs. +%The only solutions are to use Big\TeX\ +%BigTex? it is apparently the mascot for the Texas State Fair + +Type~K slurs need the Postscript header file +\index{psslurs.pro}\texttt{psslurs.pro} to be included in the +output Postscript file. This is made to happen by the \TeX\ command +\verb|\special{header=psslurs.pro}|, which is automatically +included when you \verb|\input musixps|. So normally this is not +of concern. However if you wish to extract a subset of pages from +the master \verb|dvi| file using \index{dvidvi}\texttt{dvidvi}, then +you have three options: (1)~include the first page in the subset, +(2)~manually issue the +\verb|\special| command in the \TeX\ source for the first page of the subset, or +(3)~use the option \texttt{-h psslurs.pro} when you run \texttt{dvips}. + diff --git a/macros/musixtex/doc/musixdoc/slurstiesfont.tex b/macros/musixtex/doc/musixdoc/slurstiesfont.tex new file mode 100644 index 0000000000..8674dc02e9 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/slurstiesfont.tex @@ -0,0 +1,598 @@ +\chapter{Font-based Slurs, Ties and Hairpins} +Two fundamentally different implementations of slurs, ties, and hairpins are +available. First, there are the +original \ital{font-based} versions. These are constructed with traditional +\TeX\ font characters that were created with \MF\ and stored in \TeX\ font files. +Second, it is now possible +to generate these shapes directly with Postscript, dispensing altogether with +the font characters\footnote{Please do not be confused by the availability of +Postscript versions of the font-based slur fonts (along with all other \musixtex\ fonts). +Once installed in a \TeX\ system, +their function and use are 100\% transparently identical with bitmapped versions +of the slur fonts. On the other +hand, Postscript slurs are functionally distinct from font-based slurs, and only + share some of the same syntax.}. We shall first describe the font-based versions, +then Type~K Postscript slurs, which are one of two available Postscript slur +options\footnote{An +alternate approach to Postscript slurs, called {\it Type~M} after its developer +Hiroaki {\sc Morimoto}, is available from the +\href{http://icking-music-archive.org/software/indexmt6.html} +{\underline{Icking Music Archive}}.}. If you plan to use Type~K Postscript slurs, +you may skip directly to Chapter~\ref{PostscriptSlurs}. + +Font-based slurs and ties provided by \musixtex\ can be divided into two categories: +\label{simpleslur} +\begin{itemize}\setlength{\itemsep}{0ex} + \item Those where the complete slur symbol is composed of a single + character from one of the slur fonts, and + \item those where the slur symbol is composed of three distinct + characters, to form the beginning, middle and end of the slur. +\end{itemize} +The former are called \ital{simple slurs} and the latter, +\ital{compound slurs}. In many cases the distinction between the two is +invisible to the user, in that many of the macros described below will +automatically select between the two types. However, there are other macros +that allow simple slurs to be forced. + +The next few sections describe the usual method of slur coding, where the +choice between simple or compound slurs is made automatically. +In this case, slurs are initiated and terminated by separate macros, +similar to beams. + + \section{Font-based slur initiation} +A slur must be initiated \ital{before} +the spacing note on which the slur begins, and terminated \ital{before} the +note on which it ends. + +The basic slur initiation macro is +\keyindex{isluru}\enpee, which initiates an upper slur, with reference +number $n$, beginning on a note at pitch $p$. The starting point of the slur is +centered above a virtual quarter note head at pitch~$p$\footnote{The slur will start in the same place regardless of whether there is +{\it actually} a note at pitch $p$.}. +Similarly, \keyindex{islurd}\enpee\ initiates a lower slur. +These slurs are terminated by coding +\keyindex{tslur}\enpee\ where $n$ is the reference number and $p$ is the +termination pitch. + +As with beams, the reference number $n$ by default can take values from $0$ to $5$, or +up to $8$ or $11$ respectively if \ttxem{musixadd.tex} or \ttxem{musixmad.tex} is included. +You can also specify the maximum number +directly with \keyindex{setmaxslurs}\verb|{|$m$\verb|}| where +$7<m\leq 100$% +\footnote{This may require e-\TeX.}; +the reference number $n$ will be in the range between $0$ and $m-1$. +\label{musixmad_setmaxslurs} + +To illustrate with an elementary example, the following passage + +\begin{music}\nostartrule +\startextract +\NOtes\islurd0g\qu g\tslur0{'c}\qu c\en +\Notes\isluru0{'e}\ibl0e{-2}\qb0{edc}\tslur0b\tqb0b\en +\bar +\NOtes\islurd0{'a}\qu a\tslur0{`f}\qu f\en +\NOTes\hu g\en +\zendextract +\end{music} + +\noindent was coded as: +\begin{quote}\begin{verbatim} +\NOtes\islurd0g\qu g\tslur0{'c}\qu c\en +\Notes\isluru0{'e}\ibl0e{-2}\qb0{edc}\tslur0b\tqb0b\en +\bar +\NOtes\islurd0{'a}\qu a\tslur0{`f}\qu f\en +\NOTes\hu g\en +\end{verbatim}\end{quote} + +Other macros are provided to change the horizontal starting and ending points of the slur +in relation to the initial and final notes. Thus, \keyindex{issluru}\enpee\ +initiates a ``short'' upper slur suitable for linking notes involved in chords. +The +starting point is shifted to the right, and is vertically aligned with the +center of a virtual quarter note head at pitch~$p$. If a lower short slur +is wanted, one should use \keyindex{isslurd}\enpee. + +Sometimes, busy scores call for slurs which are vertically aligned with the +ends of note stems rather than note heads. These ``beam'' slurs---so called +because the slur is written at usual beam height---are provided by the +macros \keyindex{ibsluru}\enpee\ and \keyindex{ibslurd}\enpee. These macros +initiate slurs raised or lowered by the current stem height to accommodate +stems or beams above or below. + %\check + + \section{Font-based slur termination} +Font-based slurs that are not forced to be simple must be terminated by an explicit +command right before the last note under the slur. There are termination +commands analogous to each of the initiation commands already presented. They +are summarized in the following table: +\begin{center} + \begin{tabular}{ll} + Initiation & Termination \\ + \hline + \keyindex{isluru}, \keyindex{islurd} & \keyindex{tslur} \\ + \keyindex{issluru}, \keyindex{isslurd} & \keyindex{tsslur} \\ + \keyindex{ibsluru} & \keyindex{tbsluru}\\ + \keyindex{ibslurd} & \keyindex{tbslurd}\\ + \hline + \end{tabular} \end{center} + +\noindent All of these command have two parameters, $n$ and $p$. + +These specific termination macros are not restricted to +being used with their initiation counterpart. A slur started +in one sense can be terminated in another. For example, a +slur beginning as a ``beam'' slur may be terminated as a +normal slur, or \emph{vice versa}. These would be achieved using macro pairs +\verb|\ibslur...\tslur...| or \verb|\islur...\tbslur...|, respectively; however, it may be necessary +to adjust the vertical position of the slur termination. For example, + +\begin{music} +\startextract +\Notes\ibsluru1g\qa g\ha l\sk\tslur1e\zq g\zq i\qu k\en +\Notes\islurd1h\qu h\ha f\sk\tbslurd1c\zq h\zq j\ql l\en +\endextract +\end{music}\noindent +has been coded as follows: +\begin{quote} +\begin{verbatim} +\startextract +\Notes\ibsluru1g\qa g\ha l\sk\tslur1e\zq g\zq i\qu k\en +\Notes\islurd1h\qu h\ha f\sk\tbslurd1c\zq h\zq j\ql l\en +\endextract +\end{verbatim} +\end{quote} + \section{Font-based ties} Font-based ties will have the same shapes as +ordinary font-based slurs of the same length between notes of equal pitch, +but there are two important distinctions: +(1) There cannot be any pitch difference between start and end, and (2) the +positions of both the beginning and end of a tie relative to the note heads +are slightly different from those of an ordinary slur\footnote{Editor's note: In +fact, it appears that the default positioning of the ends of ties is exactly +the same as that of short slurs.}. +Upper ties are initiated by \keyindex{itieu}\enpee, which starts an upper tie of +reference number $n$ at pitch $p$. +Lower ties are initiated by \keyindex{itied}\enpee, which starts an lower tie of +reference number $n$ at pitch $p$. The starting position of the tie is the same +as \verb|\issluru| and +\verb|\isslurd| respectively. The tie is terminated by coding +\keyindex{ttie}\onen. Note that no pitch parameter is required. + +There are also \ital{short ties}, which bear the same relation to ordinary +ties as short slurs to ordinary slurs. They are intended to be used between chords. +They are initiated with +\keyindex{itenu}\enpee~or \keyindex{itenl}\enpee\footnote{Editor's note: It is +not clear why this command uses ``{\tt l}'' when all other similar ones use +``{\tt d}''.}, and terminated with \keyindex{tten}\onen. + +The following example illustrates the differences in positioning of the various +slur and tie options: + +\begin{music}\nostartrule +\startextract +\NOTes\islurd0g\qu g\tslur0g\qu g\isslurd0g\qu g\tsslur0g\qu g% +\ibsluru0g\qu g\tbsluru0g\qu g\itied0g\qu g\ttie0\qu g% +\itenl0g\qu g\tten0\qu g\en +\zendextract +\end{music} +\noindent It was coded as +\begin{quote}\begin{verbatim} +\NOTes\islurd0g\qu g\tslur0g\qu g\isslurd0g\qu g\tsslur0g\qu g% +\ibsluru0g\qu g\tbsluru0g\qu g\itied0g\qu g\ttie0\qu g% +\itenl0g\qu g\tten0\qu g\en +\end{verbatim}\end{quote} + +\noindent Here are some more general examples of font-based slurs and ties +discussed so far: + +\begin{music}\nostartrule +\startextract +\NOTes\isluru0g\hl g\tslur0h\hl h\en +\NOTes\islurd0c\issluru1g\zh{ce}\hu g\tslur0d\tsslur1h\zh{df}\hu h\en +\NOTes\ibsluru0g\islurd1g\hu g\tubslur0h\hu h\en +\NOTes\itieu0k\hl k\ttie0\tdbslur1f\hl k\en +\zendextract +\end{music} +\noindent This was coded as: +\begin{quote}\begin{verbatim} +\NOTes\isluru0g\hl g\tslur0h\hl h\en +\NOTes\islurd0c\issluru1g\zh{ce}\hu g\tslur0d\tsslur1h\zh{df}\hu h\en +\NOTes\ibsluru0g\islurd1g\hu g\tubslur0h\hu h\en +\NOTes\itieu0k\hl k\ttie0\tdbslur1f\hl k\en +\end{verbatim}\end{quote} + +\section{Dotted slurs} + +Any font-based slur may be made dotted by specifying \keyindex{dotted} +just before it is initiated: + +\begin{music}\nostartrule +\startextract +\NOtes\dotted\islurd0g\qu g\tslur0{'c}\qu c\en +\Notes\dotted\isluru0{'e}\ibl0e{-2}\qb0{edc}\tslur0b\tqb0b\en\bar +\NOtes\dotted\slur{'a}{`f}d1\qu{'a`f}\en +\NOTes\hu g\en +\zendextract +\end{music} + +\noindent This was coded as: +\begin{quote}\begin{verbatim} +\NOtes\dotted\islurd0g\qu g\tslur0{'c}\qu c\en +\Notes\dotted\isluru0{'e}\ibl0e{-2}\qb0{edc}\tslur0b\tqb0b\en\bar +\NOtes\dotted\slur{'a}{`f}d1\qu{'a`f}\en +\NOTes\hu g\en +\end{verbatim}\end{quote} + + \section{Modifying font-based slur properties} +Several macros are provided to modify the shape of slurs already initiated. +These macros must be coded right before the slur \ital{termination}. Invoking +any of the macros described in this section will force the slur to be compound. + +By default, the midpoint of a font-based slur is three \verb|\internote|s +above or below a line between its ends. This can be changed using the macro +\keyindex{midslur}~$h$ where $h$ is the revised vertical displacement. For +example, \verb|\midslur6| coded right before \verb|\tslur| causes an upper slur to +rise to a maximum height of \verb|6\internote| above the starting position. +For example, + +\begin{music}\nostartrule +\startextract +\NOtes\multnoteskip8\isluru0i\ql i\en +\notes\tslur0i\ql i\en +\zendextract +\startextract +\NOtes\multnoteskip8\isluru0i\ql i\en +\notes\midslur7\tslur0i\ql i\en +\zendextract +\startextract +\NOtes\multnoteskip8\isluru2i\ql i\en +\notes\midslur{11}\tslur2i\ql i\en +\zendextract +\end{music} +\noindent was coded as +\begin{quote}\begin{verbatim} +\NOtes\multnoteskip8\isluru0i\ql i\en +\notes\tslur0i\ql i\en +\NOtes\multnoteskip8\isluru0i\ql i\en +\notes\midslur7\tslur0i\ql i\en +\NOtes\multnoteskip8\isluru2i\ql i\en +\notes\midslur{11}\tslur2i\ql i\en +\end{verbatim}\end{quote} +For downward slurs, use negative values; for example, + +\begin{music}\nostartrule +\startextract +\NOtes\multnoteskip8\islurd0i\qu i\en +\notes\tslur0i\qu i\en +\zendextract +\startextract +\NOtes\multnoteskip8\islurd0i\qu i\en +\notes\midslur{-7}\tslur0i\qu i\en +\zendextract +\end{music} +\noindent was coded as +\begin{quote}\begin{verbatim} +\NOtes\multnoteskip8\islurd0i\qu i\en +\notes\tslur0i\qu i\en +\NOtes\multnoteskip8\islurd0i\qu i\en +\notes\midslur{-7}\tslur0i\qu i\en +\end{verbatim}\end{quote} + +The macro \keyindex{curve}$hij$ allows more precise control over the shape +of a slur or tie. The first parameter $h$ +is the vertical deviation and it works exactly like the sole parameter of +\verb|\midslur| described above. The second and +third parameters $i$ and $j$ set the initial and final gradient respectively. +They are defined as the horizontal distance required to attain maximum +vertical deviation. Thus smaller numbers for $i$ +and $j$ lead to more extreme gradients. +The default setting is \verb|\curve344|. Hence, coding \verb|\curve322| +doubles the initial and final gradient relative to the default. +As with \verb|\midslur|, \verb|\curve| must be coded {\em immediately} before +the slur termination. The example below illustrates the use of \verb|\curve|. + +\begin{music}\nostartrule +\startextract +\NOtes\multnoteskip8\itieu0g\ql g\en +\notes\ttie0\ql g\en +\zendextract +\startextract +\NOtes\multnoteskip8\itieu1g\ql g\en +\notes\curve 322\ttie1\ql g\en +\zendextract +\startextract +\NOtes\multnoteskip8\itieu2g\ql g\en +\notes\curve 111\ttie2\ql g\en +\zendextract +\end{music} +\noindent This was coded as +\begin{quote}\begin{verbatim} +\NOtes\multnoteskip8\itieu0g\ql g\en +\notes\ttie0\ql g\en +\NOtes\multnoteskip8\itieu1g\ql g\en +\notes\curve 322\ttie1\ql g\en +\NOtes\multnoteskip8\itieu2g\ql g\en +\notes\curve 111\ttie2\ql g\en +\end{verbatim}\end{quote} + +Two macros are provided to control the behaviour of slurs which extend across +line breaks. Normally, the part of the slur before the line break is +treated as a tie. This can be changed using \keyindex{breakslur}\enpee, +which sets the termination height of +the broken slur at the line break to pitch $p$, for slur number $n$. + +After the line break, the slur is normally resumed at the initial pitch +reference, i.e., the one coded in \verb|\islur|. To change this, the macro +\keyindex{Liftslur}\verb|{|$n$\verb|}{|$h$\verb|}| may be used. +Here $n$ is again the slur reference +number and $h$ is the change in height relative to the initialization height. +This macro is normally used following line breaks, in which case it is best +coded using the \verb|\atnextline| macro. For example, coding +\verb|\def\atnextline{\Liftslur06}| raises the continuation of slur zero +by \verb|6\internote| relative to its initialization height. + +The following example illustrates the use of the macros for broken slurs: +\medskip + +\begin{minipage}[t]{85mm} +Default, without adjustments: + +\begin{music} +\hsize=50mm +\generalmeter{\meterfrac24}% +\parindent 0pt\staffbotmarg0pt% +% +%\interstaff{14\internote}% +% +\nostartrule +\startpiece\bigaccid +\Notes\ibsluru1b\qu b\qu g\en\bar +\Notes\qu{'c!}\tslur1f\qu f\en +\mulooseness1\Endpiece +\end{music} +\begin{verbatim} +\Notes\ibsluru1b\qu b\qu g\en\bar +\Notes\qu{'c!}\tslur1f\qu f\en +\end{verbatim} +\end{minipage}% +\begin{minipage}[t]{75mm} +With~\verb|\Liftslur|~and~\verb|\breakslur|~:\\ +\begin{music} +\hsize=50mm +\generalmeter{\meterfrac24}% +\parindent 0pt\staffbotmarg0pt% +% +%\interstaff{14\internote}% +% +\nostartrule +\startpiece\bigaccid +\def\atnextline{\Liftslur17}% +\Notes\ibsluru1b\qu b\qu g\breakslur1g\en\bar +\Notes\qu{'c!}\tslur1f\qu f\en +\mulooseness1\Endpiece +\end{music} +\begin{verbatim} +\def\atnextline{\Liftslur17}% +\Notes\ibsluru1b\qu b\qu g% +\breakslur1g\en\bar +\Notes\qu{'c!}\tslur1f\qu f\en +\end{verbatim} +\end{minipage}\medskip + +Occasionally in keyboard works one needs to begin a slur in one +staff but end it in another. This can be done using the macro +\keyindex{invertslur}\onen\ which is best described by +reference to the example +shown below. + +% Finding the final pitch is try and error, sorry, no way out. + +\begin{music} +\setstaffs1{2} +\setclef1\bass\interstaff{10.5} +\startextract +\NOtes\multnoteskip5\isluru0a\ql a\en +\notes\invertslur0\curve311\tslur0j|\qu d\en +\NOtes\multnoteskip{10}\isluru0a\ql a\en +\notes\invertslur0\curve333\tslur0j|\qu d\en +\zendextract +\end{music} +\noindent This was coded as +\begin{quote}\begin{verbatim} +\NOtes\multnoteskip5\isluru0a\ql a\en +\notes\invertslur0\curve311\tslur0g|\qu d\en +\NOtes\multnoteskip{10}\isluru0a\ql a\en +\notes\invertslur0\curve333\tslur0g|\qu d\en +\end{verbatim}\end{quote} + +\noindent Slur inversion as just described takes effect where the slope is zero; therefore it +only works with ascending slurs that were started with \verb|\isluru|, and with +descending slurs started with \verb|\islurd|. Otherwise no horizontal place +can be found and the result is erratic. + +A different approach removes this restriction. The idea is to stop the slur at +the desired inversion point and restart it in the other sense at the +same place. The commands to do this are as follows: + \begin{itemize}\setlength{\itemsep}{0ex} + \item \keyindex{Tslurbreak}\enpee~stops slur number $n$ \ital{exactly} at pitch $p$, +not above or below the virtual note head. + \item \keyindex{Islurubreak}\enpee~restarts an upper slur at the same position, +not above a virtual note head. + \item \keyindex{Islurdbreak}\enpee~restarts a lower slur at the same position, +not below a virtual note head. + \end{itemize} + +\noindent The vertical position may have to be adjusted to minimize any discontinuity +in the slope. For example, the following pattern + + \begin{music}\nostartrule +\setclef1\treble +\startextract +\NOTes\multnoteskip 3\isluru0a\ql a\en +\NOTes\multnoteskip 3\Tslurbreak0d\Islurdbreak0d\sk\en +\Notes\tslur0h\qu h\en +\NOTes\multnoteskip 3\islurd0a\ql a\en +\NOTes\multnoteskip 3\Tslurbreak0d\Islurubreak0d\sk\en +\Notes\tslur0h\qu h\en +\zendextract +\end{music} +\noindent was coded as +\begin{quote}\begin{verbatim} +\begin{music}\nostartrule +\NOTes\multnoteskip 3\isluru0a\ql a\en +\NOTes\multnoteskip 3\Tslurbreak0d\Islurdbreak0d\sk\en +\Notes\tslur0h\qu h\en +\NOTes\multnoteskip 3\islurd0a\ql a\en +\NOTes\multnoteskip 3\Tslurbreak0d\Islurubreak0d\sk\en +\Notes\tslur0h\qu h\en +\end{music} +\end{verbatim}\end{quote} + +\section{Simple slurs} + +\ital{Simple} slurs and ties have advantages in some cases: (1) They will +always have the best possible shape, and (2) if \verb|\noteskip| doesn't +change from start to finish, they are easier to code. But they have drawbacks +as well: (1) They are limited in length to 68pt +for slurs and 220pt for +ties, (2) their maximum vertical extent is \verb|8\internote|, and (3) they +may not extend across a line break. +Despite all these limitations, simple slurs are extremely useful in many +applications where the slurs are short and contained within a bar. + +Simple slurs must be coded {\em before} the note on which the slur begins. +The primary macro is +\keyindex{slur}\verb|{|$p_1$\verb|}{|$p_2$\verb|}|$sl$ +where $p_1$ and $p_2$ are respectively the initial and final pitches, +$s$ is the sense (either ``{\tt u}'' or ``{\tt d}''), and $l$ is the length, +in {\tt noteskip}s. +Thus, thirds slured in pairs can be coded + + %\check + +\begin{quote}\begin{verbatim} +\NOtes\slur ced1\qu{ce}\en +\NOtes\slur dfd1\qu{df}\en +\NOtes\slur egd1\qu{eg}\en +\NOtes\slur{'e}cu1\ql{ec}\en +\NOtes\slur{'d}bu1\ql{db}\en +\NOtes\slur{'c}au1\ql{ca}\en +\end{verbatim}\end{quote} +which yields + +\begin{music}\nostartrule +\startextract +\NOtes\slur ced1\qu{ce}\en +\NOtes\slur dfd1\qu{df}\en +\NOtes\slur egd1\qu{eg}\en +\NOtes\slur{'e}cu1\ql{ec}\en +\NOtes\slur{'d}bu1\ql{db}\en +\NOtes\slur{'c}au1\ql{ca}\en +\zendextract +\end{music} +%% + +There are similar commands to force simple versions of the other +variants of font-based slurs and ties. Simple ties may be set using +\keyindex{tie}\verb|{|$p$\verb|}|$sl$ (only one pitch is needed). +Simple short slurs and short ties can be forced with the macros +\keyindex{sslur}\verb|{|$p_1$\verb|}{|$p_2$\verb|}|$sl$ and +\keyindex{stie}\verb|{|$p$\verb|}|$sl$ respectively. Finally, +simple beam slurs can be forced with +\keyindex{bslur}$s$\verb|{|$p_1$\verb|}{|$p_2$\verb|}|$l$. + + +\section{Font-based hairpins (crescendos and decrescendos)}\label{sec:crescnd} + +There are two categories of font-based hairpins. The first type requires only +one command, \keyindex{crescendo}\verb|{|$\ell$\verb|}| or +\keyindex{decrescendo}\verb|{|$\ell$\verb|}|, where $\ell$ is any \TeX{} +dimension, either a fixed one---for example in points---or a scalable one +expressed either explicitly or implicitly as some number of +\verb|\noteskip|s. These should be used as arguments to +\verb|\zcharnote|, \verb|\zchar|, \verb|\uptext|, \verb|\zmidstaff|, etc., to +post them at the desired altitude. The longest such symbol is $\simeq$ 68 mm. + +The second type of font-based hairpin requires two commands, one to start it +and another to end it. The starting macro is \keyindex{icresc}. It has no +arguments. Only one invocation suffices to start any number and combination of +crescendos and diminuendos. The ending macros are \keyindex{tcresc} or +\keyindex{tdecresc}. They should be used as arguments of \verb|\zcharnote| etc, +which will set the altitude. For example, + +\begin{music} +\parindent0pt +\generalmeter{\meterfrac{12}8} +\setstaffs1{2} +\startextract +\Notes\cmidstaff\ppp|\ca c\en +\Notes\icresc|\ca{defgh'abcde}\en +\Notes\zmidstaff{\loff\tcresc}\cmidstaff\fff|\ca{'f}\en +\endextract +\end{music} + +\noindent which was coded as +\begin{quote}\begin{verbatim} +\Notes\cmidstaff\ppp|\ca c\en +\Notes\icresc|\ca{defgh'abcde}\en +\Notes\zmidstaff{\loff\tcresc}\cmidstaff\fff|\ca{'f}\en +\end{verbatim}\end{quote} +\medskip + +\noindent while + +\begin{music} +\parindent0pt +\generalmeter{\meterfrac{12}8} +\setstaffs1{2} +\startextract +\Notes\cmidstaff\ppp|\ca c\en +\Notes\icresc|\ca{defgh'abcde}\en +\Notes\zcharnote N{\tcresc}\cmidstaff\fff|\zcharnote q{\tcresc}\ca{'f}\en +\endextract +\end{music} + +\noindent was coded as +\begin{quote}\begin{verbatim} +\Notes\cmidstaff\ppp|\ca c\en +\Notes\icresc|\ca{defgh'abcde}\en +\Notes\zcharnote N{\tcresc}\cmidstaff\fff|\zcharnote q{\tcresc}\ca{'f}\en +\end{verbatim}\end{quote} + + \section{Limitations of font-based slurs} + The change in altitude between slur initiation and slur termination is limited to +\verb|16\Internote|. Thus unexpected vertical gaps can appear, as seen in + + \begin{music}\nostartrule +\instrumentnumber{1} +\generalmeter{\meterfrac34} +\startextract\NOTes\multnoteskip3\isluru0c\ql c\tslur0j\ql j\en + \bar\NOTes\multnoteskip3\isluru0c\ql c\tslur0n\ql n\en\zendextract + +\startextract\NOTes\multnoteskip3\isluru0c\ql c\tslur0s\ql s\en + \bar\NOTes\multnoteskip3\isluru0c\ql c\tslur0z\ql z\en\zendextract + \end{music} + \noindent whose coding was + \begin{quote}\begin{verbatim} +\NOTes\multnoteskip3\isluru0c\ql c\tslur0j\ql j\en + \bar\NOTes\multnoteskip3\isluru0c\ql c\tslur0n\ql n\en +\NOTes\multnoteskip3\isluru0c\ql c\tslur0s\ql s\en + \bar\NOTes\multnoteskip3\isluru0c\ql c\tslur0z\ql z\en + \end{music} + \end{verbatim}\end{quote} + +Furthermore, if the slope becomes too steep, even worse results can occur, such as + +\medskip + \begin{music}\nostartrule +\instrumentnumber{1} +\generalmeter{\meterfrac34} +\startextract\NOTes\isluru0c\ql c\en\notes\tslur0j\ql j\en + \bar\NOTes\isluru0c\ql c\en\notes\tslur0n\ql n\en + \NOTes\isluru0c\ql c\en\notes\tslur0s\ql s\en + \bar\NOTes\isluru0c\ql c\en\notes\tslur0z\ql z\en + \zendextract + \end{music} + +Another limitation of font-based slurs crops up when one attempts to +generate bitmapped versions for high-resolution printers: the characters +for long ties can exceed \MF's maximum capacity. diff --git a/macros/musixtex/doc/musixdoc/smaller.tex b/macros/musixtex/doc/musixdoc/smaller.tex new file mode 100644 index 0000000000..987b6f6422 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/smaller.tex @@ -0,0 +1,190 @@ +\chapter{Smaller (or Larger) Notes in Normal-Sized Staves} +Here we describe how to change the size of note symbols without changing the +size of the staff itself. Changing overall staff size will be treated in +Chapter~\ref{staffspacing}. + +\section{Arbitrary sequences of notes} +Written-out ornaments and \itxem{cadenzas} are usually typeset with +smaller notes and spacing than normal. The smaller \ital{size} can be +initiated anywhere inside a \verb|\notes| group by stating +\keyindex{smallnotesize} or \keyindex{tinynotesize}. Normal note size is then +restored by \keyindex{normalnotesize} or simply by terminating the +\verb|notes| group and starting another. Smaller \ital{spacing} must also be +explicitly indicated, usually by redefining \verb|\noteskip| in some way. + +As an example, this excerpt, from the beginning +of the Aria of the ``Creation'' by Joseph {\sc Haydn})\index{Haydn, J.@{\sc +Haydn, J.}}, + +\begin{music} +\instrumentnumber{2} +\generalmeter{\meterfrac44} +\def\qbl#1#2#3{\ibl{#1}{#2}{#3}\qb{#1}{#2}} +\setstaffs2{2} +\setclef1\bass +\setclef2\bass +\startbarno0 +\startextract +\NOtes\qp&\zmidstaff{\bf II}\qp|\qu g\en +% mesure 1 +\bar +\Notes\itieu2J\wh J&\zw N\ibl0c0\qb0e|\qu j\en +\notes&\qbl0c0|\multnoteskip\tinyvalue\tinynotesize + \Ibbu1ki2\qb1{kj}\tqh1i\hqsk\en +\Notes&\qb0e\tbl0\qb0c|\qu j\en +\Notes&\ibl0c0\qb0{ece}\tbl0\qb0c|\ql l\sk\ql j\en +% mesure 2 +\bar +\Notes\ttie2\wh J&\ql J\sk\ql L|\zqupp g\qbl1e0% + \zq c\qb1e\zq c\qb1e\zq c\tbl1\zqb1e\en +\notes&|\sk\ccu h\en +\Notes&\ql N\sk\ibl0L{-4}\qbp0L|\ibl1e0\zq c\zqb1e\cu g% + \zq c\zqb1e\raise\Interligne\ds\zqu g\qb1g\en +\notes&\sk\tbbl0\tbl0\qb0J|\tbl1\zq c\qb1e\en +\endextract +\end{music} +\noindent can be coded as +\begin{quote}\begin{verbatim} +\instrumentnumber{2} +\generalmeter{\meterfrac44} +\setstaffs2{2} +\setclef2{\bass} +\setclef1{\bass} +\startbarno=0 +\startextract +\NOtes\qp&\zmidstaff{\bf II}\qp|\qu g\en +% mesure 1 +\bar +\Notes\itieu2J\wh J&\zw N\ibl0c0\qb0e|\qu j\en +\notes&\ibl0c0\qb0c|\multnoteskip\tinyvalue\tinynotesize + \Ibbu1ki2\qb1{kj}\tqh1i\en +\Notes&\qb0e\tbl0\qb0c|\qu j\en +\Notes&\ibl0c0\qb0{ece}\tbl0\qb0c|\ql l\sk\ql j\en +% mesure 2 +\bar\Notes\ttie2\wh J&\ql J\sk\ql L|\zqupp g\qbl1e0% + \zq c\qb1e\zq c\qb1e\zq c\tbl1\zqb1e\en +\notes&|\sk\ccu h\en +\Notes&\ql N\sk\ibl0L{-4}\qbp0L|\ibl1e0\zq c\zqb1e\cu g% + \zq c\zqb1e\raise\Interligne\ds\zqu g\qb1g\en +\notes&\sk\tbbl0\tbl0\qb0J|\tbl1\zq c\qb1e\en +\endextract +\end{verbatim}\end{quote} +Similarly, you may use +\keyindex{largenotesize} or \keyindex{Largenotesize} to get \emph{larger} notes. + + \section{Grace notes} +Grace notes are a special case of small and tiny notes, namely single-stemmed +eighth notes with a diagonal slash through the flag. To enable this, there +are the macros \keyindex{grcu}\pitchp\ and \keyindex{grcl}\pitchp, which by +themselves would +produce normal-sized eighth notes with a slash. They should be used along +with the note size reduction macros and spacing reduction macros just +discussed. In addition, chordal grace notes can be built as in the following +example: + +\begin{music}\nostartrule +\startextract +\NOTes\hu h\en +\notes\multnoteskip\smallvalue\smallnotesize\grcu j\en +\NOTes\hu i\en +\bar +\notes\multnoteskip\tinyvalue\tinynotesize\zq h\grcl j\en +\NOTEs\wh i\en +\zendextract +\end{music} +\noindent which was coded as +\begin{quote}\begin{verbatim} +\startextract +\NOTes\hu h\en +\notes\multnoteskip\smallvalue\smallnotesize\grcu j\en +\NOTes\hu i\en +\bar +\notes\multnoteskip\tinyvalue\tinynotesize\zq h\grcl j\en +\NOTEs\wh i\en +\zendextract +\end{verbatim}\end{quote} + + \section[Ossia]{Ossia\texorpdfstring{\protect\footnote{Italian \textit{o sia} (or else)}}{}} +This clever example had been provided by Olivier Vogel:\label{ossia} + +%\begin{center} +%\includegraphics[scale=1]{./mxdexamples/ossiavogel.eps} +%\end{center} + +\begin{music} +%\startextract +%\hsize70mm +\let\extractline\hbox +\hbox to \hsize{\hss +\def\xnum#1#2#3{\off{#1\elemskip}\zcharnote{#2}{\smalltype\it #3}% +\off{-#1\elemskip}}% +\newbox\ornamentbox +\setbox\ornamentbox=\hbox to 0pt{\kern-4pt\vbox{\hsize=2.6cm% +\makeatletter +\nostartrule\smallmusicsize\setsize1{\smallvalue}\setclefsymbol1\empty\global\clef@skip0pt% +\makeatother +%\smallmusicsize\setsize1{\smallvalue}\setclefsymbol1\empty% +%\startpiece +%\addspace{2pt}% +\startextract +\addspace{-2pt}% +\let\notest\notes\def\notes{\vnotes2.1\elemskip}% +\notes\ibbbl2{'c}0\qb2b\qb2c\qb2d\tbbbl2\qb2c\en% +\notes\xnum{1.15}{'e}3\qb2d\qb2c\tbl2\qb2d\en% +\notes\ibl2{'c}1\usf e\qb2c\en% +\notes\tbl2\qb2{'d}\en +\let\notes\notest% +%\zstoppiece% +\endextract +}\hss} +%\setbox\ornamentbox=\hbox to 0pt{Hello} +% +% +%\normalmusicsize\nopagenumbers +%\def\nbinstruments{1}% +\setstaffs12\setclef1{60}% +\generalsignature{-2}\generalmeter{\meterfrac{3}{4}}% +%\parindent 0pt% +%\stafftopmarg0pt\staffbotmarg5\Interligne\interstaff{10}\relax +%\startpiece\addspace\afterruleskip% +\startextract\addspace\afterruleskip% +\NOtes\ibl1{'G}{-1}\qb1G\sk\bigna F\tbl1\qb1F|% +\ibbl2{'b}0\qb2b\qb2a\qb2b\tbl2\qb2c\en% +\NOtes\hl{'E}\bsk\raise6\internote\ds\ibu3{G}1\bigsh F% +\qb3F\qb3G\tbu3\qb3{'A}|\zcharnote{10}{\copy\ornamentbox}\qlp{'c}\sk\sk% +\cl d\en% +%\endpiece +\endextract +\hss} +%\vfill\eject\endmuflex +\end{music} + + +The code is: +\begin{quote}\begin{verbatim} +\hsize70mm% +\def\xnum#1#2#3{\off{#1\elemskip}\zcharnote{#2}{\smalltype\it #3}% +\off{-#1\elemskip}}% +\newbox\ornamentbox +\setbox\ornamentbox=\hbox to 0pt{\kern-4pt\vbox{\hsize=2.6cm% +\nostartrule\smallmusicsize\setsize1{\smallvalue}\setclefsymbol1\empty% +\startpiece\addspace{2pt}% +\notes\ibbbl2{'c}0\qb2b\qb2c\qb2d\tbbbl2\qb2c\en% +\notes\xnum{1.15}{'e}3\qb2d\qb2c\tbl2\qb2d\en% +\notes\ibl2{'c}1\usf e\qb2c\en% +\notes\tbl2\qb2{'d}\en% +\zstoppiece% +}\hss} +\normalmusicsize\nopagenumbers +\def\nbinstruments{1}% +\setstaffs12\setclef1{60}% +\generalsignature{-2}\generalmeter{\meterfrac{3}{4}}% +\parindent 0pt% +\stafftopmarg0pt\staffbotmarg5\Interligne\interstaff{10}\relax +\startpiece\addspace\afterruleskip% +\notes\ibl1{'G}{-1}\qb1G\sk\bigna F\tbl1\qb1F|% +\ibbl2{'b}0\qb2b\qb2a\qb2b\tbl2\qb2c\en% +\notes\hl{'E}\bsk\raise6\internote\ds\ibu3{G}1\bigsh F% +\qb3F\qb3G\tbu3\qb3{'A}|\zcharnote{10}{\copy\ornamentbox}\qlp{'c}\sk\sk% +\cl d\en% +\end{verbatim}\end{quote} diff --git a/macros/musixtex/doc/musixdoc/spacing.tex b/macros/musixtex/doc/musixdoc/spacing.tex new file mode 100644 index 0000000000..f4bcf29817 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/spacing.tex @@ -0,0 +1,106 @@ +\chapter{Skipping Spaces and Shifting Symbols}\label{spacing} +We've already mentioned that when coding a sequence of notes inside a +particular pair \verb|\notes...\en|, the command \keyindex{sk} can +be used to skip horizontally by one \keyindex{noteskip}. This would be +used for example to align the third note in one staff with the second note +in another. Skipping in this manner is logically equivalent to inserting +blank space; as such, the space must be recorded by \musixtex. This command +and the others discussed here will +do just that, so that \verb|musixflx| can properly account for +the added space. + +To skip by one \verb|noteskip| while in a collective coding sequence, +you may simply insert an asterisk (``\verb|*|''\index{*}). This would have +the same effect as stopping the sequence, entering {\Bslash sk}, then +restarting. For example, + +\begin{music} +\setstaffs12 +\startextract +\Notes\hu{e*f*g}|\qu{gghhii}\en +\zendextract +\end{music} +\noindent was coded as +\verb|\Notes\hu{e*f*g}|{\tt |}\verb|\qu{gghhii}\en| + +To skip forward +by one half of a \verb|\noteskip|, use \keyindex{hsk}. +To skip \emph{backward} +by one or half \verb|\noteskip|, use \keyindex{bsk}, +or \keyindex{hbsk}, respectively. + +To insert spacing of approximately one note head width, you can use +\keyindex{qsk}, or for two-thirds, half or one-quarter of that, \keyindex{tqsk}, \keyindex{hqsk} +or \keyindex{qqsk}, respectively. +To skip backward one note-head width or two-thirds or half that, use +\keyindex{bqsk}, \keyindex{btsk} or \keyindex{bhsk}, respectively. More generally, +to skip an arbitrary distance, use \keyindex{off}\verb|{|$D$\verb|}| +where $D$ is any \itxem{scalable dimension}, e.g.,~\verb|\noteskip| or +\verb|\elemskip|. Indeed, if you look in the +\musixtex\ source, you will see that \verb|\off| is the basic control +sequence used to define all the other skip commands. + +The foregoing commands only work \ital{inside} a \verb|\notes...\en| group. +A different set of commands must be used to insert space \ital{outside} +such a group. \keyindex{nspace} produces an +additional spacing of half a note head width; +\keyindex{qspace}, one note head width. These are ``hard'' spacings. To +insert an arbitrary amount of hard space outside a \verb|\notes...\en| +group, use \keyindex{hardspace}\verb|{|$d$\verb|}| where +$d$ is any fixed dimension\label{hardspace}. The foregoing three commands are the only +space-generating commands that insert hard space; all the others insert +scalable spacing: \keyindex{elemskip}, +\keyindex{beforeruleskip}, \keyindex{afterruleskip}, \keyindex{noteskip} and +their multiples. Finally, to insert +scalable spacing outside +a \verb|\notes...\en| group, use +\keyindex{addspace}\verb|{|$D$\verb|}|. The argument may be negative, in +which case the normal spacing will be reduced. For example, after +\keyindex{changecontext}, many users prefer to reduce the space with +a command like +\verb|addspace{-|\keyindex{afterruleskip}\verb|}|. + +There is yet another set of commands for simply shifting a note, symbol, or sequence +inside \verb|\notes...\en| +without adding or subtracting any space. To shift by one note head width, +you may write \keyindex{roff}\verb|{|\ital{any macro}\verb|}| +or \keyindex{loff}\verb|{|\dots\verb|}| for a right or left shift respectively. + To shift by half of a note head width, use +\keyindex{hroff}\verb|{|\dots\verb|}| or +\keyindex{hloff}\verb|{|\dots\verb|}|. +For example, to get + %\check + +\begin{music}\nostartrule +\startextract +\Notes\roff{\zwh g}\qu g\qu h\qu i\en +\zendextract +\end{music} +\noindent you would code: + + %\check + +\begin{quote}\begin{verbatim} +\Notes\roff{\zwh g}\qu g\qu h\qu i\en +\end{verbatim}\end{quote} + +\noindent To shift notes or symbols by an arbitrary amount, use +\keyindex{roffset}\verb|{|$N$\verb|}{|\dots\verb|}| or +\keyindex{loffset}\verb|{|$N$\verb|}{|\dots\verb|}|, where +$N$ is the distance to be shifted in note head widths. For example + +\begin{music}\nostartrule +\startextract +\Notes\roffset{1.5}{\zwh g}\qu g\qu h\qu i\en +\zendextract +\end{music} +\noindent was coded as + +\begin{quote}\begin{verbatim} +\Notes\roffset{1.5}{\zwh g}\qu g\qu h\qu i\en +\end{verbatim}\end{quote} + +An important feature of these shift commands is that the offset, +whether implicit or explicit, is \ital{not} added to +the total spacing amount, but any spacing due to the included commands is. + diff --git a/macros/musixtex/doc/musixdoc/staffsize.tex b/macros/musixtex/doc/musixdoc/staffsize.tex new file mode 100644 index 0000000000..2827067330 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/staffsize.tex @@ -0,0 +1,101 @@ +\chapter{Staff Size} \index{staff size}\label{staffspacing} +In contrast with the prior section, here we describe how to change the sizes +of everything...staff, notes, and all other symbols. In +Section~\ref{whatspecify} we saw how to set the size for all instruments at +the start of a score. Any one of the same macros---\verb|\normalmusicsize|, +\verb|\smallmusicsize|, \verb|\largemusicsize|, or +\verb|\Largemusicsize|---can be used to change the size of all instruments +midway through a score, but in this case it must come between +\verb|\stoppiece| and \verb|\startpiece|. + +Once the overall staff size is set, you can alter the size of any desired +instrument with the macro \keyindex{setsize}\itbrace{n}\itbrace{s}, where +$n$ is the instrument number and $s$ is a factor by which the size is to be +changed from the prevailing overall size. There are five predefined macros +that should be used for the size factor $s$. Their names and respective values +are \keyindex{normalvalue}~($1.0$), \keyindex{smallvalue}~($0.80$), +\keyindex{tinyvalue}~($0.64$), \keyindex{largevalue}~($1.2$), and +\keyindex{Largevalue}~($1.44$). \musixtex\ should not crash if you use an +explicit number different from any of these, but the result may be +less than satisfactory. + +Once again, if used at the beginning of a piece, the \verb|\setsize| macro +must precede \verb|\startpiece| (not \verb|\contpiece|), and if used after +the beginning, must be preceded by \verb|\stoppiece|. + +As an example, we give two bars of the \ital{Ave Maria} by Charles {\sc +Gounod}\index{Gounod, C.@{\sc Gounod, C.}}, based on the first prelude of +J. S. Bach's \ital{Well Tempered Clavier}, as transcribed for +organ, violin and voice by Markus {\sc Veittes}:\label{avemaria} + +\begin{music} +\def\oct{\advance\transpose by 7} +\def\liftqs#1{\raise#1\Interligne\qs} +\parindent0pt +\sepbarrules +\instrumentnumber{3} +\generalmeter{\meterC} +\setinterinstrument2{3\Interligne} +\setsize3\tinyvalue +\setsize2\tinyvalue +\setclef1\bass +\setstaffs1{2} +\startpiece\addspace\afterruleskip +%Takt 9 +\notes\zhl c\liftqs6\qupp e|\ds&\oct + \itieu5h\hl h&\tx ~~~gra---*\itied4h\hu h\en +\notes|\ibbl0j3\qb0h\tqb0l\en +\notes|\ibbl1k0\qb1{ohl}\tqb1o\en +\notes\zhl c\liftqs6\qupp e|\ds&\oct + \ttie5\ibl4c0\qb4h&\ttie4\ibu5g{-3}\qb5h\en +\notes|\ibbl0j3\qb0h\tqb0l&\oct\qb4a&\tx ---*\tqh5a\en +\notes|\ibbl1k0\qb1o\qb1h&\oct\qb4b&\tx ~~ti~-*\cu b\en +\notes|\qb1l\tqb1o&\oct\tqb4c&\tx a*\cu c\en +\bar +%Takt 10 +\notes\zhl c\liftqs6\qupp d|\ds&\oct + \qlp d&\tx ~~~ple---*\ibsluru4e\qup d\en +\notes|\ibbu1g3\bigaccid\qb1{^f}\tqh1h\en +\notes|\ibbu2i0\qb2k\qb2f\en +\notes|\qb2h\tqh2k&\oct\cl e&\tubslur4f\cu e\en +\notes\zhl c\liftqs6\qupp d|\ds&\oct\ql d&\tx na,*\qu d\en +\notes|\ibbu1g3\qb1f\tqh1h\en +\notes|\ibbu2i0\qb2{kfh}\tqh2k&\qp&\qp\en +\endpiece +\end{music} + This example was coded as: +\begin{quote}\begin{verbatim} +\def\oct{\advance\transpose by 7} +\def\liftqs#1{\raise#1\Interligne\qs} +\parindent0pt +\sepbarrules +\instrumentnumber{3} +\generalmeter{\meterC} +\setinterinstrument2{3\Interligne} +\setsize3\tinyvalue +\setsize2\tinyvalue +\setclef1\bass +\setstaffs1{2} +\startpiece\addspace\afterruleskip +%Takt 9 +\notes\zhl c\liftqs6\qupp e|\ds&\oct + \itieu5h\hl h&\tx ~~~gra---*\itied4h\hu h\en +\notes|\ibbl0j3\qb0h\tqb0l\en +\notes|\ibbl1k0\qb1{ohl}\tqb1o\en +\notes\zhl c\liftqs6\qupp e|\ds&\oct + \ttie5\ibl4c0\qb4h&\ttie4\ibu5g{-3}\qb5h\en +\notes|\ibbl0j3\qb0h\tqb0l&\oct\qb4a&\tx ---*\tqh5a\en +\notes|\ibbl1k0\qb1o\qb1h&\oct\qb4b&\tx ~~ti~-*\cu b\en +\notes|\qb1l\tqb1o&\oct\tqb4c&\tx a*\cu c\en +\bar +%Takt 10 +\notes\zhl c\liftqs6\qupp d|\ds&\oct + \qlp d&\tx ~~~ple---*\ibsluru4e\qup d\en +\notes|\ibbu1g3\bigaccid\qb1{^f}\tqh1h\en +\notes|\ibbu2i0\qb2k\qb2f\en +\notes|\qb2h\tqh2k&\oct\cl e&\curve222\tubslur4f\cu e\en +\notes\zhl c\liftqs6\qupp d|\ds&\oct\ql d&\tx na,*\qu d\en +\notes|\ibbu1g3\qb1f\tqh1h\en +\notes|\ibbu2i0\qb2{kfh}\tqh2k&\qp&\qp\en +\endpiece +\end{verbatim}\end{quote} diff --git a/macros/musixtex/doc/musixdoc/summary.tex b/macros/musixtex/doc/musixdoc/summary.tex new file mode 100644 index 0000000000..d3f70a4bf9 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/summary.tex @@ -0,0 +1,310 @@ +\newgeometry{margin=0.5in} +\makeatletter +\def\@makeschapterhead#1{} % omit chapter head to save space +\chapter*{} +\addcontentsline{toc}{chapter}{Summary of Denotations} +\def\@makeschapterhead#1{% restore usual definition + \vspace*{50\p@}% + {\parindent \z@ \raggedright + \normalfont + \interlinepenalty\@M + \Huge \bfseries #1\par\nobreak + \vskip 40\p@ + }} +\makeatother +\parskip0pt plus 2pt +\parindent0pt +\thispagestyle{empty} +\centerline{\frtbf Pitches} +\smallskip +\setclef1\bass +\afterruleskip2pt +\newcommand{\bs}{\ttfamily\footnotesize\char92} +\begin{footnotesize}\ttfamily +\nostartrule\startpiece% +% +% Pitches +% +\addspace\afterruleskip +\notes\wh{`ABCDEFG}\wh{!ABCDEFG}\wh{HIJKLMNabcde}\off{-26\noteskip}% + \zchar{14}{\llap`A}\sk + \zchar{14}{\llap`B}\sk + \zchar{14}{\llap`C}\sk + \zchar{14}{\llap`D}\sk + \zchar{14}{\llap`E}\sk + \zchar{14}{\llap`F}\sk + \zchar{14}{\llap`G}\sk + \zchar{14}A\sk + \zchar{14}B\sk + \zchar{14}C\sk + \zchar{14}D\sk + \zchar{14}E\sk + \zchar{14}F\sk + \zchar{14}G\sk + \zchar{-5}{\llap'A}\zchar{14}H\sk + \zchar{-5}{\llap'B}\zchar{14}I\sk + \zchar{-5}{\llap'C}\zchar{14}J\sk + \zchar{-5}{\llap'D}\zchar{14}K\sk + \zchar{-5}{\llap'E}\zchar{14}L\sk + \zchar{-5}{\llap'F}\zchar{14}M\sk + \zchar{-5}{\llap'G}\zchar{14}N\sk + \zchar{14}a\sk + \zchar{14}b\sk + \zchar{14}c\sk + \zchar{14}d\sk + \zchar{14}e\sk\en +\stoppiece\vskip-7\Interligne\setclef1\treble\contpiece +\notes\wh{abcdefg}\wh{hijklmno}\wh{pqrstuvwxyz}\off{-26\noteskip}% + \zchar{-8}a\sk + \zchar{-8}b\sk + \zchar{-8}c\sk + \zchar{-8}d\sk + \zchar{-8}e\sk + \zchar{-8}f\sk + \zchar{-8}g\sk + \zchar{-8}h\zchar{-4}{\llap'a}\sk + \zchar{-8}i\zchar{-4}{\llap'b}\sk + \zchar{-8}j\zchar{-4}{\llap'c}\sk + \zchar{-8}k\zchar{-4}{\llap'd}\sk + \zchar{-8}l\zchar{-4}{\llap'e}\sk + \zchar{-8}m\zchar{-4}{\llap'f}\sk + \zchar{-8}n\zchar{-4}{\llap'g}\sk + \zchar{-8}o\zchar{-4}{\llap{'\kern-2pt'}a}\sk + \zchar{-8}p\zchar{-4}{\llap{'\kern-2pt'}b}\sk + \zchar{-8}q\zchar{-4}{\llap{'\kern-2pt'}c}\sk + \zchar{-8}r\zchar{-4}{\llap{'\kern-2pt'}d}\sk + \zchar{-8}s\zchar{-4}{\llap{'\kern-2pt'}e}\sk + \zchar{-8}t\zchar{-4}{\llap{'\kern-2pt'}f}\sk + \zchar{-8}u\zchar{-4}{\llap{'\kern-2pt'}g}\sk + \zchar{-8}v\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}a}\sk + \zchar{-8}w\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}b}\sk + \zchar{-8}x\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}c}\sk + \zchar{-8}y\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}d}\sk + \zchar{-8}z\zchar{-4}{\llap{'\kern-2pt'\kern-2pt'}e}\sk\en +\stoppiece +\smallskip +\centerline{\frtbf Notes and Accidentals} +% +% Notes& Accidentals +% +\contpiece +\Notes + \zchar{-4}{\eightrm Accidentals:}% + \zchar9{\bs maxima}\maxima i\relax + \zchar{12}{\bs longa}\longa i% + \zchar9{\bs breve}\breve i% + \zchar{12}{\bs wq}\wq i% + \zchar{12}{\bs wqq}\wqq i% + \zchar{12}{\bs wh}\wh i% + \zchar{12}{\bs hu}\zchar{-4}>\hu{>f}% + \zchar{12}{\bs hl}\loff{\zchar{-4}{\bs cdsh}}\cdsh l\hl l% + \zchar{12}{\bs qu}\zchar{-4}\^\qu{^f}% + \zchar{12}{\bs ql}\loff{\zchar{-4}{\bs csh}}\csh l\ql l% + \zchar{12}{\bs cu}\zchar{-4}=\cu{=f}% + \zchar{12}{\bs cl}\loff{\zchar{-4}{\bs cna}}\cna l\cl l% + \zchar{12}{\bs ccu}\zchar{-4}\_\ccu{_f}% + \zchar{12}{\bs ccl}\loff{\zchar{-4}{\bs cfl}}\cfl l\ccl l% + \zchar{12}{\bs cccu}\zchar{-4}<\cccu{<f}% + \zchar{12}{\bs cccl}\loff{\zchar{-4}{\bs cdfl}}\cdfl l\cccl l% +\multnoteskip{1.2}% + \zchar{12}{\bs ccccu}\ccccu f% + \zchar{12}{\bs ccccl}\ccccl l% +\multnoteskip{.8}% + \zchar{12}{\bs grcu}\grcu f% + \zchar{12}{\bs grcl}\grcl l\en +\stoppiece +% +% various note heads +% +\contpiece +\Notes +\multnoteskip{1.1}% + \zchar{10}{\bs dqu$^{123}$}\dqu g% + \zchar{10}{\bs yqu$^{123}$}\yqu g% +\multnoteskip{.9}% + \zchar{10}{\bs dcqu$^2$}\dcqu g% + \zchar{10}{\bs dhqu$^2$}\dhqu g% + \zchar{10}{\bs doqu$^2$}\doqu g% + \zchar{10}{\bs xqu$^2$}\xqu g% + \zchar{10}{\bs oxqu$^2$}\oxqu g% + \zchar{10}{\bs roqu$^2$}\roqu g% + \zchar{10}{\bs tgqu$^2$}\tgqu f% + \zchar{10}{\bs kqu$^2$}\kqu f% + \zchar{10}{\bs squ$^3$}\squ g% + \zchar{10}{\bs lsqu$^3$}\lsqu j% + \zchar{10}{\bs rsqu$^3$}\rsqu k% + \zchar{10}{\bs cqu$^4$}\cqu g% + \zchar{10}{\bs cql$^4$}\cql k% + \zchar{10}{\bs chu$^4$}\chu g% + \zchar{10}{\bs chl$^4$}\chl k\en +% +% Pointed Notes and Accents +% +\stoppiece +\vspace*{-2ex} +\centerline{\frtbf Pointed Notes and Accents} +\contpiece +\Notes + \zchar{-5}{\eightrm Accent on beam with prefix {\tt b} and beam reference +number instead of the pitch}% + \zchar{13}{\bs lpz}\lpz f\qu f% + \zchar{13}{\bs upz}\upz l\ql l% + \zchar{13}{\bs lsf}\lsf f\qu f% + \zchar{13}{\bs usf}\usf l\ql l% + \zchar{13}{\bs lst}\lst f\qu f% + \zchar{13}{\bs ust}\ust l\ql l% + \zchar{13}{\bs lppz}\lppz f\qu f% + \zchar{13}{\bs uppz}\uppz l\ql l% + \zchar{13}{\bs lsfz}\lsfz f\qu f% + \zchar{13}{\bs usfz}\usfz l\ql l% + \zchar{13}{\bs lpzst}\lpzst f\qu f% + \zchar{13}{\bs upzst}\upzst l\ql l% + \zchar{16}{\bs downbow}\zchar9\downbow\ql l% + \zchar{13}{\bs upbow}\zchar9\upbow\ql l% + \zchar{16}{\bs flageolett}\flageolett l\ql l% + \zchar{13}{\bs whp}\whp i% + \zchar{13}{\bs qupp}\qupp h\en +\stoppiece +\centerline{\frtbf Clefs} +% +% clefs +% +\setclefsymbol1\empty +%\setlines 11\relax +\nostartrule\contpiece +\NOtes + \zchar{13}{\bs trebleclef}\zchar0\trebleclef\sk + \zchar9{\bs altoclef}\zchar0\altoclef\sk + \zchar{13}{\bs bassclef}\zchar0\bassclef\sk + \zchar9{\bs smalltrebleclef}\zchar0\smalltrebleclef\sk + \zchar{13}{\bs smallaltoclef}\zchar0\smallaltoclef\sk + \zchar9{\bs smallbassclef}\zchar0\smallbassclef\sk + \zchar{13}{\bs drumclef$^2$}\zchar0\drumclef\sk + \zchar9{\bs gregorianCclef$^3$}\zchar0\gregorianCclef\sk + \zchar{13}{\bs gregorianFclef$^3$}\zchar0\gregorianFclef\sk + \zchar9{\bs oldGclef$^4$}\zchar0\oldGclef\sk\en +\zstoppiece +% +% Rests +% +\centerline{\frtbf Rests} +\setlines 15\relax +\nostartrule +\resetclefsymbols\contpiece +\Notes +\multnoteskip{0.8}% + \zchar{13}{\bs qqs}\qqs\qsk + \zchar{13}{\bs hs}\hs + \zchar{13}{\bs qs}\qs + \zchar{13}{\bs ds}\ds + \zchar{13}{\bs qp}\qp + \zchar{13}{\bs hp}\hp + \zchar{13}{\bs qqsp}\qqsp\qsk + \zchar{13}{\bs hsp}\hsp + \zchar{13}{\bs qsp}\qsp + \zchar{13}{\bs dsp}\dsp + \zchar{13}{\bs qpp}\qpp + \zchar{13}{\bs hpp}\hpp +\multnoteskip{1.5}% + \zchar{9}{\bs lifthpause}\roff{\lifthpause5}\sk + \zchar{13}{\bs pause}\pause + \zchar{13}{\bs pausep}\pausep + \zchar{9}{\bs liftpause}\roff{\liftpause4}\sk + \zchar{13}{\bs PAuse}\PAuse + \zchar{13}{\bs PAUSe}\PAUSe + \zchar{13}{\bs Hpause$^4$}\Hpause i{.8}\sk\en +\stoppiece\vskip-2\Interligne +% +\smallskip +\centerline{\frtbf Miscellaneous Symbols} +% +% more Symbols +% +\nostartrule +\contpiece +\Notes\multnoteskip{0.25}\zchar{-4}{\bs allabreve}% + \zchar{14}{\bs tr}\tr n% + \zchar0\allabreve\qqsk + \zchar{14}{\bs Trille}\Trille n{0.9}\sk + \zchar{14}{\bs trille}\zchar{-4}{\bs meterC}\trille n{0.9}\zchar0\meterC\sk + \zchar{14}{\bs shake}\zchar{-4}{\bs reverseC}\shake n\zchar0\reverseC\sk + \zchar{14}{\bs Shake}\zchar{-8}{\bs reverseallabreve}\Shake n% + \zchar0\reverseallabreve\hqsk + \zchar{18}{\bs mordent}\mordent n\hqsk + \zchar{14}{\bs Mordent}\Mordent n\zchar{-4}{\bs meterplus}% + \zchar0{\meterfrac{3\meterplus2\meterplus3}8}\hqsk + \zchar{18}{\bs turn}\turn n\hqsk + \zchar{18}{\bs backturn}\backturn n\zchar{-4}{\bs duevolte}\duevolte\hqsk + \zchar{14}{\bs Shakel}\Shakel n\sk + \zchar{18}{\bs Shakesw}\Shakesw n\zchar{-4}{\bs l[r]par}% + \lpar f\rpar f{\stemlength4\qu f}% + \zchar{14}{\bs Shakene}\Shakene n\sk + \zchar{18}{\bs Shakenw}\Shakenw n\sk + \zchar{14}{\bs trt}\trt n\hqsk\en +\stoppiece +% +% again +% +\contpiece +\NOtes\zchar9{\bs metron}\zchar{13}{\small\metron\qu{99}}\sk\en +\setvoltabox1\bar +\NOtes\loffset2{\zchar{17}{\bs setvoltabox}}\en +\setvolta2\setendvolta\rightrepeat +\NOtes\loff{\zchar{17}{\bs setvolta}}\en +\doublebar +\notes\zchar{17}{\kern-\afterruleskip\bs coda}\coda n\en\bar +\notes\zchar{17}{\kern-\afterruleskip\bs Coda}\Coda n\en +\NOtes + \zchar{17}{\bs segno}\segno n\sk + \zchar{17}{\kern-2\afterruleskip\bs Segno}\Segno\hsk + \zchar{-4}{\bs caesura}\sk\caesura + \zchar{-4}{\bs cbreath}\cbreath\qsk + \zchar{9}{\bs PED}\PED\hsk + \zchar{9}{\bs sPED}\sPED\hsk\qqsk + \zchar{9}{\bs pdld}\pdld\hsk\qsk + \zchar{9}{\bs pdlud}\pdlud\hsk\qsk + \zchar{9}{\bs pdlu}\pdlu\hsk\qqsk + \zchar{9}{\bs DEP}\DEP\hsk + \zchar{9}{\bs sDEP}\sDEP\hsk\en +\stoppiece +% +% and again ... +% +\contpiece +\Notes + \zchar{-14}{\eightrm $^1$musixdia.tex\quad$^2$musixper.tex\quad$^3$musixgre.tex% + \quad$^4$musixlit.tex}% + \zchar{17}{\bs fermataup}\fermataup l% + \zchar{-8}{\bs fermatadown}\fermatadown f{\stemlength3\ql i}% + \zchar{13}{\bs Fermataup}\Fermataup l% + \zchar{-4}{\kern8pt\bs Fermatadown}\Fermatadown f\wh i% + \loff{\zchar{17}{\bs arpeggio d5}}\arpeggio d5\sk +\multnoteskip{.66}% + \loff{\zchar{13}{\bs bracket}}\bracket e{10}\zq n\ql e\en +\notes\stemlength3% + \zchar{17}{\bs uptrio}\uptrio{11}16\ql l\ql n\bsk\bsk + \zchar{-8}{\bs downtrio}\downtrio{-5}17\qu c\qu e\en +\Notes + \zchar{17}{\bs octfinup}\octfinup n{.8}% + \zchar{-4}{\bs octfindown}\octfindown K{.8}\sk\hsk + \zchar{17}{\bs slide}% + \slide i58\slide i57\slide i56\slide i55\slide i54% + \slide i53\slide i52\slide i51\slide i5{-1}% + \slide i5{-2}\slide i5{-3}\slide i5{-4}\slide i5{-5}% + \slide i5{-6}\slide i5{-7}\slide i5{-8}\sk\en +\leftrepeat +\Notes + \loffset2{\zchar{-4}{\bs leftrepeat}}% + \boxitsep=2pt\zchar{17}{\bs boxit A}\zchar9{\boxit A}\en +\leftrightrepeat +\Notes + \loffset2{\zchar{-8}{\bs leftrightrepeat}}% + \zchar{17}{\bs circleit B}\uptext{\circleit B}\en +\rightrepeat +\NOtes + \loffset2{\zchar{-4}{\bs rightrepeat}}\en +\endpiece\advance\textheight-40mm\eject% +\endmuflex +\end{footnotesize} +\restoregeometry + diff --git a/macros/musixtex/doc/musixdoc/transposition.tex b/macros/musixtex/doc/musixdoc/transposition.tex new file mode 100644 index 0000000000..4fc9e9d609 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/transposition.tex @@ -0,0 +1,217 @@ + \chapter{Transposition and Octaviation}\label{octaviation} +Two different subjects are discussed in this section. First, there +are commands that cause notes to be printed at different pitches than +entered. We shall refer to this as \ital{logical} transposition. +Second, there are notations for octaviation that do +not otherwise alter the appearance of the score, which we'll call +\ital{octaviation lines}. + +\section{Logical transposition and octaviation} + +Logical transposition is controlled by an integer-valued \TeX\ register +\keyindex{transpose}. Its default value is $0$. If you enter +\verb|\transpose=|$n$ outside of notes commands, then all subsequent pitches specified by +letters will be transposed by $n$ positions. Normally this method would be +used to transpose an entire piece. Pitches specified with +numbers will not be affected, so if you think you will ever want to +transpose a piece, you should enter all note pitches with letters. + +One way to transpose up or down by one octave would be to increase or decrease +\keyindex{transpose} by $7$. +A more convenient way to transpose locally up or down by one octave +makes use respectively of the characters +\verb|'| (close-quote, interpreted as an \itxem{acute accent}) and \verb|`| (open-quote, interpreted as +a \itxem{grave accent}), +placed immediately before the letter specifying the pitch. So +for example \verb|\qu{'ab}| is equivalent to \verb|\qu{hi}| and +\verb|\qu{`kl}| is equivalent to \verb|\qu{de}|. These characters have +cumulative effects; thus, +for example, \verb|\qu{''A'A}| and \verb|\qu{''A}\qu{'A}| are both equivalent to \verb|\qu{ah}|. +Alterations to the value of +\verb|\transpose| in notes commands are \emph{local}: when changing to a different staff or +instrument or encountering \verb|\en|, \verb|\transpose| will be reset to the +value it had before the accents were used. (That value is stored in +another register called \keyindex{normaltranspose}). Another way to localize +changes to \verb|\transpose| is to create an explicit \TeX\ ''group'' by enclosing commands in \verb|{...}| braces. + +At any point it is possible to reset the \verb|\transpose| register +explicitly to the \verb|\normaltranspose| value +by prefacing a pitch indication with +``\verb|!|''. Thus \verb|\qu{!a'a}| always +gives the note \verb|a| and its upper octave \verb|h|, shifted by the +value of {\Bslash normaltranspose}, +regardless of the number of grave and +acute accents earlier in that group. + + \section{Behavior of accidentals under logical transposition}\label{transposeaccids} + The above processes indeed change the vertical position of the note heads +and associated symbols (e.g., stems and beams), but they don't take +care of the necessary changes of accidentals when transposing. For example, +suppose an F$\sharp$ occurs in the key of C major. If the piece is +transposed up three steps to the key of F, the F$\sharp$ should logically +become a +B$\natural$. But if all you do is set \verb|\transpose=3|, the note will +be typeset as a B$\sharp$. In other words, \musixtex\ will interpret the~\verb|\sh| +or~\verb|^| to mean ``print a $\sharp$''. + +Naturally there is a solution, but it requires the typesetter to plan +ahead: To force accidentals to behave well under transposition, they +must be entered according to the \ital{relative +accidental convention}. To alert \musixtex\ that you are using this +convention to enter notes, you must issue the command +\keyindex{relativeaccid}. Once you have done this, the meaning of +accidental macros and characters (accents) in the input file is changed. +Under the convention, when for example a +\verb|\sh| is entered, it indicates a note that is supposed to sound +\ital{one half step higher than what it would normally be under the +current key signature}. Flats and naturals on entry similarly indicate +notes one half step lower or at the same pitch as what the key signature +dictates. \musixtex\ will take account of the key signature, and print +the correct symbol according to the modern notational convention, +provided you have explicitly entered the transposed key signature using +for example \verb|\generalsignature|. + +Many people have a difficult time understanding how this works, so +here are two simple examples in great detail. Consider the case already mentioned +of the F$\sharp$ in the key of C major. With +\verb|\relativeaccid| in effect, it should still be entered as \verb|\sh f|, and +with no transposition it will still appear as F$\sharp$. With +\verb|\transpose=3| and \verb|\generalsignature{-1}| it will appear +(correctly) as B$\natural$. Conversely, suppose you want to enter a +B$\natural$ when originally in the key of F. With \verb|\relativeaccid| in effect, it +should be entered as \verb|\sh i|. (That's the part that people +have the most trouble with: ``If I want a natural, why do I have to enter a sharp?'' Answer: +``Go back and re-read the previous paragraph very carefully.'') With no transposition, it will be +printed as B$\natural$. Now to transpose this to C major, set +\verb|\transpose=-3| and \verb|\generalsignature0|, and it will appear +as F$\sharp$. + +If you have invoked \verb|\relativeaccid| and then +later for some reason wish to revert to the ordinary convention, +enter \keyindex{absoluteaccid}. + +\section{Octaviation lines} +The first kind of notation for octave transposition covers a +horizontal range that must be specified at the outset. The sequence + +\medskip +\begin{music}\nostartrule +\startextract +\NOTEs\octfinup{10}{3.5}\ql{!'a}\ql b\ql c\ql d\en +\zendextract +\end{music} +\noindent can be coded as +\verb|\NOTEs\octfinup{10}{3.5}\qu a\qu b\qu c\qu d\en|. +\zkeyindex{octfinup} +Here, the dashed line is at staff level 10 and extends \verb|3.5\noteskip|. +Conversely, lower octaviation can be coded. For example + +\begin{music}\nostartrule +\startextract +\NOTEs\octfindown{-5}{2.6}\ql j\ql i\ql h\en +\zendextract +\end{music} +\noindent is coded as +\verb|\NOTEs\octfindown{-5}{2.6}\ql j\ql i\ql h\en|. +\zkeyindex{octfindown} + To change the text that is part of these notations, redefine one of +the macros \keyindex{octnumberup} or \keyindex{octnumberdown}. The reason for +the distinction between up and down is that, traditionally, upper octaviation +only uses the figure +``8'' to denote its beginning, while lower octaviation uses a more +elaborate indication such as \hbox{\ppffsixteen8$^{va}$\kern 0.2em\eightit bassa}. Thus + +\bigskip +\begin{music}\nostartrule +\startextract +\NOTEs\def\octnumberup{\ppffsixteen8$^{va}$}\octfinup{10}{2.5}\qu c\qu d\qu e\en +\zendextract +\end{music} +\noindent is coded + +\noindent\verb|\NOTEs\def\octnumberup{\ppffsixteen8$^{va}$}\octfinup{10}{2.5}\qu c\qu d\qu e\en| + +\noindent while + +\begin{music} +\startextract +\NOTEs\def\octnumberdown{\ppffsixteen8$_{ba}$}\octfindown{-5}{2.5}\ql l\ql +k\ql j\en +\endextract +\end{music} +\noindent is coded as +\begin{quote}\begin{verbatim} +\NOTEs\def\octnumberdown{\ppffsixteen8$_{ba}$}% + \octfindown{-5}{2.5}\ql l\ql k\ql j\en +\end{verbatim}\end{quote} + +The foregoing constructions have the drawbacks that (a) the span must be +indicated ahead of time and (b) they cannot extend across a line break. +Both restrictions are removed with the use of the alternate macros \keyindex{Ioctfinup}, +\keyindex{Ioctfindown} and +\keyindex{Toctfin}. + +{\Bslash Ioctfinup}~$np$ indicates an upward octave transposition line with reference number +$n$ and with dashed line at pitch $p$. +By default $n$ must be in the range $[0,5]$, but +you can specify a larger maximum number +directly with \keyindex{setmaxoctlines}\verb|{|$m$\verb|}| +where $7<m\leq 100$\footnote{This may require e-\TeX.}; the +reference number will be in the range between $0$ and $m-1$. +\label{musixmad_setmaxoctlines} + +Usually $p$ will be numeric and $>9$, +but it can also be a letter. +{\Bslash Ioctfindown}~$np$ starts a lower octave transposition line at pitch $p$ +(usually $p<-1$). Both extend until terminated with {\Bslash Toctfin}. The +difference between {\Bslash Ioctfinup}~$n$ and {\Bslash Ioctfindown}~$n$ is +the relative position of the figure ``8'' with respect to the dashed line, and +the sense of the terminating hook As shorthand, \keyindex{ioctfinup} is equivalent to +\verb|\Ioctfinup 0| and \keyindex{ioctfindown} is equivalent to +\verb|\Ioctfindown 0|. + +For example, + +\medskip + \begin{music}\nostartrule +\instrumentnumber{1} +\setstaffs12 +\setclef1{6000} +% +\startextract +\notes\wh{CDEFGH}|\wh{cde}\Ioctfinup 1p\wh{fgh}\en +\bar +\notes\Ioctfindown 2A\wh{IJKLMN}|\wh{ijklmn}\en +\bar +\Notes\wh{NMLKJI}|\wh{nmlkji}\Toctfin1\en +\bar +\Notes\wh{HGFED}\Toctfin2\wh C|\wh{hgfedc}\en +\zendextract +\end{music} +\noindent is coded as +\begin{quote}\begin{verbatim} +\begin{music}\nostartrule +\instrumentnumber{1} +\setstaffs12 +\setclef1{6000} +% +\startextract +\notes\wh{CDEFGH}|\wh{cde}\Ioctfinup 1p\wh{fgh}\en +\bar +\notes\Ioctfindown 2A\wh{IJKLMN}|\wh{ijklmn}\en +\bar +\Notes\wh{NMLKJI}|\wh{nmlkji}\Toctfin1\en +\bar +\Notes\wh{HGFED}\Toctfin2\wh C|\wh{hgfedc}\en +\zendextract +\end{music} +\end{verbatim}\end{quote} + %\check + + The elevation of octaviation lines may be changed in midstream using +\keyindex{Liftoctline}~$n$$p$, where $n$ is the reference number of the + octave line, and $p$ a (possibly negative) number of +\keyindex{internote}s (staff pitch positions) by which elevation of the dashed line should be changed. +This may be useful when octaviation lines extend over several systems and the +elevation needs to be changed in systems after the one where it was initiated. + diff --git a/macros/musixtex/doc/musixdoc/writingnotes.tex b/macros/musixtex/doc/musixdoc/writingnotes.tex new file mode 100644 index 0000000000..7bd5c83375 --- /dev/null +++ b/macros/musixtex/doc/musixdoc/writingnotes.tex @@ -0,0 +1,285 @@ + \chapter{Writing Notes}\label{autostemdirections} +There are two major kinds of note macros, those that include a space (of +length \keyindex{noteskip}) after +the printed symbol, and those that don't cause any space. A single-line melody would be +written using the first type. All notes of a chord except the last would +use the second. + +Another distinction concerns stemmed notes. Some macros explicitly set the +stem direction with either ``\verb|u|'' or ``\verb|l|'' contained in the name of +the macro. On the other hand, an ``\verb|a|'' in the macro's name usually signifies +\ital{automatic} stem direction selection. In this case notes below the middle +staff line will get up stems, otherwise down. + +Note pitches can be specified either by letters or numbers. If no transposition +or octaviation is in effect, letters ranging +from \verb|a| to \verb|z| represent notes starting with the A below +middle C. Upper case letters from \verb|A| to \verb|N| represent pitches +two octaves lower than their lower case counterparts. Any letter can be used in +any clef, but some users may +prefer to use the lower case letters in treble clef, and the upper case ones +in bass clef. + +Alternatively, a one- or two-digit, positive or negative integer can always be used. +The number represents +the vertical position on the staff, with \verb|0| for the lowest line and +\verb|1| for the space right above, \ital{regardless of the clef}. +Unlike with letters, the +associated pitch will depend on the clef, and notes entered this way are +immune to transposition and octaviation. + +Notes lower than \verb|A| and higher than \verb|z| can be entered, with +either numbers as just described, or with octaviation as will be explained in +Chapter~\ref{octaviation}. + + \section{Normal (unbeamed) spacing notes}\label{NormalNotes} +In the following, \verb|{|$p$\verb|}| signifies a pitch specification as +described above. However it +is understood that if the pitch is a single character, the brackets are +not necessary, provided that if it is a letter, a space separates the +macro from the letter. + + +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{breve}{\tt\char123}$p${\tt\char125} :]breve (\hbox to 8pt{\zbreve1\hss}) . + \item[\keyindex{longa}{\tt\char123}$p${\tt\char125} :]longa (\hbox to8pt{\zlonga1\hss}) . + \item[\keyindex{longaa}{\tt\char123}$p${\tt\char125} :]longa with automatic stem direction\footnote{Editor's note: Evidently there is no explicit up-stemmed longa} . + \item[\keyindex{zmaxima}{\tt\char123}$p${\tt\char125} :]maxima(\hbox to16pt{\zmaxima1\hss}) . + \item[\keyindex{wq}{\tt\char123}$p${\tt\char125} :]arbitrary duration note (\hbox to8pt{\zwq1\hss}) +(also used as alternate representation of a \ital{breve}). + \item[\keyindex{wqq}{\tt\char123}$p${\tt\char125} :]long arbitrary duration note +(\hbox to8pt{\zwqq1\hss}) (also used as alternate +representation of a \ital{longa}). + \item[\keyindex{wh}{\tt\char123}$p${\tt\char125} :]whole note. + \item[\keyindex{hu}{\tt\char123}$p${\tt\char125} :]half note with stem up. + \item[\keyindex{hl}{\tt\char123}$p${\tt\char125} :]half note with stem down. + \item[\keyindex{ha}{\tt\char123}$p${\tt\char125} :]half note with automatic stem direction + \item[\keyindex{qu}{\tt\char123}$p${\tt\char125} :]quarter note with stem up. + \item[\keyindex{ql}{\tt\char123}$p${\tt\char125} :]quarter note with stem down. + \item[\keyindex{qa}{\tt\char123}$p${\tt\char125} :]quarter note with automatic stem direction. + \item[\keyindex{cu}{\tt\char123}$p${\tt\char125} :]eighth note\footnote{The ``{\tt c}'' +within this macro name stands for the equivalent British term ``crotchet''} with stem up. + \item[\keyindex{cl}{\tt\char123}$p${\tt\char125} :]eighth note with stem down. + \item[\keyindex{ca}{\tt\char123}$p${\tt\char125} :]eighth note with automatic stem direction. + \item[\keyindex{ccu}{\tt\char123}$p${\tt\char125} :]sixteenth note with stem up. + \item[\keyindex{ccl}{\tt\char123}$p${\tt\char125} :]sixteenth note with stem down. + \item[\keyindex{cca}{\tt\char123}$p${\tt\char125} :]sixteenth note with automatic stem direction. + \item[\keyindex{cccu}{\tt\char123}$p${\tt\char125} :]$32$nd note with stem up. + \item[\keyindex{cccl}{\tt\char123}$p${\tt\char125} :]$32$nd note with stem down. + \item[\keyindex{ccca}{\tt\char123}$p${\tt\char125} :]$32$nd note with automatic stem direction. + \item[\keyindex{ccccu}{\tt\char123}$p${\tt\char125} :]$64$th note with stem up. + \item[\keyindex{ccccl}{\tt\char123}$p${\tt\char125} :]$64$th note with stem down. + \item[\keyindex{cccca}{\tt\char123}$p${\tt\char125} :]$64$th note with automatic stem direction. + \item[\keyindex{cccccu}{\tt\char123}$p${\tt\char125} :]$128$th note with stem up. + \item[\keyindex{cccccl}{\tt\char123}$p${\tt\char125} :]$128$th note with stem down. + \item[\keyindex{ccccca}{\tt\char123}$p${\tt\char125} :]$128$th note with automatic stem direction. +\end{description}\end{quote} + As an example, the sequence + + %\check +\begin{music}\nostartrule +\startextract +\Notes\cu c\cl j\en\bar +\Notes\ccu c\ccl j\en\bar +\Notes\cccu c\cccl j\en\bar +\Notes\ccccu c\ccccl j\en\bar +\Notes\cccccu c\cccccl j\en +\zendextract +\end{music} + \noindent was coded as +\begin{quote}\begin{verbatim} +\Notes\cu c\cl j\en\bar +\Notes\ccu c\ccl j\en\bar +\Notes\cccu c\cccl j\en\bar +\Notes\ccccu c\ccccl j\en\bar +\Notes\cccccu c\cccccl j\en +\end{verbatim}\end{quote} + + + +For \keyindex{breve} there is a possibility of +confusion with a command in \TeX's math mode that has exactly the same name. +However, there will generally be no problem, because inside +\verb|\startpiece...\endpiece|, +\verb|\breve| will take the musical meaning, while outside, it will have the +mathematical one. +If for some reason you need the math \verb|\breve| inside, you can use +\verb|\endcatcodesmusic...\breve...\catcodesmusic|. + + \section{Non-spacing note heads} +These macros are used to create chords. Any number of them can be entered +in sequence, followed by a spacing note. All of the note heads will be +joined to the spacing note and the stem length will automatically be adjusted +as needed. + +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{zq}{\tt\char123}$p${\tt\char125} :]quarter (or shorter) note head. + \item[\keyindex{zh}{\tt\char123}$p${\tt\char125} :]half note head. +\end{description}\end{quote} +%das ??? +% \begin{remark} Notes of duration longer than whole notes are +%always non-spacing. This saves one useless definition, since these notes are +%always longer than other simultaneous ones. If needed they can be followed by +%\keyindex{sk} to force spacing. +%\end{remark} + + \section{Shifted non-spacing note heads} +These symbols are used mainly +in chords containing an interval of a \ital{second}. They provide note +heads shifted either to the left or right of the default position by +the width of one note head. + +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} +\item[\keyindex{rw}{\tt\char123}$p${\tt\char125} :]whole note head shifted right. +\item[\keyindex{lw}{\tt\char123}$p${\tt\char125} :]whole note head shifted left. +\item[\keyindex{rh}{\tt\char123}$p${\tt\char125} :]half note head shifted right\footnote{Some may not +have realized that half and whole note heads have different shapes}. +\item[\keyindex{lh}{\tt\char123}$p${\tt\char125} :]half note head shifted left. +\item[\keyindex{rq}{\tt\char123}$p${\tt\char125} :]quarter note head shifted right. +\item[\keyindex{lq}{\tt\char123}$p${\tt\char125} :]quarter note head shifted left. +\end{description}\end{quote} + + \section{Non-spacing notes} +These macros provide normal notes, with stems if applicable, but without any +following space. +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} + \item[\keyindex{zhu}\pitchp~:]half note with stem up but no spacing. It acts like +\verb|\hu| for chord building, i.e., it will join together any immediately +preceding non-spacing note heads. + \item[\keyindex{zhl}\pitchp~:]half note with stem down but no spacing. It acts like +\keyindex{hl} for chord building. + \item[\keyindex{zqu}\pitchp~:]quarter note with stem up but no spacing. It acts like +\verb|\qu| for chord building. + \item[\keyindex{zql}\pitchp~:]quarter note with stem down but no spacing. It acts +like \verb|\ql| for chord building. + \item[\keyindex{zcu}\pitchp, \keyindex{zccu}, \keyindex{zcccu}, + \keyindex{zccccu}, \keyindex{zcccccu} +:]eighth, ..., note with stem up but no spacing. They act like +\verb|\cu| for chord building. + \item[\keyindex{zcl}\pitchp, \keyindex{zccl}, \keyindex{zcccl}, + \keyindex{zccccl}, \keyindex{zcccccl} +:]eighth, ..., note with stem down but no spacing. They act +like \verb|\cl| for chord building. + \item[\keyindex{rhu}\pitchp, \keyindex{rhl}, \keyindex{rqu}, \keyindex{rql}, + \keyindex{rcu}, \keyindex{rcl} :] \verb|\rhu| acts like \verb|\zhu|, + but the note is shifted one note width to the right; others analogous. + \item[\keyindex{lhu}\pitchp, \keyindex{lhl}, \keyindex{lqu}, \keyindex{lql}, + \keyindex{lcu}, \keyindex{lcl} :]same + as above, but the note is shifted one note width to the left. + \item[\keyindex{zw}\pitchp~:]whole note with no following space. + \item[\keyindex{zwq}\pitchp~:]arbitrary duration note + (\hbox to8pt{\zwq1\hss}) with no following space. + \item[\keyindex{zbreve}\pitchp~:]breve + (\hbox to8pt{\zbreve1\hss}) with no following space. + \item[\keyindex{zlonga}\pitchp~:]longa + (\hbox to8pt{\zlonga1\hss}) with no following space. + \item[\keyindex{zmaxima}\pitchp~:]maxima + (\hbox to16pt{\zmaxima1\hss}) with no following space. +\end{description}\end{quote} + %\check + +\section{Spacing note heads} + +Although not needed in normal music scores, these may be useful in +very special cases. + +\begin{quote}\begin{description}\setlength{\itemsep}{0ex} +\item[\keyindex{nh}{\tt\char123}$p${\tt\char125} :]spacing half note head. +\item[\keyindex{nq}{\tt\char123}$p${\tt\char125} :]spacing quarter note head. +\end{description}\end{quote} + +\noindent As an example, the sequence + +\begin{music}\nostartrule + \startextract +\notes\nq c\nq j\en\barre +\Notes\nh c\nh j\en\barre +\notes\nq {cdef}\en +\zendextract +\end{music} + +\noindent was coded as + +\begin{quote}\begin{verbatim} +\notes\nq c\nq j\en\barre +\Notes\nh c\nh j\en\barre +\notes\nq {cdef}\en +\end{verbatim}\end{quote} + +Non spacing variants are also provided, namely +\keyindex{znh} and \keyindex{znq}. +% DAS: why??? + + \section{Dotted notes}\label{dots} + +By appending one or two \verb|p|'s (for ``pointed'') to the name, many of the +macros just introduced provide one or two dots after the notehead: +\keyindex{whp}\pitchp, \keyindex{whpp}, +\keyindex{zwp}, \keyindex{zwpp}, +\keyindex{hup}, \keyindex{hupp}, +\keyindex{hlp}, \keyindex{hlpp}, +\keyindex{hap}, \keyindex{happ}, +\keyindex{zhp}, \keyindex{zhpp}, +\keyindex{qup}, \keyindex{qupp}, +\keyindex{qlp}, \keyindex{qlpp}, +\keyindex{qap}, \keyindex{qapp}, +\keyindex{zqp}, \keyindex{zqpp}, +\keyindex{cup}, \keyindex{cupp}, +\keyindex{clp}, \keyindex{clpp}, +\keyindex{qbp} and \keyindex{qbpp}. +Naturally, the ones that start with ``\verb|z|'' are used in chords. +The dot(s) will be raised if the note is on a line. + +A more explicit way uses one of the macros \keyindex{pt}{\tt\char123}$p${\tt\char125}, +\keyindex{ppt}, or \keyindex{pppt} right +before any note macro to place one to three dots after the normal note +head at pitch $p$. Again they will be raised if on a line. In fact this is the only +way to get a triple-dotted note. +For example a +quarter note with one dot could be coded \verb|\pt h\qu h|, with two dots +as \keyindex{ppt}\verb| h\qu h| and with three as +\keyindex{pppt}\verb| h\qu h|. + +Yet another method for posting a dot is to insert a \ital{period} before +the letter representing the pitch. Thus \verb|\qu{.a}| is equivalent to +either \verb|\pt a\qu a| or \verb|\qup a| . This may be useful when +using \ital{collective coding}, which will be discussed in the next +section. + +Non-spacing dotted notes can be produced using +\keyindex{zhup}, \keyindex{zhlp}, \keyindex{zqup}, \keyindex{zqlp}, +\keyindex{zcup}, \keyindex{zclp}, \keyindex{zqbp}, +and similarly with two \verb|p|'s for +double-dotted notes. + +As a matter of style, if two voices share one staff, the dots in +the lower voice should be lowered if the note is on a line. For +this you can use \keyindex{lpt}{\tt\char123}$p${\tt\char125} and +\keyindex{lppt}{\tt\char123}$p${\tt\char125}. + +\section{Sequences of equally spaced notes; collective coding} +\label{CollectiveCoding} + +It isn't necessary to write a separate macro +sequence \verb|\notes...\en| for every individual column of notes. +Rather, a single such macro can contain all the notes in all staves +over an extended horizontal range, as long as all spacings are equal or +multiples of a unique value of \keyindex{noteskip}. +The notes in each staff could be entered one after another as normal +spacing notes as already described in Section~\ref{NormalNotes}. Then +each spacing note will cause the insertion point to advance horizontally by the +operative value of \verb|\noteskip| defined by the choice of +\verb|\notes|, \verb|\Notes|, \verb|\NOtes|, etc. Of course in such sequences +non-spacing chord notes can be entered right before their associated +spacing note. If you need to skip forward by one \verb|\noteskip|, for +example after a quarter note when there are two eighth notes in +another staff, you can use \keyindex{sk}. + +If there are only spacing notes in such a sequence, a further +simplification is available, called \ital{collective coding}. For instance +\verb|\qu{cdefghij}| writes the C major scale in quarters with +up stems. Similarly \verb|\cl{abcdef^gh}| writes the +\ital{A-minor} scale in non-beamed eighths. (Here ``\verb|^|'' represents +a sharp). If necessary a void can be inserted in a collective coding sequence +by using~\verb|*|\index{*}. Not all note-generating macros can be +used to perform collective coding, but most of them can. |