Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

// request.cf · coarse context

A page that knows where it met you.

Only coarse request metadata is shown. This demo does not display or persist visitor IP addresses.

Country
US
Cloudflare location
CMH
Connection
HTTP/2
Language
Not provided

Ray ID: a2259ebccad73f27

Jump to content

DARMS notation

From Wikipedia, the free encyclopedia

DARMS notation (Digital Alternative Representation of Musical Scores) 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]

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]

The language

[edit]

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.

Space codes

[edit]

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.

How the space code is assigned within the DARMS music encoding language

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

[edit]

Note durations are given an alphabetic mnemonic duration code:

Note durationDuration code
Breve double whole noteB
Whole note whole noteW
Half note half noteH
Quarter note quarter noteQ
Eighth note eighth noteE
Sixteenth note sixteenth noteS
Thirty-second note thirty-second noteT
Sixty-fourth note sixty-fourth noteX
128th noteY
256th noteZ

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]

DARMS Code 6QU,4QD
ItemItem Code
Sharp #
Double-Sharp double sharp##
Flat
Double-Flat double flat
Natural *
Staccato'
Staccatissimo''
Tenuto_
Marcato>
Fermata;
Barline/
Double barline//
Thick barline!/
Final barline/!/
Start repeat!//:
End repeat:/!/

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

DARMS Code 2+2+2Q

Other staff items

[edit]

Other non-note items are prefaced by an exclamation point !, for example:

ItemItem code
!GTreble clef (G clef) treble clef
!M3:43
4
time signature
!K4#Four sharps key signature E major
!VPPDynamic 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

DARMS Code 7QANE?,

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.

DARMS Code 6QF5

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]

DARMS Code 6QFW5

Groupettes

[edit]

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

[edit]

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

DARMS linear decomposition

Data suppression

[edit]

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.

DARMS code 4Q 5Q RQ 2Q

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]

DARMS code 4E R / S

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

First two bars of the chorale from Bach BWV 599 "Nun komm' der Heiden Heiland"
!& !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

[edit]

Specific dialects of DARMS were written by Stephen Dydo for The Note Processor,[5] Thomas Hall for A-R Editions, and John Dunn for COMUS Music Printing Software.[1]

Research and analysis

[edit]

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]

DARMS extensions

[edit]

Lute code is an extension of Note-Processor DARMS, written by Frans Wiering – it facilitates printing of tablature, producing a rough chordal transcription of the tablature and is aimed at 16th and 17th century French and Italian tablature.

Lynn Trowbridge's Linear Music Input Language is a modified subset of DARMS for mensural notation.[1][8]

Limitations

[edit]

The decision to eliminate any encoding of horizontal spacing means that all page layout, casting off, and justification decisions are not included within the DARMS structure, leaving such decisions to the software displaying or printing the score.[9]

References

[edit]
  1. 1 2 3 4 5 Selfridge-Field, Eleanor (1997). "DARMS, Its Dialects, and Its Uses". In Selfridge-Field, Eleanor (ed.). Beyond MIDI. Cambridge, Massachusetts: The MIT Press. pp. 163–214. ISBN 0-262-19394-9.
  2. 1 2 Bauer-Mengelberg, Stefan (1970). "The Ford-Columbia Input Language". In Brook, Barry (ed.). Musicology and the Computer. New York City: The City University of New York Press. pp. 48–52.
  3. Erickson, Raymond (Spring 1977). "Musicomp 76 and The State of DARMS". College Music Symposium. 17 (1): 90–101. JSTOR 40373862.
  4. 1 2 3 4 5 Erickson, Raymond (June 1976). DARMS – A Reference Manual (PDF). Queens College, Flushing, New York: The DARMS Project. Retrieved 31 March 2026.
  5. 1 2 Dydo, Stephen (1987). "Data Structures in The Note Processor". Proceedings of the International Computer Music Conference: 311–316. Retrieved 31 March 2026.
  6. Brinkman, Alexander (Autumn 1986). "Representing Musical Scores for Computer Analysis". Journal of Music Theory. 30 (2): 225–275. JSTOR 843576.
  7. Brinkman, Alexander (1990). Pascal Programming for Music Research. Chicago: The University of Chicago Press. pp. 751–815. ISBN 0-226-07507-9.
  8. Trowbridge, Lynn (Spring 1986). "Style Change in the Fifteenth-Century Chanson: A Comparative Study of Compositional Detail". The Journal of Musicology. 4 (2): 146–170. doi:10.2307/763793.
  9. Gomberg, David (April 1977). "A Computer-Oriented System for Music Printing". Computers and the Humanities. 11 (2): 63–80. JSTOR 30199863.