module Haskore.Performance.Context
(T,
setPlayer, setDur, setTranspose, setDynamics,
getPlayer, getDur, getTranspose, getDynamics,
Pf.updatePlayer, Pf.updateDur, Pf.updateTranspose, Pf.updateDynamics,
contextPlayer, contextDur, contextTranspose, contextDynamics, )
where
import qualified Haskore.Basic.Pitch as Pitch
import qualified Haskore.Performance as Pf
import qualified Haskore.Performance.Player as Player
import Haskore.Performance(Context(..))
type T time dyn note = Pf.Context time dyn note
type SetContext time dyn note a = a -> T time dyn note -> T time dyn note
setPlayer :: SetContext time dyn note (Player.T time dyn note)
setPlayer = Pf.updatePlayer . const
setDur :: SetContext time dyn note time
setDur = Pf.updateDur . const
setTranspose :: SetContext time dyn note Pitch.Relative
setTranspose = Pf.updateTranspose . const
setDynamics :: SetContext time dyn note dyn
setDynamics = Pf.updateDynamics . const
type GetContext time dyn note a = T time dyn note -> a
getPlayer :: GetContext time dyn note (Player.T time dyn note)
getPlayer = Pf.contextPlayer
getDur :: GetContext time dyn note time
getDur = Pf.contextDur
getTranspose :: GetContext time dyn note Pitch.Relative
getTranspose = Pf.contextTranspose
getDynamics :: GetContext time dyn note dyn
getDynamics = Pf.contextDynamics