rsc3/doc/examples/graph/hh-808.rkt

46 lines
1.5 KiB
Racket
Raw Normal View History

2022-08-24 13:53:18 +00:00
#lang racket
;; status - working as of 20220820
(require rsc3)
;; hh-808 (ryan at wabdo.com)
(define hh-808
(let* ((time 250)
(freqs (list 205.35 304.41 369.64 522.71 540.54 812.21))
(pulse-env
(let ((e (env (list 1.0 0.6) (list time) (list -0.5) 0 0)))
(env-gen ar 1 1 0 (/ 1 1000) do-nothing e)))
(s (let ((f (make-mce (map (lambda (x) (mul x 4.09)) freqs))))
(mix (lf-pulse ar f 0 0.5))))
(f (list
(lambda (a)
(add3 (mul (eq a 6.0) 0.6)
(mul (eq a 2.0) 0.2)
(mul (eq a 1.0) 0.9)))
(lambda (a)
(add (mul a pulse-env)
(mul (mix (lf-pulse ar (make-mce freqs) 0 0.55)) 0.9)))
(lambda (a)
(rlpf a 7000 0.6))
(lambda (a)
(rhpf a 6800 1.5))
(lambda (a)
(rhpf a 6800 1.5))
(lambda (a)
(rhpf a 1200 1.5))
(lambda (a)
(add a (free-verb a 0.33 0.5 0.5)))
(lambda (a)
(let* ((c (list 0 -0.5 0 -50))
(e (env (list 0 1 0.4 0 0)
(list 2 time 50 500)
c 0 0)))
(mul a (env-gen ar 1 1 0 (/ 1 1000) remove-synth e))))
(lambda (a)
(mce2 a (delay-n a 0.005 0.005)))))
(>>> (flip compose)))
(mul ((foldl1 >>> f) s) 2)))
(audition (out 0 hh-808))