scieee AI-readable full text Open interactive document viewer

Repositorio Institucional de Documentos

Abstract

El presente proyecto fin de carrera ha consistido en la programación de un total de 19 efectos musicales utilizando, para ello, un método de análisis y síntesis de señales de audio desarrollado en la Universidad de Zaragoza, denominado Algoritmo de Síntesis Aditiva por Wavelets Complejas (CWAS por sus siglas en inglés). Para la programación de dichos efectos se ha utilizado el lenguaje y las herramientas de programación que nos brinda la aplicación informática Matlab. La mayoría de los efectos analizados en este proyecto se encuentran recogidos en el libro Digital Audio Effects (DAFX), considerado como una importante referencia en el campo de los efectos de audio digitales. En este libro se describen los métodos tradicionales utilizados hasta el momento para la implementación de distintos efectos, basados en su mayoría en el uso de la transformada corta de Fourier (STFT). Además, en este libro se muestran también los algoritmos de programación desarrollados en Matlab para algunos de los efectos. Por lo tanto, además de desarrollar los scripts de Matlab para la implementación de distintos efectos musicales a partir del algoritmo CWAS, los resultados obtenidos para cada efecto (forma de onda, escalograma, resultado acústico…) se han comparado con los ofrecidos por los correspondientes métodos tradicionales (en aquellos casos en los que se está en posesión del script tradicional). Por otro lado, cabe destacar que algunos de los efectos implementados en este proyecto no se encuentran recogidos en el libro DAFX, es decir, se ha introducido cierto grado de innovación en el desarrollo o en la evolución de algunos de los efectos analizados. Puesto que en el campo del audio no existen parámetros estandarizados que permitan evaluar la calidad final de los efectos musicales, la mejorar manera de valorar los resultados obtenidos en este proyecto es escuchando los resultados sonoros. Para ello se han generado diversos archivos de audio de cada efecto analizado en los que se puede escuchar el sonido original, el sonido resultante del efecto basado en el algoritmo CWAS y el sonido resultante del efecto tradicional (en aquellos casos en los que se está en posesión del script tradicional). De forma general, tanto los resultados gráficos como los resultados acústicos de la mayor parte de los efectos desarrollados a partir del algoritmo CWAS han mostrado una calidad superior a la que se consigue con los métodos tradicionales, sin necesidad de recurrir a algoritmos de programación excesivamente complejos. Por tanto, el método CWAS puede suponer una evolución para algunos efectos tradicionales, consiguiendo efectos mucho más complejos y musicales. Gil Bailo, Óscar; Ponce de León Vázquez, Jesús

Full text

Efectos musicales digitales. Programación alternativa mediante el uso de la Transformada Wavelet Continua Compleja (CCWT) Proyecto Fin de Carrera Memoria Alumno: Óscar Gil Bailo Especialidad: Electrónica Industrial Director: Jesús Ponce de León Vázquez Convocatoria: Septiembre 2011 Efectos musicales digitales. Programación alternativa mediante el uso de la Transformada Wavelet Continua Compleja (CCWT) RESUMEN El presente proyecto fin de carrera ha consistido en la programación de un total de 19 efectos musicales utilizando, para ello, un método de análisis y síntesis de señales de audio desarrollado en la Universidad de Zaragoza, denominado Algoritmo de Síntesis Aditiva por Wavelets Complejas (CWAS por sus siglas en inglés). Para la programación de dichos efectos se ha utilizado el lenguaje y las herramientas de programación que nos brinda la aplicación informática Matlab. La mayoría de los efectos analizados en este proyecto se encuentran recogidos en el libro Digital Audio Effects (DAFX), considerado como una importante referencia en el campo de los efectos de audio digitales. En este libro se describen los métodos tradicionales utilizados hasta el momento para la implementación de distintos efectos, basados en su mayoría en el uso de la transformada corta de Fourier (STFT). Además, en este libro se muestran también los algoritmos de programación desarrollados en Matlab para algunos de los efectos. Por lo tanto, además de desarrollar los scripts de Matlab para la implementación de distintos efectos musicales a partir del algoritmo CWAS, los resultados obtenidos para cada efecto (forma de onda, escalograma, resultado acústico…) se han comparado con los ofrecidos por los correspondientes métodos tradicionales (en aquellos casos en los que se está en posesión del script tradicional). Por otro lado, cabe destacar que algunos de los efectos implementados en este proyecto no se encuentran recogidos en el libro DAFX, es decir, se ha introducido cierto grado de innovación en el desarrollo o en la evolución de algunos de los efectos analizados. Puesto que en el campo del audio no existen parámetros estandarizados que permitan evaluar la calidad final de los efectos musicales, la mejorar manera de valorar los resultados obtenidos en este proyecto es escuchando los resultados sonoros. Para ello se han generado diversos archivos de audio de cada efecto analizado en los que se puede escuchar el sonido original, el sonido resultante del efecto basado en el algoritmo CWAS y el sonido resultante del efecto tradicional (en aquellos casos en los que se está en posesión del script tradicional). De forma general, tanto los resultados gráficos como los resultados acústicos de la mayor parte de los efectos desarrollados a partir del algoritmo CWAS han mostrado una calidad superior a la que se consigue con los métodos tradicionales, sin necesidad de recurrir a algoritmos de programación excesivamente complejos. Por tanto, el método CWAS puede suponer una evolución para algunos efectos tradicionales, consiguiendo efectos mucho más complejos y musicales. ÍNDICE 1. INTRODUCCIÓN Y OBJETIVOS ............................................................................. 1 1.1. OBJETIVO ............................................................................................................... 1 1.2. LOS EFECTOS MUSICALES ................................................................................ 2 2. MÉTODOS DE ANÁLISIS DEL SONIDO ................................................................ 5 2.1. LOS EFECTOS DE AUDIO DIGITALES .............................................................. 5 2.2. ANÁLISIS TRADICIONAL. LA TRANSFORMADA LOCALIZADA DE FOURIER ................................................................................................................ 6 2.2.1. Enventanado de la señal .................................................................................... 6 2.2.2. STFT ................................................................................................................. 7 2.3. LA TRANSFORMADA WAVELET CONTINUA COMPLEJA (CCWT) ........... 8 2.4. ANALISIS MEDIANTE LA TRANSFORMADA WAVELET. EL ALGORITMO CWAS ............................................................................................ 9 3. LISTADO DE EFECTOS ........................................................................................... 11 3.1. EFECTOS BASADOS EN RETARDOS (DELAY) ............................................. 11 3.1.1. Programación tradicional ................................................................................ 11 3.1.1.1. Slapback ............................................................................................... 12 3.1.1.2. Echo (eco) ............................................................................................ 12 3.1.1.3. Chorus .................................................................................................. 12 3.1.1.4. Vibrato .................................................................................................. 12 3.1.2. Programación CWAS ...................................................................................... 13 3.1.2.1. Slapback-Echo ...................................................................................... 14 3.1.2.2. Chorus .................................................................................................. 16 3.1.2.3. Vibrato .................................................................................................. 17 3.2. TIME-STRETCHING ............................................................................................ 19 3.2.1. Programación tradicional ................................................................................ 19 3.2.2. Programación CWAS ...................................................................................... 20 3.3. ROBOTIZACIÓN .................................................................................................. 22 3.3.1. Programación tradicional ................................................................................ 22 3.3.2. Programación CWAS ...................................................................................... 23 3.4. DENOISING .......................................................................................................... 25 3.4.1. Programación tradicional ................................................................................ 25 3.4.2. Programación CWAS ...................................................................................... 26 3.5. PITCH-SHIFTING ................................................................................................. 28 3.5.1. Programación tradicional ................................................................................ 28 3.5.2. Programación CWAS ...................................................................................... 29 3.6. PITCH-SHIFTING MEJORADO .......................................................................... 31 3.6.1. Programación CWAS ...................................................................................... 32 3.7. SUSTAIN ............................................................................................................... 36 3.7.1. Programación CWAS ...................................................................................... 38 3.8. VOCODER SIMPLE ............................................................................................. 38 3.8.1. Programación tradicional ................................................................................ 38 3.8.2. Programación CWAS ...................................................................................... 39 3.9. VOCODER MEJORADO ...................................................................................... 41 3.9.1. Programación tradicional ................................................................................ 42 3.9.2. Programación CWAS ...................................................................................... 42 3.10. MORPHING ........................................................................................................ 44 3.10.1. Programación CWAS .................................................................................... 44 3.11. PSEUDOROBOT ................................................................................................. 46 3.11.1. Programación CWAS .................................................................................... 46 3.12. ARMONIZADOR ................................................................................................ 47 3.12.1. Programación CWAS .................................................................................... 48 3.13. REVERB .............................................................................................................. 49 3.13.1. Programación tradicional .............................................................................. 50 3.13.2. Programación CWAS .................................................................................... 51 3.14. TRÉMOLO .......................................................................................................... 53 3.14.1. Programación tradicional .............................................................................. 54 3.14.2. Programación CWAS .................................................................................... 54 3.15. OVERDRIVE Y DISTORSIÓN CON SIMULACIÓN VALVULAR ............... 54 3.15.1. Programación tradicional .............................................................................. 56 3.15.2. Programación CWAS .................................................................................... 57 4. RESULTADOS ............................................................................................................ 60 4.1. SLAPBACK-ECHO ............................................................................................... 60 4.2. CHORUS ................................................................................................................ 64 4.3. VIBRATO .............................................................................................................. 67 4.4. TIME-STRETCHING ............................................................................................ 68 4.5. ROBOTIZACIÓN .................................................................................................. 70 4.6. DENOISING .......................................................................................................... 71 4.7. PITCH-SHIFTING ................................................................................................. 73 4.8. PITCH-SHIFTING MEJORADO .......................................................................... 75 4.9. SUSTAIN ............................................................................................................... 77 4.10. VOCODER SIMPLE ........................................................................................... 79 4.11. VOCODER MEJORADO .................................................................................... 80 4.12. MORPHING ........................................................................................................ 82 4.13. PSEUDOROBOT ................................................................................................. 84 4.14. ARMONIZADOR ................................................................................................ 86 4.15. REVERB .............................................................................................................. 87 4.16. TRÉMOLO .......................................................................................................... 88 4.17. OVERDRIVE Y DISTORSIÓN CON SIMULACIÓN VALVULAR ............... 90 5. CONCLUSIONES ....................................................................................................... 95 6. REFERENCIAS BIBLIOGRÁFICAS ...................................................................... 97 Introducción y objetivos 1 1. INTRODUCCIÓN Y OBJETIVOS 1.1. OBJETIVO El presente proyecto fin de carrera tiene como objetivo la programación alternativa de efectos musicales utilizando el lenguaje y las herramientas de programación que nos brinda la aplicación informática Matlab [1]. Para la realización de este proyecto se ha utilizado un método de análisis y síntesis de señales de audio desarrollado en la Universidad de Zaragoza, denominado algoritmo de Síntesis Aditiva por Wavelets Complejas (CWAS por sus siglas en inglés) [2]. A diferencia de los métodos de análisis tradicionales, basados en el uso de la transformada corta de Fourier (STFT), dicho método se basa en el uso de la transformada Wavelet. Un total de 19 efectos musicales han sido programados a partir del algoritmo CWAS (dichos algoritmos de programación se han incluido en el documento Anexos). Los algoritmos de programación a partir de métodos tradicionales de muchos de estos efectos musicales se describen detalladamente en el libro Digital Audio Effects (DAFx) [3]. Con el objetivo de evaluar las posibles mejoras que puede introducir la aplicación del algoritmo CWAS en la implementación de efectos musicales, se ha realizado una comparación entre los resultados ofrecidos por ambos métodos (algoritmo CWAS y método tradicional). Varios de los efectos que aparecen a lo largo del proyecto se pueden implementar con distintos métodos tradicionales. Sin embargo, para la comparación de ambos métodos, se ha elegido un único método tradicional para cada efecto, buscando siempre la mejor relación entre sencillez de programación y calidad final del sonido. El objetivo del proyecto es, por tanto, aprovechar las ventajas que brinda el uso de la herramienta CWAS para mejorar los resultados de los efectos musicales planteados. Además, algunos de los efectos más complejos que han sido programados a partir del algoritmo CWAS en este proyecto no habían sido realizados previamente mediante métodos tradicionales (no aparecen en DAFx), por lo que puede decirse que incluyen cierto grado de innovación. Puesto que no existen parámetros estandarizados que permitan evaluar la calidad final de los efectos musicales, la mejor forma de evaluarla es escuchar los resultados acústicos. Para ello se han generado diversos archivos de audio de cada efecto analizado. Debido a que en el repositorio de documentos electrónicos de la Universidad de Zaragoza (Zaguán) sólo pueden cargarse archivos en formato pdf, los archivos de audio generados se encuentran a disposición del lector en el siguiente enlace: http://www.megaupload.com/?d=UTR6I1ZP 8 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Por tanto, queda de manifiesto que, utilizando el método tradicional de análisis de sonidos mediante la STFT no se consigue un análisis suficientemente preciso de la señal para ciertas aplicaciones. Al reconstruir una señal sintética a partir de la STFT la señal puede tener un error bastante significativo. 2.3. LA TRANSFORMADA WAVELET CONTINUA COMPLEJA (CCWT) En este apartado se resumen los aspectos más importantes de la Transformada Wavelet Continua (CWT). La CWT se define mediante la ecuación 2.4. ( ) ∫ +∞ ∞− ⋅=⋅⋅= )()()(, * , bfdtttfbaW abaf ψψ (ec. 2.4) donde * indica la conjugación compleja y ( ) t ba, ψ es la Wavelet madre (en este caso la Wavelet de Morlet) escalada un factor a y dilatada un factor b (ecuación 2.5). ( )      − =a bt a t ba ψψ 1 , (ec. 2.5) Desde el punto de vista del análisis de señal, la ecuación 2.4 representa el filtrado de la señal f con un filtro cuya respuesta al impulso es ( ) t a ψ . ( )      − =a t a t a * 1 ψψ (ec .2.6) La respuesta en frecuencia del filtro ( ) t a ψ viene determinada por la ecuación 2.7. )()( ωψωψ aa a ⋅= (ec. 2.7) La transformada Wavelet puede ser interpretada como el filtrado de una señal con un banco de filtros cuya respuesta en frecuencia es ( ) ωψ a . En este trabajo la Wavelet utilizada es compleja, por tanto los coeficientes de la transformada son complejos y se puede extraer la parte real y la parte imaginaria de dichos coeficientes. A partir de las partes real e imaginaria de cada coeficiente es posible obtener la amplitud y la fase instantáneas de la señal. Un estudio detallado de esta relación se puede encontrar en [2]. Métodos de análisis del sonido 9 2.4. ANALISIS MEDIANTE LA TRANSFORMADA WAVELET. EL ALGORITMO CWAS En este apartado de la memoria se realiza una breve explicación del algoritmo para análisis de señales de audio CWAS o Síntesis Aditiva por Wavelets Complejas desarrollado por la Universidad de Zaragoza [2]. En la Figura 2.2 se muestra de forma gráfica el funcionamiento del algoritmo. Figura 2.2. Esquema de funcionamiento del algoritmo CWAS. El primer paso del algoritmo CWAS es el cálculo de la matriz de coeficientes Wavelet complejos partiendo de la Wavelet de Morlet (en adelante matriz CWT). Un estudio completo sobre cómo obtener estos coeficientes se puede encontrar en [2]. El tamaño de la matriz CWT será BxM, donde B es el número de bandas de frecuencia para el análisis (189 en este proyecto) y M el número de muestras o samples temporales de duración de la señal. 10 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT La matriz CWT puede ser estudiada en módulo y fase. En el módulo de los coeficientes se encuentra codificada toda la información para caracterizar la señal de audio original x(t). Este módulo se denomina Espectograma Wavelet y consiste en una representación tridimensional de la información contenida en los coeficientes complejos. A través del Escalograma Wavelet se realiza el tracking de parciales, mediante el cual se obtienen los parciales que forman el sonido y se almacenan en la matriz Parcial. La matriz Parcial (formada por números complejos) tiene un tamaño NxM, donde N es el número de parciales del sonido analizado y M el número de samples. A partir de la matriz Parcial se obtiene la matriz Módulo, que contiene los módulos instantáneos de cada parcial. La matriz Módulo se obtiene mediante el comando de Matlab indicado en la ecuación 2.8. )(ParcialABSMódulo = (ec. 2.8) Del mismo modo se puede obtener la matriz Fase, que contiene las fases instantáneas de cada parcial, mediante el comando de Matlab indicado en la ecuación 2.9. ))(( ParcialANGLEUNWRAPFase = (ec. 2.9) Una vez que se han calculado los N parciales de la señal original, se reconstruye la señal sintética mediante un simple proceso de síntesis aditiva (ecuación 2.10). [ ] )(cos)()( 1 ttAtx n N n nsyn φ ∑ = = (ec. 2.10) La señal sintética conserva las cualidades tímbricas, frecuenciales, energéticas y de duración de la señal original. El algoritmo CWAS permite obtener unos resultados de muy alta calidad en la resíntesis de señales, de manera que se obtiene una señal de error entre la señal original y la señal sintética muy pequeña (prácticamente despreciable). Dicho de otra forma, la señal original y la señal sintética resultan prácticamente indistinguibles tanto numérica como acústicamente. Con el algoritmo CWAS se calculan de forma precisa los parciales que forman una señal de audio (con sus módulos, fases y frecuencias instantáneas), discernibles por el banco de filtros complejo empleado, por lo que resulta muy útil a la hora de implementar efectos musicales. Listado de efectos 11 3. LISTADO DE EFECTOS En este capítulo de la memoria se enumeran todos los efectos musicales con los que se ha trabajado a lo largo del proyecto, incluyendo también una breve descripción de su funcionamiento y programación mediante métodos tradicionales, así como de su implementación mediante el uso de los métodos basados en CWAS. 3.1. EFECTOS BASADOS EN RETARDOS (DELAY) Una onda sonara que se refleja sobre una pared se suma a la onda sonora producida por la fuente, de manera que la onda que escucha el receptor es la suma de ambas. Si la pared en la que se refleja la onda está lo suficientemente lejos, el receptor escuchará la onda reflejada con un cierto retraso o delay. Este fenómeno es lo que se conoce como eco y constituye la base de una serie de efectos. 3.1.1. PROGRAMACIÓN TRADICIONAL Para tratar de imitar este efecto, en los DAFX se usan una serie de estructuras básicas de delay. La más común es la que recibe el nombre de FIR Comb Filter (filtro peine de respuesta infinita). El efecto de esta estructura se escucha cuando la señal con delay se suma a la señal original, tomada como referencia. Los parámetros que intervienen en un FIR Comb Filter son, por un lado, el tiempo de retardo o delay y, por otro lado, la ganancia “g” por la que se multiplica la señal retrasada. ( ) delaynxgnxny −×+= )()( (ec. 3.1) Figura 3.1. Estructura FIR Comb Filter. Los efectos que se detallan a continuación están basados en esta sencilla estructura de delay. Delay x(n) y(n) 1 g 12 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 3.1.1.1. Slapback Este efecto se programa introduciendo en la estructura FIR Comb Filter un delay que oscila entre 10 y 25 ms. Consiste en una repetición muy rápida e inapreciable por el oído humano, pero que supone una alteración de la ecualización del sonido. 3.1.1.2. Echo (eco) El efecto Echo simula lo que tradicionalmente se conoce como eco y consiste en la aplicación de un delay lo suficientemente grande como para que se escuche separación entre el sonido de la fuente y el sonido reflejado. Para programar este efecto se hace uso de la estructura FIR Comb Filter, introduciendo un delay mayor de 50 ms. 3.1.1.3. Chorus Un Chorus (o coro en castellano) es un efecto que produce la sensación sonora de que dos o más personas están cantando o hablando a la vez. Cuando se aplica sobre un instrumento, produce la sensación de que varios instrumentos están ejecutando las mismas notas a la vez. Para programar el efecto Chorus se realizan tantas copias del sonido original como se desee, cada una de ellas con un delay que oscila de forma aleatoria entre 10 y 25 ms. Figura 3.2. Estructura del efecto Chorus. 3.1.1.4. Vibrato El Vibrato es una variación periódica de la frecuencia de un sonido. El efecto auditivo que se produce al aplicar Vibrato a una nota musical es que la nota base oscila y se mueve entre distintos tonos. Ejemplos de Vibrato se escuchan continuamente en los instrumentos de cuerda como violines o guitarras y también es fácil encontrarlos en la voz cantada. Delay1 x(n) y(n) 1 g1 Delay2 g2 Listado de efectos 13 Para programar un Vibrato por métodos tradicionales hay que tener en cuenta que, para esta aplicación, variar la distancia es lo mismo que variar el tiempo de delay o retraso. Si se continúa variando periódicamente el tiempo de delay, se consigue una variación periódica del tono, es decir, un efecto de Vibrato preciso. Para lograr el Vibrato se utiliza una línea de delay modulada por una señal sinusoidal de baja frecuencia (entre 5 y 14 Hz), de manera que siempre se tenga un tiempo de delay que oscile entre 5 y 10 ms. En la Tabla 3.1 se recogen, a modo de resumen, los principales aspectos de los efectos basados en retardos que acaban de comentarse. Tabla 3.1. Efectos basados en estructuras delay. Rango de delay (ms) Tipo de modulación Efecto 5-10 Sinusoidal Vibrato 10-25 Aleatoria Chorus >50 No Echo 10-25 No Slapback 3.1.2. PROGRAMACIÓN CWAS En los efectos desarrollados a partir del algoritmo CWAS se trabaja con datos de sonido en forma de matrices (matriz Módulo y matriz Fase) de tamaño MxN, donde M será el tamaño en muestras de la señal de audio original y N será el número de parciales que tenga dicha señal. Lógicamente, si se compara el uso de matrices frente al uso de vectores (como hace la estructura FIR Comb Filter), el hecho de trabajar con matrices ralentiza el cálculo de la nueva señal punto por punto. Por este motivo se ha decidido implementar una nueva estructura delay que, aunque está basada en la estructura FIR Comb Filter y a efectos prácticos consigue el mismo resultado, reduce sensiblemente el tiempo de cálculo del algoritmo. La nueva estructura de delay implementada se ha denominado estructura Delay Zero-Padding (en adelante DZP). La estructura DZP trabaja en bloque y consiste en aplicar un Zero padding al final de la matriz original, es decir, añadir DxN ceros al final de la misma, donde D es el número de samples de delay que va a tener la señal del efecto que se desea aplicar. De esta manera, la señal pasa a tener una duración equivalente a la duración de la señal original más la duración del tiempo de delay que se quiere aplicar. En la Figura 3.3 se puede apreciar cómo se adapta la matriz de la señal original. 14 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT               xxxx xxxx xxxx xxxx               00.....0 00.....0 00.....0 00.....0 xxxx xxxx xxxx xxxx Figura 3.3. Zero padding de la señal original. El siguiente paso que se realiza en la estructura DZP es duplicar la matriz original y aplicarle un Zero padding al inicio, de manera que se obtiene una matriz con el delay en samples que se desea (Figura 3.4). Figura 3.4. Zero padding de la señal duplicada. 3.1.2.1. Slapback-Echo Como se ha comentado en apartados anteriores de la memoria, los efectos Slapback y Echo son dos efectos musicales basados en el uso de la estructura FIR Comb Filter. Ambos efectos se implementan de la misma manera variando únicamente el rango de delay de cada uno (ver Tabla 3.1). Debido a la gran similitud entre ambos efectos, para implementarlos a partir del algoritmo CWAS se han considerado como un solo efecto, dando como resultado el efecto Slapback-Echo. En la Figura 3.5 se muestra un diagrama de bloques en el que se explica cómo se ha implementado el Slapback-Echo. Matriz original Ceros DxN Nueva matriz original Matriz original duplicada Nueva matriz original duplicada Listado de efectos 15 Figura 3.5. Diagrama del efecto Slapback-Echo. Al inicio del algoritmo del efecto Slapback-Echo, el usuario selecciona el tipo de efecto que quiere aplicar a la señal original e indica el tiempo de delay deseado (en ms). A continuación, el tiempo de delay se transforma en muestras mediante el uso de la ecuación 3.2. 1000 Fs tiemposamples delaydelay ×= (ec. 3.2) donde el tiempo de delay se expresa en ms y Fs es el valor de la frecuencia de muestreo de la señal de audio original. Sonido original Parcial ¿Slapback o Echo? Tiempo de delay Tiempo de delay Módulo Fase Módulo delay Fase delay g x M. delay tn x F. delay Módulo original Fase original Síntesis Aditiva Sonido sintético original Sonido delay Sonido con efecto CWAS 16 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Sobre el sonido original se aplica el algoritmo CWAS y se obtiene la matriz Parcial, que contiene los datos de todos los parciales que componen el sonido. A partir de esta matriz se calculan las matrices Módulo y Fase que forman el sonido original. A estas matrices se les aplica la estructura DZP para adaptarlas a los samples de delay calculados en la ecuación 3.2 y se generan las matrices Módulo delay y Fase delay, que serán una copia de Módulo y Fase con un zero-padding al comienzo de la matriz. Esto hace que se introduzca un retardo respecto a la señal original. Una vez obtenidas las matrices Módulo delay y Fase delay, se multiplica Módulo delay por el parámetro g y Fase delay por el parámetro tn (los parámetros g y tn se corresponden con los parámetros Ganancia y Tono del script de Matlab correspondiente). De esta manera, mediante el parámetro g se eleva o disminuye el nivel de volumen que tendrá la señal retardada respecto a la señal original, y mediante el parámetro tn se modifican ligeramente las frecuencias instantáneas de la señal. Así se puede obtener una repetición pura de la señal o una repetición de la señal desplazada en frecuencia, creando un efecto eco ligeramente diferente del concepto de eco tradicional. El último paso del algoritmo es realizar la síntesis aditiva para la señal original y la señal delay y sumar ambas señales, de manera que el resultado es que se escucha la señal original junto a la señal retardada. 3.1.2.2. Chorus El efecto Chorus consiste en repetir la señal de audio original tantas veces como se desee aplicándole cada vez un tiempo de delay aleatorio que varía entre 10 y 25 ms. A continuación se forma una nueva señal de audio formada por la suma de la señal original más todas las señales generadas. La forma de implementar el efecto Chorus a partir del algoritmo CWAS resulta muy sencilla:  Primero se aplica la CWAS al sonido original obteniendo la matriz Parcial, que contiene la información de todos los parciales.  A partir de la matriz Parcial se obtienen las matrices Módulo y Fase.  Se establece el número de voces que se repetirá el sonido original (n). Aunque no hay límite en el número de voces, su incremento ralentiza la ejecución del algoritmo y no supone una mejora significativa en los resultados. Por tanto, se recomienda un número de voces comprendido entre 2 y 5, lo que supone un buen compromiso ente velocidad y calidad. Listado de efectos 17  Sobre las matrices Módulo y Fase se aplica la estructura DZP para obtener tantas matrices Módulo delay y Fase delay como voces se desean para el efecto. En este caso, la estructura DZP tiene la particularidad de que el zero-padding que se aplica para generar las matrices Módulo y Fase adaptadas debe tener el número de samples del máximo delay que se puede obtener en las señales repetidas, es decir, 25 ms. A cada una de las matrices Módulo delay y Fase delay se les aplica el zero-padding de forma normal al inicio y otro zero-padding al final que debe tener la duración en samples indicada en la ecuación 3.3. delaymsfinal samplessamplessamples −= 25 (ec. 3.3) de manera que todas las matrices deben tener la misma duración para no tener problemas al operar con ellas en Matlab.  Para realizar el zero-padding, a cada nueva voz se le aplica un delay aletorio, que se calcula utilizando la ecuación 3.4. msmsmsaleatoriodelay samplesasamplessamplessamples 101025)( )( +×−= (ec. 3.4) donde a es un número aleatorio entre 0 y 1 y ms samples 25 y ms samples 10 son el número de samples que corresponde a un delay de 25 y 10 ms respectivamente y que se calculan con la ecuación 3.2.  Se multiplica la matriz Fase correspondiente a las voces que se añaden por un parámetro tn aleatorio (parámetro Tono del script correspondiente), de manera que todas las voces no suenan exactamente igual y se proporciona un mayor realismo al efecto.  Una vez se tienen todas las matrices, se realiza la síntesis aditiva para generar el sonido sintético original y los sonidos sintéticos de cada voz, de manera que la señal de audio de salida del efecto es la suma de todos los sonidos generados. 3.1.2.3. Vibrato El Vibrato es una variación periódica de la frecuencia de un sonido, por lo que si mediante al algoritmo CWAS se divide el sonido en una matriz Módulo y una matriz Fase (directamente relacionada con la frecuencia instantánea del sonido), aplicando una variación a la matriz Fase del sonido se puede conseguir el efecto Vibrato de una forma más sencilla que mediante los métodos tradicionales. 24 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT i Fs i g× × = ε π ϕ 2 )( (ec. 3.13) donde φ g es la fase generada, Fs es la frecuencia de muestreo e i es el número de sample (desde 1 hasta n = número de samples totales del sonido).  En la matriz Fase se reemplazan los 15 primeros parciales (los de mayor contenido energético) por la fase que se ha generado de acuerdo con la frecuencia base. Las fases del resto de parciales no se modifican ya que se ha comprobado que aumentan el tiempo de cálculo y no aportan diferencias significativas en el resultado final.  Se realiza la síntesis aditiva para generar el sonido a partir de la matriz Módulo y la nueva matriz Fase. En la Figura 3.9 se muestra de forma esquemática el proceso que acaba de detallarse. Figura 3.9. Diagrama del efecto Robotización. Parcial Sonido original Módulo Fase CWAS φ g Síntesis aditiva Sonido con efecto Listado de efectos 25 3.4. DENOISING Normalmente, en las grabaciones acústicas aparecen ruidos no deseados que resultan molestos y ensucian la grabación. Por ello, la aplicación de un efecto que limpie la señal y filtre la mayor cantidad posible de ese ruido indeseado resulta de gran utilidad. Este efecto se conoce con el nombre de Denoising. 3.4.1. PROGRAMACIÓN TRADICIONAL El objetivo del efecto Denoising es, como ya se ha comentado, eliminar el ruido de una señal. Su implementación a partir de técnicas tradicionales consiste en lo siguiente:  En primer lugar se obtienen los módulos y fases del sonido mediante la STFT.  Las fases se mantienen inalteradas y los módulos se tratan conservando sus valores más altos y atenuando sus valores más bajos.  Se reconstruye la señal a través de las IFFT usando los nuevos módulos y las fases originales. Para atenuar el ruido se hace uso de una función no lineal que permite suavizar los valores bajos de la señal sin alterar los valores más altos. La función utilizada para ello se muestra en la ecuación 3.14. c x x xf + =)( (ec. 3.14) Para atenuar los módulos, éstos se multiplican por la función f (x), donde x es el valor del módulo en cada sample y c es el factor de atenuación, al que se le da el valor de 0,01. A continuación se muestra un ejemplo numérico acerca del funcionamiento del factor de atenuación sobre la función f (x): Con x = 0,2 → 082,0 01,02,0 2,0 2,0 = + ×=x La señal se atenúa en un 59%. Con x = 10 → 99,9 01,010 10 10 = + ×=x La señal se atenúa en un 0,1%. 26 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Siempre que la magnitud del ruido sea de un orden mucho menor a la magnitud de la señal grabada se eliminará gran parte del ruido, pero si la magnitud del ruido es del orden de magnitud de la señal grabada, este algoritmo no obtendrá buenos resultados. Para entender mejor cómo funciona el efecto Denoising, en la Figura 3.10 se muestra el efecto exagerado que se produce con la aplicación de una función de atenuación f (x). Figura 3.10.A la izquierda se muestra una función f(x) con ruido y a la derecha se observa la misma función f(x) después de eliminar el ruido. 3.4.2. PROGRAMACIÓN CWAS La implementación del efecto Denoising mediante el método CWAS es muy similar al método tradicional, con la diferencia de que el algoritmo CWAS debe actuar sobre los módulos de cada parcial del sonido, es decir, sobre cada columna de la matriz Módulo. Como se puede apreciar en la Figura 3.11, el proceso que se sigue para implementar el efecto Denoising según la programación CWAS es muy sencillo. Consiste en obtener las matrices Módulo y Fase a partir del algoritmo CWAS y, una vez hecho esto, se mantiene la matriz Fase inalterada y se somete a la matriz Módulo a un filtrado. Listado de efectos 27 Figura 3.11. Diagrama del efecto Denoising. El filtrado de la matriz Módulo consiste en recorrer dicha matriz elemento por elemento, aplicándole a cada uno la ecuación 3.15. cjix jix jixjiy + ×= ),( ),( ),(),( (ec. 3.15) donde c es el factor de atenuación (c=0,01) que, como se ha explicado en el apartado anterior, se usa para suavizar los valores cuyo módulo tienen un valor bajo (ruido), y(i, j) es el nuevo valor que tendrá cada elemento de la matriz Módulo y x(i, j) es el valor original de cada elemento de la matriz Módulo.    = = nj mi ,...,1 ,...,1 Generalmente gran parte del ruido que se origina en una grabación o durante una actuación en vivo con instrumentos eléctricos tiene su origen en la frecuencia de la red eléctrica. Esta frecuencia tiene un valor de 50 o 60 Hz dependiendo de los países. Por tanto, la última parte de este filtro se centra en encontrar las frecuencias medias de cada parcial del sonido y eliminar los módulos de aquellos parciales cuyas frecuencias correspondan a 50 o 60 Hz o estén próximas a estos valores. Parcial Sonido original Módulo Fase CWAS Síntesis aditiva Sonido con efecto Filtro (m es el número de samples del sonido) (n es el número de parciales del sonido) 28 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Para calcular las frecuencias medias de cada parcial es necesario obtener primero las frecuencias instantáneas de cada sample, para lo cual debe calcularse la derivada de la matriz Fase. Haciendo la media aritmética de las frecuencias instantáneas de cada parcial se obtiene su frecuencia media. Habitualmente se utiliza la ecuación 3.16 para calcular las frecuencias instantáneas. )( 2 1 tan t dt d ftáneains ϕ π ×= (ec. 3.16) Sin embargo, debido a que las derivadas en Matlab se implementan como una resta (mediante el comando DIFF), para el algoritmo desarrollado en este proyecto se ha utilizado la ecuación 3.17, que es una forma más simple de obtener las frecuencias instantáneas. )( 2 tan FaseDIFF Fs ftáneains ×= π (ec. 3.17) donde Fs es la frecuencia de muestreo y Fase es la matriz Fase. De la ecuación 3.17 se obtendrá una matriz con las frecuencias instantáneas de cada parcial y cada sample del sonido. Para acabar con el proceso se realiza la síntesis aditiva de las matrices Módulo (una vez filtrada) y Fase, generándose la señal de audio con el efecto aplicado. 3.5. PITCH-SHIFTING El Pitch-shifting es un efecto que consiste en cambiar el tono de una grabación sin modificar su duración temporal. Para ello se multiplican todas las frecuencias por un factor de transposición k. 3.5.1. PROGRAMACIÓN TRADICIONAL Una manera sencilla de conseguir el efecto Pitch-shifting es transponer todas las frecuencias instantáneas sin modificar los módulos. Para ello, su implementación a partir del método tradicional sigue los siguientes pasos:  En primer lugar se obtienen el módulo y la fase de cada sample mediante la FFT.  Se calcula el incremento de fase entre cada sample (∆ϕ) y se multiplica por el factor de transposición k. La nueva fase se integra de acuerdo con la ecuación 3.18. knn × ∆ + = + ϕ ϕ ϕ )()1( (ec. 3.18) Listado de efectos 29  Se reconstruye la señal como una suma de sinusoides. Las frecuencias instantáneas de la señal de salida quedan multiplicadas por el factor de transposición k. kff ×= 0 (ec. 3.19) 3.5.2. PROGRAMACIÓN CWAS Gracias a las ventajas que brinda el uso del algoritmo CWAS como punto de partida para la programación de efectos, el Pitch-shifting puede implementarse de forma sencilla y conservando con mayor fidelidad las características del sonido. Generalmente, a la hora de desplazar un sonido en frecuencia, en el argot musical se habla de transportar el sonido un número de semitonos hacia arriba (sonido más agudo o de mayor frecuencia) o hacia abajo (sonido más grave o de menor frecuencia). Por tanto, a la hora de implementar un Pitch-shifting será mucho más práctico hablar de los semitonos que se quiere desplazar el sonido y establecer una relación entre el número de semitonos y la frecuencia. El semitono es la mínima división de altura utilizada en la música occidental. Matemáticamente, el semitono determina una relación de frecuencias de 2 1/12 (aproximadamente 1,059) [4]. Por consiguiente, cada vez que se sube un semitono, la frecuencia resultante se multiplica por 1,059. En la Tabla 3.2 se muestra la correspondencia entre todas las notas musicales y su equivalente en frecuencia. 30 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Tabla 3.2. Relación entre notas musicales y frecuencias. En el algoritmo CWAS que se ha implementado para el Pitch-shifting el usuario debe introducir el número de semitonos que quiere desplazar el sonido. Si se quiere desplazar el sonido n semitonos hacia arriba en frecuencia, en la variable semitonos se introducirá +n. Si por el contrario se quiere desplazar el sonido hacia abajo en frecuencia se introducirá –n. El esquema de la implementación del efecto Pitch-shifting a partir del algoritmo CWAS puede apreciarse en la Figura 3.12. Listado de efectos 31 Figura 3.12. Diagrama del efecto Pitch-shifting. Básicamente el Pitch-shifting consiste en multiplicar las frecuencias instantáneas por el factor R (parámetro Ratio en el script de Matlab correspondiente), definido en la ecuación 3.20. Al multiplicar las frecuencias instantáneas por R, se multiplican también las fases. Por tanto, para implementar el efecto basta con multiplicar la matriz Fase por el parámetro R. Una vez hecho esto, se realiza la síntesis aditiva y se obtiene el sonido de salida con el efecto aplicado.        = semitonos semitonos R 095.1 1 095.1 (ec. 3.20) donde semitonos es el número de semitonos que se quiere desplazar la señal. 3.6. PITCH-SHIFTING MEJORADO Como se acaba de comentar, el Pitch-shifting es un efecto que consiste en cambiar el tono de una grabación. Sin embargo, este efecto sólo funciona bien cuando el sonido original se desplaza unos pocos semitonos arriba o abajo. En cambio, cuando el desplazamiento en semitonos es más pronunciado el resultado es un sonido poco Parcial Sonido original Módulo Fase CWAS Síntesis aditiva Sonido con efecto Fase x R si semitonos > 0 si semitonos < 0 32 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT natural. Por ejemplo, si se realiza un Pitch-shif de una octava (12 semitonos) por encima del tono original sobre un fragmento de voz humana, bien sea hablada o cantada, se produce un sonido con un efecto “Donald duck” que no suena igual que cuando una persona habla o canta el mismo fragmento una octava por encima de la grabación original. El efecto Pitch-shifting mejorado es una evolución del efecto anterior pensado para su aplicación sobre instrumentos musicales o voces humanas, siempre que en ambos casos se conozca la respuesta real a lo largo de todo su rango acústico y se disponga de varias muestras de sonido dentro del mismo. De esta forma, es posible predecir las características sonoras de todas las notas que pueden ejecutarse, adaptando el sonido transportado al sonido real. El objetivo es conseguir saltos de un mayor número de semitonos de forma que el sonido tenga una respuesta similar a la que tendría el instrumento real. Así, conociendo el sonido de una única nota ejecutada por un instrumento podría generarse toda la respuesta frecuencial reproducible por dicho instrumento. En otras palabras, lo que quiere conseguirse es, por ejemplo, transportar la grabación de un Do3 a un Do4 y que ese Do4 suene lo más próximo posible al Do4 real ejecutado por el instrumento o voz en cuestión. No se conoce la implementación de este efecto mediante técnicas tradicionales. 3.6.1. PROGRAMACIÓN CWAS La idea fundamental del Pitch-shifting mejorado es muy sencilla. Si se analizan los escalogramas (respuesta en frecuencia) de dos notas distintas, por ejemplo un Do3 y un Do4, puede apreciarse que si se desplaza la primera nota para que suene como la segunda, el escalograma resultante es ligeramente diferente del escalograma original de ese Do4. Esto significa que, aunque suene un Do4, sonará ligeramente diferente del sonido del Do4 real. Para implementar este efecto mediante el algoritmo CWAS se necesita una nota de muestra o nota base y, además, será necesario conocer la respuesta en frecuencia del instrumento o de la voz a lo largo de todo su rango acústico. La aplicación de este método sería especialmente útil en sintetizadores (instrumentos electrónicos de teclas que simulan los sonidos de instrumentos reales con más o menos exactitud) ya que a partir de un único sonido se pueden generar todas las notas que da el instrumento. Esto supondría un ahorro de memoria para el sintetizador. Para implementar el efecto a partir del algoritmo CWAS se ha elegido una nota base y varias notas contenidas en un rango máximo de ± 1 octava respecto a la nota base. El método es extrapolable a todo el rango acústico del instrumento siempre que existan grabaciones del mismo. Listado de efectos 33 En la Figura 3.13 se han representado las notas utilizadas para implementar el efecto Pitch-shifting mejorado en las teclas de un piano. Figura 3.13. Notas conocidas para implementar el efecto Pitch-shifting mejorado. Como puede apreciarse en la Figura 3.13, el efecto Pitch-shifting mejorado se ha implementado en un rango de 2 octavas completas con sus 25 semitonos. Dentro de las 2 octavas, la nota base es el segundo Do (semitono 13). Para implementar el efecto se han usado las notas cuyos números de semitono dentro de las 2 octavas son 1, 5, 8, 13, 17, 20 y 25. A estas notas se les aplica el algoritmo CWAS con el objetivo de guardar sus escalogramas y conocer así el comportamiento en frecuencias de cada una de ellas. Una vez hecho esto, se realiza una interpolación de los escalogramas guardados para conocer, de forma aproximada, cómo debe ser el escalograma de cada uno de los 25 semitonos que forman las 2 octavas. De esta forma se conocen los escalogramas de todas las notas y se almacenan en una matriz llamada Interpolación, que será una matriz con 25 columnas. Cada columna corresponde al escalograma interpolado de cada una de las 25 notas musicales que forman las dos octavas. A la hora de implementar el efecto Pitch-shifting mejorado se siguen los siguientes pasos:  En primer lugar se aplica el algoritmo CWAS a la nota base y se obtienen sus matrices Módulo y Fase.  Se establece el parámetro R, por el que se multiplicarán las frecuencias instantáneas de cada parcial de la nota base. El parámetro R se calcula de la misma manera que se hacía en el Pitch-shifting (ecuación 3.20). 1 5 8 13 17 20 25 Nota base 40 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT  Se obtiene la matriz Módulo vocoder a partir de la matriz Parcial control por medio de la ecuación 2.8, como se ha explicado en el apartado 2.4.  Se obtienen las matrices Módulo base y Fase base a partir de la matriz Parcial base.  Se suman, para cada sample de la matriz Módulo vocoder, los componentes de cada parcial para obtener el perfil de la envolvente de volumen (ecuación 3.21). ∑ = = parciales n vocoder niMóduloiEnvolvente 1 ),()( (ec. 3.21) donde      = = parcialesnn samplesi º,...,1 ,...,1  Se detecta el máximo del vector Envolvente vocoder.  Se divide Envolvente vocoder por dicho máximo para tener el vector Envolvente vocoder normalizado entre 0 y 1.  Se multiplica cada columna de la matriz Módulo base por el vector Envolvente vocoder normalizado (término a término) para que los módulos del sonido base sigan la envolvente del sonido de control.  Se realiza la síntesis aditiva entre Módulo base y Fase base. El proceso que acaba de describirse se muestra de forma esquemática en la Figura 3.17. Listado de efectos 41 Figura 3.17. Diagrama del efecto Vocoder simple. Puesto que el resultado de este efecto es un sonido base controlado por la envolvente del sonido de control se pueden conseguir combinaciones muy interesantes, como por ejemplo aplicar el vibrato de una voz a un instrumento, aplicar cualidades propias de un instrumento a otro, etc. 3.9. VOCODER MEJORADO A diferencia del efecto anterior, el Vocoder mejorado es un efecto con el que se consigue que el sonido de control (generalmente una voz hablada) suene con las características de la fase del sonido base. El efecto que se produce es similar a una robotización de la voz, ya que se escuchan perfectamente las palabras pero con el tono correspondiente al sonido base. Parcial base Sonido base CWAS Sonido con efecto Parcial control Sonido control Adaptar parciales Parcial base Parcial control Módulo base Fase base Módulo vocoder Envolvente vocoder Módulo x Envolvente Síntesis aditiva 42 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 3.9.1. PROGRAMACIÓN TRADICIONAL Para implementar este efecto con la programación tradicional se aplican primero las STFT a cada uno de los dos sonidos para separar sus módulos y fases. Una vez hecho esto, se combinan los módulos del sonido de control con las fases del sonido base y se realiza la resíntesis del sonido, dando lugar a un sonido que es una mezcla de ambos. Figura 3.18. Principio de funcionamiento del efecto Vocoder mejorado. 3.9.2. PROGRAMACIÓN CWAS Para la aplicación del efecto Vocoder mejorado desarrollado en este proyecto el sonido de control sólo puede ser una voz y el sonido de base un sonido de cualquier instrumento musical. El efecto que se consigue es similar a la robotización, ya que la voz suena con el tono del instrumento. Si el sonido del instrumento es una única nota musical, el efecto Vocoder mejorado es acústicamente muy similar al efecto de Robotización. El esquema de la implementación del efecto Vocoder mejorado a partir del algoritmo CWAS puede apreciarse en la Figura 3.19. Sonido de control Sonido base Módulo 1 Fase 1 Fase 2 Módulo 2 Módulo 1 Fase 2 Resíntesis Listado de efectos 43 Figura 3.19. Diagrama del efecto Vocoder mejorado. Como se puede apreciar en la Figura 3.19, se trata de un efecto bastante sencillo de implementar:  Se ejecuta el algoritmo CWAS sobre sonido de control y se guarda su matriz Parcial (Parcial control).  Se aplica la CWAS al sonido de base y se obtiene su matriz Parcial (Parcial base).  Se adaptan ambas matrices (Parcial base y Parcial control) de manera que el número de filas sea el número de samples de duración de la señal más corta y el número de columnas sea el correspondiente a la matriz con mayor número de parciales.  Se obtienen Módulo control y Fase base. Parcial base Sonido base CWAS Sonido con efecto Parcial control Sonido control Adaptar parciales Parcial base Parcial control Fase base Módulo control Síntesis aditiva 44 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT  Se realiza la síntesis aditiva entre Módulo control y Fase base para obtener el sonido de salida. 3.10. MORPHING El efecto llamado Morphing es un efecto que implica la transformación gradual de un sonido en otro a través de la combinación de las cualidades de ambos sonidos. A diferencia del Vocoder mejorado, en el que se combina el módulo de un sonido con la fase de otro, con el efecto Morphing se transfieren las características de un sonido a otro. El Morphing se puede usar, por tanto, para generar sonidos híbridos, sonidos con características de dos instrumentos distintos y sonidos que evolucionan de un sonido a otro. Hay que destacar que este efecto conseguirá un resultado más realista cuando se utilicen dos sonidos que difieran en tono lo mínimo posible ya que, de lo contrario, se producirá una variación muy brusca de un sonido a otro y el resultado será poco natural. Es un efecto del que no se conoce su implementación por los métodos tradicionales. 3.10.1. PROGRAMACIÓN CWAS Para implementar el efecto Morphing mediante el algoritmo CWAS deben obtenerse los módulos y fases de los distintos parciales que forman los dos sonidos que quieren combinarse y, a continuación, mezclarlos progresivamente para transformar así los parciales de un sonido en los parciales del otro. El usuario puede elegir los porcentajes de sonido A y de sonido B que desea que formen parte del sonido final. A continuación se detallan los pasos necesarios para implementar el efecto Morphing mediante el algoritmo CWAS:  Se ejecuta el algoritmo CWAS sobre los sonidos A y B y se obtienen sus matrices Parcial A y Parcial B respectivamente.  Se adaptan las matrices Parcial A y Parcial B de manera que las matrices resultantes tengan el mayor número de parciales de entre A y B y la longitud en samples del sonido más corto. Cuando sea necesario aumentar alguna de las matrices originales (Parcial A o Parcial B iniciales), se completa hasta el nuevo tamaño con ceros.  Se calculan las matrices Módulo A, Módulo B, Fase A y Fase B. Listado de efectos 45  Se combinan módulos y fases de acuerdo con la ecuación 3.22. Las nuevas matrices de módulos y fases que se obtienen reciben el nombre de Módulo morphing y Fase morphing respectivamente. ABmorphing MódulomMódulomMódulo ×−+×= )1( (ec. 3.22) ABmorphing FasemFasemFase ×−+×= )1( donde el parámetro m (parámetro mezcla en el script de Matlab) determina el porcentaje del sonido B que estará presente en el sonido final.  Por último se realiza la síntesis aditiva entre Módulo morphing y Fase morphing. El procedimiento que acaba de describirse se muestra de forma esquemática en la Figura 3.20. Figura 3.20. Diagrama del efecto Morphing Parcial A Sonido A CWAS Sonido con efecto Parcial B Sonido B Adaptar parciales Parcial A Parcial B Fase A Fase B Síntesis aditiva Módulo B Módulo A m Módulo morphing Fase Morphing 46 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 3.11. PSEUDOROBOT El efecto Pseudorobot nace de un intento de adaptar el algoritmo del efecto Robotización mediante STFT a su uso con la CWAS. No se consigue exactamente una robotización ya que, al comparar las formas de onda del efecto Pseudorobot con las formas de onda de una Robotización tradicional, se observa que son muy diferentes. Sin embargo, a efectos sonoros se consigue un efecto bastante similar. Figura 3.21. Principio de funcionamiento del efecto Pseudorobot. 3.11.1. PROGRAMACIÓN CWAS La implementación CWAS del efecto Pseudorobot consiste en lo siguiente:  Se aplica el algoritmo CWAS al sonido original y se obtienen sus matrices Módulo y Fase.  Se genera una onda cuadrada, que oscilará entre 0 y 1, cuya extensión total sea igual al número de samples totales del sonido,  Se multiplica cada columna de Fase (cada parcial) por la onda cuadrada.  Se multiplica cada columna de Módulo por una onda cuadrada suavizada. Con los módulos es necesario trabajar con una onda cuadrada suavizada para que las transiciones entre 0 y 1 no sean tan bruscas, evitándose así ruidos no deseados. Este suavizado se consigue multiplicando cada tramo de la onda cuadrada con valor 1 por una ventana de hanning del mismo tamaño. Figura 3.22. Ventana de Hanning. Módulos Fases Sonido Resíntesis X X Listado de efectos 47  Por último se realiza la síntesis aditiva entre las nuevas matrices Módulo y Fase. Después de realizar varias pruebas de sonido con este efecto se llegó a la conclusión de que el tamaño adecuado para la onda cuadrada era de 167 samples por semiperiodo (334 samples por periodo), tamaño que se corresponde con una frecuencia de onda de: ms f T s 15,15 1672 = × = para s f=22050 Hz Hz T f66 1== 3.12. ARMONIZADOR El efecto Armonizador es un efecto que consiste en desplazar el sonido original varios semitonos (como se hace en el Pitch-shifting) y generar un nuevo sonido formado por la suma del sonido original y el sonido desplazado, de manera que se crean melodías paralelas. A continuación, para entender un poco mejor la base de este efecto, se introduce una breve explicación sobre acordes e intervalos. Un intervalo es la distancia en semitonos que existe entre dos notas distintas. Por su parte, se llama acorde musical a la ejecución simultánea de varias notas. Los acordes más típicos son los acordes mayores y los acordes menores. Los acordes mayores están formados por la nota base o fundamental más un intervalo de tercera mayor (4 semitonos) y un intervalo de quinta justa (7 semitonos) sobre la nota fundamental del acorde. Por ejemplo, un acorde de Do mayor está formado por las notas Do, Mi y Sol. Por otro lado los acordes menores están formados por la nota fundamental más un intervalo de tercera menor (3 semitonos) y un intervalo de quinta justa (7 semitonos) sobre la nota fundamental. Por ejemplo, un acorde de Do menor está formado por las notas Do, Mi bemol y Sol. Ambos tipos de acordes (mayores y menores) contienen una quinta justa (7 semitonos) sobre la nota fundamental, de manera que, independientemente de que se pretenda ejecutar un acorde mayor o menor, si se añade una nota desplazada 7 semitonos por encima de la nota base se creará un efecto con un sonido agradable. Es por ello que para implementar el efecto Armonizador se ha elegido desplazar el sonido base 7 semitonos. 48 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Al tratarse de un efecto desarrollado por primera vez en este proyecto, no se conoce su implementación mediante los métodos de programación tradicionales. 3.12.1. PROGRAMACIÓN CWAS El efecto Armonizador está directamente relacionado con el Pitch-shifting simple y, de hecho, el Pitch-shifting se puede considerar como un bloque propio del diagrama de bloques del efecto Armonizador (Figura 3.23). La implementación CWAS del efecto Armonizador consiste en los siguientes pasos:  Se aplica el algoritmo CWAS al sonido original y se obtienen las matrices Módulo y Fase.  Se duplican las matrices Módulo y Fase para poder trabajar con dos señales (Módulo 1 y Fase 1; Módulo 2 y Fase 2). Las matrices Módulo 1 y Fase 1 se mantendrán inalteradas para hacer la resíntesis del sonido original. Por otro lado, a las matices Módulo 2 y Fase 2 se les aplicará el Pitch-shifting.  Se multiplica Módulo 2 por el parámetro υ (parámetro volumen en el script de Matlab correspondiente), que determina el volumen del sonido duplicado respecto del sonido original. El resultado es la matriz Módulo suma.  Se aplica un Pitch-Shifting de 7 semitonos por encima de la fase original a Fase 2 (mismo procedimiento que en el apartado 3.5.2). El resultado es la matriz Fase suma.  Se realiza la síntesis aditiva entre Módulo 1 y Fase 1 por un lado y Módulo suma y Fase suma por otro, obteniéndose el sonido original sintético y el sonido a sumar, respectivamente.  Se suman ambos sonidos y se obtiene el sonido de salida del efecto. En la Figura 3.23 se muestra un esquema del procedimiento que acaba de describirse. Listado de efectos 49 Figura 3.23. Diagrama del efecto Armonizador. 3.13. REVERB La reverberación es un fenómeno acústico natural que se produce en recintos más o menos cerrados, por el cual a la señal original se le van sumando las diferentes ondas reflejadas en las paredes del recinto con un retardo o delay, generado básicamente por la distancia física entre la fuente de sonido original y las paredes del recinto. El oído humano es incapaz de distinguir un sonido de sus reflexiones cuando la diferencia de tiempo entre ambas es menor de 66 ms (persistencia acústica). Además, según el efecto HAAS (conocido también como efecto de precedencia), cuando el oído capta unas reflexiones con un retardo no superior a 35 ms es incapaz de integrarlas como ecos consecutivos y las asocia a la fuente de sonido original, reforzándola en intensidad. Parcial Sonido original Módulo 1 Fase 1 CWAS Módulo 2 Fase 2 Pitch-shifting 7 semitonos υ Síntesis aditiva Sonido original sintético Síntesis aditiva Sonido Pitch Módulo suma Fase suma SUMA Sonido con efecto 56 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Figura 3.25. Válvula de vacío modelo 12ax7 (doble triodo). La saturación natural de un amplificador de válvulas se consigue, básicamente, recortando la señal de entrada. Cuanto más se recorta la señal, es decir, cuanto más se asemeja a una onda cuadrada, más se satura la señal y más se distorsiona su forma de onda con respecto a la forma de onda original. En los amplificadores valvulares esta distorsión se consigue utilizando varias etapas de amplificación con grandes ganancias, haciendo que las válvulas lleguen a saturarse y recorten así la señal de entrada. Este tipo de distorsión natural genera armónicos impares, aumentando la presencia de los armónicos 3 y 5 del sonido. Además de incrementar los armónicos 3 y 5, cuando se satura con un amplificador de válvulas se realza también de forma natural el armónico 2 de los sonidos [7]. El oído humano percibe como más musicales los armónicos impares. Ésta es la razón por la que una distorsión procedente de un circuito a válvulas resulta mucho más musical y atractiva. 3.15.1. PROGRAMACIÓN TRADICIONAL Uno de los métodos empleados para simular el efecto Overdrive es el conocido como “Symmetrical Soft Clipping”, cuya aplicación sobre una señal normalizada viene dada por la ecuación 3.28. x2 para 0 ≤ x ≤ 1/3 f (x) = ( ) 3 323 2 x−− para 1/3 ≤ x ≤ 2/3 (ec. 3.28) 1 para 2/3 ≤ x ≤ 1 Este método se aplica sobre la señal de entrada en su totalidad, sin diferenciar módulos de fases. Listado de efectos 57 Figura 3.26. Función del Overdrive. Por otro lado, para producir el efecto Distorsión se ha utilizado la función no lineal que se muestra en la ecuación 3.29. Esta función se aplica sobre la totalidad de la señal de audio, sin diferenciar entre módulos y fases. ( ) xx e x x xf / 2 1)( −= (ec. 3.29) Figura 3.27. Función no lineal de la Distorsión. 3.15.2. PROGRAMACIÓN CWAS A los efectos típicos de Overdrive y Distorsión descritos anteriormente se les ha aplicado un algoritmo basado en el uso de la CWAS, que consiste en encontrar los armónicos que normalmente se realzan en los amplificadores de válvulas de vacío (armónicos 2, 3 y 5). El objetivo es que el sonido se parezca más al que se consigue cuando se utilizan dichos amplificadores para generar un efecto Overdrive o una Distorsión. La manera de realzar estos armónicos se explica esquemáticamente en la Figura 3.28. 58 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Figura 3.28. Diagrama de los efectos Overdrive y Distorsión con simulación valvular. El proceso seguido para implementar los efectos Overdrive y Distorsión con simulación valvular es el siguiente:  Se aplica el algoritmo CWAS al sonido original y se obtienen sus matrices Módulo y Fase.  A partir de la matriz Fase se calculan las frecuencias instantáneas con la ecuación 3.17.  A partir de las frecuencias instantáneas se localiza la frecuencia fundamental del sonido. Parcial Sonido original Módulo Fase CWAS Síntesis aditiva Sonido con efecto Frecuencias Frecuencia fundamental Armónicos 2, 3, 5 Overdrive o distorsión Realce módulos Sonido sintético Listado de efectos 59  Una vez localizada la frecuencia fundamental, se obtienen las frecuencias de los armónicos 2, 3 y 5. Para ello se utiliza la ecuación 3.30. armóniconff lfundamentaarmónico º×= (ec. 3.30)  A continuación, para saber qué parciales se corresponden con los armónicos 2, 3 y 5, se buscan las frecuencias que más se aproximan a las de dichos armónicos dentro de las frecuencias medias de cada parcial.  Una vez se conocen los parciales correspondientes a cada armónico, se realzan dichos armónicos multiplicando los módulos de esos parciales por 3.  Se realiza la síntesis aditiva entre la matriz Módulo (con los armónicos realzados) y la matriz Fase.  Se aplica una de las funciones correspondientes a los efectos Overdrive o Distorsión sobre el sonido sintético, obteniéndose el sonido de salida con el efecto aplicado. Para aplicar el efecto Overdrive se multiplica la señal sintética por la función correspondiente al “Simmetrical Soft Clipping”, función que se muestra en la ecuación 3.28. Para aplicar el efecto Distorsión se multiplica la señal sintética por la función no lineal mostrada en la ecuación 3.29. 60 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 4. RESULTADOS En este apartado de la memoria se analizan los resultados obtenidos al implementar los efectos musicales a partir del algoritmo CWAS. Los resultados obtenidos se han comparado con aquéllos que se obtienen cuando se utilizan métodos tradicionales para la implementación de los mismos efectos. 4.1. SLAPBACK-ECHO En el efecto Slapback-Echo implementado en este proyecto a partir del algoritmo CWAS se han introducido algunas variaciones con respecto al efecto tradicional que consisten en lo siguiente:  Posibilidad de cambiar el volumen con el que se ejecuta la repetición del sonido a través de un parámetro ajustable por el usuario (parámetro g).  Posibilidad de modificar el tono del sonido repetido, de manera que el usuario puede elegir entre una repetición pura de la señal de audio original o una repetición modificada cambiando el parámetro tn. A continuación se muestran los resultados obtenidos tras la aplicación de los efectos Slapback-Echo tradicional y Slapback-Echo CWAS a dos señales de audio distintas: una voz humana y un sonido de piano. Voz Humana En este caso se ha aplicado el efecto Slapback-Echo configurado para funcionar como Echo (tiempo de delay de 100 ms). La Figura 4.1(a) muestra la forma de onda de la señal original, en este caso una palabra pronunciada por una voz humana masculina. En las Figuras 4.1(b) y 4.1(c) se observan las formas de onda de la señal tras aplicar el efecto Slapback-Echo tradicional (señal original más señal repetida) y de la señal repetida, respectivamente. Por otro lado, las Figuras 4.1(d) y 4.1(e) muestran las mismas formas de onda pero, esta vez, tras aplicar el efecto Slapback-Echo CWAS. El Slapback-Echo CWAS produce una modificación más pronunciada de los parámetros de la señal repetida por lo que, al sumar dicha señal a la señal original, se obtiene una forma de onda ligeramente distinta a la obtenida con el efecto tradicional. Al aplicar el efecto Slapback-Echo CWAS se ha introducido una ligera modificación del tono de la señal (tn=1,01), pero dicha modificación no puede apreciarse analizando sólo las formas de onda. Resultados 61 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10 4 -2 -1 0 1 2 SEÑAL ORIGINAL (VOZ) Original 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10 4 -2 -1 0 1 22 SLAPBACK-ECHO TRADICIONAL Echo 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10 4 -2 -1 0 1 2 Repeticion 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10 4 -2 -1 0 1 2 SLAPBACK-ECHO CWAS Echo 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 x 10 4 -2 -1 0 1 2 Repeticion Samples Figura 4.1. Formas de onda del efecto Slapback-Echo con un delay de 100 ms sobre una voz humana.(a) Señal original, (b) Efecto Slapback-Echo tradicional, (c) Señal repetida en el Slapback- Echo tradicional, (d) Efecto Slapback-Echo CWAS con parámetros g=0,7 y tn=1,01, (e) Señal repetida en el Slapback-Echo CWAS. Como se puede comprobar en las Figuras 4.1(b) y 4.1(d), la aplicación del efecto Slapback-Echo, ya sea con el método tradicional o con el algoritmo CWAS, modifica la forma de onda del sonido original debido a la superposición que se produce entre la onda original y la onda repetida (eco). En caso de que el tiempo de delay elegido fuese mayor que la duración total del sonido original, esta superposición de las ondas no se produciría y el resultado del efecto sería el que se aprecia en la Figura 4.2. a b c d e 62 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Figura 4.2. Forma de onda del efecto Slapback-Echo con un delay superior a la duración del sonido original con parámetros g=1 y tn=1. Piano Para apreciar mejor el efecto que la modificación del parámetro tn produce en el sonido final, se ha aplicado el efecto Slapback-Echo funcionando como Slapback (tiempo de delay de 15 ms). Para ello, se han analizado los escalogramas del sonido original (en este caso el sonido de un piano) y de los efectos Slapback tradicional y Slapback CWAS. Comparando las Figuras 4.3(b) y 4.3(c) se comprueba que el efecto Slapback tradicional con un delay de 15 ms produce un cambio en el escalograma del sonido, realzando los armónicos más importantes pero respetando la forma del escalograma original. Por otro lado, como se aprecia en la Figura 4.3(d), el efecto que crea el Slapback CWAS es la suma de dos señales que no son exactamente iguales en frecuencia, lo que en el escalograma se traduce en un ensanchamiento de cada uno de los picos del escalograma original. Este efecto puede apreciarse mejor en la Figura 4.4, en la que se ha realizado un zoom entre las frecuencias 350 y 650 Hz de los escalogramas del sonido original y del efecto Slapback CWAS. El escalograma del efecto Slapback CWAS está formado por todos y cada uno de los picos que aparecen en el escalograma del sonido original más esos mismos picos desplazados en frecuencia según determina el parámetro tn. Acústicamente se puede escuchar que, mientras el Slapback tradicional solo realza algunos armónicos del sonido del piano y supone un cambio leve del sonido original, el Slapback CWAS modifica las frecuencias del sonido original y transforma el sonido del piano, dando la sensación de que es un piano antiguo, con un sonido similar al de los pianos que aparecen en las películas del oeste. Obviamente, si no se quiere conseguir este efecto y se busca un Slapback similar al tradicional, basta con asignar el valor 1 a los parámetros tn y g. Resultados 63 Figura 4.3. Efecto Slapback-Echo funcionando como Slapback sobre el sonido de un piano con delay de 15 ms. (a) Forma de onda del sonido original, (b) Escalograma del sonido original, (c) Escalograma del efecto Slapback tradicional, (d) Escalograma del efecto Slapback CWAS con g=1 y tn=1.001. a b c d 64 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Figura 4.4. Escalogramas ampliados. (a) Señal del sonido original, (b) Efecto Slapback CWAS. 4.2. CHORUS A diferencia del efecto Chorus tradicional, el Chorus CWAS permite introducir una pequeña variación en el tono en cada una de las voces que se añaden, de manera que cada una de ellas puede sonar diferente, dando la sensación de que realmente se está tocando con varios instrumentos a la vez o varias personas están cantando o hablando simultáneamente. Con el efecto Chorus tradicional, no puede conseguirse esta pequeña variación tonal, por lo que cada una de las voces del sonido es una copia exacta del sonido original. Este hecho da cierto aire sintético al efecto, ya que es prácticamente imposible encontrar dos personas que hablen con el mismo tono de voz o dos instrumentos afinados exactamente igual. En la Figura 4.5 se muestran los resultados obtenidos al aplicar un Chorus con dos voces (la señal original más otras dos señales) sobre un fragmento de voz humana hablada. A simple vista se puede apreciar que, aunque las formas de onda correspondientes a los efectos Chorus tradicional y Chorus CWAS respetan la silueta de la forma de onda original, son diferentes entre sí. La forma de onda del Chorus CWAS presenta una mayor amplitud que la del Chorus tradicional. a b Resultados 65 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 x 10 4 -2 0 2 Original SEÑAL ORIGINAL (VOZ) 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 x 10 4 -2 0 2 Tradicional CHORUS TRADICIONAL 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 2.2 x 10 4 -2 0 2 samples CWAS CHORUS CWAS Figura 4.5. Formas de onda del efecto Chorus. (a) Señal original de la voz, (b) Efecto Chorus tradicional, (c) Efecto Chorus CWAS. En la Figura 4.6 se comparan los escalogramas correspondientes a la señal original y a las señales que se obtienen al aplicar los efectos Chorus tradicional y Chorus CWAS. Los escalogramas de la señal original y del Chorus tradicional son prácticamente iguales ya que, a efectos de frecuencia, existe una única voz (en el Chorus tradicional no hay cambio frecuencial de las voces). Sin embargo, el escalograma del Chorus CWAS presenta cambios significativos con respecto al original. Para apreciar mejor estos cambios se ha realizado un zoom de ambos escalogramas entre las frecuencias 300 y 900 Hz (Figura 4.7). En el escalograma correspondiente al efecto Chorus CWAS se observan perfectamente cada una de las voces del sonido resultante. a b c 72 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT El algoritmo CWAS implementado permite intervenir directamente sobre las frecuencias asociadas a ruidos y eliminar los parciales correspondientes a dichas frecuencias. Esto resulta muy útil para eliminar, por ejemplo, los ruidos producidos por la red eléctrica, que se producen a frecuencias de 50 o 60 Hz, según la región del mundo en la que se produzca la grabación. Como se puede apreciar en la Figura 4.13, el efecto CWAS es más respetuoso con la forma de onda original que el efecto tradicional. La forma de onda “Resta CWAS” (Figura 4.13(d)) representa la parte del sonido que se ha eliminado gracias al efecto Denoising CWAS. 0 0.5 1 1.5 2 2.5 x 10 4 -0.2 0 0.2 Original DENOISING (CLARINETE) 0 0.5 1 1.5 2 2.5 x 10 4 -1 0 1 Tradicional 0 0.5 1 1.5 2 2.5 x 10 4 -0.2 0 0.2 CWAS 0 0.5 1 1.5 2 2.5 x 10 4 -0.02 0 0.02 Samples Resta CWAS Figura 4.13. Formas de onda del efecto Denoising sobre el sonido de un clarinete. (a) Sonido original, (b) Efecto Denoising tradicional, (c) Efecto Denoising CWAS, (d) Resta entre el sonido original y el sonido resultante del efecto Denoising CWAS. En la Figura 4.14 se muestran los escalogramas de la señal original y los resultantes de los efectos Denoising tradicional y Denoising CWAS. Se puede apreciar como el efecto tradicional modifica la respuesta frecuencial del sonido original, mientras que el efecto CWAS es mucho más respetuoso con ella. DENOISING CWAS RESTA CWAS SONIDO ORIGINAL (CLARINETE) DENOISING TRADICIONAL a b c d Resultados 73 0 500 1000 1500 2000 2500 3000 0 5 x 10 -3 ESCALOGRAMAS DEL EFECTO DENOISING Original 0 500 1000 1500 2000 2500 3000 0 5 x 10 -3 Tradicional 0 500 1000 1500 2000 2500 3000 0 5 x 10 -3 Frecuencia (Hz) CWAS Figura 4.14. Escalogramas del efecto Denoising. (a) Sonido original, (b) Efecto Denoising tradicional, (c) Efecto Denoising CWAS. 4.7. PITCH-SHIFTING Una de las características del algoritmo CWAS es que permite obtener las fases y frecuencias instantáneas de cada uno de los parciales que forman parte de un sonido, de manera que, aunque se multipliquen las frecuencias instantáneas por un factor de transposición, el sonido seguirá conservando sus cualidades originales intactas. A diferencia del método CWAS, con el método tradicional no se obtienen datos tan exactos de las fases y frecuencias. Por tanto, si los datos de los que se parte para aplicar el Pitch-shifting no son precisos, el sonido resultante perderá calidad respecto al original. Esta pérdida de calidad será más evidente en un Pitch-shifting marcado, mientras que para un Pitch-shifting de unos pocos semitonos (2 o 3) el método tradicional se comporta aceptablemente bien. A continuación se analizan los resultados obtenidos al aplicar ambos métodos para un Pitch-shifting de una octava (12 semitonos) por debajo del sonido original de un clarinete. La Figura 4.15 representa las formas de onda del sonido original, del efecto Pitchshifting tradicional y del efecto Pitch-shifting CWAS. Comparando las Figuras 4.15(a) y 4.15(b) se observa que el efecto Pitch-shifting tradicional con un desplazamiento de una octava no respeta la forma de onda original. La forma de onda del sonido resultante queda totalmente deformada y, acústicamente, el sonido con ESCALOGRAMA DENOISING CWAS ESCALOGRAMA ORIGINAL (CLARINETE) a b c ESCALOGRAMA DENOISING TRADICIONAL 74 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT efecto suena distinto del sonido original. En cambio, el efecto Pitch-shifting CWAS (Figura 4.15(c)) respeta totalmente la silueta de la forma de onda original. 0 0.5 1 1.5 2 2.5 3 x 10 4 -0.2 -0.1 0 0.1 0.2 PITCH-SIFHT 1 OCTAVA (CLARINETE) Original 0 0.5 1 1.5 2 2.5 3 x 10 4 -0.2 -0.1 0 0.1 0.2 Tradicional 0 0.5 1 1.5 2 2.5 3 x 10 4 -0.2 -0.1 0 0.1 0.2 CWAS Samples Figura 4.15. Formas de onda del efecto Pitch-shifting aplicando un desplazamiento de una octava por debajo del sonido de un clarinete. (a) Sonido original, (b) Efecto Pitch-shifting tradicional, (c) Efecto Pitch-shifting CWAS. En la Figura 4.16 se muestran los escalogramas correspondientes a cada una de las formas de onda anteriores. Como se observa en dicha figura, aplicar un Pitch-shifting de 1 octava por debajo del sonido original equivale a reducir las frecuencias instantáneas a la mitad. Con ambos métodos (tradicional y CWAS) se obtiene el resultado esperado y cada pico del escalograma original aparece desplazado a la mitad de la frecuencia original (de 200 a 100 Hz en el caso del primer pico). Sin embargo, existe una diferencia entre ambos métodos: el escalograma del efecto CWAS respeta la proporción de los picos del escalograma original, mientras que el escalograma del efecto tradicional incluye algunos picos que no respetan dicha proporción (pico de color rojo en el escalograma). Esto último se traduce en que, acústicamente, destacan algunos parciales que no destacaban en el sonido original, de manera que con el método tradicional se modifican las propiedades tímbricas del instrumento. b c SONIDO ORIGINAL (CLARIN ETE) PITCH-SHIFTING TRADICIONAL PITCH-SHIFTING CWAS a Resultados 75 0 200 400 600 800 1000 1200 1400 1600 1800 2000 0 0.005 0.01 0.015 0.02 0.025 Original ESCALOGRAMAS DEL EFECTO PITCH-SHIFTING 0 100 200 300 400 500 600 700 800 900 1000 0 0.05 0.1 0.15 0.2 Tradicional 0 100 200 300 400 500 600 700 800 900 1000 0 0.005 0.01 0.015 0.02 0.025 Frecuencia (Hz) CWAS Figura 4.16. Escalogramas del efecto Pitch-shifting. (a) Sonido original, (b) Efecto Pitch-shifting tradicional, (c) Efecto Pitch-shifting CWAS. En resumen, puede decirse que el efecto Pitch-shifting CWAS ofrece unos resultados mucho más respetuosos con la señal original que el efecto tradicional. 4.8. PITCH-SHIFTING MEJORADO El objetivo del efecto Pitch-Shifting mejorado es que un sonido procedente de un instrumento o de una voz cantada pueda ser sometido a un Pitch-shift marcado (de al menos una octava por encima o debajo del sonido original) y mantenga, a la vez, las cualidades sonoras que tendría esa nota si se ejecutase realmente. Para analizar los resultados se ha elegido como base una nota Do5 ejecutada por un oboe y se ha transformado en un Do4 y en un Do6 con los efectos Pitch-shifting simple y Pitch-shifting mejorado, ambos en la versión CWAS. En la Figura 4.17 se muestran los resultados obtenidos cuando la nota base se transporta a la nota Do4. a b c ESCALOGRAMA ORIGINAL (CLARINETE) ESCALOGRAMA PITCH - SHIFTING TRADICIONAL ESCALOGRAMA PITCH - SHIFTING CWAS 76 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 0 0.01 0.02 0.03 0.04 ESCALOGRAMA REAL DO4 (OBOE) Real 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 0 0.005 0.01 0.015 0.02 Simple ESCALOGRAMA PITCH-SHIFTING SIMPLE 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 0 0.01 0.02 0.03 Frecuencia (Hz) Mejorado ESCALOGRAMA PITCH-SHIFTING MEJORADO Figura 4.17. Escalogramas de la nota Do4 ejecutada por un oboe. (a) Do4 real, (b) Do4 obtenido a partir de un Do5 mediante el efecto Pitch-shifting simple, (c) Do4 obtenido a partir de un Do5 mediante el efecto Pitch-shifting mejorado. Comparando las Figuras 4.17(a) y 4.17(b) puede observarse que el escalograma del efecto Pitch-shifting simple no coincide con el escalograma del sonido real, sino que son bastante diferentes. Prueba de ello es que uno de los parciales más importantes del sonido original, que se produce aproximadamente a 1250 Hz, es prácticamente inexistente en el escalograma del efecto Pitch-shifting simple. Sin embargo, si se comparan los escalogramas del sonido real y del efecto Pitchshifting mejorado (Figuras 4.17(a) y 4.17(c) respectivamente), se observa que hasta los 3500 Hz ambos escalogramas son prácticamente idénticos. A partir de los 3500 Hz aparecen algunas diferencias debidas a que los parciales que deberían realzarse en el sonido procedente del Pitch-shifting mejorado no existen en el sonido que se ha tomado como base. Aunque la nota real y la nota del efecto Pitch-shifting mejorado no son completamente iguales, ambas notas suenan mucho más parecidas que la que a b c Resultados 77 se obtiene del efecto Pitch-shifting simple y las diferencias acústicas entre ambas son casi inapreciables. En la Figura 4.18 se muestran los resultados obtenidos cuando la nota base se transporta a la nota Do6. De nuevo se observa como el escalograma correspondiente al Pitch-shifting simple es bastante diferente del original, mientras que el escalograma del Pitch-shifting mejorado es prácticamente idéntico al original. 0 1000 2000 3000 4000 5000 6000 0 0.005 0.01 0.015 0.02 ESCALOGRAMAS REAL DO6 (OBOE) Real 0 1000 2000 3000 4000 5000 6000 0 0.005 0.01 0.015 Simple ESCALOGRAMA PITCH-SHIFTING SIMPLE 0 1000 2000 3000 4000 5000 6000 0 0.02 0.04 0.06 0.08 Frecuencia (Hz) Mejorado ESCALOGRAMA PITCH-SHIFTING MEJORADO Figura 4.18. Escalogramas de la nota Do6 ejecutada por un oboe. (a) Do6 real, (b) Do6 obtenido a partir de un Do5 mediante el efecto Pitch-shifting simple, (c) Do6 obtenido a partir de un Do5 mediante el efecto Pitch-shifting mejorado. Los resultados que ofrece el efecto Pitch-shifting mejorado son muy satisfactorios ya que acústicamente se consiguen sonidos muy similares a las notas reales. 4.9. SUSTAIN El objetivo del efecto Sustain es encontrar la región estable de un sonido (región sustain) y alargar la duración de dicho tramo según las preferencias del usuario. Este efecto ha sido implementado por primera vez en este proyecto, por lo que no ha sido posible realizar una comparación con la implementación tradicional. a c b 78 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Para que el efecto Sustain funcione correctamente, es necesario que el perfil de volumen del sonido original se corresponda con la envolvente ADSR. En caso contrario, es posible que el algoritmo CWAS planteado no localice de forma correcta la región sustain del sonido. En la Figura 4.19(a) se muestra la forma de onda del sonido original (nota ejecutada por una guitarra). Como se puede observar, debido a las particularidades del sonido que produce una guitarra, resulta complicado identificar la envolvente ADSR del sonido teniendo en cuenta únicamente la forma de onda del sonido. Sin embargo, observando la Figura 4.19(b), que representa la suma de los módulos de todos los parciales que forman la nota, se localizan fácilmente las fases attack, decay, sustain (señalada en color rojo) y release del sonido. 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.2 -0.1 0 0.1 0.2 Original SONIDO ORIGINAL (GUITARRA) 0 2000 4000 6000 8000 10000 12000 14000 16000 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 Samples Suma SUMA MÓDULOS ORIGINAL Figura 4.19. Sonido original de una nota ejecutada por una guitarra. (a) Forma de onda del sonido original, (b) Suma de los módulos de todos los parciales que forman el sonido original. El algoritmo CWAS desarrollado en este proyecto trabaja parcial por parcial. En cada uno de ellos localiza un tramo de 1000 samples dentro de la región sustain que sea lo más estable posible (que sus valores varíen lo mínimo posible). En la Figura 4.20 se puede observar como el algoritmo cumple perfectamente con su función, localizando y alargando la región sustain del sonido. Cada tramo estable de 1000 samples se ha repetido un total de 30 veces y el resultado es un aumento de 30000 samples en la duración total del sonido original. a b Resultados 79 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 x 10 4 -0.2 -0.1 0 0.1 0.2 SONIDO SUSTAIN (GUITARRA) Sustain 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 x 10 4 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 SUMA MÓDULOS SUSTAIN Samples Suma Figura 4.20. Sonido resultante de aplicar el efecto Sustain a una nota ejecutada por una guitarra. (a) Forma de onda del sonido, (b) Suma de los módulos de todos los parciales que forman el sonido. Comparando las Figuras 4.19(b) y 4.20(b) puede observarse como las regiones attack, decay y release no se ven alteradas por la aplicación del efecto y mantienen tanto su extensión temporal como su perfil. Sin embargo, al producirse un gran aumento de la duración de la región sustain, dichas regiones pierden importancia en relación al perfil del sonido. Los resultados acústicos conseguidos con el algoritmo del efecto Sustain CWAS son muy satisfactorios y corroboran todos los aspectos señalados anteriormente en el análisis gráfico. 4.10. VOCODER SIMPLE La finalidad del efecto Vocoder simple es aplicar la envolvente de volumen de un sonido de control sobre un sonido base. El efecto Vocoder simple ha sido implementado en este proyecto a partir del algoritmo CWAS. Puesto que se desconoce el algoritmo para su implementación por los métodos tradicionales, no ha sido posible realizar una comparación directa entre ambos métodos (realmente existe una definición teórica sobre la implementación tradicional del efecto, pero en el libro DAFX consultado no aparece el script de Matlab correspondiente). a b 80 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Como se puede observar en la Figura 4.21, la forma de onda del sonido resultante del efecto Vocoder simple es una combinación de las formas de onda de los sonidos base y de control, como si sobre la forma de onda del sonido base se recortara la forma de onda del sonido de control. Al aplicar el efecto directamente sobre los módulos de los parciales, se consigue respetar al máximo el contenido frecuencial del sonido base. 0 5000 10000 15000 -0.3 -0.2 -0.1 0 0.1 0.2 Sonido base (Guitarra) VOCODER SIMPLE 0 5000 10000 15000 -1 -0.5 0 0.5 1 Sonido control (Voz) 0 5000 10000 15000 -0.15 -0.1 -0.05 0 0.05 0.1 Samples Vocoder (Guitarra controlada por voz) Figura 4.21. Formas de onda del efecto Vocoder simple. (a) Sonido base ejecutado por una guitarra, (b) Sonido de control consistente en una voz humana, (c) Efecto Vocoder simple CWAS. 4.11. VOCODER MEJORADO Como ya se comentó en el capítulo anterior de la memoria, el efecto que se consigue con el Vocoder mejorado, siempre que el sonido base sea una única nota, es muy similar al efecto Robotización. El resultado es una voz que adquiere las cualidades tímbricas y el tono de una nota ejecutada por un instrumento. A continuación se analizan los resultados obtenidos con el efecto Vocoder mejorado implementado a través del algoritmo CWAS. Como se puede observar en la Figura 4.22, las formas de onda del sonido de control (voz) y del sonido resultante son prácticamente iguales. Por otro lado, a b c SONIDO BASE (GUITARRA) SONIDO DE CONTROL (VOZ) VOCODER SIMPLE CWAS Resultados 81 comparando los escalogramas (Figura 4.23) se comprueba que la respuesta frecuencial del sonido resultante es muy similar a la del sonido base. Los armónicos del sonido son los mismos, aunque al modificar los módulos cambia ligeramente la energía de algunos de ellos. 0 0.5 1 1.5 2 2.5 x 10 4 -0.4 -0.2 0 0.2 0.4 0.6 VOCODER COMPLEJO Sonido base (Trompa) 0 0.5 1 1.5 2 2.5 x 10 4 -1 -0.5 0 0.5 1 Sonido control (Voz) 0 0.5 1 1.5 2 2.5 x 10 4 -0.4 -0.2 0 0.2 0.4 Samples Vocoder complejo (Voz con sonido de trompa) Figura 4.22. Formas de onda del efecto Vocoder mejorado. (a) Sonido base ejecutado por una trompa, (b) Sonido de control consistente en una voz humana, (c) Efecto Vocoder mejorado CWAS. a b c SONIDO BASE (TROMPA) Vocoder mejorado (vo z con sonido de trompa) VOCODER MEJORADO CWAS SONIDO CONTROL (VOZ) Sonido de control (voz) Sonido base (trompa) 88 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 0 1 2 3 4 5 6 7 8 9 10 x 10 4 -1 0 1 Original REVERB 0 1 2 3 4 5 6 7 8 9 10 x 10 4 -1 0 1 Tradicional 0 1 2 3 4 5 6 7 8 9 10 x 10 4 -1 0 1 Samples CWAS Figura 4.29. Formas de onda del efecto Reverb. (a) Sonido original, (b) Efecto Reverb tradicional, (c) Efecto Reverb CWAS. 4.16. TRÉMOLO A diferencia de lo que ocurre con otros efectos, la implementación del efecto Trémolo a partir de ambos métodos (algoritmo CWAS y método tradicional) ha dado lugar a los mismos resultados. Observando la Figura 4.30 no se aprecia ninguna diferencia significativa entre las formas de onda de los sonidos resultantes de los efectos Trémolo CWAS y Trémolo tradicional. Para comprobar que estas diferencias son prácticamente inexistentes, se ha realizado la resta de las dos formas de onda correspondientes a los sonidos resultantes de los efectos. Como se puede observar en la Figura 4.31, las diferencias son mínimas y pueden considerarse despreciables. a b c SONIDO ORIGINAL (FRAGMENTO DE CANCIÓN) REVERB TRADICIONAL REVERB CWAS Resultados 89 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.5 0 0.5 TREMOLO (GUITARRA) Original 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.2 0 0.2 Tradicional 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.2 0 0.2 CWAS Samples Figura 4.30. Formas de onda del efecto Trémolo aplicado sobre el sonido de una guitarra. (a) Sonido original, (b) Efecto Trémolo tradicional (c) Efecto Trémolo CWAS. 0 2000 4000 6000 8000 10000 12000 14000 16000 -10 -5 0 5x 10 -3 RESTA Samples Figura 4.31. Resta de las formas de onda correspondientes a los efectos Trémolo tradicional y Trémolo CWAS. De igual manera, si se comparan los escalogramas correspondientes a los efectos Trémolo tradicional (Figura 4.32(b)) y Trémolo CWAS (Figura 4.32.(c)) puede observarse que también coinciden. En cambio, comparando estos escalogramas con el del sonido original se observan algunas diferencias. Por lo tanto, puede afirmarse que, además de modificar la amplitud del sonido, el efecto Trémolo conlleva un ligero cambio en la respuesta frecuencial del sonido original. SONIDO ORIGINAL (GUITARRA) EFECTO TRÉMOLO TRADIC IONAL EFECTO TREMOLO CWAS a b c 90 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 0 100 200 300 400 500 600 700 800 900 1000 0 0.01 0.02 0.03 0.04 Original ESCALOGRAMAS TREMOLO 0 100 200 300 400 500 600 700 800 900 1000 0 0.01 0.02 0.03 Tradicional 0 100 200 300 400 500 600 700 800 900 1000 0 0.01 0.02 0.03 Frecuencia (Hz) CWAS Figura 4.32. Escalogramas del efecto Trémolo. (a) Sonido original, (b) Efecto Trémolo tradicional, (c) Efecto Trémolo CWAS. 4.17. OVERDRIVE Y DISTORSIÓN CON SIMULACIÓN VALVULAR Para concluir con el apartado de resultados del proyecto se van a analizar los efectos Overdrive y Distorsión, teniendo en cuenta que la implementación de dichos efectos con el algoritmo CWAS ha ido acompañada de una simulación de la respuesta con un amplificador de válvulas de vacío. Overdrive Comparando las formas de onda de los sonidos (Figura 4.33) se puede observar que, aunque los efectos Overdrive tradicional y Overdrive con simulación valvular guardan algunas similitudes, existen diferencias ya visibles en la forma de onda. ESCALOGRAMA ORIGINAL ESCALOGRAMA TREMOLO TRADICIONAL ESCALOGRAMA TREMOLO CWAS a c b Resultados 91 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.4 -0.2 0 0.2 0.4 Original OVERDRIVE (GUITARRA) 0 2000 4000 6000 8000 10000 12000 14000 16000 -1 -0.5 0 0.5 1 Overdrive tradicional 0 2000 4000 6000 8000 10000 12000 14000 16000 -1 -0.5 0 0.5 1 Overdrive valvular Samples Figura 4.33. Fornas de onda del efecto Overdrive. (a) Sonido original, (b) Efecto Overdrive tradicional, (c) Efecto Overdrive CWAS con simulación valvular. Para profundizar más en estas diferencias entre las formas de onda hay que analizar también los escalogramas de cada uno de los sonidos. Como se puede observar en la Figura 4.34(a), en el sonido original están bastante realzados los armónicos 2 y 3 del sonido (son los parciales más importantes en energía junto al primer armónico). Tras la aplicación del efecto Overdrive tradicional (Figura 4.34(b)), las proporciones de energía de estos armónicos se mantienen y el escalograma resultante tiene la misma forma que el escalograma original, con la única diferencia de que los picos tienen mayor energía debido al aumento que se produce en la amplitud de la onda. Sin embargo, si se analizan los resultados del escalograma correspondiente al efecto Overdrive CWAS (Figura 4.34(c)), se observa un ligero aumento en los armónicos 2 y 3, así como un aumento todavía mayor en el armónico 5, que queda totalmente realzado, mientras que en el sonido original es un armónico con menor presencia energética. SONIDO ORIGINAL (GUITARRA) OVERDRIVE TRADICIONAL OVERDRIVE CWAS a b c 92 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT Figura 4.34. Escalogramas del efecto Overdrive. (a) Sonido original, (b) Efecto Overdrive tradicional, (c) Efecto Overdrive CWAS con simulación valvular. Distorsión Igual que ocurre con el efecto Overdrive, la aplicación del efecto Distorsión también produce cambios en la forma de onda del sonido original (Figura 4.35). Sin embargo, comparando las formas de onda correspondientes a los efectos Distorsión tradicional y Distorsión CWAS, las diferencias entre ambas son mínimas y, a simple vista, el resultado podría parecer el mismo. ESCALOGRAMA ORIGINAL (GUITARRA) ESCALOGRAMA OVERDRIVE TRADICIONAL ESCALOGRAM A OVERDRIVE CWAS a c b Resultados 93 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.5 0 0.5 DISTORSIÓN (GUITARRA) Original 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.5 0 0.5 Distorsión tradicional 0 2000 4000 6000 8000 10000 12000 14000 16000 -0.5 0 0.5 Distorsión valvular Samples Figura 4.35. Formas de onda del efecto Distorsión. (a) Sonido original, (b) Efecto Distorsión tradicional, (c) Efecto Distorsión CWAS con simulación valvular. Por otro lado, como se puede observar en la Figura 4.36, el efecto Distorsión realza los armónicos 2, 3 y 5 del sonido, siendo este último el más realzado con respecto a sus condiciones originales cuando se aplica el efecto Distorsión CWAS. Otra de las características del efecto Distorsión es la adición de armónicos que no existían en el sonido original (de frecuencias superiores a 500 Hz) como consecuencia del importante cambio sufrido por la forma de onda del sonido. En el efecto Overdrive, en cambio, este incremento de armónicos no se producía ya que la naturaleza del efecto es más respetuosa con la forma de onda original. SONIDO ORIGINAL DISTORSION TRADICIONAL DISTORSION CWAS a b c 94 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT 0 500 1000 1500 0 0.01 0.02 0.03 0.04 ESCALOGRAMAS DISTORSIÓN Original 0 500 1000 1500 0 0.02 0.04 0.06 0.08 Tradicional 0 500 1000 1500 0 0.02 0.04 0.06 0.08 Frecuencia (Hz) CWAS Figura 4.36. Escalogramas del efecto Distorsión. (a) Sonido original, (b) Efecto Distorsión tradicional, c) Efecto Distorsión CWAS con simulación valvular. Como se acaba de comprobar, la simulación valvular funciona a la perfección en ambos efectos (Overdrive y Distorsión), realzando los armónicos 2, 3 y 5 del sonido. De esta manera se produce un sonido más agradable y musical. ESCALOGRAMA ORIGINAL ESCALOGRAMA DISTORSION TRADICIONAL ESCALOGRAMA DISTORSION CWAS a b c Conclusiones 95 5. CONCLUSIONES El presente proyecto fin de carrera ha consistido en la programación alternativa de varios efectos musicales. Para ello se ha utilizado un método de análisis y síntesis de señales de audio desarrollado en la Universidad de Zaragoza, denominado Algoritmo de Síntesis Aditiva por Wavelets Complejas (CWAS por sus siglas en inglés). Con el objetivo de evaluar las posibles mejoras que puede introducir la aplicación del CWAS en la programación de efectos musicales, se ha realizado una comparación de los resultados obtenidos con aquéllos resultantes de la programación tradicional, basados en su mayoría en el uso de la transformada corta de Fourier. La implementación basada en el algoritmo CWAS de la mayoría de los efectos estudiados ha ofrecido unos resultados acústicos con una calidad mucho mejor que la que se consigue en la implementación tradicional de los mismos efectos. En ningún caso se ha detectado que el sonido resultante de un efecto implementado por el método CWAS suene peor que su correspondiente efecto tradicional. Sin embargo, de forma excepcional, en alguno de los efectos como el Vibrato o el Trémolo, se han obtenido resultados muy similares con ambos métodos, sin conseguirse una mejora significativa de la calidad del sonido resultante, de manera que resulta difícil diferenciar entre los sonidos correspondientes a uno y otro método. La ventaja de utilizar el método CWAS en la implementación de este tipo de efectos sencillos, en los que no se observan grandes diferencias con respecto a la implementación tradicional, es la posibilidad de introducir en ellos ciertas variaciones. Por ejemplo, con la implementación tradicional del efecto Chorus no puede conseguirse que, a la vez que se duplica la voz original, cambien las características tonales y frecuenciales de la voz repetida para dar una mayor sensación de realismo. Conseguir esta variación en la implementación tradicional supondría trabajar con un algoritmo mucho más complejo que el algoritmo CWAS y, lo que es peor, el resultado acústico sería peor que el obtenido a partir del método CWAS. Por tanto, el método CWAS puede suponer una evolución para algunos efectos tradicionales, consiguiendo efectos mucho más complejos y musicales. También cabe destacar que, bajo el punto de vista del autor del proyecto, otro de los puntos fuertes de este método de análisis del sonido es que permite la clonación de un sonido real con total exactitud, de manera que se puede obtener un sonido sintético indistinguible del original. Esto puede resultar muy interesante para su aplicación, principalmente, en instrumentos como los sintetizadores, que buscan emular el sonido de los instrumentos reales con el mayor grado de acierto posible. En la actualidad estos instrumentos se acercan más o menos al sonido del instrumento al que pretenden imitar, pero es evidente que no suenan exactamente igual. 96 Efectos musicales digitales. Programación alternativa mediante el uso de la CCWT En definitiva, en un campo tan exigente como el del audio profesional, en el que se busca obtener siempre la mejor calidad sonara posible, el algoritmo CWAS brinda unas posibilidades nunca vistas hasta ahora. Los resultados obtenidos en este proyecto invitan a pensar en la posibilidad de que dentro de unos años el análisis de las señales de audio mediante la CWAS pueda llegar a sustituir a los métodos actuales basados en el uso de las STFT. Referencias bibliográficas 97 6. REFERENCIAS BIBLIOGRÁFICAS [1]. Javier García de Jalón, José Ignacio Rodríguez, Jesús Vidal, Aprenda Matlab 7.0 como si estuviera en primero, Escuela Técnica Superior de Ingenieros Industriales (2005). [2]. José Ramón Beltrán, Jesús Ponce de León, Estimation of the instantaneous amplitude and the instantaneous frequency of audio signals using complex wavelets, Signal Processing 90 (2010) 3093–3109. [3]. Udo Zölzer, DAFX- Digital Audio Effects, Wiley (2002). [4]. Sergi Jordà Puig, Audio digital y MIDI, Guías Monográficas Anaya Multimedia, Madrid (1997). [5]. Roads, C. The Computer Music Tutorial, MIT Press (1996). [6]. Página web: www.sonidoyaudio.com. Última fecha de consulta: 01/08/2011. [7]. Kevin O’Connor, The ultimate Tone, London Power Press (1994).