1AUTOSP(1)                                                            AUTOSP(1)
2
3
4

NAME

6       autosp  -  preprocessor  to generate note-spacing commands for MusiXTeX
7       scores
8
9

SYNOPSIS

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

OPERATION

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

LIMITATIONS

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

EXAMPLES

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

SEE ALSO

211       msxlint(1) tex2aspc(1)
212
213       musixdoc.pdf
214
215

AUTHOR

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)
Impressum