hmt-0.20: Haskell Music Theory
Safe HaskellSafe-Inferred
LanguageHaskell2010

Music.Theory.Z.Boros_1990

Description

James Boros. "Some Properties of the All-Trichord Hexachord". _In Theory Only_, 11(6):19--41, 1990.

Synopsis

Util

singular :: String -> [t] -> t Source #

set_eq :: Ord t => [t] -> [t] -> Bool Source #

elem_by :: (t -> t -> Bool) -> t -> [t] -> Bool Source #

Tto

all_tn :: Integral i => [i] -> [[i]] Source #

all_tni :: Integral i => [i] -> [[i]] Source #

uniq_tni :: Integral i => [i] -> [[i]] Source #

type Pc = Int Source #

type Pcset = [Pc] Source #

type Sc = Pcset Source #

trichords :: [Pcset] Source #

Forte prime forms of the twelve trichordal set classes.

length trichords == 12

self_inv :: Pcset -> Bool Source #

Is a pcset self-inversional, ie. is the inversion of p a transposition of p.

map (\p -> (p,self_inv p)) trichords

pcset_pp :: Pcset -> String Source #

Pretty printer, comma separated.

pcset_pp [0,3,7,10] == "0,3,7,10"

pcset_pp_hex :: Pcset -> String Source #

Pretty printer, hexadecimal, no separator.

pcset_pp_hex [0,3,7,10] == "037A"

Ath

ath :: Pcset Source #

Forte prime form of the all-trichord hexachord.

T.sc_name ath == "6-Z17"
T.sc "6-Z17" == ath

is_ath :: Pcset -> Bool Source #

Is p an instance of ath.

ath_univ :: [Pcset] Source #

Table 1, p.20

length ath_univ == 24

ath_tni :: Pcset -> Tto Pc Source #

Calculate Tto of pcset, which must be an instance of ath.

ath_tni [1,2,3,7,8,11] == T.Tto 3 1 True

ath_pp :: Pcset -> String Source #

Give label for instance of ath, prime forms are written H and inversions h.

ath_pp [1,2,3,7,8,11] == "h3"

ath_trichords :: [Pcset] Source #

The twenty three-element subsets of ath.

length ath_trichords == 20

ath_complement :: Pcset -> Pcset Source #

\\ of ath and p, ie. the pitch classes that are in ath and not in p.

ath_complement [0,1,2] == [4,7,8]

ath_completions :: Pcset -> Sc -> [Pcset] Source #

p is a pcset, q a sc, calculate pcsets in q that with p form ath.

ath_completions [0,1,2] (T.sc "3-3") == [[6,7,10],[4,7,8]]
ath_completions [6,7,10] (T.sc "3-5") == [[1,2,8]]

Tables

Figures

Drawing

uedge_set :: Ord v => [Edge v] -> [Edge v] Source #

set_shape :: Pcset -> Dot_Attr Source #

Self-inversional pcsets are drawn in a double circle, other pcsets in a circle.

type Gr = Gr Pcset () Source #