packages feed

hsc3-graphs-0.11: src/harmonic-swimming.hs

-- harmonic swimming (jmcc)

import Sound.SC3.ID

harmonic_swimming :: UGen
harmonic_swimming =
  let a = 0.02
      f = 50
      p = 20
      l = line KR 0 (- a) 60 DoNothing
      o h = let r = udup 2 (rand 'a' 2 8)
                n = lfNoise1 'a' KR r
                e = max 0 (n * a + l)
            in fSinOsc AR (f * (h + 1)) 0 * e
  in sum (uprotect' 'a' (map o [0..p]))

main :: IO ()
main = audition (out 0 harmonic_swimming)