-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell Music Theory -- -- Haskell music theory library @package hmt @version 0.1 module Music.Theory.Permutations permutations :: [a] -> [[a]] module Music.Theory.Set -- | Remove duplicate elements and sort. set :: (Ord a) => [a] -> [a] -- | Powerset, ie. set of all all subsets. powerset :: [a] -> [[a]] -- | Two element subsets (cf [2] . powerset). dyads :: [a] -> [(a, a)] -- | Set expansion se :: (Ord a) => Int -> [a] -> [[a]] module Music.Theory.Pitch -- | Modulo twelve. mod12 :: (Integral a) => a -> a -- | Pitch class. pc :: (Integral a) => a -> a -- | Map to pitch-class and reduce to set. pcset :: (Integral a) => [a] -> [a] -- | Transpose by n. tn :: (Integral a) => a -> [a] -> [a] -- | Transpose so first element is n. transposeTo :: (Integral a) => a -> [a] -> [a] -- | All transpositions. transpositions :: (Integral a) => [a] -> [[a]] -- | Invert about n. invert :: (Integral a) => a -> [a] -> [a] -- | Invert about first element. invertSelf :: (Integral a) => [a] -> [a] -- | Composition on inversion about zero and transpose. tni :: (Integral a) => a -> [a] -> [a] -- | Rotate left by n places. rotate :: (Integral n) => n -> [a] -> [a] -- | Rotate right by n places. rotate_right :: (Integral n) => n -> [a] -> [a] -- | All rotations. rotations :: [a] -> [[a]] -- | Modulo 12 multiplication mn :: (Integral a) => a -> [a] -> [a] -- | M5 m5 :: (Integral a) => [a] -> [a] all_Tn :: (Integral a) => [a] -> [[a]] all_TnI :: (Integral a) => [a] -> [[a]] all_RTnI :: (Integral a) => [a] -> [[a]] all_TnMI :: (Integral a) => [a] -> [[a]] all_RTnMI :: (Integral a) => [a] -> [[a]] all_rRTnMI :: (Integral a) => [a] -> [[a]] -- | Serial Operator, of the form rRTMI. data SRO a SRO :: a -> Bool -> a -> Bool -> Bool -> SRO a -- | Serial operation. sro :: (Integral a) => SRO a -> [a] -> [a] -- | The total set of serial operations. sros :: (Integral a) => [a] -> [(SRO a, [a])] sro_Tn :: (Integral a) => [SRO a] sro_TnI :: (Integral a) => [SRO a] sro_RTnI :: (Integral a) => [SRO a] sro_TnMI :: (Integral a) => [SRO a] sro_RTnMI :: (Integral a) => [SRO a] -- | Intervals to values, zero is n. dx_d :: (Num a) => a -> [a] -> [a] -- | Integrate. d_dx :: (Num a) => [a] -> [a] -- | Morris INT operator. int :: (Integral a) => [a] -> [a] -- | Interval class. ic :: (Integral a) => a -> a -- | Elements of p not in q difference :: (Eq a) => [a] -> [a] -> [a] -- | Pitch classes not in set. complement :: (Integral a) => [a] -> [a] -- | Is p a subsequence of q. subsequence :: (Eq a) => [a] -> [a] -> Bool -- | The standard t-matrix of p. tmatrix :: (Integral a) => [a] -> [[a]] -- | Interval class vector. icv :: (Integral a) => [a] -> [a] -- | Is p a subset of q. is_subset :: (Eq a) => [a] -> [a] -> Bool -- | Is p a superset of q. is_superset :: (Eq a) => [a] -> [a] -> Bool instance (Eq a) => Eq (SRO a) instance (Show a) => Show (SRO a) module Music.Theory.Prime -- | Prime form rule requiring comparator. cmp_prime :: (Integral a) => ([a] -> [a] -> Ordering) -> [a] -> [a] -- | Forte prime form. forte_prime :: (Integral a) => [a] -> [a] -- | Rahn prime form (comparison is rightmost inwards). rahn_prime :: (Integral a) => [a] -> [a] -- | Binary encoding prime form algorithm, equalivalent to Rahn. encode_prime :: (Integral a, Bits a) => [a] -> [a] module Music.Theory.Table -- | The set-class table (Forte prime forms). sc_table :: (Integral a) => [(String, [a])] -- | Lookup a set-class name given a set-class. sc_name :: (Integral a) => [a] -> String -- | Lookup a set-class given a set-class name. sc :: (Integral a) => String -> [a] -- | List of set classes. scs :: (Integral a) => [[a]] -- | Set class database. sc_db :: [(String, String)] module Music.Theory.Pct -- | Basic interval pattern. bip :: (Integral a) => [a] -> [a] -- | Cardinality filter cf :: (Integral n) => [n] -> [[a]] -> [[a]] cgg :: [[a]] -> [[a]] -- | Combinations generator (cg == poweset) cg :: [a] -> [[a]] -- | Powerset filtered by cardinality. cg_r :: (Integral n) => n -> [a] -> [[a]] -- | Cyclic interval segment. ciseg :: (Integral a) => [a] -> [a] -- | pcset complement. cmpl :: (Integral a) => [a] -> [a] -- | Form cycle. cyc :: [a] -> [a] -- | Diatonic implications. dim :: (Integral a) => [a] -> [(a, [a])] -- | Diatonic interval set to interval set. dis :: (Integral t) => [Int] -> [t] -- | Degree of intersection. doi :: (Integral a) => Int -> [a] -> [a] -> [[a]] -- | Forte name. fn :: (Integral a) => [a] -> String -- | p has_ess q is true iff p can embed q in sequence. has_ess :: (Integral a) => [a] -> [a] -> Bool -- | Embedded segment search. ess :: (Integral a) => [a] -> [a] -> [[a]] -- | Can the set-class q (under prime form algorithm pf) be drawn from the -- pcset p. has_sc_pf :: (Integral a) => ([a] -> [a]) -> [a] -> [a] -> Bool -- | Can the set-class q be drawn from the pcset p. has_sc :: (Integral a) => [a] -> [a] -> Bool -- | Interval cycle filter. icf :: (Num a) => [[a]] -> [[a]] -- | Interval class set to interval sets. ici :: (Num t) => [Int] -> [[t]] -- | Interval class set to interval sets, concise variant. ici_c :: [Int] -> [[Int]] -- | Interval-class segment. icseg :: (Integral a) => [a] -> [a] -- | Interval segment (INT). iseg :: (Integral a) => [a] -> [a] -- | Imbrications. imb :: (Integral n) => [n] -> [a] -> [[a]] -- | p issb q gives the set-classes that can append to p to give q. issb :: (Integral a) => [a] -> [a] -> [String] -- | Matrix search. mxs :: (Integral a) => [a] -> [a] -> [[a]] -- | Normalize. nrm :: (Ord a) => [a] -> [a] -- | Normalize, retain duplicate elements. nrm_r :: (Ord a) => [a] -> [a] -- | Pitch-class invariances. pci :: (Integral a) => [a] -> [a] -> [[a]] -- | Relate sets. rs :: (Integral a) => [a] -> [a] -> [(SRO a, [a])] -- | Relate segments. rsg :: (Integral a) => [a] -> [a] -> [(SRO a, [a])] -- | Subsets. sb :: (Integral a) => [[a]] -> [[a]] -- | Super set-class. spsc :: (Integral a) => [[a]] -> [String] module Music.Theory.Parse -- | Parse a Morris format serial operator descriptor. rnrtnmi :: String -> SRO Int module Music.Theory