-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | Haskell Music Theory
--
-- Haskell music theory library
@package hmt
@version 0.2
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 of 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
pco :: String -> [Int]
module Music.Theory