packages feed

hsc3-0.3: Help/Graphs/aleatoric-quartet.lhs

aleatoric quartet (jmcc)

> let { amp = 0.07
>     ; density = mouseX KR 0.01 1 Linear 0.1
>     ; dmul = recip density * 0.5 * amp
>     ; dadd = amp - dmul
>     ; chain n f = foldl (>=>) return (replicate n f)
>     ; rapf i = do { r <- clone 2 (rand 0 0.05)
>                   ; return (allpassN i 0.05 r 1) }
>     ; mk_f = do { i0 <- iRand 0 2
>                 ; let r0 = select i0 (mce [1, 0.5, 0.25])
>                   in do { r1 <- rand (-30) 30
>                         ; n0 <- lfNoise0 KR r0
>                         ; let m = lag (roundE (n0 * 7 + 66 + r1) 1) 0.2
>                           in return (midiCPS m) } }
>     ; mk_s = do { f <- fmap recip mk_f
>                 ; r <- rand (-1) 1
>                 ; x <- do { n0 <- pinkNoise AR
>                           ; n1 <- lfNoise1 KR 8
>                           ; return (n0 * max 0 (n1 * dmul + dadd)) }
>                 ; return (pan2 (combL x 0.02 f 3) r 1) } }
> in do { g <- chain 5 rapf =<< fmap sum (replicateM 4 mk_s)
>       ; audition (out 0 (leakDC g 0.995)) }

{ var amp = 0.07
; var density = MouseX.kr(0.01, 1, 'linear', 0.1)
; var dmul = density.reciprocal * 0.5 * amp
; var dadd = amp - dmul
; var rapf = { arg i
             ; var r = Array.fill(2, { Rand(0, 0.05) })
             ; AllpassN.ar(i, 0.05, r, 1) }
; var mk_f = { var i0 = IRand.new(0, 2)
             ; var r0 = Select.kr(i0, [1, 0.5, 0.25])
             ; var r1 = Rand.new(-30, 30)
             ; var n0 = LFNoise0.kr(r0)
             ; var m = Lag.kr((n0 * 7 + 66 + r1).round(1), 0.2)
             ; m.midicps }
; var mk_s = { var f = mk_f.value.reciprocal
             ; var r = Rand.new(-1, 1)
             ; var n0 = PinkNoise.ar()
             ; var n1 = LFNoise1.kr(8)
             ; var x = n0 * 0.max(n1 * dmul + dadd)
             ; Pan2.ar(CombL.ar(x, 0.02, f, 3), r, 1) }
; var g = Mix.fill(4, mk_s)
; 5.do({ g = rapf.value(g) })
; Out.ar(0, LeakDC.ar(g, 0.995)) }.play