Next: Ruido blanco en un espacio de 180 grados Up: Otros ejemplos con Snd Previous: Ruido Blanco


Ruido Blanco con Envolvente y Panorámicas


 		 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;
;;;  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)


© Copyright 2005-2007, expyeZp- Maginvent.ORG. All Rights Reserved, Todos Los Derechos Reservados.