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