hmt-0.16: Haskell Music Theory

Safe HaskellSafe
LanguageHaskell98

Music.Theory.Z12.SRO

Contents

Description

Serial (ordered) pitch-class operations on Z12.

Synopsis

Documentation

sro_tn :: Z12 -> [Z12] -> [Z12] Source #

Transpose p by n.

sro_tn 4 [1,5,6] == [5,9,10]

sro_invert :: Z12 -> [Z12] -> [Z12] Source #

Invert p about n.

sro_invert 6 [4,5,6] == [8,7,6]
sro_invert 0 [0,1,3] == [0,11,9]

sro_tni :: Z12 -> [Z12] -> [Z12] Source #

Composition of invert about 0 and tn.

tni 4 [1,5,6] == [3,11,10]
(sro_invert 0 . sro_tn  4) [1,5,6] == [7,3,2]

sro_mn :: Z12 -> [Z12] -> [Z12] Source #

Modulo 12 multiplication

sro_mn 11 [0,1,4,9] == sro_tni 0 [0,1,4,9]

sro_m5 :: [Z12] -> [Z12] Source #

M5, ie. mn 5.

sro_m5 [0,1,3] == [0,5,3]

sro_t_related :: [Z12] -> [[Z12]] Source #

T-related sequences of p.

length (sro_t_related [0,3,6,9]) == 12

sro_ti_related :: [Z12] -> [[Z12]] Source #

T/I-related sequences of p.

length (ti_related [0,1,3]) == 24
length (ti_related [0,3,6,9]) == 24
ti_related [0] == map return [0..11]

sro_rti_related :: [Z12] -> [[Z12]] Source #

R/T/I-related sequences of p.

length (rti_related [0,1,3]) == 48
length (rti_related [0,3,6,9]) == 24

sro_tmi_related :: [Z12] -> [[Z12]] Source #

T/M/I-related sequences of p, duplicates removed.

sro_rtmi_related :: [Z12] -> [[Z12]] Source #

R/T/M/I-related sequences of p, duplicates removed.

sro_rrtmi_related :: [Z12] -> [[Z12]] Source #

r/R/T/M/I-related sequences of p, duplicates removed.

Sequence operations

sro_tn_to :: Z12 -> [Z12] -> [Z12] Source #

Variant of tn, transpose p so first element is n.

sro_tn_to 5 [0,1,3] == [5,6,8]
map (sro_tn_to 0) [[0,1,3],[1,3,0],[3,0,1]] == [[0,1,3],[0,2,11],[0,9,10]]

sro_invert_ix :: Int -> [Z12] -> [Z12] Source #

Variant of invert, inverse about nth element.

map (sro_invert_ix 0) [[0,1,3],[3,4,6]] == [[0,11,9],[3,2,0]]
map (sro_invert_ix 1) [[0,1,3],[3,4,6]] == [[2,1,11],[5,4,2]]

tmatrix :: [Z12] -> [[Z12]] Source #

The standard t-matrix of p.

tmatrix [0,1,3] == [[0,1,3]
                   ,[11,0,2]
                   ,[9,10,0]]