Pitch Class Set Theory Portal

Your one-stop shop for PC Set Theory


A Tweleve-tone Row is a special form of Pitch Class Sequence, where each pitch-class is used exactly once. All objects of this form have exactly twelve elements. A large body of 20-century music is based wholly, or in part, on twelve-tome rows. There is also a large body of theoretical writing on this subject. The Twelve-tone Row can be subject to transposition, inversion, multiplication, and operations on order, such as retrograde, rotation and permutation.

Syntax and notation

I've tried to make the syntax for interacting and creating object as simple and intuitive as possible. Here are some general guidelines.

  • Pitch Class Sets

    Pitch class notation should be entered using the integers 0-9 and the letters 'a', 'A', 't', or 'T' for 10, and 'b', 'B', 'e', or 'E' for 11. Upper and lower case may be mixed. As these tokens are uniquely distinguishable, there is no need for spaces or other separators, such as spaces or commas, and anything other than the allowed tokens are ignored.

  • Pitch Sets

    Pitch Set notation should be entered using the integers 0-128, or using a notation language specifying the note-name and register. The note-name notation follows a simple mini-language:

    • Note names must begin with a valid note name consisting of the characters: 'a', 'b', 'c', 'd', 'e', 'f', 'g'. These characters may be followed by an optional accidental specifier, consisting of: 's' (sharp), 'f' (flat, or 'n' (natural), and an optional register specified consisting of the integers from 0-9. Accidentals do NOT carry through, i.e. a 'gs5' followed by a 'g5', will be interpreted as a G-sharp followed by a G-natural. If a note specifier does not have a register specifier, it will be assigned the last specified notation specifier, and if none exists, it will be assigned the value 5, which will place it as close as possible to placement within the treble-clef staff.
    Integers and note-name/number notation can be mixed arbitrarily. Tokens must be separated by spaces or commas. The notation parser is not verbose in its

Enter a Row string and I'll show you some cool stuff.