DARMS notation
From Wikipedia, the free encyclopedia
DARMS notation is a form of music representation for computers. Initially known as Ford–Columbia Music Representation as the funding came from the Ford Foundation via Columbia University, it was designed by Stefan Bauer-Mengelberg as a method of creating performance materials for the New York Philharmonic that could be entered by people with no knowledge of conventional Western music notation: all that was required was counting lines and spaces on a score.[1]
DARMS stands for digital alternative representation of musical scores, and the acronym is in honour of an early advocate of the project. Conceived in 1961 and released at a conference at Binghamton University in 1966, DARMS is still in use today in academic institutions, and was used as input for third-party music engraving software till the mid-1990s.[1]
Space codes
The fundamental idea of DARMS is that in a horizontal measure, the only feature of concern is vertical simultaneity (i.e. simultaneous events) not horizontal displacement. The amount of horizontal displacement is not encoded and is determined later if required. The delimiter used is the space.
Using the space between staff lines as the basic unit of vertical displacement, the bottom line of the staff is given a space code of 21, the space above it 22, the next line is 23, and so on. There is the capacity to encode ten ledger lines either side of the staff, giving a total range of 01 to 49 to describe the vertical position of a note on the staff. Space Code 00 (or 50, 100 etc.) is used to locate items above the topmost stave of the instrument: for example a tempo instruction.

Additional staves for the same instrument, for example a piano grand staff or the three staves used by organ scores, would use Space Codes 51–99 and 101–149 respectively.
Using a convention called 2-Suppression, if space codes are given as single digits (1–9), they're assumed to fall on the default staff, i.e. they can be considered to be equivalent to codes 21–29.[2]
Notes
Note durations are given an alphabetic mnemonic duration code:
| Note duration | Duration code |
|---|---|
| Breve | B |
| Whole note | W |
| Half note | H |
| Quarter note | Q |
| Eighth note | E |
| Sixteenth note | S |
| Thirty-second note | T |
| Sixty-fourth note | X |
| 128th note | Y |
| 256th note | Z |
U or D indicates stem direction. An R before the duration code indicates a rest.
Slurs are designated by the addition of L (for link or legato) on the start and end notes; Slur Identifiers can be used to distinguish slur groups, L1, L2 etc.
Beaming is indicated by parentheses ( ) around each beamed group, and multiple beams can be distinguished with an additional beam system identifier, B1, B2 etc.
Commas are used to separate items sharing the same vertical alignment, for example, two voices sharing the same staff. The code 4QD,6QU describes a downstemmed quarter-note at vertical position 4, below an upstemmed quarter-note at vertical position 6.[2]

Chords are indicated by + followed by the note intervals for example 2+2+2Q would describe a root position triad of quarter-notes.

Other staff items
Other non-note items are prefaced by an exclamation point !, for example:
| Item | Item code |
|---|---|
| !G | Treble clef (G clef) |
| !M3:4 | 3 4 time signature |
| !K4# | Four sharps key signature |
| !VPP | Dynamic marking (volume) of pp (pianissimo) |
Text items (strings) are contained between @ and $ and capital letters are prefixed with a ¢.[3]
To get Allegro marked above the stave, the string 00@¢ALLEGRO$ is used.
To indicate that a breath mark (comma) follows a note, ANE?, would be used: A=attached, NE=North-East, ?,=comma

Fingering is indicated by the prefix F, for example 6QF5 would put a fingering numeral 5 above a quarter-note on the sixth Space Code.

A direction can also be applied, using the same compass directions as above, for example to put the fingering numeral to the left (i.e. West) of the notehead, 6QFW5 would be used.[4]

Groupettes
Groupettes are used to define what are now called tuplets – of the form !mxi:ny where m is the number of notes of duration x that occupy the same time span that n notes of duration y would occupy, and i is the groupette identifier. For example !5Q7:4Q indicates that 5 quarter-notes will occupy the time that 4 quarter-notes would usually fill (7 is the Groupette Identifier).[4]
Linear decomposition
A complex instrumental part can be encoded in several passes to make entering and reading it more straightforward. For example, piano music of bass and treble staves; vocal lines and text; a four-part SATB chorale in four passes; breaking baroque bass parts into notes and figured bass. The start of a pass is marked by !&, the end of a pass with &, and the end of the final pass with &$. ¬ is a skip code, indicating that no further operations take place either for the specified duration (i.e. ¬H), till after a number of barlines (i.e. ¬/2 two barlines), or a combination of both (i.e. ¬/5QE five barlines plus a quarter-note plus an eighth-note)[4].
For example !&,8H 7H / 6W //,&,!VF ¬H !VP ¬/2,&$7Q

Data suppression
Unless stated, most elements propagate. So it's unnecessary to keep adding the Q in a series of quarter-notes: 4Q 5Q RQ 2Q could be more conveniently stated as 4Q 5 R 2.

Similarly, if a pitch is not restated, it may be assumed to propagate: 4E R / S propagates the eighth-note duration from the first note to the following rest, and then the Space Code 4 is propagated to the sixteenth-note that beginds the second bar.[5]

To encode the first two bars of Bach's chorale Nun komm' der Heiden Heiland, the following DARMS code is required:

!& !G !MC 4HU RS (4U 5U 2#U) 3QU / 6U (5U 4U) 5HU /
& RS ((0D) 1JD) (ID 0#JD) 0QD RSD ((0D) 1JD) /
(1D 3#D 4D 0#D) 1QJD ((1D 1D) 2*JD) ((2D 0*D ID 18D)) /
& 1+50 !F !MC RES 30SU 31QJU QU
& RQS ((8#D) 9JD) 9QD (30.D (30D)) /
29QD RS ((30D 31D 7#D)) (8#D 9JD) (9D 8D)
& 1+100 !F !MC RQES 2S (6. (5#)) 6Q / 7#Q (8# 9) (6. (5*))
(6 19) / &$1+0
In addition to data suppression, DARMS allowed for a number of shorthand data entry methods which saved time and repetition of information. This led to various implementations of DARMS, known as 'dialects' being used by a number of developers, computer scientists and researchers for various projects, which used greater or lesser amounts of data suppression and modifications for specific score types.
Printing and publishing
Research and analysis
Dialects of DARMS were written by Alexander Brinkman to study Bach's Orgelbüchlein,[6][7] Raymond Erickson to study 12th century chant and its rhythmic features,[4], Harry Lincoln at Binghamton University to create and sort 38,000 incipits of 16th century madrigals, and John Whenham to study 17th century Italian cantatas.[1]
To allow interchange of data between programs and institutions, a fixed, formal and unambiguous version of DARMS was defined. Known as canonical-DARMS (to differentiate it from the various input-DARMS methods and dialects mentioned above), everything was specified for every item (there was no data suppression), item codes had a defined order and there were no modifications to the DARMS structure described in the 1976 DARMS Manual.[4]