Safe Haskell | None |
---|---|
Language | Haskell2010 |
Sound.Tidal.Clock
Synopsis
- type Time = Rational
- type Clock = ReaderT ClockMemory (StateT ClockState IO)
- data ClockMemory = ClockMemory {}
- data ClockState = ClockState {}
- data ClockRef = ClockRef {}
- data ClockConfig = ClockConfig {}
- type TickAction = (Time, Time) -> Double -> ClockConfig -> ClockRef -> (SessionState, SessionState) -> IO ()
- data ClockAction
- defaultCps :: Double
- defaultConfig :: ClockConfig
- clocked :: ClockConfig -> TickAction -> IO ClockRef
- runClock :: ClockConfig -> TickAction -> Clock () -> IO ClockRef
- initClock :: ClockConfig -> TickAction -> IO (ClockMemory, ClockState)
- clockCheck :: Clock ()
- tick :: Clock ()
- clockProcess :: Clock ()
- processAction :: ClockAction -> Clock ()
- arcStart :: (Time, Time) -> Time
- arcEnd :: (Time, Time) -> Time
- beatToCycles :: ClockConfig -> Double -> Double
- cyclesToBeat :: ClockConfig -> Double -> Double
- getSessionState :: ClockRef -> IO SessionState
- getZeroedSessionState :: ClockConfig -> ClockRef -> IO SessionState
- getTempo :: SessionState -> IO Time
- setTempoCPS :: Time -> Micros -> ClockConfig -> SessionState -> IO ()
- timeAtBeat :: ClockConfig -> SessionState -> Double -> IO Micros
- timeToCycles :: ClockConfig -> SessionState -> Micros -> IO Time
- cyclesToTime :: ClockConfig -> SessionState -> Time -> IO Micros
- linkToOscTime :: ClockRef -> Micros -> IO Time
- addMicrosToOsc :: Micros -> Time -> Time
- logicalTime :: ClockConfig -> Micros -> Int64 -> Micros
- getBPM :: ClockRef -> IO Time
- getCPS :: ClockConfig -> ClockRef -> IO Time
- getCycleTime :: ClockConfig -> ClockRef -> IO Time
- resetClock :: ClockRef -> IO ()
- setClock :: ClockRef -> Time -> IO ()
- setBPM :: ClockRef -> Time -> IO ()
- setCPS :: ClockConfig -> ClockRef -> Time -> IO ()
- setNudge :: ClockRef -> Double -> IO ()
- clockOnce :: TickAction -> ClockConfig -> ClockRef -> IO ()
- disableLink :: ClockRef -> IO ()
- enableLink :: ClockRef -> IO ()
Documentation
type Clock = ReaderT ClockMemory (StateT ClockState IO) Source #
representation of a tick based clock
data ClockState Source #
internal mutable state of the clock
Instances
Show ClockState Source # | |
Defined in Sound.Tidal.Clock Methods showsPrec :: Int -> ClockState -> ShowS # show :: ClockState -> String # showList :: [ClockState] -> ShowS # |
reference to interact with the clock, while it is running
Constructors
ClockRef | |
Fields |
type TickAction = (Time, Time) -> Double -> ClockConfig -> ClockRef -> (SessionState, SessionState) -> IO () Source #
action to be executed on a tick, | given the current timespan, nudge and reference to the clock
data ClockAction Source #
possible actions for interacting with the clock
defaultCps :: Double Source #
clocked :: ClockConfig -> TickAction -> IO ClockRef Source #
creates a clock according to the config and runs it | in a seperate thread
runClock :: ClockConfig -> TickAction -> Clock () -> IO ClockRef Source #
runs the clock on the initial state and memory as given | by initClock, hands the ClockRef for interaction from outside
initClock :: ClockConfig -> TickAction -> IO (ClockMemory, ClockState) Source #
creates a ableton link instance and an MVar for interacting | with the clock from outside and computes the initial clock state
clockCheck :: Clock () Source #
clockProcess :: Clock () Source #
processAction :: ClockAction -> Clock () Source #
beatToCycles :: ClockConfig -> Double -> Double Source #
cyclesToBeat :: ClockConfig -> Double -> Double Source #
getSessionState :: ClockRef -> IO SessionState Source #
setTempoCPS :: Time -> Micros -> ClockConfig -> SessionState -> IO () Source #
timeAtBeat :: ClockConfig -> SessionState -> Double -> IO Micros Source #
timeToCycles :: ClockConfig -> SessionState -> Micros -> IO Time Source #
cyclesToTime :: ClockConfig -> SessionState -> Time -> IO Micros Source #
logicalTime :: ClockConfig -> Micros -> Int64 -> Micros Source #
getCycleTime :: ClockConfig -> ClockRef -> IO Time Source #
resetClock :: ClockRef -> IO () Source #
clockOnce :: TickAction -> ClockConfig -> ClockRef -> IO () Source #
disableLink :: ClockRef -> IO () Source #
enableLink :: ClockRef -> IO () Source #