packages feed

hdf-0.11: Help/Graphs/analog-bubbles.lhs

analog bubbles (jmcc)

> import Control.Monad
> import Sound.DF

> let { dpl f a b = liftM2 (,) (f a) (f b)
>     ; madd m a = fmap ((+ a) . (* m))
>     ; mk_o f = madd 3.0 80.0 (lf_saw f 0.0)
>     ; mk_f a = madd 24.0 a (lf_saw 0.4 0.0)
>     ; mk_s f = fmap (* 0.04) (sin_osc (midi_cps f) 0.0) }
> in do { (o1, o2) <- dpl mk_o 8.0 7.23
>       ; (f1, f2) <- dpl mk_f o1 o2
>       ; (s1, s2) <- dpl mk_s f1 f2
>       ; c1 <- buf_comb_n 0 s1 0.2 4.0
>       ; c2 <- buf_comb_n 1 s2 0.2 4.0
>       ; audition [b_alloc 0 44100, b_alloc 1 44100] (out2 (c1, c2)) }

let { o = lfSaw kr (mce2 8 7.23) 0 * 3 + 80
    ; f = lfSaw kr 0.4 0 * 24 + o
    ; s = sinOsc ar (midiCPS f) 0 * 0.04 }
in audition (out 0 (combN s 0.2 0.2 4))