ContentsIndex
Haskore.Music.Performance
Synopsis
type T = [Event]
data Event = Event {
eTime :: Time
eInst :: IName
ePitch :: Absolute
eDur :: Dur
eVel :: Velocity
pFields :: [Float]
}
type Time = Float
type Dur = Float
type Volume = Float
type Velocity = Float
fromMusic :: PlayerMap -> Context -> T -> T
type PlayerMap = PlayerName -> PlayerT
data Context = Context {
cTime :: Time
cPlayer :: PlayerT
cInstrument :: IName
cDur :: Dur
cKey :: Key
cVelocity :: Velocity
}
type UpdateContext a = (a -> a) -> Context -> Context
updateTime :: UpdateContext Time
updatePlayer :: UpdateContext PlayerT
updateInstrument :: UpdateContext IName
updateDur :: UpdateContext Dur
updateKey :: UpdateContext Key
updateVelocity :: UpdateContext Velocity
type Key = Absolute
data T' = C' {
events :: T
duration, lastDur :: Dur
}
fromMusic' :: PlayerMap -> Context -> T -> T'
merge :: (T, Dur) -> (T, Dur) -> (T, Dur)
mergeFirst :: (T, Dur) -> (T, Dur) -> (T, Dur)
partition :: (Event -> Bool) -> Time -> Time -> [Event] -> ([Event], [Event])
slice :: Eq a => (Event -> a) -> T -> [(a, T)]
usedInstruments :: T -> [IName]
data PlayerT = PlayerC {
name :: PlayerName
playNote :: NoteFun
interpPhrase :: PhraseFun
notatePlayer :: NotateFun
}
type NoteFun = Context -> T -> Dur -> [NoteAttribute] -> T
type PhraseFun = PlayerMap -> Context -> PhraseAttribute -> T -> T'
type NotateFun = ()
Produced by Haddock version 0.6