|Original author(s)||Leland Smith|
5.01 / 1 November 2013
SCORE is a scorewriter program, written in FORTRAN for MS-DOS by Stanford University Professor Leland Smith (1925–2013) 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.
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 (SAIL). The three men involved with the project (Leland Smith, David Poole and John Chowning) subsequently founded the Stanford Center for Computer Research in Music and Acoustics (CCRMA).
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 (the standard abbreviation for manuscript) 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, printed at 100dpi on a CalComp plotter and reduced by a factor of five for printing at 8.5"x11". 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 plotter and then optically reduced by a factor of two for lithographic printing.
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. 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. Passport Designs brought programmer 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. All versions after this were distributed and sold by Smith's company, San Andreas Press.
The SCORE music publishing system is made up of the main program, SCORE, and several associated utilities. These are:
- SPRINT, which sends typeset pages to PostScript printers or creates an EPS file
- PAGE, which handles part extraction, and layout for multiple pages of music simultaneously.
- DRAW, which draws symbols for inclusion in CODE 9 or CODE 11 libraries
- JUST, which aligns and justifies large scores with more than 32 staves per system
Version 3.10 replaced SPRINT with SCORLAS and SCORDOT which sent output to laser and dot matrix printers, respectively. ESCORT and SCOREINPUT were sold separately and allowed MIDI input from MIDI file and MIDI keyboard, respectively.
Version 3.11 was released in 1994 and is considered by some to be the most mature and stable version of SCORE. It was the last increment of version 3 and is still used commercially today.
Version 4.0 (known as SCOR4) was released in 1999, including 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.
The last minor update to SCOR4, numbered 4.01, was made on October 16, 2001.
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 (PAGE, JUST, DRAW, SCORLAS) 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.
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.
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 had 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.
Entering music symbolically
Music is usually entered using text codes from a standard ASCII keyboard (though a MIDI keyboard can be used purely for note entry), 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:
- Pass 1 defines note names (including accidentals and staff position, but not duration), rests (not duration), clefs, measure lines, key signatures, time signatures
- Pass 2 defines rhythmic values (durations) for notes and rests
- Pass 3 defines marks: articulations, accents, dynamics etc.
- Pass 4 defines the position of rhythmic beams
- Pass 5 defines the end points of slurs and ties
To create the staff:
||Input staff at vertical level 1|
||Sets the left end of the staff at position 0,|
the right end of the staff at position 200,
and uses staff level 1 (this staff) as the basis for spacing
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:
||Key signature 3 flats|
||4/4 time signature|
||Note C in octave 5|
||Note B natural in octave 4|
||Measure line (barline) on 1 system|
||Double measure line on 1 system|
||Eighth note (quaver)|
||Sixteenth note (semiquaver)|
||Quarter note (crotchet)|
||Half note (minim)|
||Fermata on note number 20|
||Mezzo-piano indication at position 0.74|
||Beam in groups of 2|
||Slur from note 1 to note 2, above the notes|
||Slur from note 11 to note 12, below the notes|
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 (although extra information may be included in the fourth parameter). 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:
|1||Notes||Staff No.||Horizontal Position||Vertical Position (Grace Note)||Stem Direction / Accidental||Notehead Type||Rhythmic Duration||Stem Length (Slash for Grace Note)||Flags / Dots||Horizontal Displacement||Articulations||Staff Displacement||Horizontal Displacement of Articulation||Vertical Displacement of Articulation||Size of Note||Ledger Line Thickness||Origin of Stem||Size of Articulation|
|4||Lines / Hairpins||Staff No.||Left Horizontal Position||Left Vertical Position||Right Vertical Position (Hairpin)||Right Horizontal Position||Type of Line (Normal, Dashed, Wavy)||Length of Dash / Width of Wave||Rotation / Space between Dashes / Height of Wave||Thickness||Left Bracket / Arrowhead||Right Bracket / Arrowhead||Rotation||Partial Hairpin||Vertical Line Offsets||Line End Point Offset||Line End Point Offset||Line End Point Offset|
|5||Slurs (Ties) / Tuplets / Endings||Staff No.||Left Horizontal Position||Left Vertical Position||Right Vertical Position||Right Horizontal Position||Curvature||Type of Slur (Tuplet / Ending)||Flattening Factor||Centre Point||Dashed Slur||Half Slur / Reversed Slur||Thickness||Partial Slur||Partial Slur||No. in Middle||Horizontal Displacement of No.||Vertical Displacement of No.|
|6||Beams / Tremolandi||Staff No.||Left Horizontal Position||Left Vertical Position (Cue Size)||Right Vertical Position||Right Horizontal Position||Stem Direction (Implied)||No. Above (Auto Divide)||Displacement||1st Secondary Beam Tremolandi||Left Position of 1st Secondary||Right Position of 1st Secondary||2nd Secondary Beam||Left Position of 2nd Secondary (left offset)||Right Position of 2nd Secondary (right offset)||Horizontal Position of Number over Beam||Thickness||Size|
|10||Numbers / Rehearsal Letters||Staff No.||Horizontal Position||Vertical Position||Number / Letter||Size||Font||Circle / Box Around||Thickness of Number (built-in fonts)||Thickness of Box / Circle||Horizontal Size (Box / Circle)||Vertical Size (Box / Circle)||Vertical Position of Number||Space between Digits||Horizontal Displacement of Number||Make Number Justifiable||Letter after Number||Extended Numbers / Letters|
|14||Barlines / Brackets||Staff No.||Horizontal Position||No. of Staves Connected||Type||Thickness||Horizontal Displacement||Partial Bracket||Size of Space (Dashed Barlines)||Origination Point||End Point||Marker for PAGE||Space between Double or Repeat Bars||Space between Dots and Lines of Repeat Bars||...||Vertical Position of Repeat Dots||Special Double Bar Spacings||Sets Gap in Bar|
|Size of Dots with Repeat Bars|
|17||Key Signatures||Staff No.||Horizontal Position||Vertical Position||No. (type) of Accidentals||Clef Type||Space Between Accidentals||Irregular Key Signatures||Irregular Key Signatures||Irregular Key Signatures||Irregular Key Signatures||Irregular Key Signatures||Irregular Key Signatures||Ignore Lineup and Justify||Horizontal Displacement||Irregular Key Signatures||Irregular Key Signatures||Extended 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:
|Staff No.||Horizontal Position|
The key signature:
|Staff No.||Horizontal Position||Vertical Position||No. (type) of Accidentals|
The time signature:
|Staff No.||Horizontal Position||Vertical Position||Top No.||Bottom No.|
The dynamic marking ('mp'):
|Staff No.||Horizontal Position||Vertical Position||Library No.||Horizontal Size|
The rest in the first bar:
|Staff No.||Horizontal Position||Vertical Position (Cue Size)||Type of Rest||Dots (Invisible Rest)||Rhythmic Duration|
The first B natural in the first bar:
|Staff No.||Horizontal Position||Vertical Position||Stem Direction / Accidental||Notehead Type||Rhythmic Duration||Stem Length||Flags / Dots|
The second slur in the first bar:
|Staff No.||Left Horizontal Position||Left Vertical Position||Right Vertical Position||Right Horizontal Position||Curvature||Type of Slur (Tuplet / Ending)|
The first barline:
(Barlines / Brackets)
|Staff No.||Horizontal Position||No. of Staves Connected|
The last note (half note, or minim):
|Staff No.||Horizontal Position||Vertical Position||Stem Direction / Accidental||Notehead Type||Rhythmic Duration||Stem Length||Flags / Dots||Horizontal Displacement||Articulations|
IF P3>100 THEN P3=P3-20 will move all items on all staves which are beyond position 100 (
P3>100), 20 steps to the left (
IF (P1=1 AND P2<4) OR (P1=2 AND P2>=6) THEN DEL will delete all notes (
P1=1) on staves lower than 4 (
P2<4) and all rests (
P1=2) on staves greater than or equal to 6 (
IF (P1=1 AND P2>3 AND MOD(P9,10)<>0) OR (P1=1 AND P2=1 AND P3>100) THEN P11=5, P6=6 If notes (
P1=1) are on a staff above 3 (
P2>3) and have tails (the result of P9 MOD 10 is not 0), or notes (
P1=1) are on staff 1 (
P2=1) and to the right of position 100 (
P3>100), then the notes will be given an accent (
P11=5) and an X-shaped notehead (
Some functionality was limited in the implementation, such as nested parentheses being unsupported (except for use with MOD()), 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.
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 (currently 5). The next word back is the measurement code (0 = inches, 1 = metric). The next back is the program version number. The next is the program serial number (a converted integer). 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 (32-bit) floating-point words. Each item is defined by a parameter count followed by its given parameters.
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.
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.
- Rothman, Philip (28 December 2013). "Bill Holab on Leland Smith and SCORE". Scoring Notes. Retrieved 2 December 2018.
- Selfridge-Field, Eleanor (1997). Beyond MIDI: The Handbook of Musical Codes (First ed.). Massachusetts: MIT Press. p. 252. ISBN 978-0262193948.
- Smith, Leland (Jan–Feb 1972). "SCORE - A Musician's Approach to Computer Music" (PDF). Journal of the Audio Engineering Society. 20 (1): 7–14. Retrieved 30 December 2019.
- "The SCORE Music Publishing System". SCORE Music. San Andreas Press. Archived from the original on 2019-06-02. Retrieved 28 December 2019.
- Selfridge-Field, Eleanor (Summer 2014). "Leland Smith (1925-2013)". Computer Music Journal. 38 (2): 5–7. doi:10.1162/COMJ_e_00246. Retrieved 7 January 2020.
- Smith, Leland (1971). Six Bagatelles for Piano. Palo Alto, CA: San Andreas Press.
- Smith, Leland (23 October 2013). "WinScore Help File (CHM)". WinScore. San Andreas Press. Archived from the original on 29 December 2019. Retrieved 7 January 2020.
- "SCORE Products - Six Bagatelles". SCORE Music. San Andreas Press. Archived from the original on 2019-05-13. Retrieved 24 Jan 2021.
- Smith, Leland (1979). Handbook of Harmonic Analysis. Palo Alto, CA: San Andreas Press.
- Scholz, Carter (September 1988). "Passport Designs Score, An IBM PC Music Notation Program". Electronic Musician. San Bruno, CA: Mix Publications. pp. 76–83.
- Smith, Leland (1993). SCORE Version 3.10 Manual Additions. Palo Alto, CA: San Andreas Press. pp. 1.01–1.02.
- Rothman, Philip (28 December 2013). "Thomas Brodhead on Leland Smith and SCORE". Scoring Notes. Retrieved 2 December 2018.
- Smith, Leland (1999). SCORE4 Manual. Palo Alto, CA: San Andreas Press. pp. 2–7.
- Smith, Leland. "SAP Download Page". The SCORE Music Publishing System. San Andreas Press. Archived from the original on 12 April 2009. Retrieved 22 January 2020.
- Gibson, Stephen (18 February 2009). "WINSCORE (Score 5)". Acadia University. Retrieved 27 December 2019.
- "San Andreas Press WinScore". WinScore. San Andreas Press. Archived from the original on 29 December 2019. Retrieved 7 January 2020.
- Signell, Karl (Spring 1991). "Review". Journal of the American Musicological Society. 44 (1): 136–148. doi:10.2307/831732. JSTOR 831732.
- "News". Viola da Gamba Society of America (VdGSA) News. 35–36: 9. June 1999.
- "Purchase". WinScore. San Andreas Press. Archived from the original on 26 December 2019. Retrieved 28 January 2020.
- Wander, Robin (10 January 2014). "Stanford Professor Leland Smith, innovative music creator, dies at 88". Stanford Report. Stanford University. Retrieved 28 December 2019.
- Selk, Jürgen. "ScorBox - Homepage". ScorBox. Retrieved 2 December 2018.
- Hertelendy, Paul (25 January 1987). "Software for sweet airs". San Jose Mercury News (Arts & Books). Bay Area News Group. Mercury News.
- Aikin, Jim (July 1988). "Keyboard Report: SCORE". Keyboard. Future.
- "Music Notation Software". PC Magazine. Ziff Davis. 29 November 1988. Retrieved 28 January 2020.
- Kendall, Rob (11 June 1991). "SCORE: Notation Power at a Price". PC Magazine. Ziff Davis. Retrieved 28 January 2020.
- Smith, Leland (1992). SCORE Reference Manual Version 3.0 (PDF). Palo Alto, CA: San Andreas Press. pp. 1–177.
- Gibson, Stephen. "ScorEdit conditional editor". New Notations London. Ararat Software. Retrieved 28 December 2019.
- Brodhead, Thomas. "EDITSCOR (ES.EXE)". Brodhead Music Typography. Archived from the original on 2 October 2015. Retrieved 29 January 2020.
- de Kloe, Jan (6 May 2018). "Music Engraving Software Utilities". Retrieved 2 December 2018.
- Brodhead, Thomas (4 May 2014). "SCORE utilities". Brodhead Music Typography. Archived from the original on 2 October 2015. Retrieved 5 June 2019.
- Brodhead, Thomas (19 December 2014). "Installing SCORE on Windows XP and later". Brodhead Music Typography. Archived from the original on 2 October 2015. Retrieved 2 December 2018.
- "Boxer Homepage". BoxerApp. Retrieved 11 February 2020.