hsc3-0.2: Help/Graphs/harmonic-swimming.lhs
harmonic swimming (jmcc)
> let { a = 0.02
> ; f = 50
> ; p = 20
> ; l = line KR 0 (- a) 60 DoNothing
> ; o h = do { r <- clone 2 (rand 2 8)
> ; n <- lfNoise1 KR r
> ; let e = max 0 (n * a + l)
> in return (fSinOsc AR (f * (h + 1)) 0 * e) } }
> in audition . out 0 . sum =<< mapM o [0..p]
{ var a = 0.02
; var f = 50
; var p = 20
; var l = Line.kr(0, a.neg, 60, 0)
; var o = { arg h
; var r = 6 + [Rand.new(-4, 4), Rand.new(-4, 4)]
; var n = LFNoise1.kr(r)
; var e = max(0, n * a + l)
; FSinOsc.ar(f * (h + 1), 0) * e }
; Out.ar(0, (0..p).collect(o).sum) }.play
(let* ((a 0.02)
(f 50)
(p 20)
(z 0)
(l (Line kr 0 (- a) 60 0))
(o (lambda (h)
(let* ((r (clone 2 (Rand 2 8)))
(n (LFNoise1 kr r))
(e (Max 0 (MulAdd n a l))))
(Mul (FSinOsc ar (* f (+ h 1)) 0) e)))))
(audition (Out 0 (mix (make-mce (map o (iota p)))))))