1AUTOSP(1) AUTOSP(1)
2
3
4
6 autosp - preprocessor to generate note-spacing commands for MusiXTeX
7 scores
8
9
11 autosp [-v | --version | -h | --help]
12
13 autosp [-d | --dotted] [-l | --log] infile[.aspc] [outfile[.tex]]
14
15
17 This program makes it easier to create MusiXTeX scores by converting
18 (non-standard) commands of the form \anotes ... \en into one or more
19 conventional note-spacing commands (\notes \Notes \NOtes ...), deter‐
20 mined by the actual note values, with \sk spacing commands inserted as
21 necessary. The coding for an entire measure can be entered one part at
22 a time, without concern for note-spacing changes within the part or
23 spacing requirements of other parts.
24
25 For example, if applied to
26
27 \anotes\qa J\qa K&\ca l\qa m\ca n\en
28
29 autosp generates
30
31 \Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en
32
33 Typically, an \anotes command generates several conventional note-spac‐
34 ing commands.
35
36 If the infile argument does not have an .aspc extension, input is taken
37 from infile.aspc if that file exists.
38
39 If the outfile argument does not have a .tex extension, output is sent
40 to outfile.tex. If no outfile argument is provided, output will go to
41 infile.tex (or to infile.ltx if a \documentclass declaration is encoun‐
42 tered).
43
44 For \anotes commands, line breaks and spaces may precede note segments,
45 allowing more flexible source formatting; the line breaks and spaces
46 will be elided from the output.
47
48 For example,
49
50 \anotes
51 \ibl0K0\qb0K\nbbl0\qb0{.K}\tbbbl0\tbbl0\tql0L&
52 \ibbl1m{-2}\qb1{.m}\tbbbl1\tbbl1\qb1l\tql1k\en
53
54 is acceptable and generates
55
56 \notesp\ibl0K0\qb0K&\ibbl1m{-2}\qb1{.m}\en
57 \nnotes\sk&\tbbbl1\tbbl1\qb1l\en
58 \notesp\nbbl0\qb0{.K}&\tql1k\en
59 \nnotes\tbbbl0\tbbl0\tql0L&\sk\en
60
61
62
63 If the -l ( --log ) option is used, a very detailed log infile.alog is
64 generated.
65
66 If the -d ( --dotted ) option is used, dotted beam notes of the form
67 \qb{n}{.p} are not given extra space; it is assumed that the subsequent
68 note will be shifted by a \roff-like command or a spacing command such
69 as \qsk or \hqsk. Commands of the form \qlp{p}, \qlpp{p}, ...,
70 \qpb{n}{p} and \qppb{n}{p} are always spaced as indicated.
71
72 If there is a single staff, consecutive whole-bar rest bars are merged
73 into a multi-bar rest. Bar-centered rests can be coded using the stan‐
74 dard \def\atnextbar notation but the non-standard command \Cpause in a
75 note segment also generates a bar-centered rest.
76
77 Spacing commands \sk and \bsk in the source are discarded, but not
78 "small" skips \hsk, \qsk, \tqsk, \hqsk or \qqsk, or the small "back‐
79 ward" skips \hbsk, \bqsk, \btsk, or \bhsk. Moreover, non-standard com‐
80 mands \QQsk, \HQsk \TQsk and \Qsk in the source generate "global"
81 skips; i.e., the effect of \qqsk, \hqsk, \tqsk or \qsk, respectively,
82 in every staff. These ensure that staffs remain synchronized if addi‐
83 tional spacing is needed in any staff(s).
84
85 Global skips may also be obtained within collective-coding sequences by
86 using up to four successive commas to get the effects of \QQsk, \HQsk,
87 \TQsk or \Qsk, respectively. Global skips \tqsk (or, for double-flats,
88 \qsk) are automatically inserted before accidentals ('^', '_', '=',
89 '<', '>') on collective-coding notes (except when the preceding note is
90 "virtual"; i.e., a skip). If this automatic additional spacing is not
91 wanted in some context, it may be avoided by replacing the accidental
92 in the collective-coding sequence by any of the explicit accidental
93 commands: \sh, \fl, \na, \smallsh, \bigsh, etc. If the automatic spac‐
94 ing is insufficient, the spacing may be increased by adding sufficient
95 commas or using a conventional notes command instead of \anotes.
96
97
98 A note segment can be completely empty, but if a note segment should
99 start with or contain a "space," the note-value of that space must be
100 made explicit with a command of the form \ha{*}, \qa{.*}, \qa{*},
101 \ca{*}, etc.
102
103 From version 2017-06-14, the effects of \TransformNotes calls are
104 implemented by the autosp pre-processor. This enables use of musixlyr
105 in autosp scores; musixlyr.tex is incompatible with the musixtnt.tex
106 implementation of \TransformNotes.
107
108 All other conventional MusiXTeX commands are output exactly as given in
109 the input.
110
111
112
114 autosp determines the spacing for ordinary notes from the note commands
115 themselves; for example,
116
117 + \qa, \qu, \ql, \qp result in \NOtes;
118
119 + \ca, \cu, \cl, \ds result in \Notes;
120
121 and so on.
122
123 The spacing for beamed notes is determined by the beam multiplicity, so
124 that \ib... results in \Notes, \ibb... results in \notes, etc.
125
126 Collective coding of note sequences (including accidentals and dots) is
127 handled by expanding the sequence into a sequence of individual note
128 commands.
129
130
131 autosp scales notes by the relevant instrument-size value.
132
133
135 autosp assumes that & and | (rather than \nextinstrument and
136 \nextstaff) are used to separate instruments and staffs.
137
138
139 Appoggiaturas and grace notes are recognized by the use of \tinynote‐
140 size; note-spacing of 1.45\elemskip is used. If this isn't suitable and
141 can't be corrected with a small skip, a \vnotes command with any
142 desired spacing can be used.
143
144 autosp supports x-tuplets introduced using \xtuplet{x} or \xxtu‐
145 plet{x:y} and triplets introduced using any of the following commands
146 (regardless of any re-definition of \txt or \tuplettxt):
147
148 \triolet
149 \uptrio
150 \downtrio
151 \uptuplet
152 \downtuplet
153
154 autosp assumes that an x-tuplet is to be played in (x-1)/x of the
155 apparent x-tuplet duration. So, for example, a triplet in eighths is
156 assumed to be played in the time of one quarter note. If this assump‐
157 tion isn't valid, the x-tuplet must be coded explicitly using a suit‐
158 able \vnotes command; see the first measure of barsant2.aspc for an
159 example of a non-standard x-tuplet: a 5-tuple of 64th notes with an
160 intended duration of six 64ths.
161
162 In some polyrhythmic scores, the \txt numeral may be displaced, even if
163 the notes themselves are correctly spaced. In these cases, it is possi‐
164 ble to suppress the normal output of \txt by using the non-standard
165 commands \Triolet (no arguments) or \Xtuplet{k}\ and placing a numeral
166 at the correct location using \zcn (i.e., \zcharnote).
167
168 autosp can deal with simultaneous x-tuplets in multiple staffs provided
169 the x values and total note durations are identical.
170
171 In some baroque scores, particularly by J.S. Bach, a beamed sixteenth
172 note is vertically aligned with the third note of a triplet of eighth
173 notes in another staff (implying that they should be sounded simultane‐
174 ously); e.g.,
175
176 \ibl0L0\qb0{.L}\tqql0L
177
178 would be played as if notated
179
180 \uptrio{b}10\ql L\hroff{\cl L}
181
182 The following coding will align the beamed sixteenth note with the
183 third note of a triplet in another staff:
184
185 \ibl0L0\qb0{.L}\hbsk\tqql0L
186
187 and, similarly, for triplets of sixteenth notes:
188
189 \ibbu0J0\qb0{.J}\hbsk\nqqqu0J\qb0{.J}\hbsk\tqqqu0J
190
191 Generally, user-defined macros are not processed or expanded; however,
192 definitions of the form
193
194 \def\atnextbar{\znotes ... \en}
195
196 generate definitions that do take account of \TransformNotes.
197
198 All staffs are assumed to have the same meter; see kinder2.aspc for an
199 example of how to work around this.
200
201 autosp may not be effective for music with more than one voice in a
202 single staff. It might be advisable to use a separate staff for each
203 voice, to avoid \anotes when necessary, or to omit certain voices ini‐
204 tially and add them into the resulting TeX file.
205
206
208 See files quod2.aspc, kinder2.aspc, geminiani.aspc and barsant2.aspc
209 for scores suitable for input to autosp. The program tex2aspc can be
210 used to convert "legacy" MusiXTeX scores to .aspc format.
211
212
214 msxlint(1) tex2aspc(1)
215
216 musixdoc.pdf
217
218
220 This program and manual page were written by Bob Tennent
221 <rdt@cs.queensu.ca>.
222
223
224
225 2019-12-22 AUTOSP(1)