As described on p. 28 of "Modal Color Theory," it's convenient to have a
systematic labeling system ("color numbers") to refer to the distinct colors
in the hyperplane arrangements. This serves a similar function as Forte's
set class numbers do in traditional pitch-class set theory. Color numbers
are defined with reference to a complete list of the possible sign vectors
for each cardinality, so they depend on the extensive prior computation
that is stored in the object representative_signvectors. (This is a large
file that cannot be included in the package musicMCT itself. It needs to be
downloaded separately, saved in your working directory, and loaded by entering
representative_signvectors <- readRDS("representative_signvectors.rds").
Color numbers are currently only defined for scales with 7 or fewer notes.
colornum(set, ineqmat = NULL, signvector_list = NULL, edo = 12, rounder = 10)Single non-negative integer (the color number) if a signvector_list
is specified or representative_signvectors is loaded; otherwise NULL
Numeric vector of pitch-classes in the set
Specifies which hyperplane arrangement to consider. By default (or by
explicitly entering "mct") it supplies the standard "Modal Color Theory" arrangements
of getineqmat(), but can be set to "white," "black", "gray", "roth", "pastel," or "rosy",
giving the ineqmats of make_white_ineqmat(), make_black_ineqmat(), make_gray_ineqmat(),
make_roth_ineqmat(), make_pastel_ineqmat(), and make_rosy_ineqmat(). For other
arrangements, the desired inequality matrix can be entered directly.
A list of signvectors to use as the reference by
which colornum assigns a value. Defaults to NULL and will attempt to
use representative_signvectors, which needs to be downloaded and assigned
separately from the package musicMCT.
Number of unit steps in an octave. Defaults to 12.
Numeric (expected integer), defaults to 10:
number of decimal places to round to when testing for equality.
Note that the perfectly even "white" scale is number 0 for every cardinality
by definition.
The function assumes that you don't need to be reminded of the cardinality of the set you've entered. That is, there's a color number 2 for every cardinality, so you can get that value returned by entering a trichord, tetrachord, etc.
colornum(edoo(5))
colornum(c(0, 3, 7))
colornum(c(0, 2, 7))
colornum(c(0, 1, 3, 7))
colornum(c(0, 1, 3, 6, 10, 15, 21), edo=33)
colornum(c(0, 2, 4, 5, 7, 9, 11))
Run the code above in your browser using DataLab