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