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
mskpage.z
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
proofreading
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
examples:
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.
Examples:
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.