Instructions for running autoset.z

autoset.z is the basic music typesetting program for Dmuse.
Its input is a stage2 file; its output is a non-page specific
i-file.  If one were to draw an analogy with Leland's SCORE
program, the Musedata stage2 files are like elaborate .MUS
files in SCORE, and page specific i-files are like .PMX files
in SCORE.  A major difference between Dmuse and SCORE is that
the music input process for SCORE proceeds one page at a time,
whereas a Musedata stage2 file contains an entire movement.
This is why the Dmuse typesetting process must pass through
the additional step of converting non-page specific i-files to
page specific i-files, a process accomplished by the program

To run autoset.z, the current working directory for your window
should be the directory for the musical work you are typesetting.
This directory should contain the stage2 directory with all of the
stage2 files.  Inside the stage2 directory, our system expects to
find a set of sub-directories representing movements.  Even when
there is only one movement, it is recommended that there be a
sub-directory for it.  Inside each movement sub-directory are the
individual stage2 files.  Each stage2 file has membership in one
or more groups.  (See the s2-specs.ten file in j:/release/progs
for further documentation on the format of stage2 files).
The current working directory should also contain a directory
call outputs.  The output of autoset.z will be directed to a
sub-directory inside outputs.

When autoset.z first starts up, it asks six questions:

(1) Note size.  This determines the size of the typesetting.  At
the moment, there are 5 sizes available.
    size-6     for display purposes only -- too small to print
    size-14    for scores with more than 16 lines, also for
    size-16    for scores with 12 to 16 lines.
    size-18    for scores with fewer than 12 lines (consistantly),
                 also for music on the grand staff (piano, organ)
    size-21    for instrumental parts, also large size piano music

Notesize 14 is the default.

(2) Compression factor.  This number serves as a multiplier to
all horizontal spaces computed by autoset.z.  The unit multiplier
is 100.  The compression factor is used to try out various
spacings to see which one works the best.  Once a number has
been chosen, this number should be incorporated directly into
the stage2 files via a print suggestion.

(3) Source library.  This should be the sub-directory containing
the movment you are trying to typeset.  Example: stage2/04 --
fourth movement of the work you are typesetting.

(4) Group name.  Each stage2 file belongs to one or more groups.
Current groups recognized by autoset.z are as follows:
    sound  ->  for compiling midi files (not useful for autoset)
    score  ->  mostly for compiling scores for proofreading
    skore  ->  for compiling scores for printing
    short  ->  for compiling short scores (e.g., piano/vocal)
    parts  ->  for compiling parts
    data   ->  generic data

(5) Output library.  We never use anything but the default now.
But what is the default?  Answer, it depends on the note size
and on the group name (i.e., the application).  Here are some

    Notesize  Group   Default outout path
    --------  -----   -------------------
       14     score   outputs/score/i-files/<movement>/
       16     skore   outputs/skore16/i-files/<movement>/
       18     short   outputs/short18/i-files/<movement>/
       21     parts   outputs/parts21/i-files/<movement>/
        6     score   outputs/score06/i-files/<movement>/

Since notesize 14 is the default, the sub-directory name under
outputs for this case does not contain the number; otherwise
the notesize is appended to the group name to form the
sub-directory name.  The <movement> name is the same as the
sub-directory under the stage2 directory (see example above).
Important: You (the user) must allocate the proper sub-directory
under outputs for the application you are typesetting.  This
sub-directory should itself have three sub-directories:
i-files, pages, and formats.  I believe that autoset will
take care of allocating the movement names under i-files,
but you must allocate those same names inside the pages
sub-directory.  The output from autoset.z goes to i-files,
but you will need formats and pages to run mskpage.z properly.

                       part # in
Notesize  Group  Mvt   in group    Output
--------  -----  ---  -----------  ----------
(default) score   01        3      outputs/score/i-files/01/03
 14       score  1-03       4      outputs/score/i-files/1-03/04
 16       skore   02       16      outputs/skore16/i-files/02/16
 18       score  mvt2       3      outputs/score18/i-files/mvt2/03
 21       pages   01        9      outputs/parts21/i-files/01/09
  6       score    4        6      outputs/score06/i-files/4/06

Notice that the actual file name in the outputs is determined by
the part number of group being processed, not by the file name
in the stage2 directory.  File names for stage2 files are not
standardized -- but are descriptive to some degree.  I use the
following comvention:
   data,sound    -- use simple number, e.g., 01, 02, 03
   score         -- use "s" followed by number, e.g., s01, s02
   parts         -- use "p" followed by number, e.g., p01, p02
   skore         -- use "k" followed by number, e.g., k01, k02
When a file belongs to both the score and skore groups, e.g.,
parts such as Violin I that do not share staff lines with other
parts, I use the "s" convention.

(6) Parts to be processed (from the group).  For typesetting
scores, this would usually be all members of the group.  For
typesetting parts, this would be the single part number.

There are two special cases of print suggestion that impact
how autoset.z actually runs.  These suggestions are in the
stage2 files themselves.

   Special case 1:  If column 2 contains a "v", the next four
   columns will contain the version number of autoset for which
   the print suggestions are valid and have been checked.  If
   the version of autoset running is different from the version
   number in the stage2 file, (and the version of autoset is
   4.00 or higher), a warning message will be displayed.  When
   this happens, it is a good idea to check the output of each
   print suggestion to make sure that the outcome is the desired
   one.  It is expected that changes and improvements will be
   made to autoset from time to time.

   Special case 2:  If column 2 contains an "x", the next three
   columns may contain certain flags that modify the operational
   behavior of the autoset.z program.

     If the letter "m" is present, then autoset will report the
     measures it has completed.  This is useful when trying to
     find data errors.

     If the letter "d" is present, then autoset will allow the
     user to enter debug mode at a location specified at run
     time.  This is useful in tracing program operation at a
     more detailed level.

     If the letter "s" is present, then autoset will provide
     additional information to the output i-files, which will
     allow a compressed search file to be built later in the
     process.  This letter must also be present if the user
     intends to use autoscr.z to compile files for a conversion
     to SCORE.  Conversion to SCORE can only be done at notesize
     14, and cannot be done with files that include cue notes.

If autoset.z fails, it is usually because there is a format
error in the source file.  Running the program again, using
the letter "m" in special case 2 above (inserted in the
offending stage2 file), will show the exact measure where the
program failed.  It is usually easy to pinpoint the error
when this is done.  Not so easy to find, however, are errors
in the output.  These errors only show up when mskpage.z
is run, and often are the result of mistakes in the stage2
file that can propagate for many measures.

Once the autoset.z -> mskpage.z -> dskpage.z sequence is
successfully completed, you can be fairly sure that your
stage2 files have no format errors.

It is not unusual to run this sequence several times, with
different compression factors, and with different combinations
of system breaks.  With Dmuse, the process of "casting off,"
i.e., determining the location of system breaks, is an
iterative process.  Especially with musical parts, where
the location of page turns is very important, and where
broken ties, slurs, and wedges (across system breaks) are
best avoided, this can be an important step in typesetting
high quality parts.

Scores and parts have another important difference.  With
scores, all measures, empty or not, are typeset.  But with
parts, empty measures are typeset as group rests and represented
as a symbol in the i-file format.  The default for autoset.z
is to typeset measures as group rests only when the group name
is "parts."  This default can be overridden with the general
print suggestion m<#> = multi-rest flag, where

# = 0: do not generate multi-rests (default for score)
# = 1: generate multi-rests (default for parts)

In the case where a musical part divides and is represented
on two separate staff lines, e.g., Cello I and Cello II in the
2nd mvt of Beethoven's 7th Symphony, the group name is still
"parts," but the multi-rest default must be overridden.