;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;
;;; Función para estirar ruido blanco en un espacio de 180 Grados
;;;
;;;
;;; juanig\_at\_ccrma
;;;
;;; (c) 2005
(define rblanco-espa
(lambda* (comienzo duracion amplitud
#:key
(amp-env '(0 0.20 1 0.95))
(pan-env '(0 0.0 0.5 90.0 1 0.00))
(angulo 0.00) (distancia 1.0) )
(let* ((inicio (floor (* comienzo (srate))))
(longitud (floor (* duracion (srate))))
(ruido (make-rand :frequency (* 0.52 (srate))
:amplitude amplitud))
(env-a0 (make-env :envelope amp-env
:duration duracion))
(env-a1 (make-env :envelope amp-env
:duration duracion))
(l-env (make-env :envelope pan-env
:scaler (/ 1.0 90.0)
:duration duracion ))
(r-env (make-env :envelope pan-env
:scaler (/ 1.0 90.0)
:duration duracion ))
(loc (make-locsig :channels (channels)
:degree angulo
:distance distancia))
(out-a (make-vct longitud))
(out-b (make-vct longitud)))
(vct-map! out-a (lambda ()
(let ((p-val (env l-env)))
(locsig-set! loc 0 (- 1.0 p-val))
(* (locsig-ref loc 0) (env env-a0) (rand ruido))
)))
(vct-map! out-b (lambda ()
(locsig-set! loc 1 (env r-env))
(* (locsig-ref loc 1 ) (env env-a1) (rand ruido))
))
(vct->channel out-a inicio longitud #f 0)
(vct->channel out-b inicio longitud #f 1))))
;;; (load "rblanco.scm")
;; (rblanco-espa 0 1 0.5)
(define vueltas1
(lambda (num durac)
(let ((inic 0.0))
(do ((i 0 (1+ i)))
((= i num))
(begin
(rblanco-espa inic
durac
0.5
:amp-env '(0 0.0 0.5 1.0 1.0 0.0)
:pan-env '(0 0.0 0.5 90.0 1 0.00)
)
(set! inic (+ inic durac)))))))
;;; (vueltas1 2 1)
;;; (vueltas1 3 2)
|