## composing tools for the command line

*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.

Download the latest build release for Max OSX (2016-04-17): ctools-2.0-release-Mac.zip

Download the latest build release for Windows 10 (2016-04-17): ctools-2.0-release-Win.zip

## 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

## 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

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.