Music Calculators


SetCalc for mobile devices
Simple set of tools for pitch-class set analysis, designed specifically for iOS.


plot-pc-set.js is a script written in javascript that graphs pitch-class sets on a graph, and that animates transpositions and inversions. It is also located as a repository on

Other Set Calculators

Set class calculator
Given certain pitch classes in a given modulus, this program calculates the set class, the interval and TICS vectors, the complement, the Fourier partition, and finds z-related sets if any.

Draggable set classes
This page is a sandbox for playing around with set-class graphs, like the graphs made by the set-class calculator. On this page, you can create multiple graphs and move them around for comparison, being useful perhaps for demonstrations and for teaching.

Subset calculator
List all the subsets of a given set in a given modulus.

Set unions
Find the non-overlapping unions of two sets.

Shared discrete partitions between two sets
Find all of the two-part and three-part partitionings that are shared by two given sets. By comparing a set with itself, it can also work as a subset calculator.

Multiply a set
Given a modulus, this program multiplies a set by a multiplicand. Non-integer values are allowed.

Command-line set class calculator
Set calculator in a command-line format, emulating Terminal.

Set Enumeration

Set class list
Unlike the set-class calculator above, this program lists all the set classes in a given modulus. Because there are so many set classes in the larger moduli, the program gets slow at around mod20, especially when it is also looking for z-related sets. To speed things up, this program reads from lists of set classes and z-groups (see reference text files), where the sets are listed in decimal form—that is, {0, 1, 4, 6} = 83, for example, since
20 + 21 + 24 + 26 = 83.

Find z-related n-tuples
This program displays all of the z-related n-tuplets (which I like to call z-tuples) in a given modulus and cardinality. In mod12 there are only z-related pairs, but in other larger moduli there are other sizes of z-groups.


Twelve-tone row matrix
Just as the name suggests.

Tonnetz builder
This program generates a tonnetz given three intervals x, y, z. Here it is unnecessary to give the modulus since the modulus is the sum of the three intervals; i.e. m = x+y+z.

Links to Other Sites

Setmaker – by Michael Buchler

music21 – python music analysis