Safe Haskell | None |
---|
Allen Forte. The Structure of Atonal Music. Yale University Press, New Haven, 1973.
- t_rotations :: [Z12] -> [[Z12]]
- ti_rotations :: [Z12] -> [[Z12]]
- minimumBy_or :: a -> (a -> a -> Ordering) -> [a] -> a
- t_cmp_prime :: ([Z12] -> [Z12] -> Ordering) -> [Z12] -> [Z12]
- ti_cmp_prime :: ([Z12] -> [Z12] -> Ordering) -> [Z12] -> [Z12]
- forte_cmp :: Ord t => [t] -> [t] -> Ordering
- forte_prime :: [Z12] -> [Z12]
- type SC_Name = String
- sc_table :: [(SC_Name, [Z12])]
- sc_name :: [Z12] -> SC_Name
- sc :: SC_Name -> [Z12]
- scs :: [[Z12]]
- scs_n :: Integral i => i -> [[Z12]]
- bip :: [Z12] -> [Z12]
- ic :: Z12 -> Z12
- icv :: Integral i => [Z12] -> [i]
Prime form
t_rotations :: [Z12] -> [[Z12]]Source
T-related rotations of p.
t_rotations [0,1,3] == [[0,1,3],[0,2,11],[0,9,10]]
ti_rotations :: [Z12] -> [[Z12]]Source
T/I-related rotations of p.
ti_rotations [0,1,3] == [[0,1,3],[0,2,11],[0,9,10] ,[0,9,11],[0,2,3],[0,1,10]]
minimumBy_or :: a -> (a -> a -> Ordering) -> [a] -> aSource
Variant with default value for empty input list case.
t_cmp_prime :: ([Z12] -> [Z12] -> Ordering) -> [Z12] -> [Z12]Source
Prime form rule requiring comparator, considering t_rotations
.
ti_cmp_prime :: ([Z12] -> [Z12] -> Ordering) -> [Z12] -> [Z12]Source
Prime form rule requiring comparator, considering ti_rotations
.
forte_cmp :: Ord t => [t] -> [t] -> OrderingSource
Forte comparison function (rightmost first then leftmost outwards).
forte_cmp [0,1,3,6,8,9] [0,2,3,6,7,9] == LT
forte_prime :: [Z12] -> [Z12]Source
Forte prime form, ie. cmp_prime
of forte_cmp
.
forte_prime [0,1,3,6,8,9] == [0,1,3,6,8,9]
Set Class Table
sc_name :: [Z12] -> SC_NameSource
Lookup a set-class name. The input set is subject to
forte_prime
before lookup.
sc_name [0,2,3,6,7] == "5-Z18" sc_name [0,1,4,6,7,8] == "6-Z17"
scs_n :: Integral i => i -> [[Z12]]Source
Cardinality n subset of scs
.
map (length . scs_n) [2..10] == [6,12,29,38,50,38,29,12,6]
BIP Metric
Basic interval pattern, see Allen Forte "The Basic Interval Patterns" JMT 17/2 (1973):234-272
>>>
bip 0t95728e3416
11223344556
bip [0,10,9,5,7,2,8,11,3,4,1,6] == [1,1,2,2,3,3,4,4,5,5,6] bip (pco "0t95728e3416") == [1,1,2,2,3,3,4,4,5,5,6]