Humdrum Representation for Pitch-Class


**pc -- pitch-class representation


The **pc representation can be used to characterize pitch-class or chroma information. Two pitches are said to share the same pitch-class or chroma when they are octave equivalents. No distinction is made between enharmonic spellings. Hence C-sharp4 and D-flat7 belong to the same pitch-class. In traditional set theory, pitch-classes are identified by integer values between 0 and 11, where C=0, C-sharp/D-flat=1 ... B=11.

Three types of data tokens are distinguished by **pc: pitch-class tokens, rest tokens, and barlines.

Pitch-class tokens are encoded as either numeric, or mixed alphabetic and numeric values. Following traditional practice, **pc encodes pitch-classes using the integer values between 0 and 11, where C=0, C-sharp/D-flat=1 ... B=11. The **pc representation provides aliases for the integers 10 and 11 (`A' and `B' respectively). (Encodings using purely numeric values are especially useful when the representation is to be processed numerically. Encodings using mixed alphanumeric values are often better suited to pattern matching and searching tasks.§) (§ For example, where `10' and `11' are present in a stream of data, the regular expression to search for pitch-class `1' is (^|[^1])1([^01]|$), whereas the corresponding regular expression for alphanumeric pitch-class data is simply 1.)

In addition to the basic pitch-class information, **pc also provides limited capabilities for representing articulation marks, ties, slurs, and phrasing. Slurs and phrase markings can be nested (slurs within slurs) and may also be elided. Nested markings mean that one slur or phrase is entirely subsumed within another slur or phrase. For example: ( ( ) ) means that a short slur has occurred within a longer slur. Elisions are overlaps, for example, where an existing phrase fails to end before a new phrase begins. In **pc the ampersand character is used to mark elided slurs or phrases. For example: { &{ } &} means that a phrase begins, but does not end until after another phrase has begun. The ampersand is used to mark a matched pair of slur or phrases marks. Multiple levels of elisions are indicated by repeating the ampersand character. Both the beginning and ending must be marked by the same number of ampersands. For example, the following coding represents a series of elided phrases where three separate phrases begin before any of the phrases is terminated: { &{ &&{ } &&} &} Notice that the second elided phrase terminates after third phrase has ended.

Rests are represented by the single letter `r'.

Barlines are represented using the "common system" for barlines -- see barlines.


It is recommended that files containing predominantly **pc data should be given names with the distinguishing `.pc' extension.


The following table summarizes the **pc mappings of signifiers and signifieds.
0-9pitch-class values specified as integers
or as real values; measure numbers
Aalias for pitch-class 10
Balias for pitch-class 11
Ealias for pitch-class 11
Igeneric articulation (unspecified articulation)
Ogeneric ornament (unspecified ornament)
Talias for pitch-class 10
=barline; == double barline
[first note of a tie
]last note of a tie
_middle note(s) of a tie (underscore)
(slur start
)slur end
{phrase mark (start)
}phrase mark (end)
;pause sign
'staccato mark
"pizzicato mark
`attacka mark
~tenuto mark
^accent mark
&elision marker (for slurs or phases)
Summary of **pc Signifiers


The following sample document shows a pitch-class representation for the opening measures of Schoenberg's "Sommerm\o'u\(..'d" from Three Songs, opus 48. The left-most spine shows a mixed alphabetic and numeric encoding -- where pitch-class 11 is represented by the letter `B'.
!! Arnold Schoenberg, "Sommermued" (1933)
rr(0glaubst ,
Note that pitch-class representations do not preserve pitch-height or contour information.


The following Humdrum commands accept **pc encoded data as inputs:
ivdetermine interval vectors for vertical sonorities
nfdetermine normal form for vertical sonorities
pcconvert between numerical and alphanumerical forms of **pc
pcsetconvert to set-theoretic representations
pfdetermine prime form for vertical sonorities
reiheoutput tone-row variant for a given prime row
voxdetermine active and inactive voices in a Humdrum file
The following Humdrum command produces **pc data as output:
pctranslates **cents, **freq, **kern, **pc, **pitch, **Tonh, **semits, **solfg, **specC, to **pc


The following tandem interpretations can be used in conjunction with **pc:
meter signatures*M6/8
key signatures*k[f#c#]
Tandem interpretations for **pc


barlines, **cents, **freq, **iv, iv, **kern, **nf, nf, pc, **pcset, pcset, **pf, pf, **pitch, reihe, **semits, **solfg, **specC, Tonh


Forte, A. The Structure of Atonal Music. New Haven: Yale University Press, 1973.

Rahn, J. Basic Atonal Theory. New York: Longman, 1980.

Straus, J. Introduction to Post-Tonal Theory. Englewood Cliffs, N.J.: Prentice Hall, 1990.