dwww Home | Manual pages | Find package

AUTOSP(1)                                                             AUTOSP(1)

NAME
       autosp  -  preprocessor  to  generate note-spacing commands for MusiXTeX
       scores

SYNOPSIS
       autosp [-v | --version | -h | --help]

       autosp [-d | --dotted] [-l | --log] infile[.aspc] [outfile[.tex]]

DESCRIPTION
       This program makes it easier to create  MusiXTeX  scores  by  converting
       (non-standard)  commands  of  the  form \anotes ... \en (or \an ... \en)
       into one or  more  conventional  note-spacing  commands  (\notes  \Notes
       \NOtes ...), determined by the actual note values, with \sk spacing com-
       mands  inserted  as  necessary.  The coding for an entire measure can be
       entered one part at a time, without  concern  for  note-spacing  changes
       within the part or spacing requirements of other parts.

       For example, if applied to

           \anotes\qa J\qa K&\ca l\qa m\ca n\en

       autosp generates

           \Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en

       Typically,  an \anotes command generates several conventional note-spac-
       ing commands.

       If the infile argument does not have an .aspc extension, input is  taken
       from infile.aspc if that file exists.

       If  the  outfile argument does not have a .tex extension, output is sent
       to outfile.tex.  If no outfile argument is provided, output will  go  to
       infile.tex  (or to infile.ltx if a \documentclass declaration is encoun-
       tered).

       For \anotes commands, line breaks and spaces may precede note  segments,
       allowing  more  flexible  source  formatting; the line breaks and spaces
       will be elided from the output.

       For example,

         \an
           \ibl0K0\qb0K\nbbl0\qb0{.K}\tbbbl0\tbbl0\tql0L&
           \ibbl1m{-2}\qb1{.m}\tbbbl1\tbbl1\qb1l\tql1k\en

       is acceptable and generates

         \notesp\ibl0K0\qb0K&\ibbl1m{-2}\qb1{.m}\en
         \nnotes\sk&\tbbbl1\tbbl1\qb1l\en
         \notesp\nbbl0\qb0{.K}&\tql1k\en
         \nnotes\tbbbl0\tbbl0\tql0L&\sk\en

       If the -l ( --log ) option is used, a very detailed log  infile.alog  is
       generated.

       If  the  -d  (  --dotted ) option is used, dotted beam notes of the form
       \qb{n}{.p} are not given extra space; it is assumed that the  subsequent
       note  will  be shifted by a \roff-like command or a spacing command such
       as \qsk  or  \hqsk.   Commands  of  the  form  \qlp{p},  \qlpp{p},  ...,
       \qpb{n}{p} and \qppb{n}{p} are always spaced as indicated.

       If  there  is a single staff, consecutive whole-bar rest bars are merged
       into a multi-bar rest.  Bar-centered rests can be coded using the  stan-
       dard  \def\atnextbar  notation  but the non-standard command \Cpause (or
       \Cp) in a note segment also generates a bar-centered rest.

       Spacing commands \sk and \bsk in  the  source  are  discarded,  but  not
       "small" skips \hsk, \qsk, \tqsk, \hqsk or \qqsk, or the small "backward"
       skips  \hbsk,  \bqsk,  \btsk, or \bhsk.  Moreover, non-standard commands
       \QQsk, \HQsk \TQsk and \Qsk in the source generate "global" skips; i.e.,
       the effect of \qqsk, \hqsk, \tqsk or \qsk, respectively, in every staff.
       These ensure that staffs remain synchronized if  additional  spacing  is
       needed in any staff(s).

       Global  skips may also be obtained within collective-coding sequences by
       using up to four successive commas to get the effects of  \QQsk,  \HQsk,
       \TQsk  or \Qsk, respectively.  Global skips \tqsk (or, for double-flats,
       \qsk) are automatically inserted before accidentals ('^', '_', '=', '<',
       '>') on collective-coding notes (except when the preceding note is "vir-
       tual"; i.e., a skip).  If  this  automatic  additional  spacing  is  not
       wanted in some context, it may be avoided by replacing the accidental in
       the  collective-coding  sequence  by any of the explicit accidental com-
       mands: \sh, \fl, \na, \smallsh, \bigsh, etc.  If the  automatic  spacing
       is  insufficient, the spacing may be increased by adding sufficient com-
       mas or using a conventional notes command instead of \an.

       A note segment can be completely empty, but if  a  note  segment  should
       start  with  or  contain a "space", the note-value of that space must be
       made explicit with a  command  of  the  form  \ha{*},  \qa{.*},  \qa{*},
       \ca{*}, etc.

       From version 2017-06-14, the effects of \TransformNotes calls are imple-
       mented by the autosp pre-processor.  This enables use of musixlyr in au-
       tosp  scores;  musixlyr.tex is incompatible with the musixtnt.tex imple-
       mentation of \TransformNotes.

       All other conventional MusiXTeX commands are output exactly as given  in
       the input.

OPERATION
       autosp  determines the spacing for ordinary notes from the note commands
       themselves; for example,

       +  \qa, \qu, \ql, \qp result in \NOtes;

       +  \ca, \cu, \cl, \ds result in \Notes;

       and so on.

       The spacing for beamed notes is determined by the beam multiplicity,  so
       that \ib... results in \Notes, \ibb... results in \notes, etc.

       Collective  coding of note sequences (including accidentals and dots) is
       handled by expanding the sequence into a  sequence  of  individual  note
       commands.

       autosp scales notes by the relevant instrument-size value.

LIMITATIONS
       autosp assumes that & and | (rather than \nextinstrument and \nextstaff)
       are used to separate instruments and staffs.

       Appoggiaturas  and  grace  notes are recognized by the use of \tinynote-
       size; note-spacing of 1.45\elemskip is used.  If this isn't suitable and
       can't be corrected with a small skip, a \vnotes command with any desired
       spacing can be used.

       autosp supports x-tuplets introduced using \xtuplet{x} or \xxtuplet{x:y}
       and triplets introduced using any of the following commands  (regardless
       of any re-definition of \txt or \tuplettxt):

         \triolet
         \uptrio
         \downtrio
         \uptuplet
         \downtuplet

       autosp assumes that an x-tuplet is to be played in (x-1)/x of the appar-
       ent x-tuplet duration.  So, for example, a triplet in eighths is assumed
       to  be played in the time of one quarter note.  If this assumption isn't
       valid, the x-tuplet must be coded explicitly using  a  suitable  \vnotes
       command; see the first measure of barsant2.aspc for an example of a non-
       standard  x-tuplet: a 5-tuple of 64th notes with an intended duration of
       six 64ths.

       In some polyrhythmic scores, the \txt numeral may be displaced, even  if
       the notes themselves are correctly spaced.  In these cases, it is possi-
       ble to suppress the normal output of \txt by using the non-standard com-
       mands  \Triolet  (no arguments) or \Xtuplet{k}\ and placing a numeral at
       the correct location using \zcn (i.e., \zcharnote).

       autosp can deal with simultaneous x-tuplets in multiple staffs  provided
       the x values and total note durations are identical.

       In  some  baroque  scores, particularly by J.S. Bach, a beamed sixteenth
       note is vertically aligned with the third note of a  triplet  of  eighth
       notes  in another staff (implying that they should be sounded simultane-
       ously); e.g.,

           \ibl0L0\qb0{.L}\tqql0L

       would be played as if notated

           \uptrio{b}10\ql L\hroff{\cl L}

       The following coding will align the beamed sixteenth note with the third
       note of a triplet in another staff:

           \ibl0L0\qb0{.L}\hbsk\tqql0L

       and, similarly, for triplets of sixteenth notes:

           \ibbu0J0\qb0{.J}\hbsk\nqqqu0J\qb0{.J}\hbsk\tqqqu0J

       Generally, user-defined macros are not processed or  expanded;  however,
       definitions of the form

           \def\atnextbar{\znotes ... \en}

       generate definitions that do take account of \TransformNotes.

       All  staffs  are assumed to have the same meter; see kinder2.aspc for an
       example of how to work around this.

       autosp may not be effective for music with more than one voice in a sin-
       gle staff.  It might be advisable to  use  a  separate  staff  for  each
       voice,  to  avoid \anotes when necessary, or to omit certain voices ini-
       tially and add them into the resulting TeX file.

EXAMPLES
       See files quod2.aspc, kinder2.aspc, geminiani.aspc and barsant2.aspc for
       scores suitable for input to autosp.  The program tex2aspc can  be  used
       to convert "legacy" MusiXTeX scores to .aspc format.

SEE ALSO
       msxlint(1), tex2aspc(1).

       musixdoc.pdf

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

                                   2023-09-01                         AUTOSP(1)

Generated by dwww version 1.16 on Tue Dec 16 05:55:44 CET 2025.