-- trkl (rd) import Sound.SC3.Lang.Control.OverlapTexture {- hsc3-lang -} import Sound.SC3.Monad {- hsc3 -} trkl :: UId m => UGen -> UGen -> UGen -> UGen -> UGen -> UGen -> m UGen trkl d ul fu dy la fy = do let tf = xLine KR 1 ul d RemoveSynth st = impulse AR (tf * 8) 0 t = impulse AR tf 0 r0 <- rand (-1) 1 r1 <- rand (-1) 1 r2 <- tRand 0.05 1.0 t r3 <- tExpRand 0.001 0.25 st -- non-zero minima fh <- tRand 1.75 2.25 t let a = dbAmp (line KR 12 la d RemoveSynth) f = xLine KR fu 900 d RemoveSynth p = line KR r0 r1 d RemoveSynth o1 = mix (ringz (decay2 t 0.01 dy) (mce2 f (f * fh)) fy) o2 = mix (saw AR (mce2 f (f * fh))) return (pan2 (o1 + o2 * decay2 t 0.1 r2 * r3) p a) -- > audition . out 0 =<< trkl_r trkl_r :: UId m => m UGen trkl_r = do d <- rand 0.5 16 ul <- rand 16 64 fu <- rand 1200 9000 dy <- rand 0.005 0.175 la <- rand (-60) (-25) fy <- rand 0.015 0.125 trkl d ul fu dy la fy main :: IO () main = overlapTextureU (5,2,12,maxBound) =<< trkl_r