From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- support/autosp/README | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 support/autosp/README (limited to 'support/autosp/README') diff --git a/support/autosp/README b/support/autosp/README new file mode 100644 index 0000000000..2aec8c0494 --- /dev/null +++ b/support/autosp/README @@ -0,0 +1,137 @@ +This is the README for the autosp package, +version 2019-08-27. + +autosp is a preprocessor that generates note-spacing +commands for MusiXTeX scores. It simplifies the creation +of MusiXTeX scores by converting (non-standard) commands +of the form \anotes ... \en into one or more conventional +note-spacing commands, as determined by the note values +themselves, 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, + +\anotes\qa J\qa K&\ca l\qa m\ca n\en + +generates + +\Notes\qa J\sk\qa K\sk&\ca l\qa m\sk\ca n\en + +The format of \anotes commands is similar to conventional +notes commands, except that line breaks and spaces may +precede note segments, allowing more flexible source +formatting; the line breaks and spaces will be elided from +the output. + +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 also +by using the non-standard command \Cpause in a note segment. + +Spacing commands \sk and \hsk in the source are discarded, +but not \qsk, \hqsk or \qqsk; moreover non-standard commands +\Qsk, \TQsk, \HQsk and \QQsk generate "global" skips; i.e., the +effect of \qsk, \tqsk, \hqsk or \qqsk in *every* staff. + +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 pre-processor. This enables use of autosp with +musixlyr.tex, which is incompatible with the musixtnt.tex implementation +of \TransformNotes. + +All other conventional MusiXTeX commands are output exactly +as given in the input. + +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: \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 + +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 triplets introduced using any of the +following commands: + +\triolet +\uptrio +\downtrio +\uptuplet +\downtuplet + +and x-tuplets introduced using \xtuplet{x}; however, +MusiXTeX notation does not specify the intended duration +of an x-tuplet. 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 these assumptions aren't +valid, the x-tuplet must be coded explicitly using a \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. + +User-defined macros are not processed or expanded. + +All staffs are assumed to have the same meter; see +kinder2.aspc for an example of how to work around this. + +autosp will 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, or to omit certain voices +initially and add them into the resulting TeX file. + +See files quod2.aspc, kinder2.aspc, geminiani.aspc and +barsant2.aspc for scores suitable for input to autosp. +musixtex.tex version 1.21 or later is needed. + +Included in the autosp package is a small utility rebar that +reads a MusiXTeX score and generates a copy with bar-number +comments of the form %barno appended to commands such as +\bar, \alaligne, etc. replacing any existing comments. +Bar-numbering in the MusiXTeX output is not affected + +Also included is the program tex2aspc which re-factors +conventional MusiXTeX scores to aspc format suitable for +autosp pre-processing by merging every conventional notes +commands in a measure into a single \anotes command. + +To install the autosp package, unzip autosp.tds.zip +at the root of a local or personal texmf tree and +update the file-name database. This will install +documentation and examples. + +On Windows or MacOSX, install the relevant binaries on +the PATH of executables. On Unix-like systems, unpack the +.tar.gz archive, and compile and install using the sequence + +./configure && make && sudo make install + +autosp is licensed under the GPL, version 2 or +(at your option) any later version. + +Bob T. +rdt(at)cs(dot)queensu(dot)ca -- cgit v1.2.3