-- rzblp (rd)
import Sound.SC3.ID {- hsc3 -}
lfn :: ID a => a -> UGen -> UGen -> UGen -> UGen
lfn z f l r =
let z' = z `joinID` l `joinID` r
in range l r (lfNoise0 z' KR f)
hpb :: (ID a) => a -> UGen -> UGen
hpb z q =
let g i = let z' = idHash z + i
f = lfn z' q 1330 1395
a = lfn z' q 0.001 0.007
in blip AR f 24 * a
in mixFill 2 g
mk_f :: ID a => a -> (a -> UGen -> UGen -> UGen) -> UGen
mk_f z d =
let q = lfn z 5.2 5.2 5.21
a = d z dinf (mce [1,3,2,7,8])
tr = impulse KR q 0
freq = demand tr 0 a * 30 + 340
rt = impulse AR q (mce2 0 0)
rf = lfn z 5 30 640
rbw = lfn z q 0.1 0.5
in sum [blip AR freq 3 * lfn z q 0.001 0.01
,resonz rt rf rbw * lfn z q 0.01 1.8
,hpb z q * lfn z q 1.2 1.8
,blip AR (lfn z q 16 36) 3 * mce2 0.03 0.09]
rzblp :: UGen
rzblp = mk_f 'α' drand + mk_f 'β' dxrand
main :: IO ()
main = audition (out 0 rzblp)