-- https://www.listarc.bham.ac.uk/lists/sc-users/msg21341.html (mn)
import Sound.SC3.ID {- hsc3 -}
rng :: (UGen,UGen) -> UGen -> UGen
rng (i,j) = range i j
-- > Sound.SC3.UGen.Dot.draw k2ws
k2ws :: UGen
k2ws =
let fc = 400 + rng (100,200) (lfNoise2 'a' AR (mce2 1 2))
fm = rng (100,200) (lfNoise0 'a' AR 5)
i = rng (1,20) (lfNoise1 'a' AR 10)
x = sinOsc AR (fc + (sinOsc AR fm 0 * i * fm)) 0 * 0.5
rf = rng (1000,2000) (sinOsc AR (rng (0.1,1) (lfNoise1 'b' AR 1)) 0)
rq = rng (0.5,10) (lfNoise1 'c' AR 1)
a = rlpf x rf rq
ph = a * rng (1.0,4.0) (lfNoise1 'd' AR 0.1) * 4 * pi
in sinOsc AR 0.2 ph * 0.5
main :: IO ()
main = audition (out 0 k2ws)