module Sound.SC3.UGen.Composite.Monadic where import Sound.SC3.UGen.Demand.Monadic import Sound.SC3.UGen.Filter import Sound.SC3.UGen.Noise.Monadic import Sound.SC3.UGen.UGen import Sound.SC3.UGen.UId -- | Demand rate (:) function. dcons :: (UId m) => UGen -> UGen -> m UGen dcons x xs = do i <- dseq 1 (mce2 0 1) a <- dseq 1 (mce2 x xs) dswitch i a tChoose :: (UId m) => UGen -> UGen -> m UGen tChoose t a = do r <- tiRand 0 (constant (length (mceChannels a))) t return (select r a) twChoose :: (UId m) => UGen -> UGen -> UGen -> UGen -> m UGen twChoose t a w n = do i <- twindex t n w return (select i a)