Safe Haskell | None |
---|---|
Language | Haskell2010 |
Sound.Tidal.Stream.Process
Synopsis
- data ProcessedEvent = ProcessedEvent {
- peHasOnset :: Bool
- peEvent :: Event ValueMap
- peCps :: Double
- peDelta :: Micros
- peCycle :: Time
- peOnWholeOrPart :: Micros
- peOnWholeOrPartOsc :: Time
- peOnPart :: Micros
- peOnPartOsc :: Time
- doTick :: MVar ValueMap -> MVar PlayMap -> MVar (ControlPattern -> ControlPattern) -> [Cx] -> (Time, Time) -> Double -> ClockConfig -> ClockRef -> (SessionState, SessionState) -> IO ()
- processCps :: ClockConfig -> ClockRef -> (SessionState, SessionState) -> [Event ValueMap] -> IO [ProcessedEvent]
- toOSC :: Maybe [Int] -> ProcessedEvent -> OSC -> [(Double, Bool, Message)]
- toData :: OSC -> Event ValueMap -> Maybe [Datum]
- toDatum :: Value -> Datum
- substitutePath :: String -> ValueMap -> Maybe String
- getString :: ValueMap -> String -> Maybe String
- playStack :: PlayMap -> ControlPattern
- hasSolo :: Map k PlayState -> Bool
- onSingleTick :: ClockConfig -> ClockRef -> MVar ValueMap -> MVar PlayMap -> MVar (ControlPattern -> ControlPattern) -> [Cx] -> ControlPattern -> IO ()
- updatePattern :: Stream -> ID -> Time -> ControlPattern -> IO ()
- setPreviousPatternOrSilence :: MVar PlayMap -> IO ()
Documentation
data ProcessedEvent Source #
Constructors
ProcessedEvent | |
Fields
|
doTick :: MVar ValueMap -> MVar PlayMap -> MVar (ControlPattern -> ControlPattern) -> [Cx] -> (Time, Time) -> Double -> ClockConfig -> ClockRef -> (SessionState, SessionState) -> IO () Source #
Query the current pattern (contained in argument stream :: Stream
)
for the events in the current arc (contained in argument st :: T.State
),
translate them to OSC messages, and send these.
If an exception occurs during sending, this functions prints a warning and continues, because the likely reason is that the backend (supercollider) isn't running.
If any exception occurs before or outside sending (e.g., while querying the pattern, while computing a message), this function prints a warning and resets the current pattern to the previous one (or to silence if there isn't one) and continues, because the likely reason is that something is wrong with the current pattern.
processCps :: ClockConfig -> ClockRef -> (SessionState, SessionState) -> [Event ValueMap] -> IO [ProcessedEvent] Source #
playStack :: PlayMap -> ControlPattern Source #
onSingleTick :: ClockConfig -> ClockRef -> MVar ValueMap -> MVar PlayMap -> MVar (ControlPattern -> ControlPattern) -> [Cx] -> ControlPattern -> IO () Source #
updatePattern :: Stream -> ID -> Time -> ControlPattern -> IO () Source #