Mezzo.Model.Types

Note properties

data PitchClass

data Accidental

data OctaveNum

type Duration

Singleton types for note properties

data PC pc

data Acc acc

data Oct oct

data Dur dur

Pitches

data PitchType

data Pit p

type family (p :: PitchType) =?= (q :: PitchType) :: Bool where ...

type family (p1 :: PitchType) <<=? (p2 :: PitchType) :: Bool where ...

type family (p1 :: PitchType) <<? (p2 :: PitchType) where ...

Harmonic types

data Mode

data ScaleDegree

data DegreeType

data KeyType

data RootType

data Mod m

data ScaDeg sd

data KeyS k

data Deg d

data Root r

type family RootToPitch (dr :: RootType) :: PitchType where ...

type family PitchToNat (p :: PitchType) :: Nat where ...

type family Sharpen (r :: RootType) :: RootType where ...

type family Flatten (r :: RootType) :: RootType where ...

type family Dot (d :: Duration) :: Duration where ...

type family HalfOf (n :: Nat) :: Nat where ...

type family FromRoot (r :: RootType) (d :: Nat) :: Partiture 1 d where ...

type family FromSilence (d :: Nat) :: Partiture 1 d where ...

type family FromTriplet (d :: Nat) (r1 :: RootType) (r2 :: RootType) (r3 :: RootType) :: Partiture 1 ((d + HalfOf d) + HalfOf d) where ...

Specialised musical vector types

type Voice l

type Partiture n l

Intervals

data IntervalSize

data IntervalClass

data IntervalType

type family MakeInterval (p1 :: PitchType) (p2 :: PitchType) :: IntervalType where ...

Singleton types for interval properties

data IC ic

data IS is

data Intv i

Operations

type family OctPred (o :: OctaveNum) :: OctaveNum where ...

type family OctSucc (o :: OctaveNum) :: OctaveNum where ...

type family HalfStepsUpBy (p :: PitchType) (n :: Nat) :: PitchType where ...

type family HalfStepsDownBy (p :: PitchType) (n :: Nat) :: PitchType where ...

type family RaiseBy (p :: PitchType) (i :: IntervalType) :: PitchType where ...

type family LowerBy (p :: PitchType) (i :: IntervalType) :: PitchType where ...

type family RaiseAllBy (ps :: Voice l) (i :: IntervalType) :: Voice l where ...

type family LowerAllBy (ps :: Voice l) (i :: IntervalType) :: Voice l where ...

type family RaiseAllBy' (ps :: Vector PitchType n) (i :: IntervalType) :: Vector PitchType n where ...

type family LowerAllBy' (ps :: Vector PitchType n) (i :: IntervalType) :: Vector PitchType n where ...

type family RaiseByOct (p :: PitchType) :: PitchType where ...

type family LowerByOct (p :: PitchType) :: PitchType where ...

type family RaiseAllByOct (ps :: Voice l) :: Voice l where ...

type family TransposeUpBy (p :: Partiture n l) (i :: IntervalType) :: Partiture n l where ...

type family TransposeDownBy (p :: Partiture n l) (i :: IntervalType) :: Partiture n l where ...