Skip to contents

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.

Usage

sim(set, edo = 12)

Arguments

set

Numeric vector of pitch-classes in the set

edo

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

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)
#>      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
#> [1,]    0    0    0    0    0    0    0
#> [2,]    2    2    1    2    2    2    1
#> [3,]    4    3    3    4    4    3    3
#> [4,]    5    5    5    6    5    5    5
#> [5,]    7    7    7    7    7    7    6
#> [6,]    9    9    8    9    9    8    8
#> [7,]   11   10   10   11   10   10   10

miyakobushi_modes <- sim(c(0, 1, 5, 7, 8)) # rows show trivalence
print(miyakobushi_modes)
#>      [,1] [,2] [,3] [,4] [,5]
#> [1,]    0    0    0    0    0
#> [2,]    1    4    2    1    4
#> [3,]    5    6    3    5    5
#> [4,]    7    7    7    6    9
#> [5,]    8   11    8   10   11