-- deep sea (jrhb) import Sound.SC3.ID import Sound.SC3.Lang.Pattern.ID rng :: UGen -> UGen -> UGen -> UGen rng s l r = let m = (r - l) * 0.5 in mulAdd s m (m + l) deep_sea :: UGen deep_sea = let amp = 1 pan = 0 variation = 0.9 n = rand 'α' 7 46 dt1 = 25.0 + rand 'β' (-1.7) 1.7 dt2 = (dt1 + lfNoise2 'γ' KR 2) * variation * 0.001 f = 901 + rand 'δ' 0 65 t = impulse AR (recip dt2) 0 * 100 count = pulseCount t 0 mul = count <* n u1 = bpf (mul * t) f 1 * 0.1 f2 = f * ((count `modE` rng (lfNoise1 'ε' KR 1) 2 20) + 1) u2 = bpf u1 f2 1 * 0.2 in mrg [pan2 u2 pan (amp * 10) ,detectSilence u2 0.0001 0.2 RemoveSynth] main :: IO () main = do let s = synthdef "deep-sea" (out 0 deep_sea) audition (s,pbind [("dur",pxrand 'a' [0.25,0.5,1,2] inf)]) {- Sound.SC3.UGen.Dot.draw (out 0 deep_sea) audition (out 0 deep_sea) -}