Learn R Programming

musicMCT (version 0.1.2)

vlsig: Elementary voice leadings

Description

Calculates the "voice-leading signature" of the set's elementary transpositions as determined by vl_generators().

Usage

vlsig(set, index = 1, display_digits = 2, edo = 12, rounder = 10)

Value

List with three elements:

  • "vl" which shows the distance (in edo steps) that each voice moves

  • "tn" which indicates the (chromatic) transposition achieved by the voice leading

  • "rotation" which indicates the scalar transposition caused by the voice leading

Arguments

set

Numeric vector of pitch-classes in the set

index

Integer: which voice-leading generator should be displayed? Defaults to 1, the one which induces the least amount of motion.

display_digits

Integer: how many digits to display when naming any non-integral interval sizes. Defaults to 2.

edo

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

rounder

Numeric (expected integer), defaults to 10: number of decimal places to round to when testing for equality.

Details

Note that the voice leadings determined by vlsig() can be different from the corresponding ones at the same \(T_n\) level in vl_rolodex(). The latter function prioritizes minimal voice leadings, whereas vlsig() prioritizes elementary voice leadings derived from a set's brightnessgraph(). In particular, this means that vlsig() voice leadings will always be ascending, involve at least one common tone, and involve no contrary motion. See the odd_pentachord voice leadings in the Examples.

Examples

Run this code
major_scale <- c(0, 2, 4, 5, 7, 9, 11)
vlsig(major_scale) # Hook's elementary signature transformation

pure_major_triad <- j(1, 3, 5)
vlsig(pure_major_triad, index=1)
vlsig(pure_major_triad, index=2)

odd_pentachord <- c(0, 1, 4, 9, 11) # in 15-edo
vlsig(odd_pentachord, index=2, edo=15)
vl_rolodex(odd_pentachord, edo=15)$"8" 

Run the code above in your browser using DataLab