module Haskore.Interface.SuperCollider.Channel where
import qualified Sound.SC3.UGen.UGen as SCUGen
import qualified Sound.SC3.UGen.IO as SCIO
import qualified Sound.SC3.UGen.Rate as SCRate
import Sound.SC3.UGen.UGen (UGen)
type Channel = Int
type NumberChannels = Int
least :: Channel
least = 2
data T m =
Cons {
next :: NumberChannels -> m Channel,
reset :: m ()
}
readUGen :: NumberChannels -> Channel -> UGen
readUGen numChan chan =
SCIO.in' numChan SCRate.AR (SCUGen.Constant (fromIntegral chan))
writeUGen :: Channel -> UGen -> UGen
writeUGen chan =
SCIO.out (SCUGen.Constant (fromIntegral chan))