packages feed

hsc3-graphs-0.8: src/chrd.lhs

chrd (rd)

> import Sound.SC3.Monadic

> main =
>   let chrd = do { r0 <- rand 0.05 0.5
>                 ; [r1, r2] <- sequence (replicate 2 (rand (-1) 1))
>                 ; r3 <- rand 0.15 0.35
>                 ; r4 <- rand 0.005 0.01
>                 ; let { m = mce [60, 65, 72, 77, 79, 84]
>                       ; ds = 3
>                       ; d = mce (map (* ds) [5, 4, 5, 7, 4, 5])
>                       ; f = midiCPS (xLine kr m (m + r0) d DoNothing)
>                       ; z = envTrapezoid 0 r3 d r4
>                       ; e = envGen kr 1 1 0 1 DoNothing z
>                       ; p = xLine kr r1 r2 d DoNothing
>                       ; o = fSinOsc ar f 0 }
>                   in return (mix (pan2 o p e)) }
>   in audition . out 0 . mix =<< clone 9 chrd

{ var chrd = { var r0 = Rand.new(0.05, 0.5)
             ; var r1 = Rand.new(-1, 1)
             ; var r2 = Rand.new(-1, 1)
             ; var r3 = Rand.new(0.15, 0.35)
             ; var r4 = Rand.new(0.005, 0.01)
             ; var m = [60, 65, 72, 77, 79, 84]
             ; var ds = 3
             ; var d = [5, 4, 5, 7, 4, 5] * ds
             ; var f = XLine.kr(m, m + r0, d).midicps
             ; var z_ = Env.linen(r3 * d, 0, (1 - r3) * d, r4)
             ; var z = Env.sine(d.maxItem, r4)
             ; var e = EnvGen.kr(z, 1, 1, 0, 1)
             ; var p = XLine.kr(r1, r2, d)
             ; var o = SinOsc.ar(f, 0)
             ; Mix.ar(Pan2.ar(o, p, e)) }
; Out.ar(0, Mix.fill(9, chrd)) }.play