rsc3/doc/examples/graph/spe.rkt

31 lines
745 B
Racket
Raw Permalink Normal View History

2022-08-24 13:53:18 +00:00
#lang racket
;; status - working as of 20220820
(require rsc3)
;; spe (jmcc)
(define chain-of
(lambda (n f)
(foldl1 compose (replicate n f))))
(define rapf
(lambda (i)
(allpass-n i 0.05 (clone 2 (rand 0 0.05)) 4)))
(define spe
(let* ((n (lf-noise1 kr 1))
(s (make-mce (list 00 03 02 07
08 32 16 18
00 12 24 32)))
(m (dseq dinf s))
(t (impulse kr 9 0))
(f (midi-cps (add (demand t 0 m) 32)))
(p (env-perc 0.01 1 1 (list -4 -4)))
(e (env-gen kr t 0.1 0 1 do-nothing p))
(o (mul (lf-saw ar f 0) e))
(rq (midi-cps (mul-add n 36 110))))
((chain-of 4 rapf) (rlpf o rq 0.1))))
(audition (out 0 spe))