;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;
;;; Función para panoramicas con ruido blanco y envolvente
;;; Cambios en la envolvente y en la duracion son de interes
;;;
;;; juanig_at_ccrma
;;;
;;; (c) 2005
(define ruidob-ang
(lambda* (comienzo duracion amplitud
#:key
(amp-env '(0 1.0 1 0.0))
(degree 45))
(let* ((inicio (floor (* comienzo (srate))))
(longitud (floor (* duracion (srate))))
(ruido (make-rand :frequency (* 0.52 (srate))
:amplitude amplitud))
(env-a (make-env :envelope amp-env
:duration duracion))
(loc (make-locsig :channels (channels)
:degree (or degree (random 90))))
(salida (make-vct longitud)))
(vct-map! salida
(lambda ()
(* (env env-a) (rand ruido))))
(if (= (channels) 2)
(let ((muestrasb (vct-copy salida)))
(mix-vct (vct-scale! muestrasb (locsig-ref loc 1)) inicio #f 1 #f)
(mix-vct (vct-scale! salida (locsig-ref loc 0)) inicio #f 0 #f))
(mix-vct salida inicio #f 0 #f))
)))
;;; (new-sound "/zap/test.snd" :channels 2)
;;; (ruidob-ang 0 0.035 0.5)
;;; (load "rblanco.scm")
(define secuencia
(lambda ()
(ruidob-ang 0 0.035 0.5 :degree 0.0)
(ruidob-ang 0.5 0.035 0.5 :degree 22.5)
(ruidob-ang 1.0 0.035 0.5 :degree 45.0)
(ruidob-ang 1.5 0.035 0.5 :degree 67.5)
(ruidob-ang 1.5 0.5 0.5 :degree 90.0)
))
(define pasar
(lambda (comienzo repet ancho)
(let ((angulo 0.00))
(do ((i 0 (1+ i)))
((= i repet))
(begin
(set! angulo (+ angulo (/ 90 repet)))
(ruidob-ang (+ (/ i ancho) comienzo)
0.06
0.5
:amp-env '(0 1.0 1 0.0)
:degree angulo))))))
;;; (pasar 0 10 10)
;;; (pasar 0 20 15)
;;; (pasar 0 20 5)
;;; (pasar 0 30 3)
(define contrario
(lambda (comienzo repet ancho)
(let ((angulo 90.00))
(do ((i 0 (1+ i)))
((= i repet))
(begin
(set! angulo (- angulo (/ 90 repet)))
(ruidob-ang (+ (/ i ancho) comienzo)
0.06
0.5
:amp-env '(0 0.0 1 1.0)
:degree angulo))))))
;;; (contrario 0 10 10)
;;; (contrario 0 20 5)
(define vayviene
(lambda (rep anch)
(let ((mitad (/ rep anch)))
(pasar 0 rep anch)
(contrario mitad rep anch))))
;;; (vayviene 10 10)
;;; (vayviene 20 5)
|