Pitch Class Set Theory Portal

Your one-stop shop for PC Set Theory

Pitch Class Sequences

A Pitch Class Sequence (PCSeq) is a sequence of Pitch Classes, where an element of the sequence can said to be before or after another. It is analogous to a melody, but in the case of the PCSeq, there is no placement in vertical pitch space. The PCSeq can be subject to transposition, inversion 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 Pitch Class Sequence string and I'll show you some cool stuff.