packages feed

hsc3-0.3: Help/Graphs/mouse-clatter.lhs

mouse clatter (rd)

> let { x = mouseX KR 100 12000 Linear 0.1
>     ; y = mouseY KR 0.01 0.15 Linear 0.1 }
> in do { n1 <- lfNoise0 KR (mce [3, 3.25])
>       ; let { t = impulse KR (n1 * 16 + 18) 0
>             ; s = do { n2 <- tRand 0.005 y t
>                      ; n3 <- whiteNoise AR
>                      ; n4 <- tRand 10 x t
>                      ; n5 <- tRand 0 1 t
>                      ; n6 <- tExpRand 0.15 1 t
>                      ; o <- let e = decay2 t 0.01 n2
>                             in return (bpf (n3 * e) n4 n5)
>                      ; n7 <- pv_RandComb (fft' 10 o) n6 t
>                      ; return (o * 0.05 + ifft' n7) } }
>         in withSC3 (\fd -> do { async fd (b_alloc 10 2048 1)
>                               ; play fd . out 0 =<< s }) }

(let* ((x (MouseX kr 100 12000 0 0.1))
       (y (MouseY kr 0.01 0.15 0 0.1))
       (n1 (LFNoise0 kr (mce2 3 3.25)))
       (t (Impulse kr (MulAdd n1 16 18) 0))
       (n2 (TRand 0.005 y t))
       (n3 (WhiteNoise ar))
       (n4 (TRand 10 x t))
       (n5 (TRand 0.0 1.0 t))
       (n6 (TExpRand 0.15 1.0 t))
       (e (Decay2 t 0.01 n2))
       (o (BPF (Mul n3 e) n4 n5))
       (n7 (PV_RandComb (FFT* 10 o) n6 t))
       (s (Add (Mul o 0.05) (IFFT* n7))))
  (with-sc3
   (lambda (fd)
     (async fd (/b_alloc 10 2048 1))
     (play fd (Out 0 s)))))