sim {musicMCT} | R Documentation |
Scalar (and interscalar) interval matrix
Description
As defined by Tymoczko 2008 ("Scale Theory, Serial Theory and Voice Leading")
https://onlinelibrary.wiley.com/doi/10.1111/j.1468-2249.2008.00257.x,
the scalar interval matrix represents the "rotations" of a set,
transposed to begin on 0, in its columns. Its nth row represents the
specific intervals which represent its generic interval of size n. If changed
from its default (NULL
), the parameter goal
calculates Tymoczko's
interscalar interval matrix from set
to goal
.
Usage
sim(set, goal = NULL, edo = 12, rounder = 10)
Arguments
set |
Numeric vector of pitch-classes in the set |
goal |
Numeric vector of same length as set. Defaults to |
edo |
Number of unit steps in an octave. Defaults to |
rounder |
Numeric (expected integer), defaults to |
Value
Numeric n
by n
matrix where n
is the number of notes in set
Examples
diatonic_modes <- sim(c(0, 2, 4, 5, 7, 9, 11))
print(diatonic_modes)
miyakobushi_modes <- sim(c(0, 1, 5, 7, 8)) # rows show trivalence
print(miyakobushi_modes)
# Interscalar Interval Matrix:
sim(c(0, 3, 6, 10), c(0, 4, 7, 10))
# Note that the interscalar matrices factor out transposition:
minor <- c(0, 3, 7)
major <- c(0, 4, 7)
sim(minor, major)
sim(minor-1, major)
sim(minor, major+2)
# But not permutation:
major_64 <- c(0, 5, 9)
major_open <- c(0, 7, 4)
sim(minor, major_64)
sim(minor, major_open)