packages feed

hsc3-graphs-0.11: src/k-ppr-m.hs

-- k-ppr-m (rd)

import Control.Monad
import Sound.SC3.Monadic

k_ppr_m :: IO UGen
k_ppr_m = do
  let wrp i = linLin i (-1) 1
      x = mouseX' KR 0.05 0.35 Linear 0.1
      y = mouseY' KR 0.15 0.75 Linear 0.1
      ti = lfTri KR x 0
      tf = wrp ti 100 200
      t = impulse AR tf 0
      stream lf rf ld rd g =
          do r1 <- rand 9 18
             let t' = pulseDivider t r1 0
             r2 <- tRand lf (wrp ti lf rf) t'
             r3 <- tRand ld rd t'
             return (ringz (decay2 t' 0.01 0.5) r2 (r3 * y) * g)
      s1 = stream 3140 6240 0.050 0.005 0.15
      s2 = stream 0400 9000 0.005 0.005 0.15
  liftM2 (+) (clone 2 s1) (clone 2 s2)

main :: IO ()
main = audition . out 0 =<< k_ppr_m

{-
k_ppr_m >>= Sound.SC3.UGen.Dot.draw
-}