1 {-# LANGUAGE Arrows #-}
3 module Reactimation where
6 import qualified Data.Map as M
8 import Control.Concurrent.MVar
14 mainReact = reactimate (initialize inRef) (sensing synthRef) actuation mainSF
16 initialize :: MVar EventQueue -> IO EventQueue
19 sensing :: MVar (SynthState)
22 -> IO (DTime, Maybe (Map Time a))
23 sensing synthRef inRef _ = do
24 input <- readMVar inref
25 synth <- readMVar synthRef
26 let dt = (fromIntegral $ rate synth)/(fromIntegral $ outBuffSize synth)
27 return (dt, Just input)
32 mainSF :: (Message a) => SF (Map Time a) (Map Time a)