SCORE (software)


SCORE is a scorewriter program, written in FORTRAN for MS-DOS by Stanford University Professor Leland Smith with a reputation for producing very high-quality results. It was widely used in engraving during the 1980s and 1990s and continues to have a small, dedicated following of engravers, many of whom regard it as the world's best music-engraving program due to its ability to precisely position symbols on the page. Several publications set using SCORE have earned Paul Revere and German Musikpresse engraving awards.

Program development

Mainframe origins

SCORE began in 1967 as a means of entering music into the MUSIC V sound generating system running on the PDP-10 mainframe computers at the Stanford Artificial Intelligence Laboratory. The three men involved with the project subsequently founded the Stanford Center for Computer Research in Music and Acoustics.
As vector graphics terminals became available in the early 1970s, the parametric approach to describing musical information that had been designed for MUSIC V was adapted by Smith into a program called MS for printing musical scores. The graphics plotters used for output were not able to plot curves so MS did not use music fonts as they are understood today, instead using user-editable symbol libraries based on polygons; only page text such as the title and composer were saved as text from a PostScript Type 1 font.
The first printing of a complete musical work set entirely by computer was of Smith's Six Bagatelles for Piano which appeared in December 1971, and the first book set entirely by computer to be published was his Handbook of Harmonic Analysis in 1979, created on the PDP-10 computer at SAIL using the PUB typesetting program in conjunction with MS. The printing was done at double size on a Varian Data Machines Statos electrostatic printer and then optically reduced for lithographic printing.
From its creation until 1985, all development of MS was either done on the PDP-10 computers at Stanford or during residencies at IRCAM in the Pompidou Centre, Paris.

Commercial development

Between 1985 and 1986 MS was ported to the Tandy 2000 running MS-DOS under the new name of SCORE. This was released in 1987 as Version 1 by Passport Designs; and updated to version 2 in August 1988. Passport Designs brought Perry Devine in to help make the program more user-friendly and William Holab to rewrite the manuals, which resulted in version 3.0 in 1990, and 3.11 in 1994. Version 4.0 was released in 1999. The last minor update to SCOR4, numbered 4.01, was made on October 16, 2001.
The German music publisher Schott Music began using SCORE in 1988 and their in-house engraving typefaces became the basis for SCORE's symbol library.
The SCORE music publishing system is made up of the main program, SCORE, and several associated utilities. These are:
Version 3.0 included the SPRINT program which was the forerunner of SCORLAS, and Version 3.10 also had SCORDOT which sent output to dot matrix printers. ESCORT and SCOREINPUT were sold separately and allowed MIDI input from MIDI file and MIDI keyboard, respectively.
Version 4 included automatic lute and guitar tablature systems, MIDI playback, allowed the editing of groups of items simultaneously by drawing boxes with the mouse, a conditional editor, and various user interface improvements relating to file access and use of a mouse.
WinScore, the Microsoft Windows version, was released to beta in 2008 as version 5.00. Improvements included increasing the possible number of staves on pages, removing the limits on items and vectors per page, a WYSIWYG interface, use of colour, native MIDI input and playback, extending the number of parameters per item to 36, and integrating all previous SCORE utilities into the main program. WinScore suffered from memory leaks and other bugs which prevented its adoption by many users, and despite officially being released on December 8, 2012, it was still effectively in beta development at the time of its last update to 5.01 on November 1, 2013, six weeks before Smith's death.
The basis of SCORE was written in FORTRAN with all the mouse and graphics routines written in Intel assembly language. WinScore was created using a combination of Visual C++ and 32-bit DEC FORTRAN.

Pricing

On release in 1987, SCORE version 1 cost $695, version 2 in 1988 was $995, version 3 in 1991 was $795, version 4 in 1999 was $825, and WinScore, in 2013, was $300.
In 1990 it cost $295 to update from an earlier version to version 3.
In 1999 it cost $125 to update from 3.11 to 4.0.
In 2013 to update to WinScore from version 3 cost $200, and from version 4, $100.

Abandonment

With Smith's death on December 17, 2013, both SCORE and WinScore are abandonware and the website registrations have lapsed.

Product reviews

Version 1 was announced in the press at the beginning of 1987 with an expected release date of April that year, and a predicted price tag of $500.
Writing for Electronic Musician, Carter Scholz found the interface 'opaque and maddening' though concluded SCORE was an 'amazing' 'power tool' which 'sets a new standard' for professionals for whom ease of use would be less important than the results which could be obtained. A math coprocessor was considered essential to prevent the program response being sluggish when handling the floating-point arithmetic for screen operations.
Keyboard's Jim Aikin agreed that a considerable investment of time was required to learn the package. Scholz had three months and admitted he'd only 'scratched the surface' of its capabilities. Aikin came to similar conclusions, suggesting improvements to the interface and input methods would make it more accessible.
PC Magazine, reviewing SCORE at the end of 1988, concluded that the software was aimed at accomplished musicians who were prepared to put in the time to learn it, and that the design of the program and manual were thorough and clear.. Three years later the same magazine described the program as having 'ushered in the era of true desktop music publishing' allowing musicians to turn out 'engraver-quality printed music of any complexity', but still admitting that it had a 'ruthlessly difficult interface', a 'confusing amalgam of command line and function keys' which 'never fully made the transition from the mainframe computers' where it originated. Editing music once entered was 'cumbersome and daunting' and the poor documentation made the program even more inaccessible.

Program use

Entering music symbolically

Music is usually entered using text codes from a standard ASCII keyboard, and several passes are required to enter all the information. After the page has been set up with appropriate staves, information is entered voice by voice as follows:
For example, to create these two bars of Bach's Fugue in C minor, BWV 847 from Book I of the Well-Tempered Clavier:
To create the staff:
The five passes of data entry:
These show the use of the following text codes - note that '/' is a delimiter and ';' marks the end of each pass:
Pass 1
Pass 2
Pass 3
Pass 4
Pass 5

Editing music graphically/numerically

Once the music has been entered using the five-stage input mode described above, the musical data is converted into graphical objects that are stored in memory and in SCORE data files as lists of numbers. Here is the numerical representation of the BWV 847 fugue theme example:

8 1 0 0 0 200
3 1 1.5
17 1 9.416 0 -3
18 1 19.016 0 4 4
2 1 26.516 0 1 0 0.5
1 1 34.835 8 20 0 0.25
9 1 34.835 -3 54 1 0 0 0 0 0 0 0 0 -5
6 1 34.835 8 7 41.43 22
5 1 34.835 10 10 41.43 1.1093 -1
1 1 41.435 7 23 0 0.25
1 1 47.233 8 10 0 0.5 -1
6 1 47.233 7 5.5 55.55 11
1 1 55.551 5 10 0 0.5 0.5
1 1 64.122 6 20 0 0.5
6 1 64.122 6 7 78.24 21 0 0 11 72.44 78.24
1 1 72.441 8 20 0 0.25 1.33
5 1 72.441 10 10 78.24 1.1092 -1
1 1 78.239 7 20 0 0.25
1 1 84.037 8 20 0 0.5
6 1 84.037 8 9 92.36 21
1 1 92.355 9 20 0 0.5
14 1 100.842 1
1 1 104.174 5 10 0 0.5 3
6 1 104.174 8 8 119.09 11 0 0 11 112.49 119.09
1 1 112.493 8 10 0 0.25
5 1 112.493 6 4 119.09 -1.3092 -1
1 1 119.093 7 13 0 0.25 1
1 1 125.143 8 20 0 0.5
6 1 125.143 8 9 133.46 21
1 1 133.462 9 20 0 0.5
1 1 141.781 4 10 0 0.25
6 1 141.781 4 5 147.58 12
5 1 141.781 2 4 153.38 -1.5185 -1
1 1 147.578 5 10 0 0.25
1 1 153.376 6 10 0 1
1 1 165.476 5 10 0 0.25
6 1 165.476 5 4 171.27 12
5 1 165.476 2 2 171.27 -1.1092 -1
1 1 171.274 4 10 0 0.25
14 1 178.274 1
1 1 181.606 3 10 1 2 0 0 0 14
14 1 200 1 1

Each line represents one graphical object, and the first three numbers on a line typically have the same meaning for every object: the first number is the object type, the second is the staff on which the object belongs, and the third object is the horizontal position of the object along the full width of the paper, with 0.0 representing the left margin, and 200.0 representing the right margin. The fourth number contains the vertical position of the note on the staff. The bottom line of the staff is vertical position 3, the bottom space of the staff is 4, and so on.
SCORE breaks down musical information into the following objects: Notes, Rests, Clefs, Lines, Slurs, Beams, Trills, Staves, Symbols, Numbers, User Symbols, Guitar Grid, Barlines, Graphics, Text, Key Signatures, Time Signatures
Here are selected objects and their associated parameters:
Parameter 1
NameParameter
2
Parameter
3
Parameter
4
Parameter
5
Parameter
6
Parameter
7
Parameter
8
Parameter
9
Parameter
10
Parameter
11
Parameter
12
Parameter
13
Parameter
14
Parameter
15
Parameter
16
Parameter
17
Parameter
18
1NotesStaff No.Horizontal PositionVertical Position Stem Direction / AccidentalNotehead TypeRhythmic DurationStem Length Flags / DotsHorizontal DisplacementArticulationsStaff DisplacementHorizontal Displacement of ArticulationVertical Displacement of ArticulationSize of NoteLedger Line ThicknessOrigin of StemSize of Articulation
4Lines / HairpinsStaff No.Left Horizontal PositionLeft Vertical PositionRight Vertical Position Right Horizontal PositionType of Line Length of Dash / Width of WaveRotation / Space between Dashes / Height of WaveThicknessLeft Bracket / ArrowheadRight Bracket / ArrowheadRotationPartial HairpinVertical Line OffsetsLine End Point OffsetLine End Point OffsetLine End Point Offset
5Slurs / Tuplets / EndingsStaff No.Left Horizontal PositionLeft Vertical PositionRight Vertical PositionRight Horizontal PositionCurvatureType of Slur Flattening FactorCentre PointDashed SlurHalf Slur / Reversed SlurThicknessPartial SlurPartial SlurNo. in MiddleHorizontal Displacement of No.Vertical Displacement of No.
6Beams / TremolandiStaff No.Left Horizontal PositionLeft Vertical Position Right Vertical PositionRight Horizontal PositionStem Direction No. Above Displacement1st Secondary Beam TremolandiLeft Position of 1st SecondaryRight Position of 1st Secondary2nd Secondary BeamLeft Position of 2nd Secondary Right Position of 2nd Secondary Horizontal Position of Number over BeamThicknessSize
10Numbers / Rehearsal LettersStaff No.Horizontal PositionVertical PositionNumber / LetterSizeFontCircle / Box AroundThickness of Number Thickness of Box / CircleHorizontal Size Vertical Size Vertical Position of NumberSpace between DigitsHorizontal Displacement of NumberLetter after NumberExtended Numbers / Letters
14Barlines / BracketsStaff No.Horizontal PositionNo. of Staves ConnectedTypeThicknessHorizontal DisplacementPartial BracketSize of Space Origination PointEnd PointMarker for PAGESpace between Double or Repeat BarsSpace between Dots and Lines of Repeat Bars...Vertical Position of Repeat DotsSpecial Double Bar SpacingsSets Gap in Bar
14Barlines / BracketsStaff No.Horizontal PositionNo. of Staves ConnectedTypeThicknessHorizontal DisplacementPartial BracketSize of Space Origination PointEnd PointSize of Dots with Repeat BarsSpace between Double or Repeat BarsSpace between Dots and Lines of Repeat Bars...Vertical Position of Repeat DotsSpecial Double Bar SpacingsSets Gap in Bar
17Key SignaturesStaff No.Horizontal PositionVertical PositionNo. of AccidentalsClef TypeSpace Between AccidentalsIrregular Key SignaturesIrregular Key SignaturesIrregular Key SignaturesIrregular Key SignaturesIrregular Key SignaturesIrregular Key SignaturesIgnore Lineup and JustifyHorizontal DisplacementIrregular Key SignaturesIrregular Key SignaturesExtended Numbers / Letters

Unlike most music typesetting editors, understanding and manipulation of these numerical parameters are expected of SCORE users. The conditional editor added in version 4 also allows automation of manipulation of these numeric values, and external processing of the variables can be performed. To access the numeric parameters of objects within SCORE, a user clicks on a graphical element, and a list of the parameters is displayed at the top of the editor as shown in the screenshot, where a slur is selected.
SCORE was creative in packing as much information as possible into each numeric parameter. For example, Parameter 5 of CODE 1 is described as 'stem direction/accidental' but uses each place value to encode a different piece of information:
Here are selected examples of objects from the numeric parameter data:
CODE P2P3
3
Staff No.Horizontal Position
3
1.01.50

The key signature:
CODE P2P3P4P5
17
Staff No.Horizontal PositionVertical PositionNo. of Accidentals
17
1.09.5.00-3.00

The time signature:
CODE P2P3P4P5P6
18
Staff No.Horizontal PositionVertical PositionTop No.Bottom No.
18
1.019.6.004.004.00

The dynamic marking :
CODE P2P3P4P5P6
9
Staff No.Horizontal PositionVertical PositionLibrary No.Horizontal Size
9
1.021.17-2.0054.001.00

The rest in the first bar:
CODE P2P3P4P5P6P7
2
Staff No.Horizontal PositionVertical Position Type of RestDots Rhythmic Duration
2
1.026.60.001.00.00.500

The first B natural in the first bar:
CODE P2P3P4P5P6P7P8P9
1
Staff No.Horizontal PositionVertical PositionStem Direction / AccidentalNotehead TypeRhythmic DurationStem LengthFlags / Dots
1
1.032.967.0023.00.00.250.00.00

The second slur in the first bar:
CODE P2P3P4P5P6P7P8
5
Staff No.Left Horizontal PositionLeft Vertical PositionRight Vertical PositionRight Horizontal PositionCurvatureType of Slur
5
1.063.4310.0010.0067.781.118-1.00

The first barline:
CODE P2P3P4
14
Staff No.Horizontal PositionNo. of Staves Connected
14
1.089.541.00

The last note :
CODE P2P3P4P5P6P7P8P9P10P11
1
Staff No.Horizontal PositionVertical PositionStem Direction / AccidentalNotehead TypeRhythmic DurationStem LengthFlags / DotsHorizontal DisplacementArticulations
1
1.0166.183.0010.001.002.000.00.00.0014.00

Conditional editing

With version 4, conditional editing was included in the main program. This allowed users to write conditional statements in a language similar to BASIC. For example,
will move all items on all staves which are beyond position 100, 20 steps to the left.
will delete all notes on staves lower than 4 and all rests on staves greater than or equal to 6.
If notes are on a staff above 3 and have tails, or notes are on staff 1 and to the right of position 100, then the notes will be given an accent and an X-shaped notehead.
Some functionality was limited in the implementation, such as nested parentheses being unsupported ), being unable to edit text, being unable to cross-compare and edit different items simultaneously, and being unable to read macros in sequence from a source file. To remedy this, two third party utilities were developed to take full advantage of the possibilities of conditional editing: ScorEdit from Ararat Software, and EDITSCOR from Brodhead Music Typography.
WinScore allowed macros to be read in sequence from source files, but did not add any more functions.

Output

Music notation data is saved in a proprietary but open format:
The files are saved in binary format where the first word is the word count for the entire file. The word count is normally a 16-bit integer; however, if the word count exceeds about 31000, then a 32-bit integer is used. Saved files with less than 31000 words can be read back into the earlier versions of SCORE, except, of course, any new features of WinScore will be ignored. Files with greater than 31000 words cannot be read by the earlier versions of SCORE. The files are concluded with a 6-word trailer. The last word is -9999. The next word back is the count of the preceding trailer words. The next word back is the measurement code. The next back is the program version number. The next is the program serial number. The first word of the trailer is currently undefined. After the initial integer word count, the rest of the file consists entirely of 4-byte floating-point words. Each item is defined by a parameter count followed by its given parameters.

Files usually have the extensions ".mus" or ".pag", though any extension is permitted.
SCORE creates PostScript graphics that can either be sent to a PostScript printer or saved as an Encapsulated PostScript file. For creating publications the EPS graphics can be imported into a desktop publishing program.

Extensions

There are a number of third party utilities which take advantage of the open file format to extend the programs' functionalities and share data with other notation programs.

Use with modern systems

The MS-DOS versions of SCORE can still be run on modern operating systems through the use of virtual machines, though accommodations need to be made for their age.. The most common MS-DOS emulators for SCORE are DOSBox in Windows, or Boxer in MacOS.