diff options
Diffstat (limited to 'macros/generic/musixtex/doc/musixdoc/slurstiesTypeK.tex')
-rw-r--r-- | macros/generic/musixtex/doc/musixdoc/slurstiesTypeK.tex | 382 |
1 files changed, 382 insertions, 0 deletions
diff --git a/macros/generic/musixtex/doc/musixdoc/slurstiesTypeK.tex b/macros/generic/musixtex/doc/musixdoc/slurstiesTypeK.tex new file mode 100644 index 0000000000..c387eb2b68 --- /dev/null +++ b/macros/generic/musixtex/doc/musixdoc/slurstiesTypeK.tex @@ -0,0 +1,382 @@ + \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}; +for shifts farther to the right, use +\keyindex{iRsluru}, +\keyindex{iRslurd} +or \keyindex{tRslur}. + + +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}. + |