Learn R Programming

musicMCT (version 0.1.2)

saturate: Modify evenness without changing hue

Description

Saturation parameterizes scale structures along a single degree of freedom which corresponds to size of the vector from the "white" perfectly even scale to the scale in question. Variation in a scale's saturation minimally affects its structural properties. The function saturate() takes in a scale and a saturation parameter (r) and returns another scale along the same line (i.e. including the scale's hue and its scalar involution--see "Modal Color Theory," 32).

Usage

saturate(r, set, edo = 12)

Value

Numeric vector of same length as set (another scale on the same hue)

Arguments

r

Numeric: the relative proportion to (de)saturate the set by. If r is set to 0, returns white; if r = 1, returns the input set. If 0 < r < 1, the saturation is decreased. If r > 1, the saturation is increased, potentially to the point where the set moves past some OPTIC boundary. If r < 0, the result is an "involution" of the set.

set

Numeric vector of pitch-classes in the set

edo

Number of unit steps in an octave. Defaults to 12.

Examples

Run this code
lydian <- c(0, 2, 4, 6, 7, 9, 11)
qcm_fifth <- meantone_fifth()
qcm_dia <- sort(((0:6)*qcm_fifth)%%12)
evenness_ratio <- evenness(qcm_dia) / evenness(lydian)
desaturated_lydian <- saturate(evenness_ratio, lydian)
desaturated_lydian
qcm_dia

ionian <- c(0, 2, 4, 5, 7, 9, 11)
involution_of_ionian <- saturate(-2, ionian)
convert(involution_of_ionian, 12, 42)
asword(ionian)
asword(involution_of_ionian)

Run the code above in your browser using DataLab