\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 $79$, 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.