summaryrefslogtreecommitdiff
path: root/macros/musixtex/doc/musixdoc/extracting.tex
blob: 2039733fd05e14c96ce74c5c31fce06ae86bad87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
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}