Chin Ting Chan

composing tools for the command line

ctools

Title: "ctools"
Version: 2.0
Year: 2015-2016
Development Language: C++
Platform: Mac OSX/Windows
Interface: CLI
Description: This program lets you construct pitch sets, rows or matrixes from input, then display them or outputs them to a text file in the same directory. There are thirteen sub-programs available.
  1. Generate a row of random pitches
  2. Construct a row with input of any integers
  3. Construct a twelve-tone row to be mapped to a custom table
  4. Construct a matrix
  5. Construct a matrix in rotation
  6. Construct a multiplication table
  7. Construct a multiplication table in rotation
  8. Construct a multiplication table with inversion
  9. Construct a multiplication table with inversion in rotation
  10. Compute the prime set from a given set
  11. Print the table of pitch class sets
  12. Find all permutations of a given set
  13. Find all subsets of a given set

1. Generate a row of random pitches

This program lets you generate a list of up to 10000 random pitches. The program implements the ctime library in C++ in order to generate random numbers. See mapping.

2. Construct a row with input of any integers

This program takes user input of any integers to form a row of up to 50 pitches. When the input is more than 11 or less than 0 (outside of the octave), the program modulates it back to the "normal" range of 0 to 11 by continuously adding or subtracting 12. The user can then create a row based on those "normalized" pitches. See mapping.

3. Construct a twelve-tone row to be mapped to a custom table

This program creates a custom table other than the standard chromatic table (e.g. C = 0, C# = 1, D = 2, Eb = 3, etc.), and lets the user map a custom row to this table. See mapping.

4. Construct a matrix

This is a classic program for constructing a pitch matrix. In addition to creating a 12-tone matrix, the user has the option to create a matrix that is less than or more than 12 pitches. This is particularly useful when constructing a matrix from a subset or superset of a given set. The matrix uses the traditional method where it treats the first pitch as P-0. See matrixes.

5. Construct a matrix in rotation

The matrix created by this program rotates by one column to the right at a time by default by each row (e.g. C-Eb-F-G becomes Eb-F-G-C, then F-G-C-Eb, etc.). It can also be rotated to the left. See matrixes.

6. Construct a multiplication table

Using Pierre Boulez's multiplication technique, this program allows users to construct multiplication tables of various sizes. See multiplication.

7. Construct a multiplication table in rotation

Multiplication with rotation one column at a time to the right or left. See multiplication.

8. Construct a multiplication table with inversion

The multiplication table is inverted. See multiplication.

9. Construct a multiplication table with inversion in rotation

The multiplication table is both inverted and rotated. See multiplication.

10. Compute the prime set from a given set

This program calculates the Prime Set from a given set of pitches. It uses a text files that contains all the Forte numbers of pitch sets and references it through C++'s standard IO. See pitch sets.

11. Print the table of pitch class sets

Print out a table of all the pitch class sets for reference. See pitch sets.

12. Find all permutations of a given set

This program finds all permutation of a set given by the user. See set variants.

13. Find all subsets of a given set

This program finds all subsets of a set given by the user. See set variants.

Back to the top