No. 676

Simplify the Description of Graphical Objects in Postscript Output

IWBNI the methods used to describe graphical objects in postscript files were refined to be more space-efficient while retaining the same appearance and quality as is displayed in Finale, and in the case when the quality, as it is now, in postscript files is viewed to be superior to that which is displayed in Finale, then the methods used to render the later were modified. Here, "graphical objects" means shapes or patterns that are not font characters. For example, staff lines, barlines, group brackets, stems, beams, tuplet brackets, ties, slurs, hairpins, glissando lines and dashed brackets are graphical objects.

The methods used to describe graphical objects greatly affects the size of resulting postscript and PDF files as well as the appearance of such objects when printed or displayed. As it is now, the method used to programmatically describe a given graphical object depends upon the type of object that is being described, the version of Finale that is being used, and the value of the entry called OwnPS in the Settings section of the file Finale.ini. The OwnPS entry controls the division of labor between Finale and the postscript driver when creating postscript files. It may be set to one of the following integers (Note: To set the value of the entry OwnPS, one must add this entry to the Settings section of the file Finale.ini as this entry is not created by Finale.):
 
OwnPS Value Meaning
0 The printer driver and Finale share the work of creating postscript code. Finale handles graphics and the printer driver handles text. This is the default setting for Finale 97. It may be used with Finale 98 and 2000 (and 2001) to specify that the methods used to create graphical objects should be the same as those that are used in Finale 97. 
1 Finale handles all work of creating postscript code. This value is no longer available for use. 
2 This is an experimental setting that was never used.
3 The printer driver handles the work of creating postscript code based on instructions provided by Finale. This is the default setting for Finale 98 and  2000 (and 2001).

Stem Lines and Staff Lines

In Finale 97, each stem line and staff line is described by one pair of points (i.e. 4 numbers) and a width (i.e. one number). (Note: A point is described by two numbers that specify the horizontal and vertical position of the point.)

By default, in Finale 98 and 2000 (and 2001), each stem line and staff line is described by a collection of parallel lines that have a width of 1 pixel, and each 1-pixel line is described by a pair of points. For example, if a postscript file is printed with a Print Quality (or resolution) of 1200 dpi and a stem is to be 8 pixels wide (i.e. 8/1200 inches wide), the stem will be represented by 8 adjacent parallel lines that are each 1 pixel wide (i.e. a total of 32 numbers).

Ties

In Finale 97, a tie is described as a figure that is bounded by 4 segments. Two of these segments are line segments which are located at the tie ends. The other two segments are Bezier curves each of which passes through 4 points, 2 of which coincide with endpoints of the line segments at the tie ends. Thus, roughly speaking, in Finale 97 a total of 8 points or 16 numbers are used to describe a tie.

By default, in Finale 98, a tie is described as a figure that is bounded by a large number of short connected line segments. For example, a tie might be described by 53 such line segments or, equivalently 53 points. (Note: The number 53 indicated here was determined experimentally for a particular of tie of short to medium length.) Roughly speaking, a total of 106 numbers would be specified for a tie that is described 53 connected line segments.

By default, in Finale 2000 (and 2001), a tie is described by a collection of adjacent horizontal line segments where the thickness of each line segment is 1 pixel. For example, a tie might be described by 95 such line segments (Note: The number 95 indicated here was determined experimentally for the same tie mentioned in the previous paragraph for which 53 connected line segments were used in Finale 98). Unlike the line segments used in Finale 98, the line segments used in Finale 2000 (and 2001) are not connected. Thus 2 points would be specified for each line segment. Or, roughly speaking, a total of 190 points or 380 numbers would be specified for a tie that is described by 95 horizontal line segments. For a given tie, the actual count of required numbers would depend on the orientation and curvature of the tie.

The following table summarizes the space required to store the numbers for the various methods of describing lines and ties:
 
Count of Numbers to Describe a Graphical Object (*)
Version One Line of a Staff or 
One Stem Line 
(8 pixels Wide)
One Typical Symmetric Short to Medium Tie
Finale 97 5 numbers 16 numbers
Finale 98 32 numbers 106 numbers
Finale 2000 (or 2001) 32 numbers 380 numbers

(*) The counts shown in this table were determined experimentally by creating a simple file using Finale 97 that was based on the default file Default.ftm that is provided with Finale 97. The file was opened in each version of Finale with no OwnPS entry in the file Finale.ini or with "OwnPS=0", and printed to a PDF file with the Acrobat Distiller printer selected (which used the Adobe Postscript Printer Driver 4.2.4) and using a Print Quality and Graphics Resolution of 1200dpi. The Acrobat program was used to export an ASCII postscript file from the resulting PDF file. The counts shown in this table are those that were observed for the postscript file that was exported from the PDF file. Similar results were obtained by examining postscript files that were printed directly from Finale with the HP LaserJet 5000 PS Driver (which used the Postscript Printer Driver 4.00).

The default methods that have been described here which are used to represent graphical objects in Finale 98 and 2000 (and 2001) can cause PDF files created with these versions of Finale to be much larger than those created with Finale 97. (Note: This can result in slower printing of PDF files, an increase in the minimum memory required in postscript printers, higher costs for web storage of PDF files, slower downloads of PDF files from web sites, and slower electronic transfer of PDF files to printing services. Also, with these methods, the resolution is a dominant factor in determining the size of PDF files which is unexpected considering the fact that postscript is a language that supports scalable vector graphics.) For example, for a given test file, the following results were observed:
 
Size of PDF for a
Test File of Size 496K
(a Finale 97 MUS file)
Version No OwnPS Entry
(Default)
OwnPS=0
Finale 97 266,774 bytes 266,789 bytes
Finale 98 704,515 bytes 268,354 bytes
Finale 2000 (or 2001) 1,582,832 bytes 268,845 bytes

As this table shows, the setting "OwnPS=0" may be used in Finale 98 and 2000 (and 2001) to create PDF files that are relatively small and comparable in size to those created with Finale 97 and such files will be much smaller than those that may be created by using the default setting of "OwnPS=3" with these versions.

Unfortunately, there are disadvantages to using "OwnPS=0". The appearance of many graphical objects such as ties, hairpins and staff lines in the resulting PDF file can be substantially different from that which may be obtained by using the default setting of "OwnPS=3", or that which is displayed in a Finale document window.

For example, with "OwnPS=0", ties in PDFs will be smoother (since each arc is described as a single Bezier curve). This is illustrated by the following figures:


Figure 1a: Tie as Viewed in Finale 2000b Document Window


Figure 1b: Tie as Viewed in Acrobat Reader
PDF Created by Finale 2000b with OwnPS=3 (Default)


Figure 1c: Tie as Viewed in Acrobat Reader
PDF Created by Finale 2000b with OwnPS=0


And, with "OwnPS=0", hairpins may appear to be more jagged because each of the two legs which consist of a sequence of overlapping short line segments, do not overlap in the same way as they would with the default setting "OwnPS=3" as illustrated by the following figures which show the upper leg of a decrescendo hairpin for various cases:


Figure 2a: Hairpin as Viewed in Finale 2000b Document Window


Figure 2b: Hairpin as Viewed in Acrobat Reader
PDF Created by Finale 2000b with OwnPS=3 (Default)


Figure 2c: Hairpin as Viewed in Acrobat Reader
PDF Created by Finale 2000b with OwnPS=0


Also, it should be noted that staff lines that are n-pixels thick and are represented by n lines that are 1 pixel wide (as in Finale 98 and 2000 (and 2001)) do not scale in the same way as a line that is n pixels wide. Differences can be observed by using various view percentages in the Acrobat Reader program for two PDFs that have been created from the same document (using any version after Finale 97) where one has been created with "OwnPS=0" and the other has been created without an OwnPS entry.

It is suggested here that the methods used to describe graphical objects in postscript files be refined to be more efficient. For example, if it is impossible to represent the upper and lower boundaries of the ties of Finale 98 (or later) with a single Bezier curve, perhaps a sequence of connected Bezier curves could be used. And, if there is no benefit to representing n-pixel lines as n 1-pixel lines, then perhaps such lines can be represented by a single line of a specified width.

Note: All data provided in this suggestion was obtained by using versions of Finale for the Windows platform.

WARNING TO READERS: Anyone who plans to use the setting "OwnPS=0" to reduce the size of PDF files should be aware of the fact that changing this setting from the default value of 3 to 0 in Finale 98, 2000 (or 2001) can affect the appearance (e.g. shape, length, thickness or position) of any type of graphical object (e.g. staff lines, barlines, group brackets, stems, beams, tuplet brackets, ties, slurs, hairpins, glissando lines, dashed brackets, etc.) in PDF files. In some cases, these effects may be viewed as positive. For example, slurs and piano braces will be smoother. And, staff lines will not protrude through the right edge of the rightmost barline of a system as is the case with "OwnPS=3". However, one should expect that for some graphical objects, the effects will be negative. For example, the thickness of staff and ledger lines may be different from that which was obtained with the setting "OwnPS=3" and one may need to adjust appropriate settings in Finale to compensate for these differences. In some cases the difference may be substantial and undesirable. For example, with "OwnPS=0", the thin line of final barlines will be extremely thin (e.g. 1-pixel) regardless of the setting of the Thin Line Thickness text box on the Barlines dialog box. (Note: As a workaround for this behavior one could use a backward repeat barline in place of the final barline and hide the repeat dots by covering them with an opaque measure-attached expression, or if repeat barlines are not needed in the score, one could make repeat dots be a zero-width blank character by using the Music Characters dialog box, or one could move all repeat dots far off the page by setting the Vertical Dot Adjustment text boxes on the Repeat Bars dialog box to large values. Alternatively, a custom barline may be created by using the shape designer. Or, for those who know the postscript programming language, one could edit the postscript output file from Finale prior to creating a PDF file.)

For a related suggestion see: Suggestion 679: Make the Default Value of OwnPS be Zero on the Windows Platform.



Created: July 29, 2000 (based on comments by Dennis Bathory-Kitsz who raised concerns about large PDF files produced by versions after Finale 97 and observed that ties were smoother in Finale 97, Randy Stokes who explained the meaning of the undocumented values of 1 and 2 for the entry OwnPS, Barbara Touburg who communicated the adverse effects of "OwnPS=0" on final barlines, and Richard Yates who proposed the use of custom barlines as a workaround for this problem.)
Last Updated: July 29, 2000
Version: Finale 2000b