phpman > man > autosp(1)

Markdown | JSON | MCP    

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 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 \document‐
       class declaration is encountered).

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

       For example,

         \anotes
           \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-stan‐
       dard 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.  More‐
       over, 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 suc‐
       cessive 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  in‐
       sufficient,  the spacing may be increased by adding sufficient commas or using a conventional
       notes command instead of \anotes.


       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 exam‐
       ple,

       +  \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  intro‐
       duced  using  any  of the following commands (regardless of any re-definition of \txt or \tu‐
       plettxt):

         \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 to‐
       tal 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 AT cs.ca>.



                                             2021-01-07                                    AUTOSP(1)
autosp(1)
NAME SYNOPSIS DESCRIPTION OPERATION LIMITATIONS EXAMPLES SEE ALSO AUTHOR

Generated by phpman v4.0 Author: Che Dong Under GNU General Public License
2026-06-16 03:25 @216.73.217.83
CrawledBy Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
Valid XHTML 1.0 TransitionalValid CSS!

^_back to top