{
    "mode": "man",
    "parameter": "autosp",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/autosp/1/json",
    "generated": "2026-07-05T11:47:48Z",
    "synopsis": "autosp [-v | --version | -h | --help]\nautosp [-d | --dotted] [-l | --log] infile[.aspc] [outfile[.tex]]",
    "sections": {
        "NAME": {
            "content": "autosp - preprocessor to generate note-spacing commands for MusiXTeX scores\n\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "autosp [-v | --version | -h | --help]\n\nautosp [-d | --dotted] [-l | --log] infile[.aspc] [outfile[.tex]]\n\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "This  program makes it easier to create MusiXTeX scores by converting (non-standard) commands\nof the form \\anotes ... \\en into one  or  more  conventional  note-spacing  commands  (\\notes\n\\Notes  \\NOtes ...), determined by the actual note values, with \\sk spacing commands inserted\nas necessary.  The coding for an entire measure can be entered one part at  a  time,  without\nconcern for note-spacing changes within the part or spacing requirements of other parts.\n\nFor example, if applied to\n\n\\anotes\\qa J\\qa K&\\ca l\\qa m\\ca n\\en\n\nautosp generates\n\n\\Notes\\qa J\\sk\\qa K\\sk&\\ca l\\qa m\\sk\\ca n\\en\n\nTypically, an \\anotes command generates several conventional note-spacing commands.\n\nIf  the  infile argument does not have an .aspc extension, input is taken from infile.aspc if\nthat file exists.\n\nIf the outfile argument does not have a .tex extension, output is sent to outfile.tex.  If no\noutfile  argument is provided, output will go to infile.tex (or to infile.ltx if a \\document‐\nclass declaration is encountered).\n\nFor \\anotes commands, line breaks and spaces may precede note segments, allowing more  flexi‐\nble source formatting; the line breaks and spaces will be elided from the output.\n\nFor example,\n\n\\anotes\n\\ibl0K0\\qb0K\\nbbl0\\qb0{.K}\\tbbbl0\\tbbl0\\tql0L&\n\\ibbl1m{-2}\\qb1{.m}\\tbbbl1\\tbbl1\\qb1l\\tql1k\\en\n\nis acceptable and generates\n\n\\notesp\\ibl0K0\\qb0K&\\ibbl1m{-2}\\qb1{.m}\\en\n\\nnotes\\sk&\\tbbbl1\\tbbl1\\qb1l\\en\n\\notesp\\nbbl0\\qb0{.K}&\\tql1k\\en\n\\nnotes\\tbbbl0\\tbbl0\\tql0L&\\sk\\en\n\n\n\nIf the -l ( --log ) option is used, a very detailed log infile.alog is generated.\n\nIf the -d ( --dotted ) option is used, dotted beam notes of the form \\qb{n}{.p} are not given\nextra space; it is assumed that the subsequent note will be shifted by a  \\roff-like  command\nor  a  spacing  command  such as \\qsk or \\hqsk.  Commands of the form \\qlp{p}, \\qlpp{p}, ...,\n\\qpb{n}{p} and \\qppb{n}{p} are always spaced as indicated.\n\nIf there is a single staff, consecutive whole-bar rest bars are merged into a multi-bar rest.\nBar-centered  rests can be coded using the standard \\def\\atnextbar notation but the non-stan‐\ndard command \\Cpause (or \\Cp) in a note segment also generates a bar-centered rest.\n\nSpacing commands \\sk and \\bsk in the source are discarded, but not \"small\" skips \\hsk,  \\qsk,\n\\tqsk,  \\hqsk  or  \\qqsk, or the small \"backward\" skips \\hbsk, \\bqsk, \\btsk, or \\bhsk.  More‐\nover, non-standard commands \\QQsk, \\HQsk \\TQsk and  \\Qsk  in  the  source  generate  \"global\"\nskips;  i.e., the effect of \\qqsk, \\hqsk, \\tqsk or \\qsk, respectively,  in every staff. These\nensure that staffs remain synchronized if additional spacing is needed in any staff(s).\n\nGlobal skips may also be obtained within collective-coding sequences by using up to four suc‐\ncessive commas to get the effects of \\QQsk, \\HQsk, \\TQsk or \\Qsk, respectively.  Global skips\n\\tqsk (or, for double-flats, \\qsk) are automatically inserted before accidentals  ('^',  '',\n'=', '<', '>') on collective-coding notes (except when the preceding note is \"virtual\"; i.e.,\na skip).  If this automatic additional spacing is not wanted  in  some  context,  it  may  be\navoided  by replacing the accidental in the collective-coding sequence by any of the explicit\naccidental commands: \\sh, \\fl, \\na, \\smallsh, \\bigsh, etc.  If the automatic spacing  is  in‐\nsufficient,  the spacing may be increased by adding sufficient commas or using a conventional\nnotes command instead of \\anotes.\n\n\nA note segment can be completely empty, but if a note segment should start with or contain  a\n\"space,\"  the  note-value  of  that  space  must  be made explicit with a command of the form\n\\ha{*}, \\qa{.*}, \\qa{*}, \\ca{*}, etc.\n\nFrom version 2017-06-14, the effects of \\TransformNotes calls are implemented by  the  autosp\npre-processor.  This  enables  use of musixlyr in autosp scores; musixlyr.tex is incompatible\nwith the musixtnt.tex implementation of \\TransformNotes.\n\nAll other conventional MusiXTeX commands are output exactly as given in the input.\n\n\n",
            "subsections": []
        },
        "OPERATION": {
            "content": "autosp determines the spacing for ordinary notes from the note commands themselves; for exam‐\nple,\n\n+  \\qa, \\qu, \\ql, \\qp result in \\NOtes;\n\n+  \\ca, \\cu, \\cl, \\ds result in \\Notes;\n\nand so on.\n\nThe  spacing  for beamed notes is determined by the beam multiplicity, so that \\ib... results\nin \\Notes, \\ibb... results in \\notes, etc.\n\nCollective coding of note sequences (including accidentals and dots) is handled by  expanding\nthe sequence into a sequence of individual note commands.\n\n\nautosp scales notes by the relevant instrument-size value.\n\n",
            "subsections": []
        },
        "LIMITATIONS": {
            "content": "autosp assumes that & and | (rather than \\nextinstrument and \\nextstaff) are used to separate\ninstruments and staffs.\n\n\nAppoggiaturas and grace notes are recognized by the use  of  \\tinynotesize;  note-spacing  of\n1.45\\elemskip  is  used.  If  this isn't suitable and can't be corrected with a small skip, a\n\\vnotes command with any desired spacing can be used.\n\nautosp supports x-tuplets introduced using \\xtuplet{x} or \\xxtuplet{x:y} and triplets  intro‐\nduced  using  any  of the following commands (regardless of any re-definition of \\txt or \\tu‐\nplettxt):\n\n\\triolet\n\\uptrio\n\\downtrio\n\\uptuplet\n\\downtuplet\n\nautosp assumes that an x-tuplet is to be played in (x-1)/x of the apparent x-tuplet duration.\nSo,  for  example,  a  triplet  in eighths is assumed to be played in the time of one quarter\nnote.  If this assumption isn't valid, the x-tuplet must be coded explicitly using a suitable\n\\vnotes  command;  see the first measure of barsant2.aspc for an example of a non-standard x-\ntuplet: a 5-tuple of 64th notes with an intended duration of six 64ths.\n\nIn some polyrhythmic scores, the \\txt numeral may be displaced, even if the notes  themselves\nare correctly spaced. In these cases, it is possible to suppress the normal output of \\txt by\nusing the non-standard commands \\Triolet (no arguments) or \\Xtuplet{k}\\ and placing a numeral\nat the correct location using \\zcn (i.e., \\zcharnote).\n\nautosp  can deal with simultaneous x-tuplets in multiple staffs provided the x values and to‐\ntal note durations are identical.\n\nIn some baroque scores, particularly by J.S. Bach, a  beamed  sixteenth  note  is  vertically\naligned with the third note of a triplet of eighth notes in another staff (implying that they\nshould be sounded simultaneously); e.g.,\n\n\\ibl0L0\\qb0{.L}\\tqql0L\n\nwould be played as if notated\n\n\\uptrio{b}10\\ql L\\hroff{\\cl L}\n\nThe following coding will align the beamed sixteenth note with the third note of a triplet in\nanother staff:\n\n\\ibl0L0\\qb0{.L}\\hbsk\\tqql0L\n\nand, similarly, for triplets of sixteenth notes:\n\n\\ibbu0J0\\qb0{.J}\\hbsk\\nqqqu0J\\qb0{.J}\\hbsk\\tqqqu0J\n\nGenerally,  user-defined  macros  are  not processed or expanded; however, definitions of the\nform\n\n\\def\\atnextbar{\\znotes ... \\en}\n\ngenerate definitions that do take account of \\TransformNotes.\n\nAll staffs are assumed to have the same meter; see kinder2.aspc for an example of how to work\naround this.\n\nautosp may not be effective for music with more than one voice in a single staff. It might be\nadvisable to use a separate staff for each voice, to avoid \\anotes when necessary, or to omit\ncertain voices initially and add them into the resulting TeX file.\n\n",
            "subsections": []
        },
        "EXAMPLES": {
            "content": "See  files quod2.aspc, kinder2.aspc, geminiani.aspc and barsant2.aspc for scores suitable for\ninput to autosp.  The program tex2aspc can be used to convert  \"legacy\"  MusiXTeX  scores  to\n.aspc format.\n\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "msxlint(1) tex2aspc(1)\n\nmusixdoc.pdf\n\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "This program and manual page were written by Bob Tennent <rdt@cs.queensu.ca>.\n\n\n\n2021-01-07                                    AUTOSP(1)",
            "subsections": []
        }
    },
    "summary": "autosp - preprocessor to generate note-spacing commands for MusiXTeX scores",
    "flags": [],
    "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": [
        {
            "name": "msxlint",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/msxlint/1/json"
        },
        {
            "name": "tex2aspc",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/tex2aspc/1/json"
        }
    ]
}