64 lines
1.7 KiB
Racket
64 lines
1.7 KiB
Racket
#lang racket
|
|
;; status - not working as of 20220820 (local soundfile)
|
|
|
|
(require rsc3)
|
|
|
|
;; tgb (rd)
|
|
|
|
(define mkls
|
|
(lambda (bp t)
|
|
(env-gen kr 1 1 0 1 remove-synth (env-bp-linear bp t 1))))
|
|
|
|
(define pm/t
|
|
(lambda (l r d t)
|
|
(let ((le (mkls l d))
|
|
(re (mkls r d)))
|
|
(t-rand le re t))))
|
|
|
|
(define wrp
|
|
(lambda (i l r)
|
|
(let ((m (fdiv (sub r l) 2)))
|
|
(mul-add i m (add l m)))))
|
|
|
|
(define pm/n
|
|
(lambda (rt l r d)
|
|
(let ((le (mkls l d))
|
|
(re (mkls r d)))
|
|
(wrp (white-noise rt) le re))))
|
|
|
|
(define gb
|
|
(lambda (b d)
|
|
(let* ((gps (pm/n ar
|
|
(list 0 400 1 0900)
|
|
(list 0 600 1 1200)
|
|
d))
|
|
(t (impulse ar gps 0))
|
|
(dur (pm/t (list 0 0.005 0.5 0.015 1 0.005)
|
|
(list 0 0.009 0.5 0.020 1 0.009)
|
|
d
|
|
t))
|
|
(pan (pm/t (list 0 -1.0 0.5 -0.5 1 0.5)
|
|
(list 0 -0.5 0.5 +0.5 1 1.0)
|
|
d
|
|
t))
|
|
(rate (pm/t (list 0 06 0.5 12 1 06)
|
|
(list 0 12 0.5 12 1 12)
|
|
d
|
|
t))
|
|
(cpos (pm/t (list 0 0 1 0.95)
|
|
(list 0 0 1 1.00)
|
|
d
|
|
t))
|
|
(amp (pm/t (list 0 0.25 0.5 0.55 1.0 0.15)
|
|
(list 0 0.50 0.5 0.75 1.0 0.25)
|
|
d
|
|
t)))
|
|
(t-grains 2 t b rate (mul cpos (buf-dur kr b)) dur pan amp 2))))
|
|
|
|
(define tgb
|
|
(lambda (fn)
|
|
(lambda (fd)
|
|
(async fd (b-alloc-read 10 fn 0 0))
|
|
(play fd (out 0 (gb 10 7))))))
|
|
|
|
(with-sc3 (tgb "/home/rohan/data/audio/pf-c5.snd"))
|