Next: Ruido blanco filtrado (brisa) con desplazamiento espacial Up: Otros ejemplos con Snd Previous: Ruido blanco en un espacio de 180 grados


Síntesis Substractiva, ruido blanco filtrado


 		 
 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; 
;;;                 Sonidos para brisa y viento 
;;;                                            
;;;
;;; Funciones para sacar los coeficientes de los filtros
;;; resonantes.
;;;
;;;
;;;                                       juanig\_at\_ccrma
;;;
;;;                                              (c) 2005


(define  b1-de-frec-rad
  (lambda (r freq)
    (- (* 2.0 r (cos (hz->radians freq))))))

(define b2-de-radianes 
  (lambda (r)
    (* r r)))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;;
;;; La siguiente funcion produce ruido blanco filtrado
;;;              Puede ser usada para efectos de doppler
;;;
;;;
;;;

(define brisa
  (lambda* (comienzo dur amp
		       #:key
		       (frecuencias '(0 20 1 10000))
		       (radianes '(0 0.707 1 0.707))
		       )
	   (let* ((inicio (floor (* comienzo (srate))))
		  (longitud (floor (* dur (srate))))
		  (ruido (make-rand :frequency (* 0.44 (srate)) 
				    :amplitude amp))
		  (env-frecu (make-env :envelope frecuencias
				      :duration dur))
		  (env-rad (make-env :envelope radianes
				   :duration dur))
		  (filtro (make-formant :frequency 440 
					:radius 0.25)) 
		  (salida (make-vct longitud)))
	     
	     (vct-map! salida 
		       (lambda ()
			 (let ((rd (env env-rad))
			       (fr (env env-frecu)))
			   (set! (mus-xcoeff filtro 2) (- rd ))
			   (set! (mus-ycoeff filtro 1) 
				 (b1-de-frec-rad rd fr)) 
			   (set! (mus-ycoeff filtro 2) (b2-de-radianes rd)) 
			   (formant filtro (rand ruido)))))
	     (vct->channel salida inicio longitud ))))


;; (brisa 0 1 0.5)
;; (brisa 0 1 0.5 :frecuencias '(0 100 1 3000))
;;; (load "brisa.scm")


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