hsc3-graphs-0.11: src/h-chatter.hs
-- h-chatter (rd)
import Control.Monad
import Sound.SC3.Monadic
wrp :: UGen -> UGen -> UGen -> UGen
wrp i = linLin i (-1) 1
h_chatter :: UId m => m UGen
h_chatter = do
let mma m a = return . (+ a) . (* m)
h0 = do n <- mma 5 5 =<< lfNoise0 KR 1
a <- mma 0.2 1.2 =<< lfNoise2 KR n
b <- mma 0.15 0.15 =<< lfNoise2 KR n
let f = 40
h = henonN AR (mce2 f (f * 0.5)) a b 0 0
return (saw AR (h * 3200 + 1600) * 0.35)
h1 = do n0 <- lfNoise0 KR 32
n1 <- lfNoise0 KR 2
let a = mouseX' KR 1.2 1.4 Linear 0.1
b = mouseY' KR 0.2 0.3 Linear 0.1
h = wrp n0 1 32
p = wrp n1 2400 3200
l = wrp n1 (-0.75) 0.75
g = wrp n1 0.55 0.85
f = 40
o = blip AR (wrp (henonN AR f a b 0 0) p (p * 2)) h
return (pan2 o l g * 0.35)
liftM2 (+) h0 h1
main :: IO ()
main = audition . out 0 =<< h_chatter