manpagez: man pages & more
man autosp(1)
Home | html | info | man
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
       commands 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-
       spacing 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
       encountered).

       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
       standard \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
       "virtual"; 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
       commands: \sh, \fl, \na, \smallsh, \bigsh, etc.  If the automatic
       spacing is insufficient, the spacing may be increased by adding
       sufficient commas 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
       implemented by the autosp pre-processor. This enables use of musixlyr
       in autosp scores; musixlyr.tex is incompatible with the musixtnt.tex
       implementation 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
       \tinynotesize; 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
       apparent 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
       possible to suppress the normal output of \txt by using the non-
       standard commands \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
       simultaneously); 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
       single staff. It might be advisable to use a separate staff for each
       voice, to avoid \anotes when necessary, or to omit certain voices
       initially 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)

texlive-bin 2024.70613 - Generated Sun Mar 17 06:50:24 CDT 2024
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.