summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/man/man1/fixmsxpart.1
blob: 2a546fcea3d28bc3a4015c035b826e4c5576ecae (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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
.\" This manpage is licensed under the GNU Public License
.TH FIXMSXPART 1 2015-02-05  "" ""

.SH NAME
fixmsxpart \- corrects note spacing in a single-staff MusiXTeX part

.SH SYNOPSIS
.B fixmsxpart 
.RB  [ \-v\ |\ \-\-version\ |\ \-h\ |\ \-\-help ]

.B fixmsxpart
.RB [ \-d\  | \ \-\-debug ]
.IR infile [ \fB.tex\fB ]
.RI [ outfile [ \fB.tex\fP ]]


Converts a single-staff MusiXTeX part (possibly derived from a multi-instrument score and as a result having irregular note spacing) to a single-staff part with proper spacing determined by the notes themselves.

If 
.IR outfile 
is not specifed, standard output is used.

.SH USAGE

.SS Generating a Single-Instrument Part

To generate a single-instrument part from (a copy of) the MusiXTeX source for
a  multi-instrument score, add
.nf

    \\input musixtnt

.fi
to the preamble,
set 
.nf

    \\instrumentnumber1

.fi
and use the \\TransformNotes macro defined in musixtnt.tex to discard all but one part.
For example, the following line placed 
after
\\startpiece (but before any note commands) would be appropriate for
a
.IR four -instrument 
score (arguments #2, #3, #4, and #5, separated by three &s),  
and will result in a part for the 
.IR second 
of these (#3):

.nf
    \\TransformNotes{#2&#3&#4&#5}{#3}
.fi

Argument #1 is a scaling
parameter and should not be modified.
.B
It is essential that every \\znotes, \\notes, \\Notes, \\NOtes, etc. command in the score match the macro  pattern exactly; 
insufficient (or too many) note segments 
will result in lost text and possibly compilation failure; see
.BR msxlint (1).
It is assumed by \\TransformNotes that notes commands are terminated by \\en (rather than \\enotes).

Some additional manual changes to the source will be necessary:
.TP 3
+
adjustments of \\setname1, \\setclef1, \\setsign1 , \\setmeter1 and \\setstaffs1 commands, as necessary;
.TP 3
+
ensuring that tempo and roadmap markings 
.RB ( D.C. , 
.BR Fine , 
etc.) are in the
appropriate instrument segment;
.PP
Finally, if the modified score is compiled and viewed, it may be seen that horizontal
spacing designed for 
.I multiple 
instruments often produces bad
spacing for a 
.IR single 
instrument.
This can be corrected manually (and very tediously) but it is 
what
.B fixmsxpart
was designed to fix (much more conveniently).

.SS Correcting Horizontal Spacing Using fixmsxpart
The 
\\notes \\Notes \\NOtes \\NOTes...
commands in a
part derived from a multi-instrument score are unreliable,
and so 
.B fixmsxpart
determines the spacing for ordinary notes by the note
commands themselves; for example, 
.TP 3
+
\\qa, \\qu, \\ql, \\qp result in
\\NOtes; 
.TP 3
+
\\ca, \\cu, \\cl, \\ds result in \\Notes; 
.PP
and so on. 
Spacing commands \\sk and \\hsk in the input are 
discarded (but \\qsk, \\hqsk and explicit uses of \\off{...} are preserved). 
 
.B fixmsxpart
determines the spacing for 
.IR beamed 
notes by the beam
multiplicity: \\ib... results in \\Notes, \\ibb... results in
\\notes, etc. Some beam-termination commands (\\tb...) are
problematic because the immediately-following beam note
\\qb... must be spaced according to the spacing 
.IR before
the \\tb... command. This is handled by setting a
variable 
.IR new_beaming 
when processing the \\tb... command
and only updating 
.IR beaming 
to 
.IR new_beaming 
when processing 
the subsequent beam note.  This isn't needed for the 
abbreviations \\tqb, \\tqh, \\ztqb and \\ztqh which combine beam-termination and 
specification of the
final beam note.
 
.IR Pointed 
notes are 
.IR not 
given extra space 
automatically. They should be given extra space manually 
in the score 
by using either a \\roff-like command on the subsequent 
note or the \\qsk or \\hqsk spacing commands.

Additional features of
.BR fixmsxpart 
transformation:
.TP 3
+
Successive whole-bar rests are 
accumulated into a multi-bar rest, with appropriate adjustment of the bar number.
.TP 3
+
\\alaligne
and \\alapage commands are replaced by \\bar.
.TP 3
+
\\mulooseness, \\eject, \\linegoal, \\song{top | bottom}, \\group{top | bottom} 
and \\akkoladen
commands are commented out.
.TP 3
+
\\instrumentnumber...  commands become
\\instrumentnumber1. 
.TP 3
+
\\nostartrule is added to 
the preamble.
.TP 3
+ 
Simple slurs or ties initiated by \\slur or \\tie are normalized by
setting the 
.IR n 
parameter to 1 on the 
assumption that the new note spacing is correct.

.SH LIMITATIONS
Only single-staff instrumental parts are supported. User-defined macros are not expanded. 
A few esoteric MusiXTeX commands 
and constructions are not supported.

.SH SEE ALSO
.BR msxlint (1)
.PP 
musixdoc.pdf

.SH AUTHOR 
This program and manual page were written by Bob Tennent <rdt@cs.queensu.ca>.