Next: Otros ejemplos con Snd Up: Snd, el editor y generador de sonidos Previous: Descripción sobre Síntesis de Audio Aditiva


Síntesis de Audio por Frecuencia Modulada (FM) en Snd

  1. Síntesis de Audio por Frecuencia Modulada

    El timbre de sonidos interesantes tiene como característica principal un espectro relativamente complejo y que se desenvuelve con la duración del sonido. Por lo tanto cada elemento o componente del espectro posee su propio desarrollo individual produciendo un desarrollo espectral en la duración del sonido. La síntesis FM, es un método que permite la manipulación de un timbre para obtener sonidos reales y naturales.

    Al estar experimentando con diferentes tipos y tasas de vibrato y tremolo en la voz, Chowning descubrió que con velocidades por encima de la capacidad humana y frecuencias con una rapidez similar a las de frecuencias de audio, comienzan a aparecer componentes armónicos proporcionales a mas o menos la frecuencia portadora del tono que se estaba haciendo vibrar. Esta investigación dio como resultado uno de los métodos de síntesis de sonido en la categoría de manipulación de formas de onda y conocida como síntesis por frecuencia modulada o simplemente síntesis FM. Esta técnica es el método utilizado en la serie de instrumentos ``DX'' popularizada por Yamaha en los años 80.

    En la formula de frecuencia modulada con aplicación directa a la síntesis de sonido se permite generar este tipo de espectros sonoros complejos con relativa simpleza. El hecho de que la evolución temporal del espectro pueda ser controlada relativamente fácil se convierte en su principal atributo y hace que la FM sea una técnica muy atractiva y con cualidades para manipular una forma de onda directamente.

  2. Teoría de la síntesis FM

    En FM, la frecuencia instantánea de una onda portadora es variada de acuerdo a una onda moduladora, de tal forma que los cambios en la portadora se convierten en la frecuencia de la onda moduladora o frecuencia moduladora. La cantidad de variación en la onda portadora cambia alrededor de un promedio que se conoce como la desviación de picos de frecuencia entre ambas ondas y a la vez es proporcional a la amplitud de la onda moduladora.

    Los parámetros de una señal con características de frecuencia modulada son los siguientes:

  3. Ejemplos de Funciones

    Copiar el siguiente ejemplo en Emacs o en otro editor de texto y salvarlo como ``simple-fm.scm''. ¡ Analizar el algoritmo !.

    
     		 
     
    (define simple-fm
      (lambda* (comienzo duracion frecuencia amplitud 
    		       #:key
                           (ampenv '(0 0 25 1 75 1 100 0))
                           (radiomod 1) (indice 1) (indenv '(0 1 100 1)))
    	   ;;
    	   (let* ((inicio (floor (* comienzo (srate))))
    		  (longitud (floor (* duracion (srate))))
    		  (portadora (make-oscil :frequency frecuencia))
    		  (moduladora (make-oscil :frequency (* frecuencia radiomod)))
    		  (ampf (make-env :envelope ampenv :scaler amplitud 
    				  :start comienzo :end longitud))
    		  (devf (make-env :envelope indenv 
    				  :scaler (in-hz (* frecuencia
    						    radiomod indice))
    				  :start comienzo :end longitud))
    		  ;;
    		  ;; crear un vector para la información de audio
    		  ;; procesada
    		  ;;
    		  (salida (make-vct longitud)))
    	     ;;
    	     ;; Operaciones para aplicar la formula de FM
    	     ;; y asignarlas al vector de salida
    	     ;;
       	     (vct-map! salida (lambda () 
       				(* (env ampf) 
       				   (oscil portadora (* (env devf) 
       						       (oscil moduladora))))
       				))
    	     ;;
    	     ;; funcion que pone los datos del vector en un 
    	     ;; archivo de audio
    	     ;;
    	     (vct->channel salida inicio longitud #f 0))
    	   ))
    
  4. Comandos para generar diferentes sonidos

    1. 
       		  > (simple-fm 0 3 400 0.5 :indice 1.75 :radiomod 4)       
      
    2. Escuchar

      
       		  > (play)        
      
    3. Deshacer para generar un nuevo sonido,
      
       		  C-x u        
      

  5. Finalmente al manipular y controlar el índice de modulación con una envolvente se obtiene un espectro que es cambiante en la duración del sonido y la portadora con un promedio de 400Hz:

    
     		 
     
    (simple-fm 0 3 400 0.5 
       	   :indice 0.75 
       	   :radiomod 4 
       	   :indenv '(0 0.25 100 1.75))
    
  6. Tarea: Crear una secuencia de notas con cambios espectrales pero duraciones cortas en varias frecuencias. Utilizar una función como:

    
     		 
     
    (define mis-notas
     (lambda (numero durac frecu) 
       (let ((inic 0.0))
         (do ((i 0 (1+ i)))
              ((= i numero))
           (begin
    	 (simple-fm inic
    		    durac
    		    frecu
    		    0.707
    		    :indice 2.45 
    		    :radiomod 3.75
    		    :indenv '(0 0.25 100 4.75)
    		    ) 
    	 (set! inic (+ inic (* durac 1.2)))
    	 (set! frecu (* frecu 1.005)))
    	 ))))
    
    Cuidado con la duracion que es en segundos multiplicado por el numero de notas.


next up previous
Next: Otros ejemplos con Snd Up: Snd, el editor y generador de sonidos Previous: Descripción sobre Síntesis de Audio Aditiva

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