-- 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