| flex_points | R Documentation |
When considering an n-note set's potential voice leadings to transpositions of a goal (along the lines
of vl_rolodex() and tndists()), there will always be some transposition in continuous pc-space
for which a given modal rotation is the best potential target for voice leading. (That is, there is
always some x such that whichmodebest(set, tn(set, x)) == k for any k between 1 and n.)
Moreover, there will always be a transposition level at the boundary between two different ideal modes,
where both modes require the same amount of voice leading work. flex_points() identifies those
inflection points where one mode gives way to another. (Note: flex_points() identifies these points
by numerical approximation, so it may not give exact values. For more precision, increase the value
of subdivide.)
flex_points(
set,
goal = NULL,
method = c("taxicab", "euclidean", "chebyshev", "hamming"),
subdivide = 100,
edo = 12,
rounder = 10
)
set |
Numeric vector of pitch-classes in the set |
goal |
Numeric vector like set: what is the tn-type of the voice leading's destination?
Defaults to |
method |
What distance metric should be used? Defaults to |
subdivide |
Numeric: how many small amounts should each |
edo |
Number of unit steps in an octave. Defaults to |
rounder |
Numeric (expected integer), defaults to |
Numeric vector of the transposition indices that are inflection points. Length of result
matches size of set, except in the case of some multisets, which can have fewer inflection points.
major_triad_12tet <- c(0, 4, 7)
major_triad_just <- z(1, 5/4, 3/2)
major_triad_19tet <- c(0, 6, 11)
flex_points(major_triad_12tet, method="euclidean", subdivide=1000)
flex_points(major_triad_just, method="euclidean", subdivide=1000)
# Note that the units of measurement correspond to edo.
# The value 3.16 here corresponds to exactly 1/6 of an octave.
flex_points(major_triad_19tet, edo=19)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.