Dmuse: Score printing

From CCARH Wiki
Jump to navigation Jump to search

Starting from MuseData Stage2 files

In order to print a musical score from Dmuse when starting from MuseData stage2 files, the musical data must first be converted into i-files which are then converted into page files. The page files can then be printed directly to a printer or converted into PostScript (which can then be converted into PDF files for online use) or printing to non-PCL printers. To convert the MuseData files into i-files, you must use the autoset program as described below. In addition to preparing printable scores from MuseData stage2 files or page files within Dmuse, you can also the command-line program muse2ps for batch processing on the command-line.

Directory preparation

Before running autoset, you must first create the output directory into which the i-files will be written (or verify that this directory exists). When using the conventional MuseData work directory file structure, files will be written into a sub-directory of the main work directory which is called outputs. Within the outputs directory, create a sub-directory with a name of your choosing. For this particular example, the name score is used for this sub-directory. Within the outputs/score directory, you must create a directory called i-files. And within the outputs/score/i-files directory, you must also create a sub-directory for each movement of the work which parallels the directory structure for the movements in the stage2 directory. If you are only preparing the score for one movement, then you will only have to create the directory for that particular movement. Typically movements are two-digit numbers, such as 01 for movement 1, 02 for movement 2, etc.. But this is a convention which has to be verified by looking at the sub-directories within the stage2 directory for the work.

The output directory structure can be prepared from within dmuse by using the file manager which is opened by pressing the F4 function key. Alternatively, the directories can be created in the standard method for the particular operation system which you are using.

Notice that the input and output directories are at standardized locations within the MuseData database work directories (stage2/01 for the input and outputs/score/i-files/01 for the output if the first movement of a work is being processed). However, autoset does not really care where these directories exist; it only wants to know where the input files for a particular movement are located, and where to write the output files. Both the input and output directories must exist in order for autoset to convert the stage2 files for a movement into i-files. You cannot use the same directory for input to and output from autoset, since the names of the stage2 input files and the i-file output files will be the same.


Running autoset

State of Dmuse immediately after starting autoset.

To start autoset go to an empty window, such as window #5, by typing Keypad 5. If the window you are using is not empty, but the content of it does not need to be saved, press Home to get to the top of the window, and then press Shft+Keypad - to delete all lines of text after the cursor.

To start autoset, first press Shft+Keypad * to start the zbex interpreter. Once the zbex interpreter is running, the string "[*]" will appear on the top right border of the dmuse window. If this mark does not appear, then you will have to edit the Dmuse INIT file to enable the zbex interpreter (change the line "Ibex Active: N" to "Ibex Active: Y" in the INIT file for dmuse and then restart the program). The zbex interpreter will print the text "Ready for program". Type the name of the program to run, which in this case is autoset, and then press Return. Zbex will then start running autoset. The figure on the right demonstrates what should happen in Dmuse at this initial stage when starting autoset.

At any point while running a zbex program, such as autoset, you can type two exclamation marks (!!) at the start of a line and press Return to quit the program. After exiting the program, the zbex interpreter waits for the name of a program to run. So for example, you could go to the top of the windows and press Return on the line where you typed autoset to start running it again.

Music size

The first question that autoset asks is:

  Enter note size (<return> = 14: x = non standard parameters)

This option sets the font size of the music. Size 14 means that there are 14 pixels between successive staff lines (in 300 DPI). Font size 14 is the standard font size for scores (you can press Return to use that default size). The smallest possible size should be 6. Parts are usually typeset in size 21. Not all font sizes are available. The standard sizes which should be available are: 6, 14, 16, 18, and 24.

Compression factor

The next question which is asked is:

  Compression factor (<return> = none)

You should probably press return for the default compression factor of 100. For denser music, use a smaller value, such as 90. For greater spacing between notes, try something like 110. Good results are usually in the 92-96 range. Sometimes 85-87 might be needed. This value is typically used to get the last page to contain a full page of music.

Source file location

The third question that autoset asks is where are the MuseData files located:

  Autoset performs the first step of the music typesetting process.
  Autoset takes stage2 source files as input and produces non-page
  specific intermediate files.  Since the stage2 directory contains
  source files for a variety of uses, you need to specify the group
  (i.e. sound, score, parts, short or data)  that you want autoset
  to work on.  Enter the source library and group name now.
  
  Source library?

At this point it is useful to have the resident file manager point to the main working directory or one of its parent directories. The term library in Dmuse is equivalent to directory or folder. For example if the musedata files are stored in /usr/local/apps/musedata/baroque/corelli/chry/trio/op1n12, it might be useful to set the file manager to be looking at the directory /usr/local/apps/musedata/baroque/corelli/chry/trio. If you set the file manager to point to this directory, then you can answer the above question like this if you want to generate a score for the first movement:

   op1n12/stage2/01

Group name

The autoset program then asks for the group name to process. The stage2 files contain a Group Memberships: line which should contain one or more membership labels. Type the name of an existing group for this question:

   Group name? (default = data)

The most common group for generating a score is "score". When generating parts, a typical group name would be "parts". Type score for this particular example of typesetting a Corelli sonata movement. If you are unsure of what groups are available, examine the Group Memberships: line in one of the stage2 files which you are processing.

Output directory

Next autoset asks where the resulting i-files that it creates will be stored:

  Autoset works on only one movement at a time.  The output library
  (for i-files) must already be allocated.  Autoset will name the 
  output files (i-files) according to the order of the input files
  in the group; i.e. part 1 from the input group becomes the i-file "01".
  Autoset can work on a range of parts within a group.  You will be asked
  to provide this range.  Enter the output library and range now.
  
  Output library? (Enter a blank line to get default output library).

In this case type:

   op1n12/outputs/score/i-files/01

The directory outputs/score/i-files/01 must already exist before you continue with the program. This is the sub-directory into which all of the data from autoset will be stored.

Number of parts

Now autoset will examine the stage2 files for movement one and identify how many parts are present in the score group membership:

  There appear to be 3 parts in this group.  Enter the first and
  last numbers of the range you wish, or simply type <Enter> to
  process all of them.

In this case, we are preparing a score (not a part), so press Return. It is useful to remember this number (3 parts), which the mskpage program will ask for later after you finish running autoset.

Creating i-files

State of Dmuse after autoset has finished processing data.

At this point autoset has all of the information which is necessary in order to complete the processing of the data. The figure on the right shows the status messages which are displayed in Dmuse as autoset generates the output i-files which will be stored in op1n12/outputs/score/i-files/01 in this example.

Starting from i-files

At this point you should have a set of non-page-specific i-files within the sub-directory outputs/score/i-files. Here are the contents of these files for our example printing of the first movement of Corelli's Op. 1, No. 12 sonata:

File name Description
op1n12/outputs/score/i-files/01/01 Violino 1 i-file
op1n12/outputs/score/i-files/01/02 Violino 2 i-file
op1n12/outputs/score/i-files/01/03 Violone e Organo i-file

Each file contains a single part's notation as if it were on a very long continuous page with only one system. At this stage in the score printing process, these non-page-specific i-files need to be assembled into page files. Each i-file contains all of the musical data for an entire part. The next step in the process is to create the page file, which describes the layout of the music onto specific pages.

Directory preparation

Running mskpage

To convert from i-files into page files, run the mskpage (Make SKore PAGE files) program. You can start the program in a new window, or if you want to clear the contents of the current window for running mskpage, press Home to go to the first line in the window, and then press Shft+Keypad - to erase the contents of the window below the cursor. Then press Shif+Keypad * (unless the "[*]" marker in the top right of the dmuse window is indicating that the zbex interpreter is still running. If zbex is still running, then just type the name of the program to run and press Return:

  mskpage

Input directory

The mskpage program will ask for the location of the i-files (which you may have just created).

  Input Library name?

For our example score printing process, the i-files are stored here (presuming the resident file manager is pointing to the correct base directory):

  op1n12/outputs/score/i-files/01

Output directory

Next, mskpage will ask where the output files should be written:

  Output Library name?

For the example, they should be placed in:

  op1n12/outputs/score/pages/01

Note that this directory must first exist before continuing, otherwise mskpage will print an error message and stop when it tries to write the output files to this directory.

Part selection

The mskpage program will now print:

  starting number

This is a question which is asking for the name (number) of the first i-file which was created with autoset. In almost all cases, you should type 01 for the first file. An example of when you might not start with the first file is when you want to print a subset of the full instrumentation, provided that the subset files are stored sequentially. For example, you could print only the string, brass or woodwind sections of a full score.

Number of parts

The mskpage program now asks how many i-files are needed to construct the score. In the example case, there are three i-files for the three parts:

  number of parts
  3

Test line

Press Return at this prompt:

  transferring   done!
  Enter a non-blank line if this is a simple test

Page height

  Height of new typesetting (return = top)

Press return for the default. If you need to start the music lower for some reason (such as beginning a movement on a page left incomplete by a prior movement, or the need to leave extra space for wordy header material), enter the numerical parameter (300 DPI) here. For example, 1500 will begin typesetting about halfway down the page.

Tacit instructions

  Line of tacit instructions? (return = none)

When making parts, what text to print to specify tacit movements. Press Return in this case, since scores do not need tacit instructions.

Justification of the last system

  Right justify last line? (return = no)  Also, enter "wide" command here.

Press Return to use the default, which will not attempt to justify the last system. Type yes (or simply y) if you want the last system to end flush with the right margin.

Movement title

  Movement title?

Type the name of the movement. In this case, simply type "I.".

Bracing structure

  Enter brace/bracket/bar structure
   [] = bracket and bar () = bar only  {} = brace  dot = part  colon = grandstaff

In this case type:

  [...]

which means to place a bracket on the entire system which contains three parts which are represented by the dots.

Line spacing

  Line spacing: text, no text  (return = no change)
  Otherwise, enter all spacings (max of 15 per line)
  175 140

Use the default spacings by pressing Return.

Final processing

At this point mskpage will finish producing the pages for the movement. The program will list the systems as it processes the data and report the measure number at the start of each system. The number before the measure text is the page on which the system is being written:

    1 measure 1
    1 measure 6
    1 measure 12
    1 measure 19
  Total pages = 1 in .../op1n12/outputs/score/pages/01
  Ready for program

In the example process, this is the output from mskpage:

Starting from page files

Downloading fonts

In order to printed directly from dmuse to a printer, you must have a printer which uses the PCL protocol (level 3 or higher).

Before running pskpage you must download the MuseData music fonts to the printer. The zbex program to download the fonts is called autoload. Dmuse also has a menu option for downloading fonts (which may be the same as running autoload). The fonts only have to be downloaded once to the printer. After they have been downloaded to the printer, they will persist in the printer's memory unless new fonts overwrite them, or the printer is turned off. Some printers may run out of memory when loading the entire set of MuseData fonts (for all music sizes). What to do in those cases should be described here.

To run autoload, go to an empty dmuse window (such as window 8 by typing Keypad 8). Next, type Keypad * to start the zbex interpreter (if it is not already running), and then type the name of the autoload program and press Return:

   autoload


Running pskpage

Since pskpage uses very little screen space, you may wish to run it in the same window as mskpage, with the latter program running below it. The resident file manager will then conveniently point to the same working directory for creating and printing scores.

Music size

  Enter note size (<return> = 14)

The note size entered here should match the size chosen when creating the i-files for the Corelli score with autoset. Press Return for the default response.

Input directory

The pskpage program now asks for the location of the page-specific files created by mskpage.

  Source library?

The source library is of course the output library where mskpage just stored our page files.

  op1n12/outputs/score/pages/01

Starting page

  starting page number

This and the next prompt allow you to print the full output or to select a range of or individual pages. In our example case, we type "1".

Number of pages

  number of pages

To this prompt simply indicate how many pages you wish to print (in this case "1"). Press Return to print all remaining pages beginning with the starting page.

Shift margins to facilitate binding

  Shift odd/even pages for better binding?  Enter "Y" = yes

In most cases, this line will be left blank. Answering "Y" will shift the printed output (to the right on odd pages, left on even pages) to allow more room on the inner margins for binding.

Starting from CFT files

CFT files are a compressed collection of page files.


Converting page files into PostScript files

Instead of printing to a printer, the graphical music notation encoded in page files can be written to a PostScript file. This file can then be converted into a PDF file for web distribution.