129
FECHA 24 de Noviembre NÚMERO RA PROGRAMA Ingeniería de Sonido AUTOR (ES) MEDINA SÁNCHEZ, Juan Manuel. TÍTULO Diseño y construcción de sistemas electrónicos virtuales para el procesamiento y la generación de señal musical en tiempo real soportados como plugins vst: vocoder de fase y reverberador digital. PALABRAS CLAVES Ventaneo, DSP, Señal, Síntesis, sistema, reverberación, Vocoder de Fase, Resíntesis, Banco de Filtros, Canales de Análisis, DFT, IDFT, STFT, FFT, IFFT, Filtro de Peine, Reflexiones Tempranas, Convolución, VST, Vocoder, Espectro, Algoritmo, FM, Difusión, Plate, SMS, Detector de Picos, Estimación Espectral, Reconstrucción, Onda por tabla, Transformada de Laplace, Reverberación Subsecuente. DESCRIPCIÓN Las técnicas de procesamiento de señales de audio son útiles en el ámbito de la Ingeniería de Sonido ya que permiten una gran cantidad de aplicaciones para generar, detectar, analizar, procesar y modificar entre otras funciones dichas señales. Estas funciones expresadas mediante algoritmos de procesamiento pueden establecerse bajo la extensión VST para implementarse en diversas estaciones de trabajo en el ámbito Ingenieril y de producción musical. En la investigación se sugiere la construcción de dos dispositivos, uno como sistema de análisis/síntesis y otro como reverberador digital. FUENTES BIBLIOGRÁFICAS [1] John G. Proakis. Tratamiento digital de señales: Principios, algoritmos y aplicaciones, tercera edición. Madrid; Prentice Hall, 1988. [2] Sorias Olivas, Emilio. Tratamiento digital de señales: problemas y ejercicios resueltos, Primera edición. Madrid; Pearson Educación, 2003.

FECHA - bibliotecadigital.usb.edu.cobibliotecadigital.usb.edu.co/bitstream/10819/1516/1/Diseño... · Procesamiento de señales analógicas y digitales, segunda ... 3 [13] Kahrs,

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

  FECHA  24 de Noviembre  NÚMERO RA   PROGRAMA  Ingeniería de Sonido  AUTOR (ES)  MEDINA SÁNCHEZ, Juan Manuel. TÍTULO  Diseño  y  construcción  de  sistemas  electrónicos  virtuales  para  el 

procesamiento y  la generación de  señal musical  en  tiempo  real  soportados como plug‐ins vst: vocoder de fase y reverberador digital.  

 PALABRAS CLAVES  Ventaneo, DSP, Señal, Síntesis, sistema, reverberación, Vocoder de 

Fase, Resíntesis,  Banco de Filtros, Canales de Análisis, DFT, IDFT, STFT,  FFT,  IFFT,  Filtro  de  Peine,  Reflexiones  Tempranas, Convolución,  VST,  Vocoder,  Espectro,  Algoritmo,  FM,  Difusión, Plate,  SMS,  Detector  de  Picos,  Estimación  Espectral, Reconstrucción,  Onda  por  tabla,  Transformada  de  Laplace, Reverberación Subsecuente.  

 

 DESCRIPCIÓN  Las técnicas de procesamiento de señales de audio son útiles en el ámbito 

de  la  Ingeniería  de  Sonido  ya  que  permiten  una  gran  cantidad  de aplicaciones  para  generar,  detectar,  analizar,  procesar  y modificar  entre otras  funciones  dichas  señales.  Estas  funciones  expresadas  mediante algoritmos  de  procesamiento  pueden  establecerse  bajo  la  extensión  VST para  implementarse  en  diversas  estaciones  de  trabajo  en  el  ámbito Ingenieril  y  de  producción  musical.  En  la  investigación  se  sugiere  la construcción de dos dispositivos, uno  como  sistema de  análisis/síntesis y otro como reverberador digital. 

 

 FUENTES BIBLIOGRÁFICAS  [1] John G. Proakis.  

Tratamiento  digital  de  señales:  Principios,  algoritmos  y aplicaciones, tercera edición. Madrid; Prentice Hall, 1988.  [2] Sorias Olivas, Emilio. Tratamiento  digital  de  señales:  problemas  y  ejercicios resueltos, Primera edición. Madrid; Pearson Educación, 2003.    

2

[3] Britton, Jack R. Matemáticas universitarias. México; CECSA, 1984.  [4] Albardar, Ashok. Procesamiento  de  señales  analógicas  y  digitales,  segunda edición. México; Thomson Editores, 2002.  [5] Purcell Edwin J., Varberg Dale. Cálculo con Geometría Analítica, cuarta edición. México; Prentice Hall, 1987.  [6] Davis, Gary y Jones, Ralph. The Sound Reinforcement Handbook, segunda edición. USA; America and Gary Davis & Associates, 1989.  [7] Chowning, John M. The  synthesis  of  complex  Audio  Spectra  by  Means  of Frequency Modulation. Stanford  Artificial  Intelligence  Laboratory,  Stanford, California; AES. Vol. 21, 1973.  [8] Canosa, José. Curso Experimental del lenguaje C. Barcelona; Marcombo, 1992.  [9] Masri, Paul. Computer  Modelling  of  Sound  for  Transformation  and synthesis of musical signals. Universidad de Bristol, departamento de Ingeniería eléctrica y electrónica, 1997.  [10] Zölzer, Udo. Digital Audio Signal Processing. Inglaterra; John Wiley & Sons, Ltd, 1997.  [11] Chen, Chi‐Tsong. Signals and Systems, tercera edición. USA; Oxford University Press, 2004.  [12] Rocchesso, Davide. Introduction to Sound Processing. Universidad de Verona, Departamento de Informática, GNU (Free Documentation Licence), 2003.  

3

[13] Kahrs, Mark y Brandenburg, Karlheinz. Applications  of  digital  signal  processing  to  audio  and acoustics. New York; Kluwer Academic Publishers, 2002.  [14] Correa, Guillermo. Desarrollo  de  Algoritmos  y  sus  Aplicaciones  en    Basic, Pascal, Cobol y C. Bogotá D.C.; McGraw Hill, 1992.  [15] Schroeder, Manfred R. Progress  in  Architectural  Acoustics  and  Artificial Reverberation: Concert Halls Acoustics and Number Theory. USA; J. Audio Soc., Vol. 32, No 4, abril de 1984.  [16] Recuero, Manuel. Acústica arquitectónica: soluciones prácticas. Madrid: Paraninfo, 1992.  

 

  NÚMERO RA   PROGRAMA    METODOLOGÍA   

1. Enfoque de la investigación: Empírico Analítico. Línea de Investigación del programa: Tecnologías Actuales y Sociedad. 

               Sublínea  de  la  Facultad  de  Ingeniería:Procesamiento  de  Señales  Digitales  y/o analógicas.                Campo Temático del Programa: Diseño de sistemas de Sonido.  

2. La recolección de la información depende básicamente de la información hallada en las Bibliotecas, Internet e información adjuntada a plataformas específicas Software.  

 3. Esta  investigación  está  concebida  para  comprobar  la  factibilidad  que  existe    en  el 

diseñar  y  desarrollar  dos  sistemas  virtuales  musicales  (Plug‐ins  VST) interrelacionados,  para  la  manipulación  de  señales  de  audio  como  herramienta novedosa  para  la  producción  musical,  aplicando  un  bagaje  Ingenieril  que  será adaptado a una plataforma computacional y desde allí exportar  los plug‐ins para su uso.  

  

4

  4. Variables independientes. 

 • Modelos Matemáticos aplicados. • Editores para la elaboración de los dispositivos. • Efectividad y estabilidad de los sistemas. 

       Variables independientes. 

 • Funcionalidad del producto. • Aceptación del desarrollo. • Tecnologías Previamente desarrolladas. • Tecnologías innovadoras en el medio 

                                                 

5

  CONCLUSIONES   

 • Los  plug‐ins  VST  desarrollados  en  proyecto  pueden  ser  manipulados  en  diversas 

superficies  de  control  y  estaciones  de  trabajo  pero  solo  para  el  sistema  operativo Windows.  Estas  estaciones  de  audio  demostraron  una  alta  compatibilidad  de  de comunicación con los  plug‐ins tanto el vocoder de fase como el Reverberador Digital con  fines de  la  automatización de  controles y  reproducción del  audio  entrante  a  los sistemas de procesamiento. 

  

• La  señal  de  sonido  de  entrada  al  sistema  vocoder  de  fase  desarrollado  permite analizar/resintetizar  señales  de  audio  en  tiempo  real  y  su  uso  específico  se  puede reconocer como “morphing” o modelado de la señal de entrada al dispositivo con fines musicales. 

  

• En la investigación se ratificó la posibilidad de analizar y reconstruir  señales de audio por medio  de  un modelo  espectral,  no  lineal  (FM)  y  la  resíntesis  por medio  de  la Transformada Inversa de Fourier para tiempo discreto. 

  

• Mediante la configuración de líneas de retardo como filtros de peine y filtros de peine pasa  todo,  en  cascada  o  en  serie    proporcionan  la  capacidad  de  utilización  de  un sistema  para  la  simulación  de  reflexiones  tempranas  y    reverberación  subsecuente acoplado para la simulación de un campo acústico‐geométrico (recinto) pero carece de mayor difusión para crear una mejor percepción de un ambiente reverberante. 

  

• Los coeficientes de los filtros de peine concebidos en el Reverberador digital influyen directamente  en  el  tiempo  de  decaimiento  exponencial  de  la  señal  (reverberación subsecuente) mientras  que  los  tiempos  de  retardo  afectan  la  difusión  en  el  campo simulado mediante la densidad de eco y de frecuencia. 

  

• En  el prototipo desarrollado  como  el vocoder de  fase  la  reconstrucción mediante  el modelado espectral aplicado tiene una baja correlación con respecto a la señal original que  la obtenida mediante  la  reconstrucción directa mediante  IDFT  cuyos  resultados son óptimos dado que la síntesis por modelado espectral es estimativa. 

  

• La efectividad de reverberación digital reposa en la forma de estimular la capacidad de discriminación perceptual de espacios geométricos‐acústicos simulados. 

 

6

   

• Del  consumo de memoria  física  y virtual de  la CPU depende de  la  accesibilidad  al sistema  virtual  de  procesamiento.  Esto  se  dispone  mediante  el  monitoreo  del rendimiento en el procesamiento del sistema operativo y la optimización del algoritmo DSP  propuesto.  En  los  prototipos  implementados  fue  probado  su complejidad/rendimiento con resultados óptimos que califican a los plug‐ins a operar con un bajo requerimiento de memoria física y virtual de la CPU.  

  

• El  formato  de  compilación  VST  permite  crear  una  interfase  de  usuario  intuitiva, llamativa y fácil de usar por múltiples usuarios ya que estos sistemas virtuales pueden ser  distribuidos mediante medios  y  formatos  digitales masivos  como  la  Internet  o discos compactos. Además el  formato VST permite adicionar  información extra para otorgarle  al  usuario  una  lista  de  programas  y  predispuestos  para  una  posible automatización gráfica, directa (host) o vía MIDI desde una plataforma que hospede al plug‐in VST. 

 

7

DISEÑO Y CONSTRUCCIÓN DE SISTEMAS ELECTRÓNICOS VIRTUALES PARA EL PROCESAMIENTO Y LA GENERACIÓN DE SEÑAL MUSICAL EN

TIEMPO REAL SOPORTADOS COMO PLUG-INS VST: VOCODER DE FASE Y REVERBERADOR DIGITAL.

JUAN MANUEL MEDINA SANCHEZ

PROYECTO DE GRADO

UNIVERSIDAD DE SAN BUENAVENTURA INGENIERÍA DE SONIDO

BOGOTÁ D.C. 2006

8

Nota de Aceptación.

____________________

_____________________ _____________________ _____________________ _____________________ _____________________ Presidente del Jurado _____________________ Jurado _____________________ Jurado Bogotá (24 de NOVIEMBRE del 2006)

9

Dedicado a:

Mi familia y a quienes ayudan a desarrollar un mejor presente.

10

AGRADECIMIENTOS

A la dirección de programa y todos los integrantes del nodo de investigación de Ingeniería de Sonido de la Universidad de San Buenaventura sede Bogotá por su tiempo y la gran colaboración prestada en este pequeño aporte, también quiero agradecer a mi familia por la eterna y sincera amistad.

11

CONTENIDO GLOSARIO…………………………………………………………………………12 INTRODUCIÓN…………………………………………………………………….16 PLANTEAMIENTO DEL PROBLEMA…………………………………………..17 MARCO DE REFERENCIA………………………………………………………23 METODOLOGÍA…………………………………………………………………...78 DESARROLLO INGENIERIL…………………………………………………….80 PRESENTACIÓN Y ANÁLISIS DE RESULTADOS………………………....110 CONCLUSIONES………………………………………………………………...125 RECOMENDACIONES…………………………………………………………..127 BIBLIOGRAFÍA………………………………………………………………….. 128

12

GLOSARIO Algoritmo computacional: Un conjunto de instrucciones lógico numéricas descrito a través de una serie determinada de sentencias ingresadas a una plataforma computacional mediante una estructura que describe y ejecuta un proceso lógico específico se conoce como algoritmo computacional. Las instrucciones numéricas pueden contener valores variables o constantes, donde las variables son un conjunto de caracteres que pueden variar en la consecución del algoritmo, compuesta de un nombre y un valor, los valores constantes son introducidos en el momento de su uso. Convolución: En un sistema o dispositivo, la señal de salida es una función de la señal entrante y las características del dispositivo. La interacción entre la entrada y el dispositivo está relacionada por una expresión matemática conocida como convolución. De forma inversa, el espectro de salida del mismo dispositivo es el espectro de entrada multiplicado por la respuesta en frecuencia del sistema mediante un método de análisis como el algoritmo de transformada rápida de fourier (FFT). Espectro: Mediante técnicas de procesamiento de señal implementadas comúnmente vía DSP la señal de sonido puede ser modelada como suma de ondas seno a distintas fases, frecuencias y amplitudes. La Transformada de Fourier permite representar señales de audio en el dominio de la frecuencia, en este dominio la señal se denomina espectro y puede visualizarse mediante un analizador espectral gráfico, por otro lado el análisis de la señal en el dominio de tiempo se denomina forma de onda. Filtro de Peine: Un sistema Z –m puede ser alimentado tanto a la salida como a la entrada y dicha configuración es modelada como un filtro de peine o un filtro peine-pasa todo y para efectos de procesamiento o control pueden estar configurados tanto en serie como en paralelo. Generador de Señal: Elemento que produce que produce formas de onda en un rango de frecuencia delimitado.

13

Línea de retardo digital: Es un sistema que permite generar un retardo en la salida del sistema, especificado a través de una cantidad específica de muestras en un periodo de muestreo. Es concebido mediante la aplicación de la Transformada Z a una señal y es factible la elaboración de un algoritmo de interpolación para su implementación. Modulación en Frecuencia (FM): Es el cambio instantáneo de la frecuencia de una portadora en respuesta a una señal de modulación cuyo efecto es excitar la densidad espectral en la señal portadora. Procesamiento Digital de Señal (DSP): Se conoce como DSP a la manipulación y modificación de señales en el dominio digital por un sistema también discreto posiblemente después de haber convertido una señal análoga en digital por medio de un conversor análogo-digital. Reflexiones tempranas: En el algoritmo de reverberación, una etapa básica es la de reflexiones tempranas emulando mediante líneas de retardo en espacios discretos de tiempo, generando reflexiones similares a las creadas por superficies cercanas al sistema auditivo. Resíntesis: La resíntesis es una forma de síntesis basada en el análisis de datos obtenidos de la señal entrante a un sistema para una reconstrucción del sonido, existe la posibilidad de modificar o moldear la señal reconstruyendo el espectro con base en la suma de aportes en distintas áreas espectrales. La adición o inyección de ruido hace que el modelo periódico cambie a uno cuasi-periódico, emulando señales reales. Algunos sistemas transforman la señal moldeándola (Morph) con otras formas de onda o mediante modulación en el dominio de frecuencia o la amplitud. Reverberación Digital: Una reverberación digital está formada por filtros que emulan la respuesta obtenida de una señal convolucionada con la respuesta al impulso de un confinamiento acústico (sala) para implementaciones de simulación psicoacústica mediante procesamiento de señales discretas. Señales: son representaciones matemáticas de variables que describen un proceso físico, estas pueden variar en el tiempo o ser constantes. Estas transportan información e incluyen magnitudes físicas.

14

Sistemas: Físicamente se define un sistema como un conjunto de dispositivos interdependientes cuyo funcionamiento está sujeto a leyes físicas. Las señales ejecutadas o entradas definen la excitación de un sistema físico, en tanto la señal de salida es la respuesta del sistema. Los sistemas pueden comprendidos mediante señales de entrada conocidas y sus debidas respuestas a la excitación. SMS (Spectral Modeling Synthesis): Diseñado por Xavier Serra, el modelado espectral busca analizar y descomponer la señal sonora en componentes determinísticos y estocásticos. SMS usa la Transformada de Corto Tiempo de Fourier (STFT) además de un análisis de relevancia para picos de señal para una reconstrucción mediante un modelo aditivo. El ruido es obtenido mediante una substracción entre la señal original y los componentes determinísticos. Esta descomposición puede transformar los parámetros en altura y moldeado de la señal entrante a este sistema. Transformada Rápida de Fourier (FFT): Es un algoritmo que permite computar de modo óptimo la suma de la Transformada Discreta de Fourier (DFT) que es la colección de N muestras de una señal discreta ventaneada por una función rectangular. Los puntos de frecuencia muestreada son cápsulas espaciadas equitativamente entre 0 y la frecuencia de muestreo. El algoritmo FFT puede encontrarse predefinido en numerosas librerías de dispositivos y en lenguajes de procesamiento de señal como Matlab, Octave, Csound, CLM entre otros. Transformada de Fourier de corto tiempo(STFT): Es el análisis de Fourier aplicado en secciones de la señal en el dominio del tiempo, asumiendo que la frecuencia de muestreo es equivalente al inverso del periodo de muestreo que es igual a 1, tal que Fs=1/T=1. Ventaneo: Las ventanas de análisis son funciones similares a filtros pasa-banda que permiten el paso de una determinada porción de la señal mediante una forma particular de la ventana. Las funciones de ventaneo más comunes son de forma rectangular, triangular, Hamming, Hanning, Blackman Harris, y Kaiser entre otras. Vocoder de Fase: Un evento cuasi-periódico ocurre durante segmentos sostenidos en el tiempo, el cual es traducido mediante esta técnica como la operación que relaciona (no solo adición) ondas seno moduladas en amplitud y en frecuencia que se traducen a una descomposición basada en ondas senoides. La propiedad y los métodos de separabilidad son esenciales en la aplicación de

15

análisis/síntesis en eventos sonoros esquematizando el conjunto como un "Vocoder de Fase". VST (Virtual Studio Technology): VST (Virtual Studio Technology) fue creado por steinberg para crear programas de síntesis y procesamiento de señal mediante software. VST es un estándar de desarrollo de plugs para el procesamiento de información musical (audio y MIDI). A estos programas se les llama “plug-in” debido a su falta de autonomía; están diseñados para ser incluidos en otros programas como secuenciadores o hosts.

16

INTRODUCCIÓN Los recursos teóricos que modelan físicamente el sonido pueden ser implementados a través de dispositivos para efectos de optimización y la generación de novedosas modificaciones de señales acústicas y de audio en tiempo real. Los procesadores que integran procesos de señales digitales, acústicas, computacionales y electrónicas son sistemas versátiles que pueden ser aplicados en el ámbito de la Ingeniería de Sonido y la música con múltiples propósitos tanto de análisis, detección, control, optimización y modificación de señales sonoras. Las plataformas software plantean modelos físicos mediante el procesamiento digital de las señales discretas (DSP). Estos sistemas pueden ser adquiridos y utilizados por múltiples usuarios a través de superficies de sonido y estaciones de trabajo para su optimización y modificación de sus parámetros. A lo largo del proyecto de investigación se partirá desde conceptos teóricos fundamentales hasta la arquitectura de dos diseños escogidos para su construcción: el vocoder de fase que consiste en un sistema de análisis-síntesis para la modificación de señales de audio que basa su funcionamiento en un análisis de Fourier por canales en tiempo real y la arquitectura de una reverberación digital está formada por filtros que emulan la respuesta obtenida de una señal convolucionada con la respuesta al impulso de un confinamiento acústico (sala) para implementaciones de simulación psicoacústica mediante procesamiento de señales discretas. Por otro lado en la investigación se busca desarrollar un sistema plug - in virtual compilado bajo la extensión universal VST (Virtual Studio Technology), creada por la empresa Steinberg, que opera asociada a las estaciones de trabajo más comunes de procesamiento, edición y secuenciación como Digidesign Protools, Steinberg Cubase, Cakewalk Sonar o Emagic Logic y en algunos casos gozan la posibilidad de operar en forma autónoma como sistemas conocidos como stand-alone o dispositivos nativos ejecutables que proveen módulos de muestreo, síntesis, procesamiento, control, análisis y detección de la señal sonora. Es de gran importancia el diseño y la construcción de dispositivos de señales sonoras para una mejor comprensión del funcionamiento de estas herramientas y del desarrollo de tecnologías de libre divulgación como un pequeño aporte al fortalecimiento de la tecnología desarrollada a nivel universitario y social en general.

17

1 PLANTEAMIENTO DEL PROBLEMA 1.1 ANTECEDENTES Las herramientas virtuales de generación y procesamiento de señal musical se imponen en el ámbito de la producción sonora y se han radicado con gran aceptación en el ámbito de la Ingeniería de sonido y la producción musical, debido al proceso de globalización que produjo una aldea intercomunicada donde los dispositivos de generación y procesamiento de sonido pueden ser elaborados mediante una arquitectura constituida básicamente de datos (algoritmos de procesamiento), con la posibilidad de comunicación periférica mediante interfaces de conversión analógico - digital, G. MIDI o USB entre otras. Sin embargo la constitución de este ámbito se remonta a la década de 1950 donde Max Mathews construye el arquetipo de sistema musical modular con la serie Music-N que sienta las bases de estos sistemas que perduran aún hoy como su programa descendiente Csound. Una parte importante dentro de los sistemas virtuales pueden ser catalogados como subsistemas (plug in) dado que comúnmente pueden funcionar dentro de una superficie maestra conocida como una estación de trabajo o secuenciador que básicamente a través de plug ins procesa, controla, analiza y detecta señales de audio. En el ámbito de síntesis-análisis mediante el prototipo de phase vocoder se encuentran algunos antecedentes importantes como el programa Audiosculpt desarrollado por Philippe Depalle, Chris Rogers y Gilles Poirot para el instituto Francés IRCAM (Institut de Recherche et Coordination Acoustique-Musique)1, mediante este es posible hacer una modificación gráfica del espectro de la señal sonora. Otra herramienta de resíntesis es SMS2 (spectral modelling synthesis) desarrollado por Javier Serra (http://www.iua.upf.es/~sms/) en un modelo que permite el paso de los picos más característicos además de la incorporación de un modelo estocástico. Frente al diseño de plug-ins VST la referencia primaria es la empresa creadora de VST, Steinberg©3 y el grupo de desarrolladores de plug-ins VST en su mayoría libres de derechos, Tobybear©4. Por último M. Puckette hace un gran aporte al

1 http://www.ircam.fr. Visitada el 15 de mayo de 2006. 2 http://www.iua.upf.es/~sms/), visitada el 26 de Abril del 2006. 3 http:// www.steinberg.de, visitada en Noviembre de 2005. 4 www.tobybear.de, visitado en mayo 15 de 2006

18

tema mediante el algoritmo ~fiddle para el programa libre PD5. Para la sintaxis de algoritmos DSP existen diversas fuentes, una con reconocimiento y profesionalismo como musicdsp6. Las investigaciones sobre modelos de simulaciones de reverberación están basadas en los importantes aportes de Manfred Schroeder, Y. Ando, J. Moorer y M. Puckette entre otros. En Colombia el desarrollo de tecnología musical vía software es precario, no existían antecedentes productivos ni investigativos que soportaran la evidencia de gestión frente al tema ni entes que se ocuparan en el desarrollo de tecnología musical vía software hasta los proyectos de investigación en el tema liderados en la Universidad de San Buenaventura. A nivel internacional existe una competencia alta a nivel de desarrollo tecnológico. 1.2 DESCRIPCIÓN Y FORMULACIÓN DEL PROBLEMA El proyecto busca implementar un sistema acústico y de audio que sea útil en el ámbito de la producción sonora mediante una plataforma virtual bajo una extensión que permite su acceso a través de programas comunes entre los operarios de dichos sistemas. La elaboración de sistemas de procesamiento virtual se pueden elaborar con múltiples fines tanto investigativos como productivos. En este proyecto se puede formular la problemática ¿Cual es la factibilidad de tener éxito en el desarrollo de un sistema de generación y procesamiento virtual útil y novedoso, además de encontrar una plataforma que permita su elaboración? 5 //pd.iem.at/, visitado el 24 de Febrero de 2006 6 www.musicdsp.org, visitado en Marzo de 2006.

19

1.3 JUSTIFICACIÓN El largo periodo de investigación acerca de procesamiento y generación de señal en el campo del sonido y la telemática ha forjado un cúmulo teórico importante y complejo que hoy puede ser implementado a través de editores virtuales computacionales. Estos permiten mediante un ambiente de programación y creación de objetos elaborar sistemas para convertir la señal sonora a un dominio digital (DAC) y desde allí poderla procesar mediante algoritmos que representan operaciones matemáticas que pueden modificar parámetros de un evento sonoro en tiempo discreto. La información sonora debe salir por medio de un conversor de información digital analógica para poder ser reproducida por medio de una fuente sonora. Un conjunto complejo e interconectado de estos "objetos" o algoritmos crea un sistema Instrumento/procesador Virtual que debe tener una interfase intuitiva para ser operada en algunos casos por personas sin ninguna experiencia técnica. Este sistema debe estar diseñado y construido como herramienta para el procesamiento de instrumentos de carácter cuasi-periódicos comunes como la voz o una guitarra. Es necesario que el sistema pueda en lo posible ser autónomo y que posea un formato estándar para ser operado desde múltiples secuenciadores o estaciones de trabajo. Este proyecto busca aportar en el ámbito investigativo la posibilidad de acercarse a la comprensión de la manipulación de la señal sonora, ordenadores musicales y la capacidad de diseño y construcción de dispositivos, no solo a nivel teórico si no también en la experimentación práctica.

20

1.4 OBJETIVOS DE LA INVESTIGACIÓN 1.4.1 OBJETIVO GENERAL Desarrollar un dispositivo virtual que procese y genere señales digitales de audio en el formato genérico VST mediante un algoritmo de resíntesis y otro de reverberación digital. 1.4.2 OBJETIVOS ESPECÍFICOS

• Construir mediante una plataforma computacional un programa o sistema virtual para ser operado como una herramienta útil y novedosa en el ámbito de la producción sonora.

• Implementar el dispositivo con un soporte plug in estándar.

• Diseñar un diagrama en bloques para el modelado y la construcción del sistema.

• Desarrollar un sistema de ejecución independiente (autónomo).

• Estudiar la calidad del sistema a través de un método de comparación de parámetros mensurables.

• Lograr una interfase de usuario intuitiva y llamativa para los usuarios.

• Ensayar la factibilidad de elaborar una programa que de alguna forma hospede el plug - in.

21

1.5 ALCANCES Y LIMITACIONES DEL PROYECTO. 1.5.1 ALCANCES Se pretende con esta investigación hacer un pequeño pero valioso aporte al incentivo tanto personal como colectivo de gestar el diseño y desarrollo de herramientas útiles en el desempeño de la producción de audio profesional. Además se pretende elaborar un producto que pueda mediante una comparativa con otros similares construir sistemas que puedan tener algún éxito como herramienta en el medio. El diseño y la construcción de sistemas virtuales para el procesamiento de señal musical posibilitan de manera efectiva la modificación, la generación y el análisis de señales de audio en tiempo discreto. Esta investigación puede ser útil tanto para la esquematización y diseño de sistemas (diagramas en bloque, ínter conexionado), como en procesos híbridos en donde un software puede controlar procesos elaborados por circuitos hardware o analógicos. 1.5.2 LIMITACIONES La factibilidad de cumplir con lo establecido en el proyecto depende de la existencia y la explotación de los recursos virtuales de manera eficiente como las plataformas en la cual se pueda construir dicho sistema de procesamiento con un respaldo autónomo y estándar, sin embargo algunos de estas tecnologías son cerradas por derechos de autoría como la creación de plug - ins para el sistema Protools (RTAS), consecuentemente es necesario tener claro los formatos libres de desarrollo de estas tecnologías. Un factor decisivo en el desarrollo del proyecto es la capacidad que se tenga para ser creativos e innovadores, ya que es evidente la existencia de sistemas útiles y creativos, sin embargo esos prototipos han sido logrados por un grupo de personal de desarrollo cuantioso y a lo largo de un tiempo medianamente largo de gestión, por tanto el proyecto es una aproximación a un prototipo elaborado por las industrias tradicionales en el mercado.

22

La compilación del sistema de procesamiento está limitado por las licencias otorgadas por los autores de las plataformas operativas para la producción de los dispositivos tratados en este proyecto.

23

2. MARCO DE REFERENCIA 2.1 MARCO CONCEPTUAL. 2.1.1 Representación de sistemas computacionales para audio7. La programación mediante diagramación nace con la problemática de estandarizar las metodologías para el desarrollo y el análisis en entorno gráfico computacional, permitiendo la programación mediante módulos o bloques que poseen una estructura interna programable o programada como elemento para la realización de sistemas modulares constituidos por dichos elementos. Un subsistema o módulo básico posee los elementos de posible entrada, proceso y salida lo que permite ser interconectado para generar un sistema más complejo. En el procesamiento de señal esta diagramación podría ejemplarizarse con el desarrollo tecnológico de unidades generadoras de sonido UG, procesadores y generadores de audio [13]8, en la figura 1 se pueden apreciar distintas funciones para la elaboración de diagramas en bloque.

Fig 1. Representación de funciones computacionales de audio.

2.1.2 Lenguajes primitivos para el Procesamiento de Sonido. UN módulo primitivo para producir, modificar o adquirir audio externo es el lenguaje Music-N creado por Max Mathews en los laboratorios Bell a finales de la

7 Kahrs, Mark y Brandenburg, Karlheinz. Applications of digital signal processing to audio and acoustics.New York; Kluwer Academic Publishers, 2002. 8 Puede visualizarse en el Desarrollo Ingenieril en un determinado circuito.

24

década de1950, siendo aplicado en composiciones de1960 y 70, a través de la serie Music V, la cual estableció una simbología estándar para el desarrollo de procesos de música computarizada a través de unidades generadoras UG. Estas proponen la conexión modular entre los elementos, similar a sistemas musicales analógicos (ej, Moog), el complejo resultante se conoce como instrumento y a su vez orquesta a un grupo de instrumentos. Para cada instrumento los parámetros de las unidades generadoras pueden ser variados a través de una lista o "score" en unidades de tiempo (secuencia) musical variando los parámetros de las unidades generadoras. En la actualidad estos "scores" son conocidos como "Lista de Eventos" según el protocolo midi. En Music V estos parámetros son invocados secuencialmente generando eventos sonoros conocidos como "notas", la figura 2 expone la mecánica de funcionamiento y la interfase gráfica del programa MUSIC. Para generación de señales de audio de una forma primitiva era necesario usar las sentencias (oscil) para la inicialización de un oscilador, (line) para envolventes, filtros digitales a través de (reson), procesos de retardo (delay) y sonido entrante a la computadora (soundin). Un programa más moderno de UGso más funcional fue Nyquist como una modernización de Music-N y aún más en nuestra actualidad Csound, sin embargo las UGs son más susceptibles en la elaboración de sintetizadores que para la construcción de procesadores de sonido.

Fig 2. UG, Score

2.1.3 Sistemas Nativos Virtual System Technology (VST). VST (Virtual Studio Technology) fue creado por steinberg en 1984 aprovechando el potencial de los ordenadores para recrear los circuitos y programas de los instrumentos reales mediante software.

25

VST es un estándar de desarrollo de plugs para el procesamiento de información musical (audio y MIDI). A estos programas se les llama “plug-in” debido a su falta de autonomía; están diseñados para ser incluidos en otros programas como secuenciadotes o “hosts”. • Los efectos (VST): Estos plugs aceptan información AUDIO y producen información AUDIO. En este conjunto se incluyen todos los efectos como distorsión, chorus, flanger, compresión. • Los sintetizadores virtuales (VSTi): (la i es de instrumento). Estos plugs aceptan información MIDI y producen información AUDIO.

Fig 3. VST Waldorf PPG WAVE

El plug VSTi Waldorf PPG WAVE cuya interfase gráfica es expuesta en la figura 3 contiene parámetros que son predispuestos por los creadores y son útiles para tareas de control del plug-in. Mediante un “host” o sistema que hospeda el plug se puede obtener la lista de estos parámetros también como el distribuidor, la serie única de identificación “ID” y nombre del plug. Esta información puede ser opcional pero es muy importante ya que caracteriza y ubica el plug-in para ser manipulado universalmente. Este sistema permite la entrada de información MIDI y se obtiene audio a la salida. Un VSTfx (procesador) permite la entrada de audio y se obtiene audio procesado.

26

2.1.4 Programación mediante SynthMaker©9 El producto resultante de este proyecto investigativo fue concebido mediante esta plataforma, por su facilidad de implementación, capacidad en operatividad y versatilidad. Para esto es necesario exponer la sintaxis propia de dicho programa para codificar y adaptar los sistemas propuestos a dicho sistema. La plataforma SynthMaker permite el uso de código para la el diseño de algoritmos para el proceso de señales digitales mediante técnicas DSP a través del componente “code” en la sección de herramientas de la plataforma. El código puede ser vinculado e interconectado a otros sistemas “code” (SISO) y a los puertos ADC/DAC. Este sistema también puede ser combinado con algoritmos que están incluidos dentro de la plataforma para fines de control del sistema por un usuario (GUI). Por ende la dependencia entre las múltiples etapas genera la síntesis de un sistema con un fin determinado dentro de la síntesis o el procesamiento de la señal entrante10. El módulo “code” puede estipular tanto código para entradas y salidas, variables locales y asignaciones de tipo variable, entero, binario o flotante.

• Código para entradas y salidas: Streamin, Streamout, monoin, monoout, polyin, polyout, polyboolin (0, 1), polyboolout (0, 1).

• Aparte de entradas y salidas se pueden expresar variables que son asignados a expresiones que solo funcionan de forma local y son expresadas como float varlocal.

• Las asignaciones pueden ser de tipo como constantes, variables o

expresiones.

9 www.SynthMaker.com, visitada por primera vez en de marzo de 2006 10 SynthMaker Tutorial Guide, www.SynthMaker.com

27

El sistema comúnmente soporta las operaciones y expresiones11: Funciones Trigonométricas.

• sin1(a) • cos1(a) • tan1(a) 

Logaritmo en base 10. • log10(a)  

Máximo y mínimo entre a y b.

• max(a, b) • min(a, b) 

  Redondeo al siguiente valor entero por debajo

• rndint(a)    Operaciones y comparaciones

• * • + • ‐ • / • %  • > • >= • < • <= • &  

11 Para implementar estas funciones debe emplearse el módulo “code” que permite estos procedimientos.

28

Arreglos. Los arreglos en este sistema de código permiten almacenar datos pasados para ser usados en el diseño de muestreadores, ondas por tabla y líneas de retardo. Para esto el arreglo se dispone de la siguiente manera:

• Definición del arreglo e inicialización con una cantidad n de datos flotantes y un valor particular.

float arreglo[50]=0.50;

• Ingreso y acceso a un dato particular del arreglo de un arreglo especificado. Arreglo[5]=30; Salida=arreglo[5]. El código de synthmaker “code” permite omitir el cálculo de una función, espaciada una cantidad de muestras determinada a través de la función “hop”. La disposición está dada una cantidad n en potencia de 2 hasta 4096, construida mediante, hop (4096) { /Código que se ejecutará cada 4096 muestras }

Mediante la función “loop” podemos conseguir operaciones cíclicas equivalentes al ciclo “for” de acuerdo a, loop (#) { /código que se ejecutará # veces } 

29

La inicialización de una variable puede obtenerse mediante la aplicación de un arreglo y una función “loop” de acuerdo a, float index; float buffer[10]; loop(10) { buffer[10] = sin1(n); n = n+0.1; } El código puede ser dividido en dos etapas una que funciona para la primera muestra y la siguiente aplica para todas las muestras. Esta función esta codificada mediante, stage(0) {  /código para la primera muestra  } stage(1) { /código para todas las muestras }   La forma en que SynthMaker© puede asignar expresiones condicionales depende del procesamiento de este en tiempo real luego necesita de una sintaxis particular equivalente a la forma tradicional de C o C++, SynthMaker© x = x ‐ (x >= 1) & 1.0;  Equivalente en lenguaje C a: if( x >= 1) x = x – 1.0; 

30

2.2 MARCO LEGAL Y NORMATIVO. 2.2.1 Legislación internacional: Organización Mundial de la Propiedad Intelectual (OMPI). Este organismo concerniente a Naciones Unidas (su sede se encuentra en Ginebra Suiza) está dedicado desarrollar un sistema de propiedad intelectual (P. I) internacional que recompense la creatividad, estimule la innovación y contribuya al desarrollo económico defendiendo también el interés público”.12 Para la OMPI la propiedad intelectual es indispensable para el desarrollo económico, social y cultural de todos los países, y esta convicción determina su misión de defensa efectiva de la propiedad intelectual. Para definir la propiedad intelectual se debe relacionar esta con la creación mental, dividiéndola en dos categorías: una de propiedad industrial que incluye patentes, marcas, dibujos y modelos industriales, y otra categoría es la de derechos de autor que son los derechos de los artistas intérpretes o ejecutantes sobre sus interpretaciones o ejecuciones. 2.2.2 Legislación Nacional: Dirección Nacional de Derecho de Autor.

El derecho de autor en la República de Colombia está regulado por las siguientes normas13:

• Artículo 61 de la Constitución Política de Colombia;

• Decisión Andina 351 de 1993;

• Código Civil, Artículo 671;

• Ley 23 de 1982;

• Ley 44 de 1993;

• Ley 599 de 2000 (Código Penal Colombiano), Título VIII;

12 Organización Mundial de la Propiedad Intelectual (OMPI), http://www.wipo.int/about-wipo/es/what_is_wipo.html, visitada el 15 de Noviembre de 2006. 13 Dirección Nacional de Derecho de Autor, Calle 28 No.13 A15 Piso 17 - Teléfono (571) 3418177 - Telefax (571) 2860813, Bogota Col., [email protected]: www.derautor.gov.co, visitada el 15 de Noviembre de 2006.

31

• Ley 603 de 2000

• Decreto 1360 de 1989;

• Decreto 460 de 1995;

• Decreto 162 de 1996. Por otro lado existen convenios internacionales ratificados por Colombia como el tratado OMPI sobre Interpretación y Ejecución de fonogramas, suscrito en Ginebra (Suiza) en 1996 y adherido a la legislación Colombia mediante la Ley 545 de 1999. Para la legislación Colombiana de acuerdo a la concertación de la OMPI sobre derecho de autor (1996), el derecho de reproducción tal como se establece en el convenio de Berna, y las excepciones permitidas son totalmente aplicables en el entorno digital, en particular a la utilización de obras en forma digital. Este “almacenamiento digital en un soporte electrónico de una obra protegida, constituye una reproducción en el sentido del artículo 9 del convenio de Berna”. El Tratado OMPI sobre Derecho de Autor ha sido aprobado en Colombia mediante la Ley 565 de 2000, y en el ámbito internacional ha entrado en vigencia el 6 de marzo de 2002. La Dirección Nacional de Derechos de Autor busca fortalecer la debida y adecuada protección de los titulares de Derecho de Autor. La oficina de registro de la Dirección Nacional de Derechos de Autor presta el servicio de registro de soporte lógico o software. Este registro otorga seguridad jurídica luego este registro es declarativo y sirve como documento de prueba pero no obligatorio. Según el criterio normativo autoral desde el mismo momento de la creación nace el Derecho de Autor y no se necesitan formalidades para la constitución del mismo. 2.2.3 Licencias de Software. Las licencias dependen básicamente las propiedades económicas, de modificación y de distribución que se le otorga a un producto de soporte lógico software. Según estas características un soporte lógico puede ser14:

14 http://www.juntadeandalucia.es/averroes/manuales/guadaconceptos.html#GlossG, visitada el 17 de Noviembre de 2006.

32

• Software Comercial: Es desarrollado mediante un proceso industrial y

busca ser vendido por una empresa para la obtención de beneficios materiales donde todo el producto posee un propietario.

• Software Libre: Es aquel que puede ser distribuido, modificado, copiado y usado. El soporte lógico de dominio público no está protegido por Copyright por tanto podrían generarse versiones no libres del mismo, pero los software protegidos con Copyleft impide a los redistribuidores generar restricciones sobre un software concebido originalmente para ser software libre. Por otro lado el software gratuito no tiene precio comercial pero necesariamente libre ya que un software libre no depende específicamente de un pago.

• Software semi-libre: Este funciona como sistema libre para usuarios independientes, educación o usos sin ánimo de lucro, pero está restringido para usos comerciales o empresariales.

• Software Propietario: Su modificación, redistribución y copia está prohibida o al menos restringida.

• Licencia Freeware: Suele usarse en programas que puede redistribuirse libremente pero no modificarse, entre otras cosas, ya que su código fuente no está disponible.

• Licencia Shareware: Permite ser redistribuido pero pierde su licencia con el paso del tiempo una vez ha sido instalado en un sistema operativo.

• Demo: Un Programa Demo es un software comercial que permite la utilización de una cantidad restringida de funciones hasta que el programa sea comprado para ser aprovechado en su totalidad.

• Trial: Esta licencia permite la utilización del soporte lógico por un determinado tiempo. Luego de expirar, el programa regularmente no puede ser instalado nuevamente en la misma estación de trabajo de no ser autorizado mediante un pago.

33

2.3 MARCO TEÓRICO. 2.3.1 Números complejos. Las señales de sonido discretizadas digitalmente, pueden ser modeladas como señales complejas que contienen información numérica real e imaginaria. Este modelo es imprescindible para el procesamiento de la señal de sonido ya que mediante interpretaciones de tipo complejo es factible analizar y modificar el espectro de señales de audio. En este proyecto las interpretaciones complejas ayudan a estimar los parámetros que componen el sonido de instrumentos musicales y la voz, modelados como fuentes cuasi-periódicas. La unidad imaginaria i es el número que multiplicado por sí mismo da -1, siendo i2=i*i=~-1. Luego se pueden definir los números complejos como la pareja x + iy, donde x y y son números reales, llamados respectivamente parte real y parte imaginaria del número complejo. Dados dos números complejos, c1 = x1 + iy1 y c2 = x2 + iy2, la operaciones son precisadas como, Suma. c1 + c2 = (x1 + x2) + i(y1 + y2) Diferencia. c1 - c2 = (x1 - x2) + i(y1 - y2) Producto. c1c2 = (x1x2 - y1y2) + i(x1y2 + x2y1) Cociente. c1/c2 = ((x1x2 + y1y2) + i(y1x2-x1y2)) / ((x2)*(x2)) + ((y2)*(y2)) La interpretación geométrica la noción de números complejos se obtiene asumiendo el número geométrico c = x + iy como un punto en el plano x, permitiendo el paso de coordenadas ortogonales x y y conocidos como eje real y eje imaginario a coordenadas polares en magnitud ρ (valor absoluto) y fase θ también conocida como argumento. Esta interpretación geométrica de una cantidad compleja puede ubicarse en el plano de los reales como se muestra en la figura 4.

34

La magnitud de un número complejo puede ser obtenida a través de la aplicación del teorema de Pitágoras [3]15.

Donde es el complejo conjugado de c. El argumento de un número complejo es el ángulo formado por el semieje horizontal positivo, con la línea proyectada desde el punto geométrico al origen del plano complejo, el argumento puede ser negativo o positivo según su sentido en el plano complejo.

FIG. 4 interpretación geométrica de un número complejo

2.3.2 Funciones y variables. El audio puede describirse mediante la teoría de señales y estas a su vez pueden ser modeladas como una función monodimensional [5]16 en el tiempo, por tanto una señal puede describirse mediante funciones para su explotación ingenieril. Es factible representar los elementos arbitrarios de una clase de números, por una variable x, definido en un dominio D. Cuando el dominio es un intervalo del campo de números reales en los límites a y b, existe una variable continua X del intervalo [a, b ], y existe para a<=x<=1. 15 Britton, Jack R, Matemáticas universitarias, México; CECSA, 1984. 16 Purcell, Edwin J., Varberg Dale, Cálculo con Geometría Analítica, México, Prentice-Hall, 1987.

35

Cuando cada valor de x es asociado solamente con un valor de otra variable y, entonces y es función de x, y(x) = f(x), x se conoce como la variable independiente y y la dependiente, las funciones pueden tener más de una variable independiente, obteniendo una relación multivariable como ocurre en un evento físico. Las funciones pueden ser representadas gráficamente, en el plano cartesiano, el eje de las abscisas corresponde a la variable independiente y las ordenadas a las dependientes. Si tenemos más de una variable independiente solo una es representada como abscisa y las otras toman valores constantes17. 2.3.3 Funciones Polinomiales. Los polinomiales son un tipo de funciones de una variable, que esta conformada por la suma de potencias positivas de la variable independiente. Cada potencia con su coeficiente es llamado un monomial y tiene la forma,

. Donde los números ai, son llamados coeficientes, la potencia mayor se conoce como el orden del polinomial. Cuando se grafica una función polinomial de segundo orden, obtenemos una curva parábola y una función de tercer orden produce una curva cúbica. Las soluciones del polinomio son conocidas como ceros o raíces donde los valores de la variable independiente producen cero en la variable dependiente. Los polinomios de n-esimo orden de coeficientes reales tienen exactamente n cantidad de ceros en el campo de los complejos, las raíces que no se prolongan al eje real del plano complejo, son parejas de números complejos conjugados. Para polinomiales de orden mayor que tres, es conveniente usar métodos numéricos para encontrar sus raíces con un método de incremento preciso de aproximaciones. .La suma de dos polinomiales, es un polinomial, el cual su orden depende del orden más alto de un operando y tienen coeficientes los cuales son las sumas de los respectivos coeficientes de los sumandos. El producto está dado por la aplicación de propiedades asociativas. 17 Rocchesso, Davide, Introduction to Sound Processing, http://www.scienze.univr.it/˜rocchess

36

El orden del producto está dado por la suma de los ordenes de los operando y el k-esimo coeficiente del producto es obtenido por los coeficientes ai y bj y sumados mediante la operación,

La multiplicación polinomial es formalmente idéntica a la convolución de señales discretas, siendo una operación esencial en el procesamiento de señales y en este proyecto. 2.3.4 Funciones Trigonométricas. La trigonometría describe la relación entre los ángulos y los segmentos contenidos por esos ángulos. Un ángulo corta el círculo en arcos y su gradiente es definido como el tamaño en radianes, siendo un ciclo completo al rededor del círculo 2π, equivalente a 360º grados o gradianes. Para la obtención gráfica de algunas funciones, es posible representar la circunferencia en el plano complejo, Sinθ = (PQ), Cosθ = (OQ), Tanθ = (PQ)/OQ), En el plano de los complejos se puede describir gráficamente estas funciones trigonométricas, disponiendo del teorema de Pitágoras que para cualquier θ la siguiente identidad es válida,

37

Fig 5. Descripción gráfica de funciones trigonométricas

Las funciones seno y coseno son funciones periódicas con periodo 2π, mientras la función tangente es periódica con periodo π, el condominio de seno y coseno está limitado en el intervalo [-1,1], particularmente la tangente toma valores en todo el eje real, aprovechando de forma infinita para todos los valores mediante una interpretación geométrica compleja, podemos incluir una magnitud y un argumento ρ y θ, y representarlo como,

c = x + iy = ρ cosθ + i ρ senθ Otra fórmula relacional entre complejos y funciones de tipo trigonométrico es la fórmula de Euler, expresada como una cantidad compleja que yace en la circunferencia como una exponencial con exponente imaginario. Cuando el argumento o la fase puede tomar cualquier valor real, la exponencial se torna en una senoide compleja18.

Un número complejo con magnitud y argumento ρ y θ, puede expresarse como

18 Sorias Olivas, Emilio.Tratamiento digital de señales: problemas y ejercicios resueltos, Primera edición. Madrid; Pearson Educación, 2003.

38

Si tomamos la m potencia de la magnitud y multiplicamos por m el argumento, se obtiene un complejo que admite raíces complejas distintas de orden m, la raíz de 1 de orden m, está distribuida a lo largo de una circunferencia, comenzando desde 1 y separadas por un ángulo constante 2π / m.

2.3.5 Transformadas19. Matemáticamente, existen formas de expresar funciones y operaciones de una forma más sencilla para su análisis y manipulación. La Transformada de Laplace. La T. de Laplace de una variable en t, donde t pertenece al dominio real es definida como una función de una variable compleja s,

Siendo Γ la región para la cual la integral no es divergente y está en el trayecto vertical en el plano complejo, la T. de L. puede ser invertida a través de,

Los límites de integración evalúan sobre la línea vertical con abscisa σ. Una transformada básica para el estudio de sistemas y señales es la función causal exponencial que mediante la Transformada de Laplace se torna en,

= 1 / s - so

19 Chen, Chi-Tsong. Signals and Systems, tercera edición. USA; Oxford University Press, 2004.

39

Esta ecuación converge para los valores de s, teniendo una parte real que es mayor que so. Una propiedad básica de la T. de L. es la conversión de una expresión de derivación a una multiplicación por s. Siendo y(o) la condición inicial para cualquier t < 0, de forma inversa la integral es convertida en una división por una variable compleja s:

La Transformada de Fourier. La Transformada de fourier de una función cuyo codominio es real puede ser descrita como una T. de L. pero en una región del eje imaginario,

Y (Ω) = YL(jΩ), donde 2πf = Ω

Donde jΩ indica un punto arbitrario en el eje imaginario, siendo la base de la operación es la senoide compleja con una frecuencia radial Ω, cada punto de la función transformada como un componente del espectro en frecuencia de la función y(t). Dado un valor Ω = Ωo y modelando una señal y(t) como la integral es maximizada cuando el valor Ω es incrementado. El codominio de la función de transformación Y(Ω), se propaga a lo largo del campo complejo, luego es posible hallar la magnitud y fase espectral a través de una interpretación geométrica compleja. La Transformada Z. La operación se realiza en un dominio discreto para cantidades enteras dentro del radio de circunferencia, las operaciones de derivación e integración son reemplazadas por sumas y restas,

40

La región de convergencia de la señal es un anillo en el plano complejo siendo este la región entre la unión entre dos circunferencias. Con este anillo la transformada puede ser invertida. Una transformación típica es la causal exponencial de variable discreta que converge para valores de z que son mayores que el exponencial de coeficiente real en magnitud.

Los valores de una variable compleja pueden ser restringidos a una circunferencia.

Y(W) = Y(z)

. Siendo Ω frecuencia angular para tiempo continuo y ω para tiempo discreto. 2.3.6 Aritmética computacional20. Dentro de un sistema computacional los números son representados como "strings" de números binarios (0 y 1), para 16 bits, la fórmula de conversión para enteros sin signo es,

Xi es el i-esimo digito binario que empieza a la derecha, el dígito binario se conoce como bit. Este dígito de la derecha se le conoce como LSB (bit menos significativo), y el dígito de extrema izquierda se le conoce como MSB (bit mas significativo) recíprocamente. El 2 que yace bajo la cifra binaria representa el 20 Zölzer, Udo. Digital Audio Signal Processing. Inglaterra; John Wiley & Sons, Ltd, 1997.

41

sistema numérico usado, en este caso binario, pero puede ser de otro tipo como octal o hexadecimal. El bit del extremo izquierdo puede ser el signo que acompañe a la cifra entera, dejando la primera cifra negativa si era cero o viceversa y el valor absoluto está dado por el valor que sigue. Para la representación de estas cantidades el uso de los dos complementos es usado. El bit de extremo izquierdo continúa dando el signo, pero el valor absoluto del número negativo es recobrado por el siguiente bit, el resultado puede ser interpretado como un entero positivo y la adición de 1, Para una cifra de 4 bits tenemos,

2.3.7 Acústica y Psicoacústica. Dicho de una forma básica, las ondas transportan información energética a través de un medio de propagación con una velocidad que depende del medio transmisor. Las ondas que transportan sonido pueden clasificarse en función de su propagación y su desplazamiento siendo ondas transversales si el desplazamiento es paralelo al sentido de propagación y longitudinal si el movimiento es perpendicular al medio de propagación o mixtas si el desplazamiento es paralelo y a la vez perpendicular. Se entiende por sonido la alteración física en un medio, sólido, líquido o gaseoso, detectable mediante el órgano de la audición21. Campos Sonoros. La propagación de una onda sonora en un espacio geométrico genera un comportamiento en la distancia descrio a través de campos sonoros, dependiendo del entorno podemos clasificarlos como campo directo, donde se verifica la ley de divergencia del campo y la presión cae con el cuadrado de la distancia mientras que en el campo reverberante, la presión sonora es constante y el sonido proviene indistintamente de cualquier dirección (difusión) e I es 0, referido como un campo difuso, si la densidad de energía sonora en esta región es uniforme. Dependiendo 21 Recuero, Manuel. Acústica arquitectónica: soluciones prácticas. Madrid: Paraninfo, 1992.

42

de la longitud de onda y la fuente, existe el campo lejano donde la distancia a la fuente es grande en comparación con la longitud de onda radiada y con las dimensiones de la fuente, entre tanto el campo cercano la presión sonora se hace constante y la distancia a la fuente es comparable con la longitud de onda radiada y con las dimensiones de la fuente, este espacio geométrico con propiedades acústicas puede notarse en la figura 6.

Fig 6. Campo geométrico-acústico Psicoacústica y Percepción Sonora. Percepción Espacial del Sonido. Con el propósito de detectar la posición espacial del sonido, el cerebro usa dos elementos básicos, la diferencia en intensidad interaural (IID) y la diferencia temporal interaural (ITD), la IID es más útil al rededor de 1500Hz, donde una sombra acústica producida por el choque del sonido a la cabeza atenúa el contenido que golpea el oído de forma contra lateral. Los sonidos de alta frecuencia y ondas estacionarias con diferencia de fase mayor a 360º hacen el ITD menos preciso. El IID para baja frecuencia es pequeño debido a la difracción proveniente de la sombra acústica generada por la cabeza, en este rango de frecuencia la diferencia sensitiva en fase generada por el de ITD es más perceptible. A cierta distancia alrededor del oído formando un cono cuya punta es el oído, al generar un estimulo sonoro, los sistemas de discriminación cerebrales interaurales IID e ITD no varían, conocido como el cono de la confusión. La forma

43

de detección posterior y vertical en el cono de la confusión se clasifica como señales "broadband" y la función de transferencia HRTF. El sistema pinna-cabeza torso actúa como un filtro lineal para una onda plana proveniente de una dirección dada. La respuesta en fase y magnitud de ese filtro es una respuesta compleja la cual puede preponderar físicamente parámetros el discernimiento de espacio. Acústica de Recintos22. Una fuente de sonido confinada en un espacio geométrico propaga ondas sonoras que salen de la fuente para luego chocar contra un límite del recinto, parte de la energía será reflejada y otra será absorbida y otra se transmitirá a través de una superficie. El campo generado por las múltiples reflexiones junto con el comportamiento de la energía sonora en el recinto forma la acústica del recinto. La presunción de un recinto con dimensiones mucho mayores a las de la longitud de onda permite describir la propagación como rayos de luz, donde un rayo incidente colisiona con un paramento y genera un rayo reflejado, donde el ángulo de incidencia es similar al ángulo reflejado en una estructura rígida como muestra la figura 7. Este concepto es útil para la descripción y diseño de grandes auditorios y salas sin embargo se limita al estudio de la primera y segunda reflexión ya que luego la dispersión se pierde en el campo reverberante. Cuando una fuente sonora es sometida a un recinto, la medición de la intensidad sonora será la acumulación de pequeños aportes, dado el arribo de reflexiones en distintos paramentos hasta un estado de equilibrio dado cuando la energía absorbida por la sala es igual a la energía radiada por la fuente de sonido, cuando repentinamente se corta la emisión sonora, la intensidad del sonido no desaparece en el acto, pero gradualmente perderá la energía (reverberación) dependiendo de las características de volumen y las propiedades de absorción de los materiales del recinto. La cantidad de energía absorbida en el recinto es proporcional a la intensidad sonora, la evolución de presión sonora (ataque y decaimiento) es una función exponencial en el tiempo. La descripción temporal del nivel de presión en dB en un campo reverberante teniendo en cuenta la forma del recinto y de la respuesta espectral del sonido. 22 Schroeder, Manfred R. Progress in Architectural Acoustics and Artificial Reverberation: Concert Halls Acoustics and Number Theory. USA; J. Audio Soc., Vol. 32, No 4, abril de 1984.

44

Una fórmula empírica para hallar el tiempo de reverberación a partir del volumen de la sala (V), la cantidad de material absorbente[16] (A), asumiendo una difusión uniforme y que todas las direcciones de propagación son igualmente probables, se conoce como la fórmula de Sabine en honor a su creador W. C. Sabine y es notada como,

RT = 0.161x V / A, Donde A es el total de absorción en m2/sabine, V en m3 y RT definido como el tiempo en que tarda un sonido en caer 60 dB una vez una fuente sonora deja de perturbar acústicamente un campo geométrico - acústico. La absorción de un material fue definida como el radio entre el sonido absorbido por un material siendo la absorción máxima una ventana abierta de coeficiente de absorción (α) 1, luego un material de reflexión total obtendrá un coeficiente de absorción 0, por lo tanto la reverberación de una sala puede ser obtenida a través de una predicción numérica o computacional que simule un campo reverberante para la extracción de parámetros para el diseño de salas o simulación de espacios preceptúales sonoros (Rev. Artificial). Un cuarto anecóico, absorsivo en totalidad posee un coeficiente de absorción (α) igual a la unidad y el tiempo de reverberación se aproxima a o debido a las condiciones del recinto, a través de Sabine este cálculo es finito para 0.161 V/A para el cálculo de RT, otras modificaciones han resultado a partir de la necesidad de cálculos que usan un coeficiente bajo de absorción como la formula de Eyring notada como,

RT = 0.161 V / -S ln (1-α), α = αn+Sn / Sn, S = s1+...+sn

Donde S es la superficie total de los materiales y α es el respectivo coeficiente de absorción, esta fórmula funciona solo si α es igual para todos los lados de la sala. La formula de Millington y Sette es más efectiva cuando los paramentos del recinto no son de absorción uniforme y se describe como:

.

45

Donde αi es la absorción de un material específico.

Fig 7. Reflexión acústica

Percepción Acústica en Salas y Auditorios. El principal parámetro para el diseño de recintos es el tiempo de reverberación pero no es el único, la forma y el tamaño del confinamiento, la ubicación del material reverberante y la posición de la fuente y la posible audiencia. La existencia de ecos generados por una fuerte reflexión de una fuente impulsiva es detectada si aproximadamente 0.05 s antes de esta reflexión fue percibido el sonido impulsivo original por el órgano auditivo, antes de ese tiempo el sonido no es reconocido como eco por separado, pero si aporta fuerza al sonido original conocido como el efecto Hass. Las áreas muertas en un auditorio se ubican en sectores de poca densidad de reflexión y alta absorbición, otro fenómeno relacionado es el "flutter" que ocurre cuando es percibida la energía oscilante generada por una fuente queda confinada en superficies reflexivas y generan reflexiones que dan la sensación de "tremolo" del sonido en un recinto. 2.3.8 Informática y aspectos generales de Algoritmos. Para el desarrollo de sistemas de sonido a través de modeladores o plataformas computacionales, se genera la problemática de aprovechar las herramientas o módulos para fines musicales o acústicos construidos con base en estructuras algorítmicas que permiten el procesamiento de señal y la creación de sistemas independientes. Para la solución de la problemática a nivel computacional es necesario la elaboración de un diseño que sirva como principio para el desarrollo del programa (sistema), conocido como seudo código o diagrama de flujo donde será recreada la funcionalidad operacional y dicha estructura genérica podría ser adaptada en diversas plataformas computacionales (codificación). Una vez codificado el seudo código, el sistema virtual puede operar correctamente si las instrucciones están debidamente ingresadas.

46

Mediante un análisis realizado para el chequeo de un programa consistente denominado compilación, puede ser ejecutado el sistema, programa o algoritmo bajo un soporte de extensión bajo el cual fue compilado el sistema. Un ordenador posee una base física conocida como la unidad de control donde todas las unidades periféricas y lógicas son controladas. La unidad de control se encuentra en el módulo central de proceso al igual que la unidad aritmética y lógica que se encarga de procesar cálculos matemáticos que pueden ser almacenados en un medio físico (HD) conocido como memoria, que por un lado puede actuar como un sistema de solo lectura (ROM) y otra modificable en el tiempo (RAM)23. Algoritmos. Un conjunto de instrucciones lógico numéricas descrito a través de una serie determinada de sentencias ingresadas a una plataforma computacional mediante una estructura que describe y ejecuta un proceso lógico específico se conoce como algoritmo [14]. Las instrucciones numéricas pueden contener valores variables o constantes, donde las variables son un conjunto de caracteres que pueden variar en la consecución del algoritmo, compuesta de un nombre y un valor, los valores constantes son introducidos en el momento de su uso. Las expresiones son un conjunto de variables o constantes relacionadas por operadores que pueden ser relacionales o aritméticos. Enunciados. Es un proceso por el cual se le asigna un valor o el resultado de una operación a una variable. Siendo la parte izquierda del enunciado siempre una variable y a la derecha su valor. La variable de asignación siempre debe estar definida y la variable de la derecha es la que únicamente puede cambiar un valor antes asignado. También existen los enunciados de decisión cuya función es tomar una acción o saber el estado de una situación específica, regularmente adoptando solo dos alternativas de acuerdo a la estructura:

• a = Constante/Variable/Expresión. • b = Constante/Variable/Expresión

23 Correa, Guillermo. Desarrollo de Algoritmos y sus Aplicaciones en Basic, Pascal, Cobol y C. Bogotá D.C.; McGraw Hill, 1992.

47

Contadores, Acumuladores y Temporizadores Cuando la solución de un programa requiere un proceso de conteo, existe una sentencia genérica llamada contador que es inicializada en un valor y realiza un incremento numérico en un intervalo de tiempo generado a través de un temporizador configurado para generar valores en un tiempo determinado continuo o discontinuo. El enunciado de asignación general que sirve para contar, puede ser notado como, Variable = Variable + constante, Para la manipulación de señales este procedimiento es indispensable ya que mediante contadores se puede implementar variables que dependen del tiempo como la función de onda. Usando el mismo nombre de la variable a la derecha y a la izquierda y sumando un valor, incrementara la variable izquierda en función del valor constante. Un acumulador es una función que permite "atrapar" un valor en una expresión dada por la suma de dos o más variables (V) asignadas, notadas por V1 = V1 + V2 V1 o V1 = V1 + (V2-V3) Arreglos. Un arreglo es un conjunto de valores o cantidades homogéneas que deben ser tratados de forma similar. A estos se les asigna un nombre para identificar así el conjunto de valores asignados como los elementos del arreglo. Existen dos tipos de arreglos, unidimensionales (vectores) organizados en filas y bidimensionales (matrices) organizados en filas y columnas. Para la escritura o lectura de un arreglo se usa la función for, siendo posible que los valores sean ejecutados de uno en uno o varios elementos en una sola operación, la expresión contiene el nombre del arreglo y un subíndice en forma de variable que toma diversos valores a medida que se va ejecutando el ciclo for.

48

2.3.9 Señales, Sistemas y DSP. Señales Analógicas Teóricamente las señales son representaciones matemáticas de variables que describen un proceso físico, estas pueden variar en el tiempo o ser constantes. Estas transportan información e incluyen magnitudes físicas, las señales reales son difícilmente descritas luego se aproximan mediante modelos para la manipulación numérica24. En la figura 8 se expone una señal “cuadrada” en tiempo continuo generada y graficada mediante el programa MATLAB.

Fig 8. Señal continua (función “Square” Matlab(c)).

Las señales periódicas son señales de duración infinita que repiten el mismo intervalo indefinidamente, el intervalo más pequeño se denomina periodo T, notado formalmente como,

. El área absoluta de una señal mide el tamaño de la señal. Mediante el criterio de integrabilidad absoluta que verifica la estabilidad del sistema. El área de está relacionada con la potencia instantánea y energía de la señal que representa el

24 John G. Proakis. Tratamiento digital de señales: Principios, algoritmos y aplicaciones, tercera edición. Madrid; Prentice Hall, 1988.

49

voltaje o la intensidad que pasa a través de una resistencia de 1Ω, expresado como la integral de la potencia instantánea,

.

El valor absoluto /x(t)/ permite que la relación sirva para señales de valor complejo. La potencia de la señal P es igual al promedio en el tiempo de la energía de la señal para todo el tiempo. Las señales pueden ser operadas mediante sumas y productos además de las transformaciones en tiempo y en amplitud. El escalamiento en amplitud de x(t) por C multiplica todos los valores de la señal por C para formar Cx(t). Un desplazamiento de amplitud añade una constante K a x(t), notado como K + x(t). El desplazamiento en tiempo, transporta la señal sin cambiar su forma, siendo α el factor de desplazamiento, si este factor es positivo la función será desplazada hacia la izquierda y viceversa considerando la expresión,

y(t) = x(t +- α) En tanto el escalamiento en tiempo genera un alargamiento una compresión en la señal disminuyendo o aumentando el tiempo, podría ser modelado como,

y(t)=x(α x / t), Donde α es el radio de compresión o expansión en el dominio del tiempo. La operación de reflexión genera una imagen de la señal x(t) escalándola por un factor - α, alrededor del origen t=0. Estas operaciones pueden combinarse a través de métodos consistentes. La aplicación de la operación de reflexión a una señal provocando un reflejo idéntico a esta, se denomina simetría donde x(t)=x(-t). Si una señal relejada posee magnitud negativa -x, se conoce como simetría impar x(t) = -x(-t). Una señal puede modelarse como la suma de una parte simétrica par Xe y otra simétrica impar Xo notada como,

x(t) = xe(t) + xo(t).

50

Las señales armónicas son útiles ya que una señal arbitraria puede representarse a través de una combinación armónica, si son periódicas pueden representarse como armónicas a frecuencias discretas y las aperiódicas por armónicas a todas las frecuencias. La respuesta de un sistema lineal para una entrada armónica también es una señal armónica a la frecuencia de entrada. Las señales senoides y armónicas se describen a través de25,

, Las señales no solo son modeladas únicamente mediante senoides y armónicos, también existen señales lineales seccionadas como el escalón unitario υ(t), rampa unitaria r(t), y sgn(t), también existen las señales de pulso las cuales poseen un área y una altura unitaria, asimismo encoframos la función senc, la cual disminuye un valor seno que describe un movimiento alrededor de π en el tiempo a través de un decaimiento en la oscilación de 1/t, notado como,

senc (t) = sen (πt) /πt. La función senc es de gran utilidad en aplicaciones de ingeniería como ventana rectangular y como señales de corto tiempo y gran energía (señales impulsivas), esta función puede ser obtenida mediante el programa MATLAB y anexada en la figura 9.

25 Albardar, Ashok. Procesamiento de señales analógicas y digitales, segunda edición. México; Thomson Editores, 2002

51

Fig. 9. Función “Sinc” para MATLAB

Señales Discretas.

Fig 10. Señal coseno discreta.

Una señal discreta x[n] surge como una secuencia ordenada de valores del índice entero n, como consecuencia de "muestrear" señales continuas en un intervalo de muestreo uniforme como muestra la figura 10, correspondiendo n = o con t = o en señales analógicas. Unas señal discreta se denomina de lado derecho si es cero para n < N, causal si es cero para n<0, de lado izquierdo si para n > N = 0, o anticausal si es cero para n>=0. Una señal periódica se repite cada N muestras y

52

se expresa como26,

x[n] = x[n +- kN], donde k = 0,1,2,3... Siendo N el número menor de repetición que pertenece a los enteros. Una combinación lineal de señales discretas periódicas tiene un periodo común dado por el mínimo común múltiplo de los periodos individuales. En el dominio discreto la sumatoria es equivalente a la integración en el dominio analógico, la suma discreta SD, la suma absoluta SA y la suma continua están definidas como,

El valor promedio xpro y la potencia de la señal P de una señal periódica x[n] con periodo N se define como la suma promedio por periodo y la energía promedio por periodo, se expresan mediante,

Las señales discretas pueden ser operables mediante adiciones y productos. Una señal y[n] puede ser desplazada en α cantidades enteras donde la y[n] = x[n -+ α], si α es positivo la señal se desplaza a la izquierda (adelantada) y viceversa. Una señal discreta reflejada alrededor del origen n = 0 corresponde para x[n] como x[-n], si esta imagen es igual a la señal original se denomina señal simétrica par, cuando la señal difiere en signo (-x[n]) de su imagen de espejo se le otorga el nombre de señal simétrica impar, notada como, xe[n] = xe[-n] xo[n] = -xo[-n] La señal existe en el intervalo -N<=n<N. La simetría par e impar son mutuamente excluyentes, luego una señal formada por la suma de una señal simétrica par y una impar, será una señal asimétrica que podrá expresar cualquier señal, a través de,

x[n] = xe[n] + xo[n],

26 John G. Proakis. Tratamiento digital de señales: Principios, algoritmos y aplicaciones, tercera edición. Madrid; Prentice Hall, 1988.

53

La diezmación es el inverso de la interpolación, sin embargo lo contrario es menos probable ya que ha habido una perdida de información en la señal, luego en situaciones prácticas es necesario generar una interpolación que conserve el contenido de la señal original generando una restricción en la velocidad de muestreo de la señal. La interpolación seguida por una diezmación en un desplazamiento entero, producirá una secuencia operativa por una interpolación de x[n] por N seguida por un desplazamiento entero (retrazo)por M, finalmente se opera la diezmación por N de acuerdo a,

Existen diversas formas que pueden tomar las señales discretas como senoides armónicas discretas, señales de pulso, exponenciales los impulsos δ[t], rampas r[n] y escalones unitarios discretos u[n]. Los impulsos son una muestra de valor unitario en cero n = 0, mediante estos se pueden representar señales como una suma de impulsos desplazados. Algunas señales se definen como

La señal Anu[n] o rampa describe un valor incremental A que depende directamente de n y A está dado por x[k] - x[k - 1]. El producto discreto entre una señal y un impulso produce un impulso cuando n = k, esta es una propiedad de las señales discretas y se denomina filtrado notado como,

Una señal discreta arbitraria puede representarse como δ[n-k] donde el impulso es unitario en n = k mediante,

Las señales de pulso discretas pueden ser modeladas a través de la forma rectangular y triangular, definidas como,

.

54

La función discreta senc(n/N) es igual a cero en n = ckN, k = +-1,+-2,... En 0/0 no puede evaluarse el límite, luego senc(0) = 1 definido también como senc(n) = δ[n] expresada como,

Estos tipos de forma de señales son implementados en este proyecto de investigación con el fin de crear, modificar y ventanear señales mediante señales aptas para este propósito. Las exponenciales discretas se describen bajo una base de valor racional. Algunas representaciones de crecimientos y decaimientos exponenciales en señales discretas pueden formularse mediante valores que pertenecen al campo numérico complejo que puede ser expresado mediante

. La descripción gráfica de las señales exponenciales de valores complejos requiere de dos gráficas independientes que representen la parte real e imaginaria de la señal respectivamente. Si el valor de r es igual a uno la parte real e imaginaria son cosenos y senos puros con un valor pico unitario, si el valor r supera la unidad, obtenemos senoides que crecen exponencialmente y si este valor se encuentra entre cero y uno describe una parte real e imaginaria son cosenos y senos que decaen exponencialmente. El muestreo de una senoide analógica x(t) = cos(2πfot) a intervalos ts que equivalen a una velocidad de muestreo de S = 1 / ts muestras / segundo (S Hz), se obtiene la se obtiene la senoide muestreada,

x[n] = cos(2πfnts + θ) = cos(2πn(f/s+ θ) = cos(2πnfF + θ). La frecuencia digital en Hz / muestras. Puede planearse como una velocidad angular en radianes digital mediante,

Ω = 2πF, dado F = f / S, entonces ω = 2πS, corresponde F = 1= Ω = 2π.

55

Para efectos de muestreo de una señal la correspondencia única entre la señal analógica y la versión reconstruida a partir de sus muestras, la velocidad de muestreo ts debe exceder dos veces a la frecuencia más alta de la señal, comúnmente conocida como el teorema Nyquist y expresada como velocidad crítica donde,

S = 2fmax Para el intervalo [-Fs/2<0<Fs/2] existe la frecuencia f en Hz donde Fs = 1luego la frecuencia digital f / Fs [ciclos / muestras] está acotada en el intervalo [-1/2<0<1/2]. La frecuencia radial está dada por Ω = 2πf [Rad/s] en el intervalo [-πFs < 0 <πFs] en tanto la frecuencia radial digital ω se expresa como ω = 2πf / Fs [Radianes / Muestras]27. Señales Estocásticas. Los valores de algunas señales no pueden predecirse mediante modelos deterministas, para lo cual es útil definirlas como un promedio de acuerdo a sus características pasadas. En cada instante t, un evento puede asumir un valor diferente, esta secuencia de valores esta definida por una variable aleatoria donde algunos valores tienen mas factibilidad de ocurrencia o tienen más probabilidad de tener éxito en un espacio muestral que otros valores en un experimento. La probabilidad de un evento A notada como Pr(A), es la proporción entre los resultados exitosos con el número de veces que el experimento se realiza, donde el número de resultados exitosos no puede superar la cantidad de experimentos, luego se determina en valores de cero a uno o en un estimativo porcentual luego entre mas eventos realizados, mayor la probabilidad de que ocurra el evento A. La probabilidad para todos los valores posibles en un intervalo está definida mediante la función de distribución F(x) entre cero y uno. La derivada de esta función se conoce como la función de densidad de probabilidad f(x), luego la función de distribución puede ser expresada como la integral de la densidad f(x) dadas por,

Las medidas de una variable aleatoria X se basan en su distribución28. La varianza mide la dispersión de la distribución en torno a la media. La desviación estándar 27 Rocchesso, Davide, Introduction to Sound Processing, http://www.scienze.univr.it/˜rocchess 28 Albardar, Ashok. Procesamiento de señales analógicas y digitales, segunda edición. México; Thomson Editores, 2002.

56

σ proporciona una media de la incertidumbre en una medición física. Los valores distribuidos de modo uniforme tienen la misma probabilidad, la función de densidad f(x) es un pulso rectangular y la distribución F(x) es una rampa que algún momento se torna constante. El error en las representaciones de señales se considera como la distribución uniforme entre 0.5Δ y 0.5Δ, donde Δ es el escalón de cuantificación. la función de densidad de la fase de una senoide con fase aleatoria se distribuye uniformemente entre -π y π. Sistemas. Físicamente se define un sistema como un conjunto de dispositivos interdependientes cuyo funcionamiento está sujeto a leyes físicas. Las señales ejecutadas o entradas definen la excitación de un sistema físico, en tanto la señal de salida es la respuesta del sistema. Los sistemas pueden comprendidos mediante señales de entrada conocidas y sus debidas respuestas a la excitación. La síntesis de sistemas se logra a través del proceso de una determinada cantidad de entradas con respecto a la respuesta, relacionando la salida analógica o discreta y con la entrada x en las mismas condiciones mediante parámetros, constantes y variables independientes como el tiempo. El sonido se puede considerar como un conjunto de señales monodimensionales definido como entradas simples a salidas simples (SISO) respectivamente. Sistemas de Tiempo Continuo29. Para el estudio de sistemas de señales de sonido es factible elaborar un modelo lineal con base al principio de superposición que plantea dadas las respuestas y1, y2 a las secuencias de entrada x1, x2, luego la entrada ax1+ bx2 produce la respuesta ay1+ yb2. Un sistema lineal se conoce como LTI (Lineal e Invariante en el Tiempo) que puede ser descrito mediante un sistema matemático diferencial y transformado en una expresión algebraica a través de la Transformada de Laplace y queda definido como el radio entre la salida de la transformación, donde el coeficiente so es conocido como el polo de la función de transferencia o polo del sistema, una raíz arbitraria puede componer el numerador y se denomina cero del sistema.

.

29 Rocchesso, Davide, Introduction to Sound Processing, http://www.scienze.univr.it/˜rocchess

57

La función inversa de la Transformada de Laplace es una descripción equivalente del sistema denotada como función causal exponencial h(t) o también conocida como la respuesta al impulso del sistema excitado mediante un impulso idealmente modelado como una señal impulsiva. h(t) se define como,

. Para las funciones de variables discretas obtenidas por el muestreo de señales continuas con intervalos de muestreo T conocida como la Transformada de Fourier en Tiempo Discreto (DTFT) y expresada con su inversa mediante,

, . Para efectos gráficos la DTFT debe ser computada en un número finito de puntos N (ventaneo) de la señal, comenzando un instante cero hasta N-1 resultando es una función de variable continua. El ventaneo produce algunas pérdidas en la localización de frecuencia pero permite un modelo gráfico en el dominio del tiempo. La consideración de una exponencial compleja donde su exponente compleja so = a + jb puede visualizarse como una señal compleja considerando su parte real,

L. T. de L. puede reducir una función causal exponencial a la Transformada de Fourier por la sustitución s = jΩ, luego esta expresión puede ser expresada en forma cerrada a través de la transformada z mediante la sustitución , notados como,

58

Sistemas de Tiempo Discreto30. La Transformada de Fourier en el dominio discreto (DFT) se define como el conjunto de N samples de la Transformada de Fourier en Tiempo Discreto de una señal de características similares, ventaneado en un espacio rectangular, los "bins" o los puntos de frecuencia de muestreo espaciados equitativamente entre cero y Fs, mediante,

Mediante esta expresión se extrae el algoritmo común de procesamiento de señal denominado como la Transformada Rápida de Fourier FFT que también puede ser expresada mediante una matriz donde los vectores y(n) y Y(k) como elementos de dos vectores de N componentes donde podemos expresar F como un arreglo matricial de índices k, n, mediante,

. La función inversa de la Transformada discreta de Fourier puede recobrar la secuencia y(n) o en términos matriciales 1 / F, expresada como,

. Un sistema de tiempo discreto procesa secuencias de muestras de entrada mediante y produce una secuencia de muestras a la salida, en un bloque de procesamiento. De acuerdo al principio de linealidad es factible definir el concepto de invarianza en tiempo considerando una secuencia de entrada x[n] que genera una secuencia saliente o respuesta y[n], donde el desplazamiento de tiempo puede estar antes o después en un sistema con invariabilidad luego,

X(n-S) ~ y(n-S), donde s es el número de muestras desplazadas.

Las señales impulsivas δ[n] mediante una combinación lineal de impulsos

30 Rocchesso, Davide, Introduction to Sound Processing, http://www.scienze.univr.it/˜rocchess

59

desplazados producen una combinación lineal de respuestas al impulso desplazadas y expresada mediante la convolución general para tiempo discreto,

.

La respuesta al impulso h[n] de N sistemas LTI en cascada es la convolución de N respuestas al impulso individuales, notadas como,

h[n] = h1[n] * h2[n] * ... hN[n], La respuesta al impulso general de sistemas en paralelo es igual a la suma de las respuestas al impulso individuales, expresadas como31,

hp[n] = h1[n] + h2[n]+...+hN[n].

Fig 11. Sistemas en cascada y paralelo. La Transformada Z H(z) de la respuesta al impulso es la función de transferencia del sistema discreto e invariable en el tiempo, que describe la relación entre las secuencias de entrada y salida, luego un sistema invariante en el tiempo en tiempo continuo o discreto puede ser modelado por una operación de convolución en el tiempo, o mediante una multiplicación en el dominio de una transformación dada a través de una sustitución, que relaciona los resultados de dos operaciones, luego la convolución en un dominio es una multiplicación en su función inversa respectiva. La Transformada Z H(z) de la respuesta al impulso está dada por, Y(z) = H(z)X(z). 31 Albardar, Ashok. Procesamiento de señales analógicas y digitales, segunda edición. México; Thomson Editores, 2002.

60

Dados dos dominios relacionados por una operación de transferencia, el desplazamiento de τ cantidades enteras en un dominio corresponde a una multiplicación por una causal exponencial de potencia τ a. La estabilidad de entradas acotadas - salidas acotadas (BIBO) de sistemas LTI modelados por ecuaciones diferenciales que requieren que cada raíz de la ecuación característica tenga una magnitud menor a la unidad, en términos de respuesta al impulso sugiere que esta sea absolutamente sumable, si esta condición se cumple, el sistema es estable. En representaciones de tiempo continuo los sistemas son estables si todos los polos están a la izquierda del eje imaginario mientras que en sistemas de tiempo discreto el sistema es estable si los polos están circunscritos, donde el anillo de convergencia posee un radio interno de magnitud menor que uno y los otros radios se extienden hacia el infinito, si la salida para un sistema estable permanece acotada por el valor absoluto de y[n] menor que infinito podemos expresar,

. Los sistemas causales o físicamente realizables imponen una restricción sobre la respuesta al impulso, donde para n menores a cero la respuesta al impulso es igual a cero. Si una señal de entrada es multiplicada por un impulso desplazado que empieza en n = no, produce una respuesta y[n] que también comienza en n = no y no antes, entonces h[n] debe ser cero para límites negativos con h[n] = 0, para n < 0, donde se obtiene,

. Procesadores de Señal Digital (DSP). Estos sistemas son útiles para el procesamiento de señal en tiempo discreto que corresponden de manera análoga a los sistemas implementados en este proyecto vía software, este tema ofrece una estructura bastante apropiada a la hora de construir cualquier procesador ya sea virtual o mediante un circuito DSP, ya que permite estructurar de forma ordenada cualquier sistema de procesamiento de señal como los plug-ins VST suscitados en esta investigación. Su arquitectura e instrucciones están diseñadas con el propósito de ejecutar algoritmos de procesamiento en tiempo real. Un procesador DSP se caracteriza

61

por el uso de arquitectura Harvard, datos de buses internos, programación Assembler, instrucciones paralelas de procesamiento, y compiladores de optimización. Los algoritmos de procesamiento pueden ser de suma, multiplicación y acumulación MAC y el módulo ALU (Unidad lógica - Aritmética). El tiempo discreto y la amplitud discreta en la salida de un conversor analógico digital AD son representadas en una secuencia de valores la cual es exteriorizada mediante aritmética de punto flotante o de punto fijo. Las representaciones fraccionales son implementaciones comunes en algoritmos representados en punto fijo, para la generación de direcciones y operaciones de módulo son usados enteros absolutos. El diseño de un DSP está basado en un esquema constituido por un controlador de programa, una unidad ALU y un multiplicador acumulador MAC, programas y datos de memoria e interfaces a memorias externas y dispositivos periféricos. Para el incremento de memoria, los buses de datos y control pueden estar conectados a una memoria externa ROM y RAM. La conexión de buses externos a buses internos del sistema influye en la ejecución de funciones externas de procesamiento de datos e instrucciones y el control del microprocesador puede ser archivado vía interfase host con un "word length" de determinada tasa de bits. La precisión aritmética depende del efecto que la cuantización tenga sobre la estabilidad aplicada al algoritmo. El tiempo de ciclo está relacionado con el tiempo de procesamiento en operaciones cíclicas de comandos de multiplicación y acumulación en un soporte procesador con un grado determinado de potencia. Existen herramientas para el desarrollo de sistemas discretos DSP en diversos soportes como compiladores - ensambladoras (Assembler), sistemas de operación en tiempo real que poseen un motor de manejo de memoria con una interfase de control multitareas por otro lado los simuladores software generan módulos virtuales de procesamiento y la ejecución de programas, los emuladores hardware pueden imitar el funcionamiento de chips en tarjetas hardware que pueden ser controladas vía software. Para la transferencia de datos han sido establecidos dos estándares conocidos como interfaces AES/EBU.

62

Sistemas Multiprocesadores DSP32. Un Sistema de procesamiento DSP está constituido por un DSP, un generador de reloj, instrucciones, memorias de datos donde el programa es cargado en la memoria interna RAM del procesador y para el control del procesador una interfase de hospedaje (Host) GUI (interfase Gráfica de Usuario) puede ser establecida para el control humano de parámetros asignados en el algoritmo de procesamiento. El diseño de multiprocesadores se logra mediante la conexión de procesadores de señal en paralelo o en serie. Los distintos segmentos de programas DSP son distribuidos en cascada (Fig. 12 y la salida de cada proceso es la entrada a otro hasta obtener una señal de salida serial por el último sistema. Un reloj sincrónico de bit y una sincronización común SYNC controla la interfase serial, este arreglo serial puede proveer salidas para cada sistema en tiempos distintos (tiempo múltiple).

Fig. 12. Procesadores de señal en cascada.

La arquitectura de sistemas en paralelo depende básicamente de la interconexión con un bus local que interconecta directamente los procesadores mediante un solo bus de sistema como representa la figura de Procesadores de señal en cascada (Fig. 13).

Fig. 13. Sistemas en paralelo

32 Zölzer, Udo. Digital Audio Signal Processing. Inglaterra; John Wiley & Sons, Ltd, 1997.

63

Un Sistema de Audio es un dispositivo listo para procesar señales sonoras, este conjunto es controlado mediante un dispositivo LAN (Local Area Network) donde su arquitectura puede ser esquematizada mediante la figura 14 como,

Fig 14. Sistema digital de procesamiento de señales discretizadas

2.3.10 Modificación de señales de audio. La señal de audio puede ser descrita en el dominio de la frecuencia, regularmente mediante la Transformada de Fourier donde las modificaciones están modeladas mediante señales ideales en una descomposición senoide. Este método puede ser de carácter implícito o explícito33. El uso explícito de la señal requiere un análisis preliminar para la estimación de parámetros necesarios para un posterior uso en procesos sintéticos de audio, mientras que en una metodología implícita la señal no requiere un análisis preliminar. Esta técnica de análisis puede ser implementada en tiempo real mediante el algoritmo conocido como la Transformada de Fourier de corto tiempo STFT donde sus esquemas de implementación se conocen como "Phase Vocoder" [9]. 33 Kahrs, Mark y Brandenburg, Karlheinz. Applications of digital signal processing to audio and acoustics. New York; Kluwer Academic Publishers, 2002.

64

Este dispositivo puede ser implementado en el ámbito musical, donde la señal de sonido es interpretada en términos de frecuencia, amplitud y fase de los componentes de las ondas senoides. Estos parámetros pueden ser estimados por la aplicación de algoritmos procesadores de picos junto con el análisis de Fourier. La señal sintética preserva la forma de onda y puede ser considerada perceptualmente indistinguible de la original. La representación de señales mediante una suma de señales senoides moduladas junto con técnicas de análisis/síntesis son herramientas útiles en el procesamiento de la voz y de contenidos musicales. Los objetivos más comunes pueden ser la duplicación de sonidos naturales y creación de nuevos sonidos a través de la modificación de parámetros de la señal compleja, una fuente vibrante excita el sistema donde su salida representa la suma de amplitudes y frecuencias de ondas senoides moduladas. Las fuentes cuasi - periódicas como la voz y fuentes de notas musicales sostenidas en tiempo puede modelarse como una suma finita de armónicos de señales senoides con una lenta variación en amplitud y en frecuencia a diferencia de señales de ruido en las cuales no existe una estructura armónica clara, que pueden representarse también mediante señales senoides pero sin una estructura de fase coherente o relación de fase estable como las señales de carácter estocástico notadas con anterioridad. Un evento cuasi-periódico ocurre durante segmentos sostenidos en el tiempo, el cual es traducido mediante esta técnica como la operación que relaciona (no solo adición) ondas seno moduladas en amplitud y en frecuencia que se traduce a una descomposición basada en ondas senoides, la propiedad y los métodos de separabilidad son esenciales en la aplicación de análisis/síntesis en eventos sonoros esquematizando el conjunto como un "vocoder de fase". Luego podemos crear un modelo que represente tanto eventos periódicos con relaciones de fase estables e inestables en un modelo que junta tanto una operación sintética como la adición, FM o granulación, como un modelo estocástico que obtiene elementos de valores probables en un espacio muestral. Para el diseño del prototipo existen numerosos modelos descriptivos tanto implícitos, explícitos o ambos. Un recurso fundamental nace con la implementación de la Transformada de Fourier para la detección de amplitudes y trayectorias de frecuencia por medio de un procesador "Banco de Filtros”. Es útil modelar la señal sonora en un sistema senoide cuasi periódico en una nota musical como un conjunto de parámetros que definen perceptual y físicamente el sonido, expresado mediante,

65

. En la expresión s(n), Al y φκ representan la amplitud y la fase de cada componente senoide asociado con el k-esimo harmónico Kωo y L representa la cantidad de ondas seno, donde los parámetros de amplitud Ak frecuencia fundamental y fase φk, varían lentamente. La derivación de la función θk(n), aproxima el lento cambio en frecuencia de cada armónico y está dado por ωk(n). En un generador de ondas es común el ingreso (inicialización) de una amplitud Ak(n) y una frecuencia ωk(n). Modelando una señal x(n) que proviene de una nota musical periódica, EL tamaño de la Transformada Discreta de Fourier (DFT) es igual a la forma de onda en el periodo N, cuyos componentes real e imaginario están expresados respectivamente como,

, donde ωo = 2π/N. Luego para estimar la lenta variación de fase y amplitud de cada armónico es factible notar,

. Este sistema puede considerarse un "Banco de Filtros" donde cada filtro es una versión coseno modulada de un filtro prototipo dada por una ventana rectangular de valor N en el intervalo 0 =<n=<N. La STFT es el análisis de Fourier operado en divisiones en el dominio de tiempo de la señal. Asumiendo que la tasa de muestreo posee un valor unitario Fs = 1/T = 1. La multiplicación de una señal y(n) por una portadora compleja exponencial

66

puede modular o de demodular a una señal arbitraria, esto traslada el contenido de baja frecuencia de la señal a un área alrededor de la frecuencia portadora, luego una modulación inversa o demodulación hará que la señal entregue un valor cercano a la frecuencia fundamental ωo. El proceso de desmodulación deriva un Banco de Filtros que divide el espectro entre o y Fs en N porciones. La señal es filtrada mediante un filtro prototipo pasa-bajos para aislar una parte específica del espectro. La DTFT puede computarse en porciones de la señal y ponderadas mediante un ventaneo w(m - n) donde m simboliza una dislocación temporal de la ventana, luego este tipo de DTFT será función tanto de un desplazamiento en t como de la frecuencia expresada como un "frame" de la STFT, pude ser notado junto con su función inversa como,

La computación de la STFT se hace en una serie finita de N puntos donde la ventana debe ser R<=N de longitud en muestras, obteniendo una muestra del eje de frecuencia entre 0 y 2π en múltiplos de 2π/N. El k-esimo punto en el dominio de la transformada y su función inversa conocida como la reconstrucción o resíntesis está dada por,

. Un filtro cuya respuesta al impulso es 1 en n = 0 (senc) y su respuesta en frecuencia puede modelarse como una ventana rectangular donde el valor R (tamaño de ventaneo) aumenta o decrementa el solapamiento que produce este filtrado sobre la señal con la esperanza de extraer la información más significativa alrededor de dc (ωo).

. La implementación de una ventana rectangular puede realizarse mediante un filtro prototipo con un ancho de banda de 2π/R el cual produce una decimación en la información en cada canal de análisis. La suma de las replicas de sinc desplazadas debilita la posibilidad de aliasing ya que este está presente en la

67

banda de base (2π/R), luego el ventaneo puede reducir la tasa de muestreo inmediata a Fs/R que debe ser posteriormente interpolada para traer de vuelta a Fs. Las ventanas rectangulares deben ser desplazadas en el tiempo por R muestras después de cada cálculo de DFT (Hop Size). La reconstrucción expresa un banco de osciladores moduladores (Banco de Filtros) controlado por el proceso de análisis mediante un ventaneo que reduce la tasa de muestreo a Fs/R. Las ventanas rectangulares son desplazadas en el tiempo por R muestras luego de cada computación. Existen diversas ventanas donde cada una es caracterizada por el ancho de lóbulo principal y lóbulos laterales que extraen componentes de óptima resolución siendo menor en un ventaneo con un lóbulo principal grande, luego la extracción de componentes frecuenciales es más difícil. Los niveles de los lóbulos laterales indican la tasa en que los componentes espectrales senoides afectan la medición de cápsulas (bins) DFT cercanas. Los errores de picos falsos espectrales son conocidos como Leakage y es común en un ventaneo muy ancho pero uno críticamente angosto efectuará una baja resolución espectral y se asume que en un frame la señal es estacionaria. La selección de una ventana con tamaño R menor que N genera un espectro en una mayor cantidad de puntos donde una secuencia R es extendida por medio de N - R ceros. Extendiendo la respuesta temporal con ceros genera un muestreo del espectro en frecuencia con mayor densidad sin un incremento en la resolución del proceso. Un parámetro real de calidad muy importante en términos de resolución es la escogencia de un tamaño y forma de un ventaneo apropiado. La DFT puede modelarse bajo la definición34,

Es útil la implementación de una interpolación para estimar el valor y la posición de un pico de frecuencia en la magnitud del espectro de una señal arbitraria, luego mediante una interpolación polinomial de segundo orden como la interpolación parabólica con tres partículas DFT de la magnitud espectral. Tomando las coordenadas (xo,yo), (x1,y1) y (x2,y2) para aplicar la fórmula de interpolación de Lagrange hasta obtener un cuanto de frecuencia Fs/N. Un modelo senoide complejo es útil para el análisis de la señal de tal forma que

34 Rocchesso, Davide, Introduction to Sound Processing, http://www.scienze.univr.it/˜rocchess

68

siendo ωi la frecuencia del i-esimo parcial y su integral notada como φ y expresa la fase angular donde,

. El k-esimo bin (partícula) de m-esimo frame de la STFT está dada por,

. Donde el modelo senoide complejo contiene la amplitud y la fase instantánea que yace en la K-ésima partícula o bin y W(-) es la transformada de la ventana. La obtención de la fase da la oportunidad de hallar la frecuencia a partir de la diferencia entre los frames adyacentes. La separación temporal (hop size) H y la separación 2π/N entre bins impone que para ventaneos rectangulares H<N/2 y para ventanas Hann o Hamming H<N/4(tres cuartas partes de solapamiento). El prototipo de vocoder de fase puede realizarse mediante el diseño observado en la figura 15. La figura 16 propone un modelo similar donde el ventaneo esta dado antes que la demodulación de la señal entrante al sistema.

Fig 15. Modelo de Vocoder de Fase

69

El Vocoder de Fase o la STFT puede notarse mediante35,

, Esta expresión puede ser vista como una primera modulación de la ventana a la frecuencia ω que produce un filtro pasa banda el cual filtra a x(n). Según este modelo la salida del filtro debe ser demodulada para regresar la señal a la frecuencia base de la banda. La salida temporal del banco de filtros puede modelarse como ondas senoides discretas que están moduladas por la dependencia temporal de la transformada de Fourier. Si una secuencia discreta pasa a través de un sistema discreto de filtrado hk(n), donde cada filtro está dado por una versión modulada de un filtro prototipo de base de banda h(n) = w(n) donde h(n) se asume como causal y tiene una duración 0<=n<=S y 2π/R es el espacio en frecuencia entre filtros pasa banda donde R representa la cantidad de filtros, dado por,

. Donde ωk = (2p / R)k y puede establecerse como la frecuencia central de R canales. De la señal puede extraerse su composición espectral por medio de una interpretación geométrica compleja, en donde la salida de cada filtro yk(n) es de valor complejo dada la respuesta del filtro hk(n) y la envolvente temporal ak(n) y fase φk(n) de la salida del K-esimo puede establecerse como una descomposición y reconstrucción mediante un modelo en el cual la salida de cada filtro es interpretado como una señal senoide compleja modulada en amplitud y en fase. La reconstrucción de la señal puede operarse mediante la sumatoria de exponenciales complejas, donde,

El modelo senoide complejo y su recomposición se puede establecer mediante,

.

35 Kahrs, Mark y Brandenburg, Karlheinz. Applications of digital signal processing to audio and acoustics. New York; Kluwer Academic Publishers, 2002.

70

Fig 16. Diseño de Vocoder de Fase.

El Vocoder de fase es implementado en la computación musical para el análisis de la naturaleza del espectro y la percepción tímbrica musical explotando la relación inarmónica presente entre las frecuencias de los componentes en un sonido tonal. El interés en la construcción y la utilidad como sistema de procesamiento del Phase Vocoder reside en la capacidad de alterar la naturaleza tonal antes y durante la resíntesis, también el dispositivo posee la virtud de modificar la frecuencia de una señal sin alterar la duración del sonido. En la reconstrucción tonal del módulo de análisis, el K-esimo canal debe ser centrado en la frecuencia kfo sin embargo diferentes tonalidades pueden ser obtenidas mediante diversas sintonizaciones de la frecuencia central en los canales de análisis o mediante operaciones numéricas (k), sin embargo estas operaciones generan una relación armónica distinta a la de la fuente musical o vocal por lo que una transposición crítica puede tornar una señal procesada inteligible. Una reconstrucción perfecta en la práctica es un modelo ya que los sonidos reales poseen un complejo espectro que puede ser visto como múltiples eventos de amplitud y fase en tiempos cortos. La manipulación de N como la resolución en muestras de la ventana es un factor crítico y más que importante en el diseño del dispositivo, una gran cantidad de canales de análisis incrementará la resolución pero elevará la tasa de proceso a un punto incluso al cual el algoritmo puede generar errores de proceso y causar un proceso disfuncional. La T. de Fourier puede ser fácilmente implementada mediante la multiplicación de la señal entrante por una función de ventaneo apropiada, la cual tiene un valor máximo en el centro de la ventana. Cada "sample" o muestra de entrada es multiplicado por la correspondiente muestra de la función de ventaneo para generar una envolvente de la señal de entrada en un área específica del espectro la cual es rechazado cierta parte del espectro por el comportamiento de filtro rechaza-banda del ventaneo y por el ancho de banda que permite la porción como

71

un pasa-bandas. La secuencia de ventaneo es implementada con el fin de obtener una fracción espectral. Modelado Espectral36. La etapa determinista está expresada mediante el tratamiento a la señal dada acompañada de detectores de picos y trascientes, una posible etapa de interpolación para la adquisición de una amplitud más suavizada además de moduladores en amplitud, en frecuencia y filtrado. Un modelo determinista puede estar acompañado de otros modelos como una señal de carácter estocástico donde,

. Los elementos probabilísticos pueden determinarse mediante la substracción entre la señal determinística dada por el proceso de señal en las etapas de análisis DFT, detección y síntesis espectral. La información residual en las componentes de fase y magnitud pueden ser eliminadas mediante la detección de los picos más prominentes en frecuencia como indicador de un componente senoide importante para el proceso de análisis dando una trasciende histiérica que causa un periodo en el tiempo en el que la señal en frecuencia nace y muere en periodos de tiempo que culminan con una caída drástica de flujo a la salida una vez la energía de la señal a la entrada del sistema se disipa en cierta cantidad. En la mayoría de prototipos el ataque es rápido con una caída lenta, sin embargo esos parámetros pueden ser modificados por un operador humano donde el control de ataque y extinción (release) producen una sensación de modificación en el comportamiento trasciente del sonido. La etapa de resíntesis mediante la técnica de análisis está basada en la Transformada de Fourier de Tiempo Discreto DTFT, donde una senoide ventaneada es la transformada de la ventana centrada en la frecuencia de la senoide y multiplicada por un número complejo de magnitud y fase igual a la señal senoide. Luego el sonido resintetizado puede ser generado mediante una anti-transformación de la series de la DFT. Esta síntesis conocida como la síntesis FFT. 36 Masri, Paul. Computer Modelling of Sound for Transformation and synthesis of musical signals. Universidad de Bristol, departamento de Ingeniería eléctrica y electrónica, 1997.

72

Modelado no Lineal. Modulación en Frecuencia y Fase37. La experimentación con espectros complejos no-lineales de modulación FM generan en la señal un enriquecimiento tímbrico importante mediante la modulación en frecuencia, descrito como,

x(n) = Asen (ωcn + Ιsen (ωmn)) = Asen (ωcn + φ(n)) , Donde ωc representa la frecuencia portadora, ωm se conoce como la frecuencia de modulación y el índice de modulación está notado como Ι donde el modulador genera un cambio en la fase instantánea [7]. Un oscilador senoide puede modularse así mismo mediante un mecanismo implementado a través de un sistema nutrido con una muestra de retardo una muestra de dilación. Este sistema puede ser expresado para una implementación mediante,

X(n) = sin (ωcn + β x(n – 1)). 2.3.11 Simulación de Recintos. Los recintos artificiales son modelos que pueden ser implementados como algoritmos que adhieren a la señal una impresión de espacialidad que es útil tanto en la producción musical como para la interpretación y manipulación de modelos acústicos. En el ámbito del procesamiento de señal esta simulación acústica pueden ser interpretada como una convolución entre la señal de audio con una respuesta impulsiva de una sala la cual se compone de una señal directa, reflexiones tempranas y reverberación subsecuente, sin embargo la implementación DSP del algoritmo esta basado en un modelo indirecto que busca satisfacer las propiedades derivadas de la incidencia de esta convolución en la señal. La densidad en las reflexiones tempranas incrementa con el tiempo y

37 Chowning, John M. The synthesis of complex Audio Spectra by Means of Frequency Modulation. Stanford Artificial Intelligence Laboratory, Stanford, California; AES. Vol. 21, 1973.

73

genera una señal aleatoria con decaimiento exponencial conocida como reverberación subsecuente. La aplicación de herramientas para la generación de reflexiones tempranas se basa en la alimentación y ponderación de la señal en un sistema seguido por la adición de la señal entrante (sonido directo). La primera reflexión M está implementada por la lectura de un sistema de retardo y una ponderación en magnitud por un factor gi. Se puede establecer un modelo en el cual la descripción perceptual de la distancia del oyente con respecto a la fuente de emisión sonora se evalúa con respecto al tiempo de retardo y un factor de amplitud. Las reflexiones generan información útil para la ubicación perceptual de la fuente y un tamaño tentativo de un confinamiento acústico. Para un tiempo de reverberación T60, un coeficiente de absorción r puede ser determinado mediante la aplicación de la expresión r = (ln 1000) / T60 mediante la cual podemos determinar38,

. Donde d es la distancia de la fuente, d' es la distancia de la fuente imagen de la primera reflexión, g es la amplitud relativa de la señal directa a la primera reflexión y TD es el tiempo de retardo relativo de la primera reflexión con respecto a la señal directa. La simulación de múltiples fuentes sonoras ubicadas en distintos puntos del campo estereofónico puede establecerse mediante el desplazamiento de la fuente sonora por un δ decremental (TD) o incrementa l(TE) en el tiempo de retardo relativo. Una segundo o n-esimo desplazamiento está dado por

. 38 Zölzer, Udo. Digital Audio Signal Processing. Inglaterra; John Wiley & Sons, Ltd, 1997.

74

La arquitectura de un sistema de generación de reflexiones tempranas puede diseñarse mediante un simulador de reflexiones tempranas y dos líneas de retardo en la señal de entrada con un factor de ponderación y tiempo de retardo acoplado e indicados en el diagrama de la figura 17.

Fig 17. Sistema acoplado de reflexión temprana.

Para la generación de una reverberación subsecuente puede ser implementado mediante la respuesta al impulso de un filtro de peine (ver figura 18) con un decaimiento exponencial dado por un factor de resistencia a la retroalimentación g y un tiempo de retardo en M muestras39, este filtro posee una función de transferencia expresada mediante[15],

. Su respuesta al impulso puede ser interpretada como una sumatoria de oscilaciones coseno con frecuencias Ωk que corresponden a la densidad frecuencial del recinto. La respuesta en frecuencia está dada por

.

Fig 18. Filtro de Peine

39 Schroeder, Manfred R. Progress in Architectural Acoustics and Artificial Reverberation: Concert Halls Acoustics and Number Theory. USA; J. Audio Soc., Vol. 32, No 4, abril de 1984.

75

El filtro "all-pass" es también útil en la implementación del dispositivo, su función de transferencia está dada por,

. Su respuesta al impulso es también modelada mediante una sumatoria coseno.

Fig 19. Filtro "all-pass"

Una muestra en la respuesta al impulso posee una ocurrencia de M periodos de muestreo, la densidad en las muestras en esta respuesta no incrementan con el tiempo. La densidad de frecuencias es el parámetro acústico desarrollado a través de filtros de peine, la densidad del espectro en frecuencia describe la cantidad frecuencial en Hz y se define como Df = M * Ts [1/Hz*]. Un filtro de peine posee M resonancias en el intervalo [0,2π] separadas Δf = f/M. Para incrementar la densidad frecuencial un arreglo paralelo con un número de filtros P es implementado donde la Transformada Z esta dada por,

.

La densidad de eco es la cantidad de reflexiones en un segundo y generada mediante un arreglo paralelo de filtros de peine donde el tiempo de retardo está definido como la multiplicación inversa entre M y el tiempo de muestreo. La cantidad de filtros de peine está dado por,

.

76

Fig 20. Arreglo en paralelo de filtros de peine.

Un futuro incremento en la densidad de eco es aplicado mediante un circuito en cascada de un filtro "all-pass" diagramado mediante la figura 21, conectado en serie con el circuito en paralelo de filtros de peine modelado en la figura 20.

Fig 21. Filtros "all-pass" en cascada. El tiempo de reverberación está definido por el factor de ganancia g, que describe el radio de dos muestras distintas a cero de la respuesta al impulso separada M periodos de muestreo, el decaimiento constante por M puede ser calculada por el radio polar r = g*exp (1/M), obteniendo,

.

77

La atenuación por periodo de muestreo está dada por,

, y el T60 está dado por,

. El control de la reverberación está dado inseparablemente por el tiempo de retardo M y la ganancia g. Las frecuencias dispersas en una sala tienen una rápida caída en frecuencias altas (menor concentración energética), luego la implementación de una reverberación dependiente de la frecuencia está dada por un filtro pasa-bajos en el ciclo de alimentación del filtro de peine logrando una rápida caída de la densidad de alta frecuencia mientras que el contenido de baja frecuencia decae lentamente40(ver figura 22).

Fig. 22 Filtro de peine modificado

40 Kahrs, Mark y Brandenburg, Karlheinz. Applications of digital signal processing to audio and acoustics. New York; Kluwer Academic Publishers, 2002.

78

3. METODOLOGIA 3.1 ENFOQUE DE LA INVESTIGACION El enfoque de la investigación es empírico-analítico ya que por medio de esta investigación se pretende transformar las señales audibles por medio de algoritmos de procesamiento de señales digitales lo que implica una transformación de uno de los elementos más importantes de estudio matemático e ingenieril: las señales unidimensionales. 3.2 LINEA DE INVESTIGACION DE USB / SUB-LÍNEA DE FACULTAD / CAMPO TEMÁTICO DEL PROGRAMA. El proyecto pertenece a la línea institucional de investigación: Tecnologías actuales y sociedad, ya que por medio de esta investigación se intenta construir un sistema de formato genérico de utilidad para la comunidad de productores y compositores que puedan acceder a este. La sub-línea de investigación de la facultad es la de Procesamiento de Señales Digitales y/o analógicas ya que se aplicaron procesos de filtrado, codificación, transmisión, procesos de estimación, análisis, y síntesis en el dominio del tiempo de a la señal de audio entrante a un procesador tipo VST hospedado por un usuario a través de una plataforma. El campo de investigación de Ingeniería de sonido es el campo de Diseño de Sistemas de Sonido ya que se usaron herramientas teóricas que llevaron a la aplicación de estos recursos en sistemas virtuales de procesamiento. 3.3 TECNICAS DE RECOLECCION DE INFORMACION La recolección de la información depende básicamente de la información hallada en bibliotecas, Internet y los manuales de operación de programas implementados. Es importante crear un modelo simulado en un programa matemático (Matlab) que sirva para el entendimiento de un proceso electrónico o computacional, también es necesario hacer una comparativa entre sistemas ya elaborados y el desarrollado en el proyecto.

79

3.5 HIPÓTESIS Esta investigación está concebida para comprobar la factibilidad que existe en el diseñar y desarrollar dos sistemas virtuales musicales (Plug-ins VST) interrelacionados, para la manipulación de señales de audio como herramienta novedosa para la producción musical, aplicando un bagaje Ingenieril que será adaptado a una plataforma computacional y desde allí exportar los plug-ins para su uso. La investigación también busca comprobar la relación entre la estabilidad de los sistemas, la complejidad y el rendimiento de la CPU que albergue los plugins. 3.6 VARIABLES 3.6.1 VARIABLES INDEPENDIENTES

• Modelos matemáticos aplicados. • Editores de elaboración de prototipos en mención. • Comprensión del proceso necesario. • Efectividad y estabilidad del sistema construido.

3.6.2 VARIABLES DEPENDIENTES

• Funcionalidad del producto. • Aceptación del mismo. • Tecnologías previamente desarrolladas • Tecnologías innovadoras en el medio.

80

4. DESARROLLO INGENIERIL El desarrollo del producto ingenieril está basado en la manipulación de recursos teóricos, prácticos y empíricos que modelan el comportamiento y los valores tomados por señales de sonido que pueden ser manipuladas en tiempo real y cuyo algoritmo está compilado bajo la extensión libre y universal VST (Virtual System Technology) de Steinberg© (www.steinberg.de), para la satisfacción de una necesidad de implementación práctica. A priori a una construcción, los elementos que constituyen los sistemas de procesamiento fueron simplificados para la instauración de un algoritmo genérico que pueda ser codificado en la plataforma de programación más favorable. 4.1 Vocoder de Fase El prototipo de análisis, resíntesis y modelado de señal discreta aplicado, se realizó mediante una aplicación de la Transformada discreta de Fourier DFT para tiempo real conocida como el Vocoder (Voice Operated reCOrDER) de fase (STFT), que mediante un conjunto de canales de análisis y descomposición espectral, separan los componentes de la señal para una futura recomposición o manipulación de los parámetros de la señal (resíntesis). Este recurso es básico para la modelación y modificación del sonido entrante al sistema pero también es importante la inclusión de otros elementos tanto de control del programa como las operaciones en los valores de la señal como filtros, detectores de picos, detectores de envolventes, moduladores, osciladores de baja frecuencia (LFO), envolventes de amplitud, osciladores y un modelo de síntesis FM. Estos elementos anexos aportan componentes de control y generan un dispositivo novedoso para la manipulación de señales en tiempo real o de grabaciones remanentes en estaciones de trabajo y superficies que soporten sistemas VST. Sin embargo la incorporación de muchos elementos puede lograr una mejora aparente del sonido pero a costa de un gran esfuerzo del programa que hospeda al plug-in y la capacidad del hardware, por lo tanto es importante un equilibrio entre la relación procesamiento-capacidad en la arquitectura del sistema. Como se mostró en el marco teórico, la aplicación del primer módulo para el sistema de análisis/resíntesis es el cálculo de la DFT que consta básicamente de una demodulación, un ventaneo, una modulación y una reconstrucción del sonido mediante canales de análisis. Una primera demodulación que enfrenta la señal sonora en cada canal de análisis según la Transformada de Fourier para tiempo discreto está simplificada por la expresión que relaciona exponenciales complejas con funciones trigonométricas (Identidad de Euler) [2], donde,

81

Fig 23. Demodulación de x[n]

La señal entrante se transforma en una señal en el dominio de Fourier donde x[n] es la señal de entrada indicada en la figura 23, la demodulación está dada por

y mediante la identidad de Euler se puede expresar como,

x[n] = i[n] cos (ωon) - q[n] sen (ωon), donde ωon = 2πk / n, y mediante una factorización obtenemos expresión

X(ω) = x[n] * [((cos(won)))-(sen(won))].

Un ventaneo de la señal mediante una convolución por un filtro h(t), x[n] ∗ h(t) puede expresarse como una multiplicación de la señal en el dominio de la frecuencia donde la respuesta en frecuencia del filtro que compone la ventana depende de R diezmando la señal en un determinado punto en la frecuencia dado un ωR de filtrado dado por ωR=2π/R [12]. La implementación de una ventana rectangular W(R) permite que la señal ya en el dominio de frecuencia sea multiplicada por el ventaneo en un canal de análisis dado por

Y(ω) = X(ω)*H(ω),

Que coincide con la secuencia e un filtro FIR expresado en el dominio de tiempo como la convolución de x(n) y h(n) dada por,

82

Dado que h(n) y x(n) son de duración finita su convolución también es finita.

Fig 24. ventaneo

Esto significa que el ventaneo puede modelarse e incluso implementarse como un filtro FIR donde la señal ventaneada es modelado mediante la figura 24. La simplificación del ventaneo está dada por,

W(ω) = X(ω)*[(cos(ω((R-1)/2)))-[(sin(ω((R-1)/2))) * ((sin ((wR)/2)) / (Sin (w/2)))]. Para este instante la señal en cada canal de análisis posee una sintonización de frecuencia específica dada por la demodulación y su diezmación mediante la variable R de la ventana. En esta etapa podemos dividir la señal en frecuencia, fase y amplitud. Por una sencilla inspección este modelo para el cálculo de la DFT de corto tiempo STFT puede dividirse en dos partes una hasta el ventaneo donde podemos hallar la amplitud, las fase y la frecuencia, luego la segunda parte del sistema se dedica a la reconstrucción de la señal mediante una función inversa de la T. de Fourier, luego la señal regresa al dominio original que es el dominio del tiempo, a ese proceso se le conoce como resíntesis. En orden, primero se continuará con el proceso de reconstrucción/resíntesis y posteriormente se desarrollará un proceso de separación de las componentes en la mitad del prototipo descrito entre el ventaneo y la modulación, aún cuando la señal yace en el dominio de la frecuencia. La función inversa de la Transformada de Fourier (Fig. 25) cambia de nuevo el dominio de señal de frecuencia a señal de tiempo, mediante una modulación con una exponencial compleja, luego la reconstrucción-resíntesis está dada por una sumatoria de todos los canales de análisis N una vez modulados e integrando la expresión 1/N por una interpolación del ventaneo (1 / W(R)), donde

y(m) = X(w) * [((cos(won)) + (sen(won))] * (1 / (N W(R)))

83

Fig 25. Reconstrucción/Resíntesis de la señal.

La propiedad de separación de los componentes espectrales de la señal, fase, amplitud y frecuencia se aplica a la señal, modelada básicamente por la operación de argumento y magnitud de la parte real e imaginaria de la señal [1]. La interpretación geométrica compleja donde la magnitud y la fase son evidenciadas en el plano de los complejos, entonces el componente en fase i[n] y cuadratura q[n] se relacionan mediante41

x[n] = i[n]cos(won) - q[n]sen(won), donde la detección en tiempo real de la magnitud está dada por la interpretación geométrica y se define como el valor absoluto de la señal dado por,

,

y la detección del ángulo de fase está dado por,

θ[n] = arg{x[n]}.

La frecuencia está definida como la derivada de la fase con respecto a t e inversamente, la integral de la frecuencia es la fase de la señal, luego es posible expresar la frecuencia mediante la derivada de la función inversa de la tangente, notada como,

41 Sorias Olivas, Emilio. Tratamiento digital de señales: problemas y ejercicios resueltos, Primera edición. Madrid; Pearson Educación, 2003.

84

, luego la frecuencia detectada ωon para el prototipo está dada por (no se debe confundir con 2πk/N),

.

La reconstrucción del modelo está dado por la solución real a una exponencial compleja, donde,

. El ángulo de fase en la práctica se obtiene mediante el argumento del radio entre los componentes imaginario y real, extraído como el argumento de la convolución de la señal x(n) por un filtro de ventaneo h(t), luego,

,

.

Para la extracción de estos parámetros en tiempo real[2], las líneas de flujo informático deben ser interceptadas luego de un ventaneo. La separación de componentes da lugar a una modificación deseada por un operador del DSP VST.

ALGORITMO DE RESINTESIS CÁLCULO IMPLÍCITO PARA UN CANAL DE ANÁLISIS

Fs=44100; f1=0.2*Fs; n=1; N = 16; k=1; R=16; xn = 0.8 * sin (2*3.141492*f1/Fs);%señal discreta arbitraria w0=(2*3141592*k)/N; wR=(2*3141592*k)/R; dem = xn * ((cos(w0*n)) - (sin(w0*n)));

85

demreal=xn * ((cos(w0*n)); demimag=xn * (-(sin(w0*n))); wdw= dem * ( ((cos(wR*((R-1)/2))) - (sin (wR*((R-1)/2)))) * (sin((wR*R)/2))/(sin(w*R/2))); wdwreal = demreal * (((cos(w0*((R-1)/2))) * (sin((w0*R)/2))/(sin(w0/2))); wdwimag = demimag * (-sin (w0*((R-1)/2))) * (sin((w0*R)/2))/(sin(w0/2))); mod=wdw*((cos(w0*n))+(sin(w0*n))); recons=(1/(N*wdw))*mod; %resintesis cálculo explícito para un canal de análisis magn=abs(wdw); fase=arctan((wdwimag) / (wdwreal)); frecuencia=1/(1+(fase*fase)%derivada de la fase% recon=magn*cos(frecuencia+fase); %algoritmo DFT cálculo directo para un canal de análisis% r=1; ckn=xn*cos(r*k*w0); dkn=xn*sin(r*k*w0); akn=sqrt((ckn*ckn)+(dkn*dkn)); phi=arctan(dkn/ckn); Sn=akn*cos(phi); Codificado para MATLAB como, Fs=44100; f1=0.2*Fs; n=1; N = 16; k=1; R=16; t=0.00001:1/Fs:1; xn = 0.8 * sin ((2*3.141592*f1/Fs).*t); w0=(2*3141592*k)/N; wR=(2*3141592*k)/R; dem = xn * ((cos(w0*n)) - (sin(w0*n))); demreal=xn * (cos(w0*n)); demimag=xn * (-1*(sin(w0*n))); wdw= dem * (((cos(wR*((R-1)/2))) - (sin (wR*((R-1)/2)))) * (sin((wR*R)/2))/(sin(wR*R/2))); wdwreal = demreal * (((cos(w0*((R-1)/2))) * (sin((w0*R)/2))/(sin(w0/2)))); wdwimag = demimag * (-sin (w0*((R-1)/2))) * (sin((w0*R)/2))/(sin(w0/2)); mod=wdw*((cos(w0*n))+(sin(w0*n))); recons=(1./(N*wdw)).*mod; magn=abs(wdw); fase=atan((wdwimag) / (wdwreal)); frecuencia=1/(1+(fase*fase)); recon=magn*cos(frecuencia+fase); r=1; ckn=xn*cos(r*k*w0); dkn=xn*sin(r*k*w0); akn=sqrt((ckn.*ckn)+(dkn.*dkn)); phi=atan(dkn/ckn); Sn=akn*cos(phi);

86

Donde la señal de entrada para un canal de análisis está modelada por una señal periódica generada desde el mismo algoritmo, sin embargo dadas las condiciones para el programa la señal de entrada debe ser una secuencia de un instrumento musical de carácter cuasi-periódico. La codificación de este algoritmo para el software SynthMaker© www.synthmaker.com se puede entender como una disposición creada por las etapas descritas en el diagrama en bloques expresado previamente como se esboza en la figura 26 y puede ser implementado por medio de la interacción de las siguientes “etapas de procesamiento” 1. Etapa de análisis. 1.1 Módulo Code para análisis y síntesis IDFT previo. //Elaborado por Juan Manuel Medina Sánchez. (C) streamin xn; streamout out; streamout abs; streamout arg; float count,k,N,n0,w0,R,wR,fs,wd,wdw,wdi,wdwi,xwi,mod,count1,xw,dmr,dmi,md,rst,fas,arg,freq,fase; k =1; fs=44100; N =16; n0=k; R=N; w0=(((2*3.141592*k*n0)/N)/fs); wR=(((2*3.141592*k*n0)/R)/fs); dmr=xn*(cos1(count)); dmi=xn*(-1*(sin1(count))); count=count+w0; count1=count+wR; count=count-((count>=1.0)&1.0); wd=(cos1(count1*((R-1)/2))); wdw=wd*(sin1((count1*R)/2))/(sin1((count1*R)/2)); wdi=-1*(sin1(count1*((R-1)/2))); wdwi=wdi*(sin1((count1*R)/2))/(sin1((count1*R)/2)); xw=xn*wdw; xwi=xn*wdwi; md=xw*(cos1(count)+sin1(count)); out=(1/(N*wdw))*md; abs=((xw*xw)+(xwi*xwi)); fase=wdi/wdw;

87

fas=1/(tan1(fase)); freq=1/(1+(fas*fas)); arg=cos1(k*freq+fas); 1.2 Módulo Assembler, raíz cuadrática. streamin in; streamout out; movaps xmm0,in; sqrtps xmm1,xmm0; movaps out,xmm1; 1.3 Módulo Code Modelado, streamin in; streamout out; movaps xmm0,in; sqrtps xmm1,xmm0; movaps out,xmm1; 2. Detector de Picos. La detección de picos genera un suavizado en las secuencias de los componentes extraídos de la señal mediante un proceso dinámico que genera un ataque y un decaimiento (envolvente) en los componentes analizados suministrando una “mejora” en la calidad perceptual mostrado en la figura 27.

88

Fig 26. Secuencia de Procesamiento para un canal de análisis

El algoritmo está especificado para uno de N -1 canales de procesamiento, donde N es entero y su valor depende de la capacidad de proceso que pueda alcanzar el plug-in DSP, luego existe la necesidad de generar un estándar de calidad a través de un promedio de capacidad del usuario . Un valor ideal de N está al rededor de 512, pero es una cifra muy difícil de lograr para proceso en tiempo real. El "seudo-código" puede ser aplicado a múltiples plataformas que permitan la computación de los valores necesarios, luego la conversión de convoluciones, exponenciales complejas, derivadas, integrales e interpretaciones complejas, entre otros, a expresiones más simples permite abordar estos modelos mediante procesos ágiles y soportables en memoria y capacidad para el sistema de procesamiento.

1.1 1.2

1.3

89

. Fig 27. Etapa de análisis del vocoder de fase.

El vocoder de fase diseñado en este proyecto puede apreciarse en la figura 27. Este prototipo posee una señal de entrada y la posibilidad de seleccionar uno de dos modelos de resíntesis, tanto el modelo espectral y otro la resíntesis por Transformada Inversa de Fourier. Este sistema puede codificarse en la plataforma Synthmaker como muestra la figura 28.

90

Fig 28. Etapa de análisis y detección del vocoder de fase mediante la plataforma SynthMaker©.

Creación de un modelo de vocoder de fase optimizado. Un modelo más flexible está dado por la implementación de una ventana Hamming la cual genera un proceso de ventaneo más suave e incide en la calidad del prototipo, con este fin el algoritmo de implementación (para MATLAB y SynthMaker©) puede ser expresado mediante,

• Implementación MATLAB %STFT para un canal de análisis%  xn= 1*cos(2*pi*200);%señal arbitraria% fs=44100; k =1; N =16;%# de canales de análisis% n0=0:0.001:1; R=N;  w0=(((2*3.141592*k*n0)/N))/fs;%frecuencia de dem/mod% wR=(((2*3.141592*k*n0)/R))/fs;%frecuencia de la ventana%   dmr=xn*(cos(w0));%demodulación% 

Canales de análisis

Modelado Espectral Detección

De Picos

x(n)

x(m)

91

dmi=xn*((‐1*sin(w0))); dmt=dmr+dmi;   wd=(cos(wR*((R‐1)/2)));%ventaneo% wdi=‐1*(sin(wR*((R‐1)/2))); wdw=(wd.*(sin((wR*R)/2))/(sin((wR*R)/2)))*0.1; wdwi=(wd.*(sin((wR*R)/2))/(sin((wR*R)/2)))*0.1; wdwt=wdw+wdwi;  xw=dmr*wdw; xwi=dmi*wdwi;  mdr=xw.*(cos(w0));%modulacion% mdi=xw.*(sin(w0)); md=mdr+mdi;  out=(1/(N*wdw))*md;%sintesis FFT(IDFT)%  abs=(xw.*xw)+(xwi.*xwi);%magnitud de la señal%  fase=xwi/xw; fas=1/(tan(fase));%fase de la señal%  freq=1/(1+(fas*fas));%frecuencia de la señal%  arg=(cos((freq+fase)));%argumento de la señal%  recons=abs*arg;%Modelado espectral%  %Modulación FM%  I=1;%indice de modulación FM% mod=2*pi*100;%frecuencia de modulación%  out1=(abs*sin(arg+(I*sin(mod))));%FM% 

• Implementación para SynthMaker©

1. Modulo “code” para un canal de análisis (1/16), y síntesis IDFT. //Creado por Juan Manuel Medina Sanchez(C) /comandos de entrada y salida streamin xn;/Señal de entrada streamout out;/señal de salida 

92

streamout abs;/Salida del valor absoluto(magnitud) streamin fsam;/reductor de valor de Frec. De muestreo streamin fdr;/control de amplitud de la señal entrante streamin ka;/número de canal  streamin t;/entrada de la onda por tabla streamout out0;/salida del argumento (ωτ+φ)  /variables locales float count,k,N,n0,w0,R,wR,fs,wd,wdw,wdi; float wdwi,xwi,mod,count1,xw,dmr,dmi,md,mdr,mdi,rst; float fas,arg,freq,fase;  float dmt,wdwt,freq,fas;   xn=xn*fdr; fs=44100; fs=fs+fsam; k =1+ka; N =16‐1; n0=k; R=N/16; w0=(((2*3.141592*k*n0)/N))/fs; wR=(((2*3.141592*k*n0)/R))/fs;  dmr=xn*(cos1(count)); dmi=xn*((‐1*sin1(count))); dmt=dmr+dmi;  count=count+w0;  count1=count+wR; count=count‐((count>=1.0)&1.0);  wd=(cos1(count1*((R‐1)/2))); wdi=‐1*(sin1(count1*((R‐1)/2))); wdw=(wd*(0.54+0.46*cos1(wR)))*0.1; wdwi=(wdi*(0.54+0.46*cos1(wR)))*0.1; wdwt=wdw+wdwi;  xw=dmr*wdw; xwi=dmi*wdwi;  mdr=xw*(cos1(count)); mdi=xw*(sin1(count)); md=mdr+mdi; out=(1/(N*wdw))*md;  abs=((xw*xw)+(xwi*xwi));  fase=xwi/xw; fas=1/(tan1(fase)); freq=1/(1+(fas*fas)); 

93

out0=(cos1(t*(freq+fase))); %la variable t  representa la onda por tabla utilizada% 

Modulo “Code” para el modelado no lineal “frecuencia modulada” (FM) y modelado espectral de la señal streamin abs;/entrada del valor absoluto streamin arg;/entrada de frecuencia y fase streamout out;/salida del modelado espectral streamin I;/indice de modulación d/m streamin mod;/entrada de la moduladora FM streamout out1;/salida FM; float b; b=abs*cos1(arg); out=b; out1=(abs*sin1(arg+(I*sin1(mod)))); 

El módulo FM puede consta de este código de control y de un sistema que permite ser fundido con la señal modelada espectralmente como se muestra en la figura 29.

Fig 29. Etapa de modelado espectral y no lineal (FM)

La optimización del dispositivo también incluye un modificador espectral constituido por una onda por tabla (wavetable) que es multiplicada por el argumento (ωt + φ) extraído de los canales de análisis para dar forma al espectro de la señal de entrada. La tabla está constituida por n puntos ubicados en un

Entrada de Frec. De Mod.

Índice de mod.

Magnitud

Fase

Código de modelado

Fundido entre FM y modelado espectral

Tasa de FM

94

periodo de muestreo, como se observa en la figura 30, estos puntos pueden ser dibujados por el usuario del sistema a través de una GUI (interfase gráfica de usuario) o mediante la creación de una lista en un “block” de notas digital (extensión *.txt) con n puntos cuya amplitud oscila entre -1 y -1 en un punto específico del periodo de muestreo. En esta implementación se utilizó una tabla con 256 puntos por periodo de muestreo. Para la obtención de los puntos que constituyen la lista de formas de onda en archivo de texto se utilizó la plataforma MATLAB y mediante un sencillo programa se obtuvieron los datos para la creación varias formas de onda entre ellas las funciones “chirp(T)”, “sawtooth(T)“ donde T determina un periodo de muestreo estipulado. La onda por tabla puede servir también para transformar una ventana w(n) a una función en el dominio de frecuencia W(ω) dado que a través de MATLAB podemos obtener una lista de n puntos entre 1 y -1 para ventanas ya estipuladas en el programa como ventanas triangulares, rectangulares, Hamming, triangulares o de Kaiser entre otras y su diseño algorítmico puede ser visto por un usuario a través del menú “path browser” del programa MATLAB. Forma de onda función “chirp” %Matlab forma de onda chirp% t=0:1:256-1;%puntos de la “wavetable”% f=100;%freq% x=1*chirp((2*pi*f*t)/44100)% forma de onda deseada(100Hz)% Forma de onda coseno. %Matlab forma de onda coseno% t=0:1:256-1;%puntos de la “wavetable”% f=500;%freq% x=1*cos((2*pi*f*t)/44100)%(500Hz)% Ventana triangular. w=triang(256)

95

Fig 30. Forma de onda implementada en una onda por tabla (función chirp).

Por otro lado el modelo espectral implementado transforma la señal de entrada en una señal de carácter periódico, luego surge la necesidad de incluir señales estocásticas para la obtención de una señal más real. Esta “inyección” de ruido puede darse a través de la substracción entre la resultante del modelando espectral y la señal de entrada que adhiere algunos componentes estocásticos controlados por una “ventana” que permite el acceso de señal determinista. Este proceso puede ser detallado en la figura 31.

96

Fig 31. Estructura de un canal de análisis.

97

4.2 Reverberación Digital.

Fig 32. Implementación de una Reverberación Digital para la plataforma SynthMaker©.

Existe un significativo conjunto de fenómenos que pueden ser implementados a través de líneas de retardo, como los fenómenos físicos producidos por el contacto de las ondas sonoras con superficies y objetos donde esta interacción produce reflexiones, difracciones y refracciones. Una señal discreta puede sobrellevar un retardo mediante la Transformada Z, donde la cantidad M implica la tasa de muestras de retardo en una frecuencia de muestreo suministrada, fragmentando una señal en muestras/segundo, en ejemplo un retardo por 44100 muestras a esa misma frecuencia de muestreo generará una prorroga de un segundo para la salida de la señal de dicho sistema. Este puede ser diagramado de acuerdo a la figura 33.

Control

I/O

Algoritmo de Simulación

98

Fig 33. Línea de retardo.

Un arreglo de valores para la generación de un algoritmo que sintetice un sistema de retardo adaptable a código C y adaptado al software SynthMaker© (www.synthmaker.com) está dado por  Input in; Output out ; Input freq; Entradas del sistema (#include)  float index; f, temp1, x1, float mem[44100] (PERIODO DE LA FORMA DE ONDA); Definición de campo numérico (void, stream, int, float).  temp1 = freq ‐ 0.4999; f = rndint(temp1); index=index+1; indmex=index‐(index>=44100)&44100;  mem[index]=in(entrada);  temp1 = index ‐ f; temp1 = temp1 + (temp1 < 0)&44100; temp1 = mem[temp1];  out(salida Línea de retardo) = temp1; Fin Un sistema Z –m puede ser alimentado tanto a la salida como a la entrada y dicha configuración es modelada como un filtro de peine (Fig. 34) o un filtro peine-pasa todo y para efectos de simulación pueden estar configurados tanto en serie como en paralelo. Un filtro de peine (Comb Filter) puede implementarse mediante el algoritmo para SynthMaker© www.synthmaker.com, Input in; Output out; Input freq; Entradas del sistema(#include) float index; f, temp1, x1, float mem[44100], g(coeficiente de retroalimentación); Definición de campo numérico (void, stream, int, float). temp1 = freq ‐ 0.4999; f = rndint(temp1); 

99

index=index+1; index=index‐(index>=44100)&44100;  mem [index]=in(entrada)+(g*out), Operación de retroalimentación;  temp1 = index ‐ f; temp1 = temp1 + (temp1 < 0)&44100; temp1 = mem[temp1];  out(salida Línea de retardo) = temp1; Fin 

Fig 34. Filtro de Peine

El filtro conocido como filtro de peine pasa todo, es diseñado de forma similar al filtro de peine pero su salida es alimentada por la suma entre la señal de salida del sistema diezmado por g y la retroalimentación dada a la entrada como en el diseño de filtro de peine como se observa en la figura 35. Un filtro pasa todo está modelado como se mostró en la sección de simulación de recintos y puede ser codificado mediante la sintaxis de la plataforma SynthMaker© empleando el módulo “Code” como, inap=in; oumtfeed =(inap+ (outap*g1)) (entrada alimentada por la salida); freqap= 264(número de muestras a retardar); g1ap=0.4; temp1ap=freqap‐0.4999; fap =rndint(temp1ap); indexap=indexap+1; indexap=indexap‐(indexap>=44100)&44100; memap[indexap]=outfeed(entrada del sistema); temp1ap=indexap‐fap; temp1ap=temp1ap+(temp1ap<0)&44100; temp1ap=memap[temp1ap];  

100

outap(salida sin alimentación) =temp1ap; outapf=temp1ap+(outfeed*(‐1*g1ap));(salida alimentada por la entrada) Fin   

 Fig 35. Filtro de peine pasa todo 

  Un algoritmo de simulación de un recinto puede ser concebido mediante un modelo que forje la convolución de una señal de audio con la respuesta al impulso de un recinto. Esta respuesta consta de la señal directa, reflexiones tempranas de las superficies y una reverberación subsecuente como fue expuesto en el marco teórico. Etapa de simulación de reflexiones tempranas.

La primera etapa de diseño consta de un simulador de reflexiones tempranas junto con la señal directa, creando una impresión espacial mediante “reflexiones laterales”. Con este propósito la señal de sonido es ponderada y alimentada por un sistema seguida de una suma con la señal entrante (directa). De forma concreta, la percepción de la distancia de un sonido es evaluada con la asistencia de la amplitud y los radios de retardo de la señal directa y las reflexiones tempranas. Una simulación de reflexiones tempranas puede incluir más de una fuente sonora por razón del desplazamiento de esta por un delta (δ). Mediante el software MATLAB, puede ser expresado un algoritmo previo para la obtención de los coeficientes tanto de retardo (M) como de alimentación (gi) de las líneas de retardo para la simulación de reflexiones tempranas.

101

Algoritmo para la simulación de reflexiones tempranas más la señal directa para MATLAB. %Hipótesis de Craven% fs=44100;(Frecuencia de muestreo) d=5; (distancia de la fuente) d1=7; (distancia de la reflexión) c=340; (velocidad de propagación del sonido) t60=2.5; (tiempo de reverberación definido mediante r como el tiempo en caer mediante ln(1000)/t60) r=(log(1000))/t60; td=(d1‐d)/c; (tiempo de retardo en segundos para las reflexiones tempranas dado para un sistema de retardo) tdsamp=td*fs; (tiempo de retardo en muestras) g=(d/d1)*exp(‐r*td); (coeficiente de alimentación g) d=(c*td)/(((1/g)*exp(‐r*td))‐1); ( %desplazamiento de la fuente por delta(fuente imagen)% imagenm=0.3; delta = d1+(d+(imagenm)); d2=d+delta; td2=delta/c; td2samp=td2*44100; gd=(d/(d+delta))*exp((‐r*delta)/c); d3=d‐delta; te=td2; tesamp=td2samp; %matriz implementación estereo% grad=30; gradtorad=(2*3.141592*grad)/360; gi=(exp(‐r*td))/(1+((c*td)/d)); GIL=gi*cos(gradtorad); GIR=gi*smin(gradtorad); GI=[cos(gradtorad),(‐sin(gradtorad));(sin(gradtorad)),(cos(gradtorad))]; 

Donde se obtuvo, 1. Para una reflexión de  7m de distancia.  

• g =    0.7028  

• tdsamp = 259.4118   2. Para una reflexión de  9m de distancia.  

• g = 0.5378  

102

• tdsamp = 518.8235   3. Para una reflexión de  12m.   

• g = 0.3936  

• tdsamp = 907.9412   4. Para una reflexión de  15m de distancia    

• g = 0.3073  

• tdsampm =  1.2971e+003   5. Retardo y coeficiente para una fuente imagen delta (δ)   Fuente imagen Para 7 m. y delta=1m. 

• td2samp = 1.5954e+003

• gd = 0.2615 6. Retardo y coeficiente para una fuente imagen delta (‐δ) 

• td2samp = 1.5954e+003

• gd = 0.2615 La arquitectura de reflexiones tempranas puede realizarse con estos datos obteniendo un diagrama en bloques para una futura implementación computacional donde “td2samp” expresa el tiempo de retardo en muestras de cada sistema y gd es el coeficiente de cada filtro que facilita la amplitud de cada reflexión como se visualiza en la figura 36.

103

Fig 36. Circuito de reflexiones tempranas (D, D1, D2 dependen del control humano).

Etapa de simulación de reverberación subsecuente.

Las múltiples reflexiones irradiadas en una sala producen una densidad de frecuencia que concede el tiempo de reverberación y es modelada mediante una etapa de filtros de peine en paralelo donde el tiempo de retardo para cada filtro es sugerido entre 50 y 80 ms para un número también sugerido de seis filtros en paralelo, en esta implementación se usaron cuatro filtros en paralelo con un coeficiente y un tiempo de retardo en muestras que puede ser modificado mediante el control humano. La figura 37 muestra esta etapa junto con sus coeficientes y tiempos de retardo.

Fig 37. Filtros de peine en paralelo (densidad de frecuencia)

104

La densidad de frecuencia está definida para este prototipo por,

D f = P*(M * Ts) ~ 4*(2205/44100) = 0.20,

Donde P es el número de filtros, M es la cantidad de muestras y el periodo de muestreo.

La densidad de eco es el número de reflexiones por segundo, implementada mediante una serie de filtros de peine pasa todo en serie, en este desarrollo se disponen tres filtros de peine pasa todo en serie. Los coeficientes de este filtro son propuestos como 0.7, pero en la práctica generan una retroalimentación bastante densa por lo que es necesario reducir este coeficiente a 0.4. El tiempo en muestras para la implementación es de 264 muestras /s como se muestra en el diagrama en bloques de la figura 38. Este circuito en serie da una impresión de “plate” ya que simula un recinto con menos absorción luego la densidad en el eco generado entre los paramentos incrementa.

Fig 38. Implementación de un filtro de peine pasa todo.

La densidad de eco en la modelación es cuantizada mediante,

Dt = 1 / (M * Ts) ~ 1 / (264 * (1/44100)) = 167.

Luego el diseño de un prototipo que simule la convolución entre una señal de audio y la respuesta impulsiva de un recinto puede construirse mediante líneas de retardo junto con coeficientes que modelan el fenómeno físico por el cual una

105

onda sonora confinada en un recinto interactúa con el espacio físico-geométrico en la que esta onda se propaga. Es muy importante aclarar que aunque este prototipo sea un “prototipo acústico” su intención no es crear un dispositivo de asistencia acústica para recintos sino un algoritmo de implementación en sistemas de audio digital tal como consolas, reproductores de audio, sistemas Home Theater, VST`s y cualquier procesador de audio que permita este tipo de implementaciones.

Fig 39. Sistema de Reverberación elaborado (acople de etapas de proceso).

Podemos acoplar las tres etapas de proceso mencionadas para la simulación de salas (Reflexiones Tempranas y Reverberación Subsecuente) y obtener un conjunto de subsistemas para la obtención de una reverberación artificial. La figura 39 muestra el diagrama en bloques obtenido específicamente para este proceso investigativo. El algoritmo de síntesis de un sistema para la simulación de la respuesta al impulso de un recinto acústico implementado para la plataforma Synthmaker © (www.synthmaker.com) es propuesto como, /Algoritmo para la simulación de un recinto(Juan Manuel Medina Sanchez (c)) streamin in; streamin inr; streamin k; streamin l; streamin td; streamin gx; streamin h; streamout outapf2; //reflex temp float samp,index,f,temp1,x1,mem[44100],out,out2,out2r; float samp1,index1,f1,temp11,x11,mem1[44100],out1; float samp11,index11,f11,temp111,x111,mem11[44100],out11;

106

float samp111,index111,f111,temp1111,x1111,mem111[44100],out111; float samp1111,index1111,f1111,temp11111,x11111,mem1111[44100],out1111; float samp11111,index11111,f11111,temp111111,x111111,mem11111[44100],out11111; float outx,outxx; //F peine float incomb,td,gx,outcomb; float indexx,fx,temp1x,x1x,memx[44100],gm; float samps,g,outx; float indexx2,fx2,temp1x2,x1x2,memx2[44100],gm2; float samps2,g2,outx2; float indexx3,fx3,temp1x3,x1x3,memx3[44100],gm3; float samps3,g3,outx3; float indexx4,fx4,temp1x4,x1x4,memx4[44100],gm4; float samps4,g4,outx4; //All pass Filt.(F.pasa todo) float inap,outapf2,freqap,indexap,fap,temp1ap,x1ap,memap[44100],g1ap,outfeed,outap,outapf; float freqap1,indexap1,fap1,temp1ap1,x1ap1,memap1[44100],g1ap1,outfeed1,outap1,outapf1; float freqap2,indexap2,fap2,temp1ap2,x1ap2,memap2[44100],g1ap2,outfeed2,outap2,outapf2; samp1111=100; temp11111 = samp1111 - 0.4999; f1111 = rndint(temp11111); index1111=index1111+1; index1111=index1111-(index1111>=44100)&44100; mem1111[index1111]=in; temp11111 = index1111 - f1111; temp11111 = temp11111 + (temp11111 < 0)&44100; temp11111 = mem1111[temp11111]; out1111 = temp11111; samp11111=100+l; temp111111 = samp11111 - 0.4999; f11111 = rndint(temp111111); index11111=index11111+1; index11111=index11111-(index11111>=44100)&44100; mem11111[index11111]=inr; temp111111 = index11111 - f11111; temp111111 = temp111111 + (temp111111 < 0)&44100; temp111111 = mem11111[temp111111]; out11111 = temp111111; samp=259+k; temp1 = samp - 0.4999; f = rndint(temp1); index=index+1; index=index-(index>=44100)&44100; mem[index]=out1111; temp1 = index - f; temp1 = temp1 + (temp1 < 0)&44100; temp1 = mem[temp1]; out = temp1*0.7028; samp1=518+k; temp11 = samp1 - 0.4999; f1 = rndint(temp11); index1=index1+1; index1=index1-(index1>=44100)&44100; mem1[index1]=out11111; temp11 = index1 - f1;

107

temp11 = temp11 + (temp11 < 0)&44100; temp11 = mem1[temp11]; out1 = temp11*0.53; samp11=907+k; temp111 = samp11 - 0.4999; f11 = rndint(temp111); index11=index11+1; index11=index11-(index11>=44100)&44100; mem11[index11]=out; temp111 = index11 - f11; temp111 = temp111 + (temp111 < 0)&44100; temp111 = mem11[temp111]; out11 = temp111*0.36; samp111=1290+k; temp1111 = samp111 - 0.4999; f111 = rndint(temp1111); index111=index111+1; index111=index111-(index111>=44100)&44100; mem111[index111]=out1; temp1111 = index111 - f111; temp1111 = temp1111 + (temp1111 < 0)&44100; temp1111 = mem111[temp1111]; out111 = temp1111*0.30; outx=(out+in); outxx=out1+out111+out11+in; out2=outx; out2r=outxx*0.7; incomb=out2r+out2; samps=2205+td; g=0.5+gx; temp1x = samps - 0.4999; fx = rndint(temp1x); indexx=indexx+1; indexx=indexx-(indexx>=44100)&44100; memx[indexx]=(incomb+(outx*g)); temp1x = indexx - fx; temp1x = temp1x + (temp1x < 0)&44100; temp1x = memx[temp1x]; outx = temp1x; g2=0.5+gx; samps2=2646+td; temp1x2 = samps2 - 0.4999; fx2 = rndint(temp1x2); indexx2=indexx2+1; indexx2=indexx2-(indexx2>=44100)&44100; memx2[indexx2]=(incomb+(outx2*g2)); temp1x2 = indexx2 - fx2; temp1x2 = temp1x2 + (temp1x2 < 0)&44100; temp1x2 = memx2[temp1x2]; outx2 = temp1x2; g3=0.5+gx; samps3=2866+td; temp1x3 = samps3 - 0.4999; fx3 = rndint(temp1x3);

108

indexx3=indexx3+1; indexx3=indexx3-(indexx3>=44100)&44100; memx3[indexx3]=(incomb+(outx3*g3)); temp1x3 = indexx3 - fx3; temp1x3 = temp1x3 + (temp1x3 < 0)&44100; temp1x3 = memx3[temp1x3]; outx3 = temp1x3; g4=0.5+gx; samps4=3528+td; temp1x4 = samps4 - 0.4999; fx4 = rndint(temp1x4); indexx4=indexx4+1; indexx4=indexx4-(indexx4>=44100)&44100; memx4[indexx4]=(incomb+(outx4*g4)); temp1x4 = indexx4 - fx4; temp1x4 = temp1x4 + (temp1x4 < 0)&44100; temp1x4 = memx4[temp1x4]; outx4 = temp1x4; outcomb=outx+outx2+outx3+outx4; inap=outcomb; outfeed=(inap+(outap*g1ap)); freqap=264+h; g1ap=0.4; temp1ap=freqap-0.4999; fap =rndint(temp1ap); indexap=indexap+1; indexap=indexap-(indexap>=44100)&44100; memap[indexap]=outfeed; temp1ap=indexap-fap; temp1ap=temp1ap+(temp1ap<0)&44100; temp1ap=memap[temp1ap]; outap=temp1ap; outapf=temp1ap+(outfeed*(-1*g1ap)); outfeed1=(outapf+(outap1*g1ap1)); freqap1=264+h; g1ap1=g1ap; temp1ap1=freqap1-0.4999; fap1 =rndint(temp1ap1); indexap1=indexap1+1; indexap1=indexap1-(indexap1>=44100)&44100; memap1[indexap1]=outfeed1; temp1ap1=indexap1-fap1; temp1ap1=temp1ap1+(temp1ap1<0)&44100; temp1ap1=memap1[temp1ap1]; outap1=temp1ap1; outapf1=temp1ap1+(outfeed1*(-1*g1ap1)); outfeed2=(outapf1+(outap2*g1ap2)); freqap2=264+h;

109

g1ap2=g1ap; temp1ap2=freqap2-0.4999; fap2 =rndint(temp1ap2); indexap2=indexap2+1; indexap2=indexap2-(indexap2>=44100)&44100; memap2[indexap2]=outfeed2; temp1ap2=indexap2-fap2; temp1ap2=temp1ap2+(temp1ap2<0)&44100; temp1ap2=memap2[temp1ap2]; outap2=temp1ap2; outapf2=temp1ap2+(outfeed2*(-1*g1ap2));

110

5. PRESENTACIÓN Y ANÁLISIS DE RESULTADOS. 5.1 Plug-in VST “Vocoder de fase” Mediante el proceso seguido se consiguió la elaboración de un sistema de procesamiento virtual VST cuyo propósito es lograr una resíntesis de la señal sonora entrante mediante dos procesos distintos con cuatro canales de análisis. El primero es la reconstrucción de la señal aplicando un análisis implícito a través de la Transformada Inversa de Fourier (IDFT) y la segunda es la adaptación de un modelo espectral que busca construir la función de onda mediante la unión de parámetros extraídos para posibilitar el modelado de la frecuencia y la forma de onda de la señal de sonido entrante. La interfase gráfica de usuario GUI del phase vocoder, diseñada por el autor del proyecto puede ser visualizada en la figura 40 y fue obtenida mediante el uso del editor de mapas de bits Paint de Microsoft Windows XP© concibiendo una mezcla de colores llamativa con contornos curveados. También se diseñaron otros controles animados para la modificación de los parámetros del vocoder de fase.

Fig 40. Procesador virtual VST (vocoder de fase) ejecutable.

111

Fig 41. Uso de CPU para dos arquitecturas de un Vocoder de fase

La disposición de la cantidad de memoria RAM y de disco duro (CPU) es esencial para el apto funcionamiento del dispositivo como sistema de procesamiento, en este dispositivo consume hasta un ~50% de la capacidad del Hardware. Dicha disposición es controlada mediante el uso de una cantidad de módulos determinada. En este prototipo en particular fueron usados cuatro canales de análisis debido al alto consumo de memoria en cada canal de análisis además de su doble función phase vocoder y modelado espectral. Mediante el Administrador de Tareas de Microsoft Windows© se monitoreó la capacidad de la máquina cuando el sistema es ejecutado a través de un secuenciador apropiado, la figura 41 muestral el consumo de un canal de análisis comparado con un diseño que implementa cuatro canales de análisis.

• Formato de programas del sistema VST que reconocerá un sistema host apto para hospedar el plug-in (Tabla de formato “Preset“) para el vocoder de fase:

Preset Table Format Number of programs = 1 Number of parameters = 13

112

Parameter Type 2 Follower-Ataque Float 0.000000 Follower-Ext Float 0.000000 Follower-Suavizador Frec ON/OFF Float 1.000000 Fs Float 0.637500 n Float 1.000000 Canal 1 Float 1.000000 fft / Mod. espectral Float 1.000000 FM INDEX Float 0.000000 FREQ FM Float 0.000000 FM AMOUNT Float 0.000000 Canal 2 Float 0.000000 Canal 3 Float 0.000000 Canal 4 Float 0.000000 Generación y pruebas de espectro con el VST “vocoder de fase”. Análisis mediante visualizador del espectro (Amplitud/tiempo).

• Resíntesis mediante la Transformada Inversa de Fourier implementada mediante un prototipo “vocoder de fase” con cuatro canales de análisis y k=n=1 (análisis implícito) de un oscilador seno (tono puro) con una frecuencia de prueba de 1000 Hz.

Fig 42. FFT de un Oscilador seno y su Resíntesis (derecha) mediante la IDFT.

La figura 42 es obtenida mediante un analizador gráfico que muestra la señal en función de la de la amplitud y frecuencia. Se puede observar la gran correlación que existe entre la señal original y su resíntesis mediante el vocoder de fase. Esta correlación puede interpretarse como el alcance significativo que tiene el análisis

113

implícito ya que la información es resintetizada implícitamente a través de la Transformada Inversa de Fourier para tiempo discreto (IDFT).

• Aplicación de modelado espectral para un tono puro a 1000 Hz:

Fig 43. Modelado espectral de un tono puro a 1000 Hz.

Mediante este proceso la señal está reconstruida por la detección de la amplitud, la fase y la frecuencia de la señal. Este proceso generó un espectro complejo a partir de un tono puro dado a la falsa detección de algunos componentes o mejor al cálculo de una réplica de componentes armónicos en el espectro, mas sin embargo se puede observar que el pico de mayor amplitud representa la frecuencia deseada, para corregir esta falsa lectura un futura implementación puede contener una compuerta por comparación que solo permita el paso del componente de mayor amplitud que aporte un componente acertado como se muestra en la figura 43.

• Modelado de forma de onda mediante un onda por tabla (shape) con una función “chirp”

Fig 44. Formado con una onda por tabla mediante la función “chirp”.

La función “chirp” esta dada mediante una onda por tabla de un tamaño de 256 coordenadas entre 0 y -1. La implementación permite que el usuario mediante una

114

lista de extensión *.txt crear, importar o exportar nuevas funciones para la modificación de la forma de onda de entrada como se puede apreciar en la figura 44.

• Aplicación de modelado no lineal de frecuencia modulada.

Fig 45. Modelado no lineal (FM)

Gracias a la extracción de algunos parámetros de la señal de audio, la frecuencia de la señal puede ser modulada donde es posible controlar el índice de modulación, la frecuencia de modulación y el fundido de esta con la señal modelada espectralmente, al aplicar esta modificación se obtiene algo similar a lo graficado en la figura 45.

• Suavizado de la frecuencia modulada. La modulación de frecuencia y la modificación de la forma de onda pueden fácilmente generar un comportamiento caótico de la señal saliente, luego es necesario optimizar las componentes mediante un suavizado llevado a cabo por detectores de picos. En la figura 46 se puede apreciar el suavizado respecto a la figura 45.

Fig 46. Suavizado en el procesamiento para la variación en la forma de onda y la modulación en frecuencia.

115

Análisis gráfico mediante un osciloscopio (Amplitud/tiempo)

• Forma de onda de una forma de onda resintetizada mediante la IDFT.

Fig 47. Señal pura a 100 Hz resintetizada mediante la IDFT.

Se infiere que la resíntesis no produce una rotación de la fase pero si un modificación de amplitud en la señal de entrada, hecho apreciable en la figura 47 donde la señal de entrada se encuentra a la derecha y la sintetizada a la izquierda.

• Espectroscopia de un modelado espectral a un tono puro de 100 Hz cuya salida puede ser observada mediante la figura 48,

Fig 48. Forma de onda de un modelado espectral.

116

• Formado de la onda mediante una onda por tabla a través de la función “chirp” aplicado a un modelado espectral de un tono puro a 100 Hz. En la figura 49 se puede ver la modificación de la forma de onda de la señal de entrada ya que la tabla de onda multiplica al espectro extraído en la etapa de análisis del prototipo dado.

Fig 49. Modificación en la forma de onda por un “shape”

• Inyección de FM al modelado espectral para un futuro suavizado.

Fig 50. Modulación de la frecuencia separada.

En la figura 50 se puede notar la excitación armónica (derecha) que genera la modulación en frecuencia, sin embargo este parámetro es de cuidado ya que su exceso puede generar una distorsión en la señal. El suavizado generado por un detector de picos que controla la frecuencia es útil cuando se modifican los parámetros de FM y Onda por tabla dados en el proyecto ya que se produce un efecto más perceptible, esta característica se puede diferenciar entre las figuras 50 y 51 donde la forma de onda de la derecha es la onda de prueba dada y la izquierda la modificada.

117

Fig 51. Modelado no lineal de frecuencia modulada y suavizado mediante un detector de picos

• Sonograma del tono musical C3 generado por un oscilador senoide y una resíntesis del mismo.

Puede visualizarse que el espectro de la señal puede reconstruirse a nivel de frecuencia pero con una pérdida en amplitud a medida que crece la frecuencia esto se puede notar en la figura 52.

Fig 52. Sonograma de un tono musical resintetizado mediante la IDFT

• Sonograma de un tono musical reconstruido mediante cuatro canales de análisis y cuyo valor de n está automatizado en sentido ascendente.

La variación del parámetro n genera una elevación en las componentes armónicas que pueden varar la cualidad tímbrica de una fuente sonora como se indica en la figura 53.

118

Fig 53. Sonograma de un tono musical modelado espectralmente y modificando n

• Sonograma de un tono puro reconstruido mediante un modelado espectral y cuya forma de inda está modificada por una función “chirp”.

Una de las capacidades del vocoder de fase es poder extraer los parámetros para operar el espectro, en la figura 54 se puede apreciar la operación entre la señal de entrada y una función chirp.

Fig 54. Modelado espectral de un tono complejo con una función chirp como formante

• Sonograma de un procesamiento de una señal con inyección de frecuencia modulada para un posterior suavizado.

En el sonograma 55 se puede ver como un tono puro puede generar un espectro complejo mediante la implementación de una modulación en frecuencia, empleando un generador seno como oscilador modulador (Fig. 55), los armónicos más destacados pueden ser mas perceptibles si aplicamos un suavizado a la frecuencia como se puede visualizar en la figura 56.

119

Fig 55. Inyección de modulación en frecuencia.

Fig 56. Suavizado (izquierda en el sonograma)

5.2 Plug-in VST Reverberación Digital. Mediante la aplicación de líneas de retardo, filtros de peine y filtros de peine pasa todo se implementó un dispositivo virtual VST que permita la síntesis de un sistema que simule una sala reverberante para ser aplicado como una optimización en una señal de audio musical. En específico el algoritmo fue diseñado para ser operado junto con el vocoder de fase desarrollado. Como fue notado con anteriormente un programa que hospede al plug-in VST debe reconocer los parámetros del sistema creado como mecanismo de información/automatización. También el plug puede estar acompañado del nombre del distribuidor y un código de cuatro dígitos como serial del plug para su exclusividad de derechos de autor.

120

Tabla de reconocimiento de programas y parámetros. Preset Table Format Number of programs = 1 Number of parameters = 6 Parameter Type Program 1 Preset Float 0.000000 Predelay Float 0.000000 Difusión Float 1.000000 RT Float 1.000000 "Plate" Float 0.000000 MasterFX Float 1.000000

Fig 57. VST para la implementación de una reverberación digital.

La interfase gráfica de usuario (GUI) permite a un operador manipular los parámetros que se concibieron para su modificación. Este prototipo tiene una opción de mezcla con la señal (MIX), unos parámetros propios de la reverberación digital y un pequeño vúmetro para visualizar el gradiente de la señal reverberada. Este procesador esta producido como un VST-FX y está disponible para su uso (Fig. 57). El procesador dispone hasta de un ~25% de la capacidad de la máquina y el uso de esta fluctúa en el tiempo como muestra la figura 58.

121

Fig 58. Rendimiento de la CPU en función del procesador VST

Fig 59. Sonograma de una señal impulsiva sometida al sistema de reverberación implementado.

Mediante el sonograma de la figura 59 se puede observar el decaimiento logarítmico de la señal sometida al sistema VST. El tiempo de reverberación depende del coeficiente g de los filtros de peine estipulados con anterioridad. Para ello el usuario del sistema puede tener un control de este parámetro mediante la opción controlada por un “knob” (sintonizador por rotación) estipulado como RT en el plug. La aplicación del parámetro “plate” por el usuario está modificando el coeficiente del arreglo de los filtros de peine pasa todo otorgando mayor densidad de eco e Incrementando la respuesta en alta frecuencia. Se puede detectar como la alta frecuencia en el proceso de reverberación decae rápidamente en el sonograma de la figura 60.

122

Fig 60. Incremento del parámetro “plate”

La difusión está dada por el tiempo de retardo en los filtros de peine, generando una variación en la densidad de frecuencia manipulada por un usuario a través del sintonizador rotatorio denominado “difusor”. Al someter una señal de impulso a un máximo de difusión con un valor en los coeficientes del filtro de peine de 0 y una difusión mayor a los 80 ms, obtenemos la simulación de un espacio pequeño con gran densidad de reflexiones pero con una rápida caída en el tiempo (fig 61).

Fig 61. Impulso sometido a una gran difusión pero a una rápida extinción en t.

123

5.3 Auto-ejecutable (stand-alone) Híbrido. Los dos plug-ins pueden ser acoplados para crear un sistema conjunto, sin embargo el consumo de capacidad en la CPU se torna prácticamente inmanejable a la hora de abrir el VST dentro de un sistema que lo hospede. Para ello es más útil implementar dicha hibridación como un sistema independiente ejecutable bajo la extensión *.exe. Por una parte esto permite al sistema actuar de forma independiente sin necesidad de un host. Por otro lado el usuario debe tener un controlador ASIO lo que podría causar una leve incompatibilidad entre usuarios que no tengan este controlador pero no es ordinario ya que la mayoría de usuarios deben tener también estos controladores que son inherentes a un host VST, este sistema está disponible como auto-ejecutable y puede ser controlado por un usuario como se indica en la figura 62.

Fig 62. Auto-ejecutable híbrido.

El programa MAX/MSP© permite la creación de una plataforma también auto-ejecutable pero actúa como un sistema que alberga el plug-in (host). Este sistema permite la inclusión de un procesador VST reconociendo y permitiendo los parámetros y programas del plug-in para la manipulación por parte de un usuario mediante el algoritmo vst~ (Fig. 63).

124

Existen otras plataformas para albergar plug-ins VST de distintos distribuidores algunas libres como “vsthost” en www.hermannseib.com/english/vsthost.htm o “minihost” en www.tobybear.de/

Fig 63. Algoritmo vst~ para MAX/MSP©

125

CONCLUSIONES Los plug-ins VST desarrollados en proyecto pueden ser manipulados en diversas superficies de control y estaciones de trabajo pero solo para el sistema operativo Windows. Estas estaciones de audio demostraron una alta compatibilidad de de comunicación con los plug-ins tanto el vocoder de fase como el Reverberador Digital con fines de la automatización de controles y reproducción del audio entrante a los sistemas de procesamiento. La señal de sonido de entrada al sistema vocoder de fase desarrollado permite analizar/resintetizar señales de audio en tiempo real y su uso específico se puede reconocer como “morphing” o modelado de la señal de entrada al dispositivo con fines musicales. En la investigación se ratificó la posibilidad de analizar y reconstruir señales de audio por medio de un modelo espectral, no lineal (FM) y la resíntesis por medio de la Transformada Inversa de Fourier para tiempo discreto. Mediante la configuración de líneas de retardo como filtros de peine y filtros de peine pasa todo, en cascada o en serie proporcionan la capacidad de utilización de un sistema para la simulación de reflexiones tempranas y reverberación subsecuente acoplado para la simulación de un campo acústico-geométrico (recinto) pero carece de mayor difusión para crear una mejor percepción de un ambiente reverberante. Los coeficientes de los filtros de peine concebidos en el Reverberador digital influyen directamente en el tiempo de decaimiento exponencial de la señal (reverberación subsecuente) mientras que los tiempos de retardo afectan la difusión en el campo simulado mediante la densidad de eco y de frecuencia. En el prototipo desarrollado como el vocoder de fase la reconstrucción mediante el modelado espectral aplicado tiene una baja correlación con respecto a la señal original que la obtenida mediante la reconstrucción directa mediante IDFT cuyos resultados son óptimos dado que la síntesis por modelado espectral es estimativa.

126

La efectividad de reverberación digital reposa en la forma de estimular la capacidad de discriminación perceptual de espacios geométricos-acústicos simulados. Del consumo de memoria física y virtual de la CPU depende de la accesibilidad al sistema virtual de procesamiento. Esto se dispone mediante el monitoreo del rendimiento en el procesamiento del sistema operativo y la optimización del algoritmo DSP propuesto. En los prototipos implementados fue probado su complejidad/rendimiento con resultados óptimos que califican a los plug-ins a operar con un bajo requerimiento de memoria física y virtual de la CPU. El formato de compilación VST permite crear una interfase de usuario intuitiva, llamativa y fácil de usar por múltiples usuarios ya que estos sistemas virtuales pueden ser distribuidos mediante medios y formatos digitales masivos como la Internet o discos compactos. Además el formato VST permite adicionar información extra para otorgarle al usuario una lista de programas y predispuestos para una posible automatización gráfica, directa (host) o vía MIDI desde una plataforma que hospede al plug-in VST.

127

RECOMENDACIONES Se recomienda utilizar los prototipos bajo Windows 98, ME y XP (su compatibilidad con Linux no ha sido reportada) con un requerimiento en memoria RAM de 256 Megabytes más y un procesador Intel Pentium 3 o mejor, monitor a color de 256 colores, 800x600, tarjeta de sonido de 16 bit compatible con Windows preferiblemente con controladores ASIO y una interfase midi para tareas de control. Es recomendable utilizar los prototipos diseñados para instrumentos musicales de carácter cuasi-periódicos como la voz, una guitarra o tambores afinados. Este sistema busca modelar la señal para fines de síntesis y simulación de espacios acústicos para efectos musicales más no la detección de parámetros con fines de control o de visualización del espectro de la señal de entrada. Se sugiere que en un futuro trabajo los algoritmos propuestos sean implementados como sistemas en hardware DSP para efectos de velocidad y de aplicación de más canales de análisis por medio de librerías de dichos dispositivos. También la implementación mediante el sistema Simulink y workspace de MATLAB donde las herramientas matemáticas son bastante extensas, estables y fáciles de usar para el procesado de señal. En otra investigación similar se recomienda La utilización de la técnica análisis por wavelet, ya que sus resultados para procesos de estimación son elevadamente coincidentes e incluso puede verse como una técnica paralela a la SMS y al vocoder de fase pero con mayor efectividad. Este proceso es usado en otros campos donde también es necesario el análisis de señal como en aplicaciones de telecomunicaciones, radares y estimaciones sísmicas. Se sugiere para una próxima investigación compilar el VST directamente en VST- SDK con la ayuda de programadores gráficos para la creación de la GUI. El plug-in y este proyecto escrito puede ser distribuido de forma libre entre los que lo hallan obtenido por alguna razón pero la codificación final de los algoritmos y arquitecturas finales concebidas en este están reservadas por el autor ©. Igualmente todos los programas mencionados poseen derechos de autor y han sido respetados debidamente en este proyecto de investigación.

128

BIBLIOGRAFÍA [1] John G. Proakis. Tratamiento digital de señales: Principios, algoritmos y aplicaciones, tercera edición. Madrid; Prentice Hall, 1988. [2] Sorias Olivas, Emilio. Tratamiento digital de señales: problemas y ejercicios resueltos, Primera edición. Madrid; Pearson Educación, 2003. [3] Britton, Jack R. Matemáticas universitarias. México; CECSA, 1984. [4] Albardar, Ashok. Procesamiento de señales analógicas y digitales, segunda edición. México; Thomson Editores, 2002. [5] Purcell Edwin J., Varberg Dale. Cálculo con Geometría Analítica, cuarta edición. México; Prentice Hall, 1987. [6] Davis, Gary y Jones, Ralph. The Sound Reinforcement Handbook, segunda edición. USA; America and Gary Davis & Associates, 1989. [7] Chowning, John M. The synthesis of complex Audio Spectra by Means of Frequency Modulation. Stanford Artificial Intelligence Laboratory, Stanford, California; AES. Vol. 21, 1973. [8] Canosa, José. Curso Experimental del lenguaje C. Barcelona; Marcombo, 1992. [9] Masri, Paul. Computer Modelling of Sound for Transformation and synthesis of musical signals. Universidad de Bristol, departamento de Ingeniería eléctrica y electrónica, 1997. [10] Zölzer, Udo. Digital Audio Signal Processing. Inglaterra; John Wiley & Sons, Ltd, 1997.

129

[11] Chen, Chi-Tsong. Signals and Systems, tercera edición. USA; Oxford University Press, 2004. [12] Rocchesso, Davide. Introduction to Sound Processing. Universidad de Verona, Departamento de Informática, GNU (Free Documentation Licence), 2003. [13] Kahrs, Mark y Brandenburg, Karlheinz. Applications of digital signal processing to audio and acoustics. New York; Kluwer Academic Publishers, 2002. [14] Correa, Guillermo. Desarrollo de Algoritmos y sus Aplicaciones en Basic, Pascal, Cobol y C. Bogotá D.C.; McGraw Hill, 1992. [15] Schroeder, Manfred R. Progress in Architectural Acoustics and Artificial Reverberation: Concert Halls Acoustics and Number Theory. USA; J. Audio Soc., Vol. 32, No 4, abril de 1984. [16] Recuero, Manuel. Acústica arquitectónica: soluciones prácticas. Madrid: Paraninfo, 1992.