You are on page 1of 264

RODRIGO F.

CADIZ

A LA MUSICA INTRODUCCION COMPUTACIONAL

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 0

Pr ologo

La era computacional y la m usica estuvieron por mucho tiempo distanciadas debido a la gran cantidad de espacio de memoria que la m usica requiere para ser almacenada y procesada. Con el aumento de las capacidades de memoria de los computadores, la m usica comenz o r apidamente un desarrollo vertiginoso transform andose, hoy en d a, junto al mundo audiovisual en las actividades predilectas en el uso del computador. En efecto, en las u ltimas d ecadas son m ultiples los softwares, las herramientas y las investigaciones que giran en torno a la actividad musical tanto en los terrenos del registro sonoro, como en el ambito creativo y en el area de la reproducci on. Tanto profesionales como acionados recurren al computador para manipular informaci on musical pero siempre con la sensaci on de que aprovechan s olo un m nimo porcentaje de las capacidades de los softwares o herramientas disponibles. El libro que tiene en sus manos constituye el m as importante aporte en lengua espa nola para acercar a los interesados a la tecnolog a digital disponible. Desde la terminolog a b asica, pasando por los principios ac usticos del sonido hasta la psicoac ustica, desde la noci on de audio digital, su procesamiento hasta su aplicaci on en la m usica electroac ustica constituyen el contenido de esta publicaci on dirigida a m usicos, ingenieros, f sicos y amantes de la tecnolog a aplicada a la m usica. El sonido es la materia prima, dispuesta en el tiempo, de la m usica. Por lo tanto, su estudio y conocimiento por parte todo aquel que se interesa en ella, es fundamental. La dicultad de conseguir literatura en torno al sonido y sobre todo en el ambito digital hac a dif cil el acceso a la informaci on necesaria, general y preferentemente en ingl es, para todos los usuarios de tecnolog a aplicada al mundo musical. i

ii

CAP ITULO 0. PROLOGO

Con este libro, el mundo t ecnico y conceptual del sonido digital queda al alcance de todos de una manera ordenada y sistem atica cubriendo en detalle cada uno de los diversos aspectos tratados sin perder de vista, en ning un momento, las nociones b asicas que permiten la comprensi on profunda de los fen omenos y posibilidades de la era digital. Su autor, Rodrigo C adiz, en su doble condici on de ingeniero y compositor ha puesto a nuestra disposici on una informaci on amplia, de enfoques m ultiples que recorren lo t ecnico esencial hasta lo art stico creativo. De este modo, esta publicaci on se transforma en lectura obligada para m usicos profesionales o no, interesados en la vinculaci on de la tecnolog a actual y la m as antigua y misteriosa de las artes: la m usica. Inefable, inescrutable, inenarrable, m agica y misteriosa arte que, nalmente ha sido atrapada, registrada y reproducida con la mayor de las delidades por las ciencias y tecnolog as del sonido digital. Aceptemos esta invitaci on a conocer este nuevo mundo de la mano de un autor atento y multidisciplinario que nos permite, en nuestra propia lengua, acercarnos y resolver nuestras inquietudes en torno a la m usica y la computaci on. Alejandro Guarello Santiago de Chile, Junio de 2008

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 0

Prefacio

Los computadores sin duda han cambiado nuestra forma de relacionarnos con el mundo externo. Espec camente en el ambito de la m usica, los computadores permiten explorar nuevas posibilidades sonoras, crear nuevas formas de composici on y nuevas aproximaciones a la interpretaci on musical. Las posibilidades musicales que nos ofrece la tecnolog a computacional son pr acticamente innitas. El prop osito de este libro es introducir a estudiantes de m usica, f sica o ingenier a, artistas, int erpretes y compositores al extenso mundo de la m usica computacional y electroac ustica. Originalmente, este libro est a pensado como un texto de apoyo para un curso b asico de m usica computacional de uno o dos semestres de duraci on, pero perfectamente puede utilizarse fuera de un curso formal. El libro est a divido en siete cap tulos, cada uno de los cuales se enfoca a un tema espec co. El primer cap tulo expone los conceptos b asicos de la teor a de se nales y sistemas, incluyendo conceptos claves como la representaci on en frecuencia y la transformada de Fourier, adem as de introducir algunos conceptos matem aticos imposibles de evitar al adentrarse en este intenso mundo. Dado que un computador permite dise nar sonidos con un m aximo nivel de detalle y precisi on, es muy relevante para esta disciplina el conocer en profundidad el fen omeno sonoro. No s olo es importante estudiar como se comporta el sonido en el mundo f sico, sino tambi en como es percibido en la cabeza de cada auditor. Esto se divide en dos cap tulos: el segundo cap tulo estudia el fen omeno del sonido en su aspecto f sico y el tercero desde el punto de vista perceptual. El computador es por naturaleza digital, lo que hace necesario conocer las propiedades de las se nales de audio digitales que el computador es capaz de iii

iv

CAP ITULO 0. PREFACIO

generar y manipular. Esto se aborda en el cap tulo cuarto, en conjunto con el estudio del computador y su uso en sistemas de audio. El quinto cap tulo se enfoca en la s ntesis digital de sonidos, exponiendo sus fundamentos, formas de clasicaci on y los principales m etodos de s ntesis utilizados. En el sexto cap tulo se estudia el procesamiento digital de audio, con un especial enfasis en la teor a e implementaci on de los ltros digitales. Para nalizar, se incluye un cap tulo, el s eptimo y u ltimo, en el cual se presentan las principales bases perceptuales, composicionales y anal ticas de la llamada m usica electroac ustica, la cual en la actualidad se realiza en su gran mayor a gracias a la tecnolog a computacional. Se incluyen tambi en varios anexos con ejemplos de c odigo realizados en SuperCollider, una de las aplicaciones para s ntesis y procesamiento digital de sonidos m as utilizadas, poderosas y vers atiles disponibles en la actualidad. Estos ejemplos complementan las materias presentadas en los distintos cap tulos y permiten llevar a la pr actica de forma inmediata mucho de los conceptos presentados en el libro. Este libro tuvo sus or genes en una serie de apuntes parcialmente nanciados por la Fundaci on Andes, a trav es de su Beca de Creaci on e Investigaci on Art stica, en el a no 2000. La actual versi on ha sido posible gracias al apoyo del Fondo de Desarrollo de la Docencia (FONDEDOC), de la Vicerrector a Acad emica de la Ponticia Universidad Cat olica de Chile. Quisiera agraceder el aporte de mi ayudante Jorge Forero, qui en realiz o muchas de las tablas y guras presentes en el libro y del Dr. Gary Kendall, quien fuera mi profesor gu a y mentor en muchas de las materias tratadas en este libro, y en cuyos apuntes se basan muchos de las guras y ejemplos de c odigo SuperCollider que se pueden encontrar en el libro. Tambi en quisiera agradecer a Alejandro Guarello, por su apoyo constante en este proyecto. Rodrigo F. C adiz, Ph.D. Santiago de Chile, Abril de 2008

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Indice general

Pr ologo Prefacio 1. Se nales y sistemas 1.1. Se nales . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.1. Naturaleza de las se nales . . . . . . . . . . . . 1.1.2. Sinusoides . . . . . . . . . . . . . . . . . . . . . 1.1.3. Exponenciales . . . . . . . . . . . . . . . . . . . 1.1.4. Relaci on entre sinusoides y exponenciales . . . 1.2. Series y transformada de Fourier . . . . . . . . . . . . 1.2.1. Series de Fourier . . . . . . . . . . . . . . . . . 1.2.2. Transformada de Fourier . . . . . . . . . . . . . 1.2.3. DFT y FFT . . . . . . . . . . . . . . . . . . . . 1.2.4. Diagramas en la frecuencia . . . . . . . . . . . 1.3. Otras se nales importantes . . . . . . . . . . . . . . . . 1.4. Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. Clasicaci on . . . . . . . . . . . . . . . . . . . 1.4.2. Respuesta al impulso y respuesta de frecuencia 2. El sonido 2.1. Ondas de sonido . . . 2.2. Fuentes sonoras . . . . 2.3. Medici on del sonido . 2.4. Amplitud e intensidad

I III

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

. . . . . . . . . . . . . .

1 1 2 5 7 9 11 11 13 14 14 15 17 18 19 21 21 23 23 24

. . . .

. . . .

. . . .

. . . . v

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

vi 2.5. 2.6. 2.7. 2.8. Frecuencia . . . . . . . Fase . . . . . . . . . . Forma de onda . . . . Representaci on gr aca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 27 27 28 31 31 31 32 32 32 33 36 39 39 40 41 41 43 45 46 48 53 54 57 59 63 63 66 68 72 73 75 76 78 81 82

3. Psicoac ustica 3.1. Conceptos b asicos . . . . . . . . . . . . 3.1.1. M nima diferencia notoria . . . . 3.1.2. Ley de Weber . . . . . . . . . . . 3.1.3. Modos de percepci on . . . . . . . 3.2. El sistema auditivo humano . . . . . . . 3.2.1. El o do . . . . . . . . . . . . . . 3.2.2. Membrana basilar . . . . . . . . 3.2.3. C elulas auditivas . . . . . . . . . 3.2.4. El cerebro auditivo . . . . . . . . 3.3. Bandas cr ticas y enmascaramiento . . . 3.3.1. Escala de Barks y ERB . . . . . 3.3.2. Enmascaramiento . . . . . . . . . 3.3.3. Midiendo la banda cr tica . . . . 3.4. Intensidad perceptual (loudness) . . . . 3.4.1. Escala de fonos y escala de sonos 3.5. Altura (pitch) . . . . . . . . . . . . . . . 3.5.1. Escala de mels . . . . . . . . . . 3.6. Timbre . . . . . . . . . . . . . . . . . . . 3.7. Consonancia y disonancia . . . . . . . . 3.8. Codicaci on perceptual de audio . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

4. Audio digital 4.1. An alogo versus digital . . . . . . . . . . . 4.1.1. Muestreo . . . . . . . . . . . . . . 4.1.2. Cuantizaci on . . . . . . . . . . . . 4.2. Sistema binario . . . . . . . . . . . . . . . 4.3. El computador . . . . . . . . . . . . . . . 4.4. Programaci on de computadores . . . . . . 4.5. Sistema operativo y sistema de archivos . 4.6. Uso del computador en sistemas de audio 4.7. Software para m usica computacional . . . 4.8. MIDI . . . . . . . . . . . . . . . . . . . . . CADIZ, R.

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

A LA MUSICA INTRODUCCION COMPUTACIONAL

INDICE GENERAL 5. S ntesis digital de sonidos 5.1. Clasicaci on . . . . . . . . . . . . . . . 5.2. Evaluaci on . . . . . . . . . . . . . . . 5.3. Fundamentos . . . . . . . . . . . . . . 5.3.1. Osciladores . . . . . . . . . . . 5.3.2. Tabla de ondas . . . . . . . . . 5.3.3. Envolventes . . . . . . . . . . . 5.4. S ntesis aditiva . . . . . . . . . . . . . 5.5. S ntesis substractiva . . . . . . . . . . 5.6. Modulaci on . . . . . . . . . . . . . . . 5.6.1. Modulaci on Ring . . . . . . . . 5.6.2. S ntesis AM . . . . . . . . . . . 5.6.3. S ntesis FM . . . . . . . . . . . 5.7. S ntesis granular . . . . . . . . . . . . 5.8. Modelos f sicos . . . . . . . . . . . . . 5.9. Modelos espectrales . . . . . . . . . . 5.9.1. Phase vocoder . . . . . . . . . 5.9.2. S ntesis de formantes . . . . . . 5.10. Modelos basados en part culas . . . . . 5.11. Modelos basados en din amica no lineal 5.12. S ntesis basada en complejidad . . . . 6. Procesamiento digital de audio 6.1. Filtros digitales . . . . . . . . . . . 6.1.1. Ecuaci on de diferencias . . 6.1.2. Funci on de transferencia . . 6.1.3. Respuesta de frecuencia . . 6.1.4. Respuesta de fase . . . . . . 6.1.5. Diagramas de polos y ceros 6.1.6. Filtros de primer orden . . 6.1.7. Filtros de segundo orden . . 6.2. Filtros FIR . . . . . . . . . . . . . 6.2.1. Dise no de ltros FIR . . . . 6.3. Filtros IIR . . . . . . . . . . . . . . 6.3.1. Dise no de ltros IIR . . . . 6.3.2. Transformada Z bilinear . . 6.4. Filtros bi-cuadr aticos . . . . . . . . 6.5. Filtros comb . . . . . . . . . . . . . 6.5.1. Phasing y anging . . . . . 6.6. Ecualizador . . . . . . . . . . . . . CADIZ, R.

vii 85 85 89 91 91 92 93 95 96 98 99 99 101 102 103 104 104 105 106 106 107 109 109 110 111 112 113 116 118 118 120 121 121 122 123 124 124 126 126

. . . . . . . . . . . . . . . . . . y .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . caos . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . .

A LA MUSICA INTRODUCCION COMPUTACIONAL

viii 6.7. Compresi on . . . . . . . . . . . 6.8. Reverberaci on . . . . . . . . . . 6.8.1. Reverberaci on articial 6.9. Otros efectos . . . . . . . . . . 6.9.1. Chorus . . . . . . . . . 6.9.2. Wah wah . . . . . . . . 6.9.3. Delay . . . . . . . . . . 6.10. Procesador de efectos gen erico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

INDICE GENERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 129 131 132 132 132 132 132

7. La m usica electroac ustica 7.1. Caracter sticas de la m usica electroac ustica . . . . . . . 7.1.1. Material sonoro . . . . . . . . . . . . . . . . . . . 7.1.2. Ausencia de notaci on y representaci on abstracta 7.1.3. Composici on y an alisis . . . . . . . . . . . . . . . 7.1.4. Composici on e improvisaci on . . . . . . . . . . . 7.1.5. M usica electroac ustica y su signicado . . . . . . 7.2. Estrategias auditivas . . . . . . . . . . . . . . . . . . . . 7.2.1. Audici on musical . . . . . . . . . . . . . . . . . . 7.2.2. Modos Schaeerianos de audici on . . . . . . . . . 7.2.3. Audici on de fondo . . . . . . . . . . . . . . . . . 7.2.4. Audici on reducida . . . . . . . . . . . . . . . . . 7.2.5. Modos auditivos de Smalley . . . . . . . . . . . . 7.2.6. Conductas auditivas de Delalande . . . . . . . . 7.3. Percepci on de la m usica electroac ustica . . . . . . . . . 7.3.1. Enfoque ecol ogico . . . . . . . . . . . . . . . . . 7.3.2. Paisajes sonoros . . . . . . . . . . . . . . . . . . 7.3.3. Autocentricidad y alocentricidad . . . . . . . . . 7.3.4. Sustituci on . . . . . . . . . . . . . . . . . . . . . 7.4. Estrategias anal ticas . . . . . . . . . . . . . . . . . . . . 7.4.1. Objetos sonoros . . . . . . . . . . . . . . . . . . . 7.4.2. Espectromorfolog a . . . . . . . . . . . . . . . . . 7.4.3. Arquetipos morfol ogicos, modelos y cadenas . . . 7.4.4. An alisis basado en conductas auditivas . . . . . . 7.4.5. El sonograma . . . . . . . . . . . . . . . . . . . . 7.4.6. An alisis narrativo . . . . . . . . . . . . . . . . . . 7.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . CADIZ, R.

. . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . .

135 . 136 . 136 . 138 . 139 . 140 . 140 . 141 . 142 . 142 . 143 . 143 . 143 . 144 . 145 . 145 . 146 . 147 . 148 . 148 . 150 . 150 . 151 . 152 . 153 . 153 . 154

A LA MUSICA INTRODUCCION COMPUTACIONAL

INDICE GENERAL A. Ejemplos en SuperCollider A.1. SuperCollider: introducci on . . . . . . . . . . A.2. SuperCollider: el lenguaje . . . . . . . . . . . A.3. SuperCollider: Unidades generadoras . . . . . A.4. SuperCollider: Envolventes . . . . . . . . . . A.5. SuperCollider: SynthDefs . . . . . . . . . . . A.6. SuperCollider: Modulaci on . . . . . . . . . . . A.7. SuperCollider: S ntesis granular . . . . . . . . A.8. SuperCollider: Patrones . . . . . . . . . . . . A.9. SuperCollider: Filtros bi-cuadr aticos . . . . . A.10.SuperCollider: Compresi on . . . . . . . . . . A.11.SuperCollider: Reverberaci on . . . . . . . . . A.12.SuperCollider: Procesador de efectos gen erico

ix 157 157 160 167 175 180 185 200 201 207 216 225 238

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

INDICE GENERAL

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Indice de guras

1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 1.7. 1.8. 1.9.

Ejemplo gr aco de una se nal . . . . . . . . . . Ejemplos de se nales continuas y discretas . . . Ejemplos de ondas peri odica y aperi odica . . . Funciones seno y coseno . . . . . . . . . . . . . Funci on exponencial . . . . . . . . . . . . . . . El plano complejo . . . . . . . . . . . . . . . . Suma de se nales arm onicas . . . . . . . . . . . La serie arm onica . . . . . . . . . . . . . . . . . Representaci on en el tiempo y en la frecuencia se nales . . . . . . . . . . . . . . . . . . . . . . . 1.10. Otras se nales importantes . . . . . . . . . . . . 1.11. Diagrama de un sistema . . . . . . . . . . . . . 1.12. Respuesta al impulso . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . de . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . distintas . . . . . . . . . . . . . . . . . . . . . . . .

2 3 5 6 8 10 12 13 16 17 18 19 22 25 34 35 36 37 37 38 39

2.1. Rarefacci on y compresi on en una onda sonora . . . . . . . . . 2.2. Intensidad vs distancia . . . . . . . . . . . . . . . . . . . . . . 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. El o do humano . . . . . . . . . . . . . . . . . . . . . Respuesta de frecuencia del canal auditivo . . . . . . Secci on del o do interno . . . . . . . . . . . . . . . . Secci on perpendicular de la c oclea . . . . . . . . . . La membrana basilar desenrrollada . . . . . . . . . . Patrones de vibraci on en la membrana basilar . . . . Esquema del organo de corti, que contiene las c elulas vas o ciliares . . . . . . . . . . . . . . . . . . . . . . xi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . auditi. . . . .

xii

INDICE DE FIGURAS 3.8. Esquema de las bandas cr ticas del sistema auditivo humano . 3.9. Banco de ltros auditivos . . . . . . . . . . . . . . . . . . . . 3.10. Enmascaramiento . . . . . . . . . . . . . . . . . . . . . . . . . 3.11. Medici on de la banda cr tica . . . . . . . . . . . . . . . . . . . 3.12. Enmascaramiento simult aneo . . . . . . . . . . . . . . . . . . 3.13. Enmascaramiento hacia atr as . . . . . . . . . . . . . . . . . . 3.14. Enmascaramiento hacia adelante . . . . . . . . . . . . . . . . 3.15. Umbrales de audibilidad . . . . . . . . . . . . . . . . . . . . . 3.16. Contornos de intensidad perceptual, norma ISO 226 . . . . . 3.17. Pitch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.18. Espectro de un tono de Shepard . . . . . . . . . . . . . . . . 3.19. Demostraci on de la existencia del tono virtual . . . . . . . . . 3.20. Altura e intensidad . . . . . . . . . . . . . . . . . . . . . . . . 3.21. Altura y duraci on . . . . . . . . . . . . . . . . . . . . . . . . . 3.22. Altura y duraci on . . . . . . . . . . . . . . . . . . . . . . . . . 3.23. Trayectoria de arm onicos en la trompeta . . . . . . . . . . . . 3.24. Esquema de un codicador perceptual de audio . . . . . . . . 4.1. Se nal an aloga versus digital . . . . . . . . . . . . . . . . 4.2. Digitalizaci on de una se nal an aloga . . . . . . . . . . . . 4.3. Algunas funciones de ventanas . . . . . . . . . . . . . . 4.4. Muestreo de una se nal digital . . . . . . . . . . . . . . . 4.5. Aliasi on en el dominio de la frecuencia . . . . . . . . . . 4.6. Aliasi on en el dominio del tiempo . . . . . . . . . . . . . 4.7. Proceso de cuantizaci on . . . . . . . . . . . . . . . . . . 4.8. Cuantizaci on de una se nal anal ogica . . . . . . . . . . . 4.9. Error de cuantizaci on . . . . . . . . . . . . . . . . . . . 4.10. Dithering . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11. Estructura b asica de un computador . . . . . . . . . . . 4.12. Sistemas Operativos m as utilizados . . . . . . . . . . . . 4.13. Sistemas computacionales de audio . . . . . . . . . . . . 4.14. Uso del computador por parte de los compositores . . . 4.15. Familia de los programas de s ntesis de sonidos . . . . . 4.16. Softwares de m usica m as utilizados en los a nos noventa 5.1. 5.2. 5.3. 5.4. 5.5. Oscilador . . . . . . . . . . . . . . . . . . . . . . . . Se nales b asicas com unmente utilizadas en osciladores Tabla de ondas . . . . . . . . . . . . . . . . . . . . . Algoritmo de un oscilador digital de sonidos . . . . . Envolvente de amplitud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 43 43 44 44 45 45 46 47 50 51 52 53 53 54 57 60 64 65 66 67 69 69 70 70 71 71 73 77 79 80 81 82 91 92 92 93 94

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

INDICE DE FIGURAS 5.6. Envolventes para distintas din amicas . . . . . . . . . 5.7. Envolvente ADSR . . . . . . . . . . . . . . . . . . . 5.8. Proceso de generaci on de envolventes . . . . . . . . . 5.9. Suma de se nales simples para generar una compleja . 5.10. S ntesis aditiva . . . . . . . . . . . . . . . . . . . . . 5.11. S ntesis substractiva . . . . . . . . . . . . . . . . . . 5.12. Conguraci on de ltros en la s ntesis substractiva . . 5.13. Modulaci on ring o anillo . . . . . . . . . . . . . . . . 5.14. Espectro de la modulaci on ring . . . . . . . . . . . . 5.15. S ntesis AM . . . . . . . . . . . . . . . . . . . . . . . 5.16. Espectro de la modulaci on AM . . . . . . . . . . . . 5.17. S ntesis FM . . . . . . . . . . . . . . . . . . . . . . . 5.18. Espectro de la modulaci on FM . . . . . . . . . . . . 5.19. Grano sonoro sinusoidal . . . . . . . . . . . . . . . . 5.20. Grano sonoro de ruido blanco . . . . . . . . . . . . . 6.1. 6.2. 6.3. 6.4. 6.5. 6.6. 6.7. 6.8. 6.9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

xiii 94 94 95 96 97 97 98 99 99 100 101 101 102 103 103 109 110 112 113 114 114 115 117 117 118 119 119 119 120 122 124 125 125 127 128 129

Un ltro como una caja negra . . . . . . . . . . . . . . . . . . Filtrado versus no ltrado . . . . . . . . . . . . . . . . . . . . Respuestas de frecuencia t picas . . . . . . . . . . . . . . . . . Respuesta de fase . . . . . . . . . . . . . . . . . . . . . . . . . Respuestas de fase lineales versus no lineales . . . . . . . . . Retraso de fase . . . . . . . . . . . . . . . . . . . . . . . . . . Fase desenrrollada . . . . . . . . . . . . . . . . . . . . . . . . El plano z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estimaci on de la respuesta de amplitud mediante un diagrama de polo y ceros . . . . . . . . . . . . . . . . . . . . . . . . 6.10. Estimaci on de la respuesta de fase mediante un diagrama de polo y ceros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.11. Filtro de primer orden de un cero . . . . . . . . . . . . . . . . 6.12. Filtro de primer orden de un polo . . . . . . . . . . . . . . . . 6.13. Filtro de segundo orden de dos polos y dos ceros . . . . . . . 6.14. Esquema de implementaci on de un ltro FIR . . . . . . . . . 6.15. Esquema de implementaci on de un ltro IIR . . . . . . . . . . 6.16. Filtro comb no recursivo . . . . . . . . . . . . . . . . . . . . . 6.17. Filtro comb recursivo . . . . . . . . . . . . . . . . . . . . . . . 6.18. Respuesta de amplitud de un ltro comb . . . . . . . . . . . . 6.19. Dos curvas de ecualizaci on . . . . . . . . . . . . . . . . . . . . 6.20. Funciones de compresi on a distintas tasas . . . . . . . . . . . 6.21. Correcci on autom atica de ganancia . . . . . . . . . . . . . . .

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

xiv

INDICE DE FIGURAS

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Indice de cuadros

2.1. Tabla de intensidades sonoras . . . . . . . . . . . . . . . . . . 3.1. Escala de Barks, para estimaci on de las bandas cr ticas del sistema auditivo . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Razones entre intervalos musicales . . . . . . . . . . . . . . . 4.1. Representaci on num erica en distintos sistemas . . . . . . . . . 5.1. Taxonom a de las t ecnicas de s ntesis digital de sonidos . . . .

26

42 58 72 88

xv

xvi

INDICE DE CUADROS

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 1

Se nales y sistemas

El sonido es fundamentalmente una se nal, que conlleva informaci on de tipo ac ustica. Todos los tipos de se nales, sean estas naturales o articiales, tienen caracter sticas comunes que hacen posible su estudio en forma independiente de su naturaleza. Por lo general, las se nales son procesadas o modicadas por sistemas. En el caso de la m usica computacional, el computador genera o modica una se nal ac ustica digitalizada, por lo tanto se comporta como un sistema. En este cap tulo se presentan los conceptos b asicos de la teor a de se nales y sistemas, los cuales resultan fundamentales para entender y estudiar como una se nal de audio puede ser modicada o creada en el computador de las m as diversas maneras, con el objetivo nal de generar m usica.

1.1.

Se nales

Una se nal, en forma simplicada, se puede entender como cualquier mecanismo que es empleado para transmitir informaci on [15]. Algunos ejemplos de se nales son: un faro, ondas electromagn eticas enviadas por un radar, se nales de humo, una onda de sonido viajando por el aire o las ondas de la actividad del cerebro captadas por un electrocardiograma. Desde un punto de vista matem atico, una se nal es una variable de una o m as dimensiones que toma valores de acuerdo a otra variable, como por ejemplo el tiempo en el caso del sonido o el espacio en el caso de im agenes. Matem aticamente, da exactamente lo mismo si la dependencia es temporal o espacial, ya que en ambos casos las se nales de tratan de igual manera y s olo importa la funci on que modela su comportamiento. 1

CAP ITULO 1. SENALES Y SISTEMAS


y=f(x) 3 2 1 Seal (y) 0 1 2 3 1

0.5 0 0.5 Variable independiente(x)

Figura 1.1: Ejemplo gr aco de una se nal En el caso de las se nales ac usticas, es com un utilizar la letra t para designar a la variable independiente, que corresponde al tiempo, y la letra y para designar a la se nal, o variable dependiente. La relaci on que dene el comportamiento de la se nal con respecto a la variable independiente corresponde a una funci on que usualmente se denomina por la letra f. Por lo tanto la ecuaci on: y = f (t) (1.1)

simplemente signica que y depende del tiempo de acuerdo a la funci on f. La gura 1.1 muestra una representaci on gr aca de una se nal en funci on de dos variables, y y t. La forma o morfolog a de la funci on f es lo que determina la informaci on contenida en la se nal.

1.1.1.

Naturaleza de las se nales

Las se nales son de distinta naturaleza. Una se nal puede ser, por ejemplo, una onda de presi on viajando por el aire producida por la voz de un cantante en alg un escenario cercano. En este caso claramente la se nal es de tipo f sico, es decir involucra atomos, mol eculas y otras part culas f sicas. Sin embargo, CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.1. SENALES

una se nal puede no tener relaci on con alg un fen omeno f sico. Un ejemplo de esto es el valor del ndice de acciones de la bolsa de comercio, que cambia todos los d as, pero s olo corresponde a un valor num erico, sin relaci on con el mundo f sico. Si una se nal toma valores en forma continua, es decir, si para todos los valores de la variable independiente existe un valor para la variable independiente, se habla de que la se nal es continua. Un ejemplo de esto es la se nal de temperatura que entrega un term ometro en el tiempo. El term ometro siempre est a marcando alguna temperatura y cualquier persona puede leer la posici on de la barra de mercurio ahora, o en una mil esima de segundo despu es o en un a no m as y el term ometro siempre entregar a un valor a menos que est e roto. Por el contrario, si una se nal toma valores s olo para algunos valores de la variable independiente, se habla de una se nal discreta. Por ejemplo, la luz roja de un sem aforo s olo se enciende durante algunos instantes de tiempo en forma c clica.
Seal Continua 4 3 2 Seal (y)
Seal (y) 4 3 2 1 0 1 2 3 Seal Discreta

1 0 1 2 3 4 1 0.5 0 0.5 Variable independiente(x) 1

4 1

0.5 0 0.5 Variable independiente(x)

(a) Se nal continua

(b) Se nal discreta

Figura 1.2: Ejemplos de se nales continuas y discretas Un computador no funciona en forma continua sino en intervalos regulares de tiempo y por ende, s olo maneja en forma interna se nales digitales. Para digitalizar una se nal es necesario discretizarla. Es decir, tomar muestras a intervalos regulares de la se nal anal ogica original y guardar estas muestras. Este proceso se conoce como, digitalizaci on, muestreo o sampleo y ser a abordado en profundidad en el cap tulo 4. Se puede adelantar aqu que CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

CAP ITULO 1. SENALES Y SISTEMAS

la calidad de la se nal discreta depende de la frecuencia a la cual se muestrea la se nal original. La gura 1.2 muestra dos se nales: una continua y otra discreta. Se puede observar all que ambas tienen la misma forma, en el sentido que tienen la misma envolvente. En efecto, la se nal de la derecha corresponde a la se nal de la izquierda discretizada. La u nica informaci on que esta se nal contiene es el valor de la amplitud para cada una de las muestrasen esos instantes de tiempo. En una primera observaci on da la impresi on que la se nal muestreada pierde informaci on respecto de la se nal original ya que no almacena ning un tipo de informaci on entre las muestras. Sin embargo, esto no ocurre si es que la frecuencia de muestreo es lo sucientemente alta para asegurar la calidad del proceso de digitalizaci on. Esto se explica en detalle en la secci on 4.1.1. Tambi en las se nales pueden variar de acuerdo a su periodicidad. En la gura 1.3 se aprecian dos formas de onda distintas. En la primera de ellas, se aprecia que la onda est a compuesta de patrones repetitivos, mientras que la segunda posee una forma que parece ser aleatoria, sin un comportamiento denido. En el caso de la primera forma de onda, se dice que corresponde a una onda peri odica, es decir, que se repite cada cierto tiempo. En el caso de la segunda, se habla de una forma de onda aperi odica , pues no sigue un patr on determinado de repetici on. Una se nal peri odica f (x) es una que cumple la siguiente relaci on: f (x) = f (x + T ) (1.2)

donde T se conoce como el per odo de la se nal. En cambio, para una se nal aperi odica, no existe ninguna variable T que cumpla la relaci on anterior. En el caso de un onda peri odica, el patr on que se repite corresponde a un ciclo . La duraci on de cada uno de los ciclos de una onda se conoce como per odo y corresponde a la variable T de la ecuaci on 1.2. La tasa a la cual los ciclos de una onda peri odica se repiten se conoce como frecuencia y por lo general se mide en ciclos por segundo o Hertz (Hz) si la variable independiente corresponde al tiempo. Matem aticamente, la frecuencia es el inverso del per odo, por lo tanto un per odo de 1 ms (milisegundos) tiene una frecuencia de 1000 Hz. En las se nales aperi odicas no se presentan patrones de repetici on, dado que nada se repite en forma peri odica. La ausencia de una o m as frecuencias predominantes hace que este tipo de ondas sean muy complejas y dif ciles de modelar. Generalmente, este tipo de se nales corresponden a patrones CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.1. SENALES

Onda perodica 3 2 1 Seal (y) 0 1 2 3 1 0.2 Seal (y) 0.6 1

Onda aperodica

0.8

0.4

0.5 0 0.5 Variable independiente(x)

0 1

0.5 0 0.5 Variable independiente(x)

(a) Onda peri odica

(b) Onda aperi odica

Figura 1.3: Ejemplos de ondas peri odica y aperi odica aleatorios o simplemente a ruido.

1.1.2.

Sinusoides

La sinusoide es una de las se nales m as simples e importantes que existen. Las dos funciones matem aticas sinusoidales b asicas son las funciones seno y coseno, las cuales est an derivadas de las funciones trigonom etricas del mismo nombre. Matem aticamente una funci on de este tipo se puede escribir como: f (x) = A sin(wx + ) o como f (x) = A cos(wx + ) (1.4) (1.3)

La amplitud A corresponde a la desviaci on m axima de la se nal respecto del origen (posici on de equilibrio). La frecuencia w corresponde a la cantidad de ciclos que existen en un determinado rango de la variable x. La fase, denotada por la letra , corresponde a la desviaci on o corrimiento de la se nal respecto del eje Y. Una se nal simple, de tipo sinusoidal, est a completamente determinada por estos tres par ametros: amplitud, frecuencia y fase. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

CAP ITULO 1. SENALES Y SISTEMAS

Ambas funciones, seno y coseno, son c clicas o peri odicas, es decir, vuelven a tomar los mismos valores despu es de un cierto rango de valores de la variable independiente. Por ejemplo, la funci on seno es una funci on que vale 0 cuando la variable independiente vale 0, 1 cuando esta vale /2, 0 cuando pasa por , -1 cuando cruza en 3/2 y nuevamente cero cuando la variable independiente vale 2 .
Funcin seno 1 0.8 Variable dependiente y Variable dependiente y 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 6 4 2 0 2 4 Variable independiente x 6 1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1 6 4 2 0 2 4 Variable independiente x 6 Funcin coseno

(a) Funci on seno

(b) Funci on coseno

Figura 1.4: Funciones seno y coseno La funci on coseno es muy similar a la funci on seno, s olo que est a desfasada.en relaci on al eje Y. En relaci on al desfase, Las siguientes relaciones matem aticas se cumplen entre estas funciones: cos(x) = sin( sin(x) = cos( x) 2 x) 2 (1.5) (1.6)

La funci on seno es un funci on impar, es decir, no es sim etrica respecto al eje Y. Matem aticamente esto es: sin(x) = sin(x) (1.7)

En cambio el coseno es una funci on par, porque es sim etrica respecto al eje Y. Matem aticamente, esto equivale a: cos(x) = cos(x) CADIZ, R. (1.8)

A LA MUSICA INTRODUCCION COMPUTACIONAL

1.1. SENALES

Las sinusoides son fundamentales para la f sica en general y la ac ustica en particular. Cualquier cosa que resuene u oscile produce un movimiento de tipo sinusoidal. Un ejemplo de esto es la oscilaci on de un p endulo, conocida como movimiento arm onico simple. Otra raz on de la importancia de las sinusoides es que constituyen funciones b asicas de los sistemas lineales. Esto signica que cualquier sistema lineal puede ser estudiado a trav es de su respuesta a funciones sinusoidales. En el campo del audio, las sinusoides son importantes para el an alisis de ltros tales como reverberadores, equalizadores y otros tipos de efectos. Desde un punto de vista matem atico, las sinusoides constituyen bloques fundamentales que al ser combinados de cierta forma permiten la creaci on o s ntesis de cualquier tipo de se nal, por muy compleja que sea. Pero quiz as la raz on m as importante es que el sistema auditivo humano funciona como un analizador de espectro, tal como se detalla en el cap tulo 3. Esto es, el o do humano f sicamente separa un sonido en sus componentes de frecuencia sinusoidales. Por lo tanto, el o do humano funciona en forma muy similar a un analizador de Fourier (ver secci on 1.2) y la representaci on de un sonido en el dominio de la frecuencia (ver secci on 1.2.4) es mucho m as cercana a lo que nuestro cerebro recibe que la representaci on temporal.

1.1.3.

Exponenciales

Existe otra funci on matem atica muy importante, conocida como exponencial. La forma can onica de una funci on exponencial es la siguiente: f (t) = Aet/ , t 0 (1.9)

A corresponde a la amplitud m axima de la exponencial y se conoce como la constante de tiempo de la exponencial. La constante de tiempo es el tiempo que demora la exponencial en decaer 1/e, es decir: f ( ) 1 = f (0) e (1.10)

La gura 1.5 muestra el gr aco de una funci on exponencial para A = 1 y = 1. En la ecuaci on 1.9 e es el n umero de Euler, el cual tiene el valor irracional 2.718... y constituye la base de los logaritmos naturales. Este n umero es uno de los m as importantes y fascinantes de la matem atica y puede calcularse como:

e=
k=0

1 1 = l m (1 + )n 2,718... n 0 k! n

(1.11)

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

CAP ITULO 1. SENALES Y SISTEMAS


Funcin exponencial, para A=1 y =1 1 0.9 0.8 0.7 Amplitud 0.6 0.5 0.4 0.3 0.2 0.1 0 0 2 4 6 Tiempo t t=t60 8 t=

10

Figura 1.5: Funci on exponencial El decaimiento exponencial ocurre naturalmente cuando una cantidad est a decayendo a una tasa proporcional a lo que a un queda por caer. En la naturaleza, todos los resonadores lineales, tales como las cuerdas de los instrumentos musicales y los instrumentos de vientos exhiben un decaimiento exponencial en su respuesta a una excitaci on moment anea. La energ a reverberante en una sala de conciertos decae exponencialmente una vez nalizada la emisi on de sonido. Esencialmente todas las oscilaciones libres (sin una fuente mantenida en el tiempo) caen exponencialmente siempre que sean lineales e invariantes en el tiempo. Ejemplos de este tipo de oscilaciones incluyen la vibraci on de un diapas on, cuerdas pulsadas o pellizcadas y barras de marimba o xil ofonos. El crecimiento exponencial ocurre cuando una cantidad crece a una tasa proporcional al incremento actual. El crecimiento exponencial es inestable dado que nada puede crecer para siempre sin llegar a un cierto nivel l mite. Es necesario notar que en la ecuaci on 1.9, una constante de tiempo positiva implica a un decaimiento exponencial mientras que una constante de tiempo negativa corresponde a un crecimiento exponencial. En sistemas de audio, una decaimiento de 1/e se considera muy peque no para aplicaciones pr acticas, como por ejemplo, para el dise no ac ustico de salas de concierto. Por lo general, se utiliza una cantidad tal que asegure que la se nal ha ca do 60 decibelios (dB). Esta cantidad, denotada por t60 , se CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.1. SENALES encuentra resolviendo la ecuaci on: f (t60 ) = 1060/20 = 0,001 f (0)

(1.12)

Usando la denici on de exponencial de la ecuaci on 1.9, se tiene entonces que: t60 = ln(1000) 6,91 (1.13)

Esta ecuaci on nos dice que la constante t60 es aproximadamente 7 veces la constante de tiempo . Esto puede vericarse en la gura 1.5, donde se aprecia la ubicaci on de dicha cantidad en el eje del tiempo.

1.1.4.

Relaci on entre sinusoides y exponenciales

Existen dos relaciones muy importantes para el an alisis de se nales y para el Teorema de Fourier, llamadas ecuaciones de Euler . Estas son: eix = cos(x) + i sin(x) eix = cos(x) i sin(x) (1.14)

(1.15)

Esta ecuaci on nos dice que las exponenciales y las sinusoides est an ntimamente relacionadas. En la ecuaci on 1.14, el n umero i representa al n umero imaginario y que est a denido por la relaci on: i= 1 (1.16)

El n umero imaginario i tiene una importancia fundamental en el an alisis de frecuencia de una se nal, fundamentalmente porque, tal como se ver a en forma siguiente, las sinusoides pueden representarse y manejarse en forma m as compacta si se utilizan n umeros complejos. Los n umeros complejos est an constituidos por un par ordenado de n umeros, uno real y otro imaginario, y usualmente se gracan en lo que se denomina el plano complejo, mostrado en la gura 1.6, donde el eje de ordenadas representa los n umeros reales y el eje de absisas los imaginarios. En este plano un n umero complejo es un vector que se puede representar de dos formas: cartesiana y polar. En la forma cartesiana, un n umero complejo Z se representa como la suma de su parte real con su parte imaginaria o bien Z = x + iy . Pero el mismo n umero se puede representar mediante el largo del vector y su angulo, lo que se denomina forma polar. En este caso se tiene Z = r , donde r es el CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

10

CAP ITULO 1. SENALES Y SISTEMAS

imaginario x+iy y r x real

Figura 1.6: El plano complejo m odulo o magnitud del n umero complejo y que tambi en suele representarse como |Z |. Ambas representaciones est an relacionadas por las siguientes ecuaciones: r= y y (1.18) x La ecuaciones 1.14 y 1.15 pueden utilizarse para demostrar que: = arctan cos(x) = y eix eix (1.20) 2i Multiplicando la ecuaci on 1.14 por una amplitud A 0 y utilizando x = wt + se tiene: sin(x) = Aei(wt+) = A cos(wt + ) + iB sin(wt + ) (1.21) eix + eix 2 (1.19) x2 + y 2 (1.17)

Esta ecuaci on describe una sinusoide compleja. Por lo tanto, una sinusoide compleja contiene una parte real coseno y una parte imaginaria seno. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.2. SERIES Y TRANSFORMADA DE FOURIER

11

De acuerdo a las ecuaciones 1.19 y 1.20 y dado que eiwt corresponde a una sinusoide compleja (ecuaci on 1.21), se tiene entonces que toda sinusoide real est a compuesta por una contribuci on equitativa de frecuencias positivas y negativas. Dicho de otra forma, una sinusoide real consiste de una suma de dos sinusoides complejas, una de frecuencia positiva y la otra de frecuencia negativa. Esto signica que el espectro de frecuencias de una sinusoide o de una funci on peri odica compuesta por sinusoides es sim etrico respecto del origen y contiene tanto frecuencias negativas como positivas. Este hecho es de suma importancia para el an alisis de se nales y para lo que posteriormente se ver a como teorema del muestreo, detallado en la secci on 4.1.1.

1.2.
1.2.1.

Series y transformada de Fourier


Series de Fourier

En 1811, el matem atico Jean Baptiste Fourier demostr o que cualquier se nal peri odica razonable puede expresarse como la suma de una o m as sinusoides de distinta frecuencia, fase y amplitud. Se entiende por una se nal razonable, una que posee valores m aximos menores que innito y un n umero nito de saltos en un per odo. Estas sinusoides est an arm onicamente relacionadas entre s , es decir, sus frecuencias son m ultiplos enteros de una frecuencia fundamental. Esta suma ponderada de se nales sinusoidales se conoce como Serie de Fourier. La serie de Fourier de una se nal peri odica f (x) de per odo T0 puede escribirse como:

f (x) = a0 +
k=1

(ak cos(kw0 x) + bk sin(kw0 x))

(1.22)

donde w0 es la frecuencia fundamental (w0 = 2/T0 ) y los coecientes a0 ,ak y bk constituyen un conjunto de n umeros asociados un vocamente con la funci on f(x). Esta forma de escribir la serie de Fourier se conoce como forma trigonom etrica. Utilizando las ecuaciones de Euler 1.14 y 1.15, se puede escribir la serie de Fourier en forma m as compacta como:

f (x) =
k=

Ck eikw0 x

(1.23)

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

12

CAP ITULO 1. SENALES Y SISTEMAS

Esta forma de escribir la ecuaci on se conoce como forma compleja. La ecuaci on 1.22 nos dice que para cualquier se nal peri odica f (x) pueden encontrarse coecientes a0 , a1 , b1 , a2 , b2 , ... tales que multiplicados por sinusoides de frecuencias w0 , 2w0 , 3w0 , ... den como resultado la funci on f (x) cuando estas sinusoides se suman. En palabras m as simples, toda funci on peri odica de frecuencia w, cualquiera sea su naturaleza, est a compuesta por la suma de varias sinusoides de frecuencias mayores o iguales a w, cada una de las cuales tiene distinta amplitud, frecuencia y fase. Las frecuencias involucradas est an arm onicamente relacionadas entre s . Lo anterior implica dos cosas: 1. Si se toman varias sinusoides de distintas frecuencias, fases y amplitudes y se suman, se obtendr a una se nal peri odica. 2. Dada una se nal peri odica f (x) cualquiera, esta siempre podr a descomponerse en sus componentes de frecuencia, mediante la determinaci on de las sinusoides que la conforman. Si se gracan las frecuencias de estas sinusoides versus la amplitud de cada una de ellas, dicho gr aco se conoce como espectro de frecuencias (ver secci on 1.2.4). La gura 1.7 muestra a varias sinusoides de frecuencias relacionadas y su suma. All puede observarse que al sumar estas sinusoides se obtiene una nueva forma de onda de frecuencia igual a la frecuencia de la onda fundamental. Esto nos permite comprobar de manera emp rica el descubrimiento de Fourier.

Figura 1.7: Suma de se nales arm onicas CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.2. SERIES Y TRANSFORMADA DE FOURIER

13

La serie de Fourier se presenta en forma natural en la mayor a de los instrumentos musicales. Esto se conoce como la serie arm onica y constituye el principio b asico de ejecuci on de algunos instrumentos como la trompeta o tuba. En la gura 1.8 se muestra la serie arm onica en notaci on musical. Cuando uno toca, por ejemplo, la nota Do en el piano
& ?
(cent)

1200

w
1

w
2

701.96

w
3

w
498.04

w
386.31

w
315.74

bw
266.87 231.17

w
203.91 182.40

#
165.00

w b

bw

nw

150.64 138.57 128.30 119.44 111.73

10

11

12

13

14

15

16

Figura 1.8: La serie arm onica

1.2.2.

Transformada de Fourier

Ahora cabe preguntarse qu e pasa con las funciones que no son peri odicas? Una forma de extender las series de Fourier a funciones no peri odicas, es truncar las se nales en un cierto punto y suponer que la zona truncada se repite hasta el innito desde ah hacia adelante. Otra forma es suponer que estas poseen un per odo innito y expandir un tanto las ecuaciones para poder trabajar con este tipo de se nales. Esto da pie a la transformada de Fourier. La Transformada de Fourier es una generalizaci on de las Series de Fourier. En rigor, esta transformada se aplica a funciones continuas y aperi odicas, pero tambi en es posible aplicarla a funciones discretas mediante la utilizaci on de funciones impulso (ver secci on 1.2.3). Adem as, la transformada de Fourier es un subconjunto de la transformada de Laplace, de la cual provee una interpretaci on m as simple. Estas relaciones hacen de la transformada de Fourier una herramienta clave para traducir se nales desde los dominios del tiempo a la frecuencia y viceversa. Matem aticamente, la transformada de Fourier se escribe:

F (w) =

f (x)eiwx dx

(1.24)

donde w denota la frecuencia y F a la transformada. Esta ecuaci on corresponde a integrar la funci on f (x) multiplicada por una sinusoide compleja en todo el intervalo de la variable x (desde hasta +). CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

14

CAP ITULO 1. SENALES Y SISTEMAS

La transformada inversa, la que permite encontrar f (x) cuando se conoce F (w) est a dada por la ecuaci on:

f (x) =

F (w)eiwx dw

(1.25)

Utilizando estas relaciones, siempre es posible encontrar una correspondencia entre una funci on y su espectro o viceversa. Es decir: f (x) F (w) (1.26)

La transformada de Fourier nos permite conocer el espectro de frecuencias de cualquier se nal f (x), sea esta peri odica o aperi odica y cualquiera sea su naturaleza. Es decir, dada una funci on f (x) cualquiera, mediante esta transformada podemos saber que frecuencias est an presentes en ella.

1.2.3.

DFT y FFT

La transformada de Fourier, tal como se present o en las ecuaciones 1.24 y 1.25 permite encontrar transformadas para se nales continuas. Sin embargo, esto no es aplicable directamente a se nales discretas o digitales, que son las que nos interesan en este libro. La Transformada de Fourier Discreta, o bien DFT (Discrete Fourier Transform), se emplea para encontrar el contenido de frecuencia de se nales que son discretas. Esto implica que en el dominio de la frecuencia estas se nales tambi en ser an peri odicas y discretas. El desarrollo de la DFT hist oricamente se dio en forma paralela al de la transformada de Fourier continua. A pesar de su existencia, la DFT pr acticamente no se utiliza dado que el c alculo de la transformada discreta es un proceso complejo y lento computacionalmente. Lo que se utiliza en la mayor a de los casos para calcular espectros de se nales discretas se llama Transformada R apida de Fourier, o bien FFT (en ingl es Fast Fourier Transform), la cual es un algoritmo desarrollado para obtener la DFT de una forma m as r apida y eciente computacionalmente. El tiempo de procesamiento de la FFT es considerablemente m as r apido que calcular la DFT directamente.

1.2.4.

Diagramas en la frecuencia

Dado que una se nal com unmente posee varias frecuencias aparte de la fundamental, tambi en esta puede representarse completamente mediante un diagrama de frecuencias, com unmente llamado espectro de frecuencias. En CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.3. OTRAS SENALES IMPORTANTES

15

la gura 1.9 puede apreciarse tanto la representaci on temporal como el espectro de las se nales. Todos estos espectros fueron calculados utilizando la transformada r apida de Fourier o FFT. Como es de esperarse, el espectro de la sinusoide simple, posee un s olo componente de 50 Hz. Es necesario notar que el espectro es sim etrico respecto al origen y que contiene frecuencias negativas y positivas. El espectro de la suma de tres sinusoides, est a caracterizado solamente por tres frecuencias distintas, que corresponden a las frecuencias de las tres sinusoides constituyentes de la se nal. En cambio, el espectro de la se nal aleatoria es m as bien plano y tiene componentes en pr acticamente todas las frecuencias. Esto nos indica que mientras m as componentes de frecuencia est an presentes en una se nal, su representaci on en el tiempo es m as compleja, no en el sentido de los n umeros complejos sino en su contenido de informaci on. Dicho de otro modo, para reproducir una se nal de este tipo, de necesita sumar un n umero muy elevado de sinusoides.

1.3.

Otras se nales importantes

Existen otras se nales de importancia en la teor a de sistemas, aparte de las sinusoides y exponenciales. Una funci on muy importante es el impulso, denotado por (x), la cual es una funci on que se dene de la siguiente forma: (x) = x=0 0 x=0 (1.27)

Es decir el impulso es una funci on que s olo adquiere un valor para x = 0 y vale para todos los otros valores de x. La importancia de esta funci on radica en que su transformada de Fourier es una funci on constante, es decir esta se nal posee todas las frecuencias posibles. De manera intuitiva, esto puede entenderse si se piensa que el impulso representa el cambio m as abrupto posible, y para generar una se nal as se requieren de innitas sinusoides de todas las frecuencias posibles. Otra funci on importante es la funci on rectangular o simplemente rect. Su importancia radica en que consituye un ltro pasa bajo ideal. Su transformada de Fourier es otra funci on importante y se denomina sinc. La funci on rect se dene como: rect(x) = CADIZ, R. 1 0 x 1 2 para todo otro x
1 2

(1.28)

A LA MUSICA INTRODUCCION COMPUTACIONAL

16

CAP ITULO 1. SENALES Y SISTEMAS

y=sin(50t) 1.5 1

Espectro de frecuencias para y=sin(50t) 100 90 80 Frecuencia (en Hertz) 70 60 50 40 30 20 10

0.5 Amplitud 0 0.5 1 1.5 0.04

0
0.02 0 0.02 Tiempo (en segundos) 0.04

200

100 0 100 Magnitud del espectro

200

(a) Sinusoide simple en el (b) Espectro de una sinusoitiempo de simple


y=sin(50t)+0.5*sin(100t)+0.3*sin(150t) 1.5 1

Espectro de y=sin(50t)+0.5*sin(100t)+0.3*sin(150t) 100 90 80 Frecuencia (en Hertz) 70 60 50 40 30 20 10

0.5 Amplitud 0 0.5 1 1.5 0.04

0.02 0 0.02 Tiempo (en segundos)

0.04

200

100 0 100 Magnitud del espectro

200

(c) Suma de tres sinusoides (d) Espectro de una suma de en el tiempo tres sinusoides
Seal aleatoria 3 2

Espectro de una seal aleatoria 7 6 Frecuencia (en Hertz) 5 4 3 2 1 0 500

1 Amplitud 0 1 2 3 0.1

0.05 0 0.05 Tiempo (en segundos)

0.1

0 Magnitud del espectro

500

(e) Se nal aleatoria en el tiem- (f) Espectro de una se nal po aleatoria

Figura 1.9: Representaci on en el tiempo y en la frecuencia de distintas se nales

y la funci on sinc como: CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.4. SISTEMAS

17

sin(x) x Todas estas funciones se muestran en la gura 1.10. sinc(x) =


Rect Sinc

(1.29)

Impulso

Constante

Figura 1.10: Otras se nales importantes La funci on Gaussiana tambi en es de importancia, y es muy utilizada para construir ventanas. Su importancia radica en que es la funci on de distribuci on de probabilidades normal. Se dene de la siguiente manera: f (x) = Aex
2 /(2 2 )

(1.30)

donde se conoce como la desviaci on est andar de la distribuci on.

1.4.

Sistemas

Un sistema puede ser denido en forma general como una colecci on de objetos u operaciones para los cuales existen relaciones denidas de causaefecto. Las causas o datos de entrada tambi en son llamados excitaciones o simplemente, entradas. Los efectos o salidas del sistema tambi en se conocen como respuestas o simplemente salidas. Si se conocen los datos de entrada y de salida, es posible desarrollar un modelo que describa a cabalidad el sistema. Este modelo consiste en un conjunto de reglas tales que si son conocidas las entradas, permitan encontrar CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

18

CAP ITULO 1. SENALES Y SISTEMAS

las salidas. Para efectos de un computador, un sistema es un algoritmo que transforma una secuencia de n umeros (entrada) en otra secuencia de n umeros con propiedades distintas (salida).

Figura 1.11: Diagrama de un sistema Tal como lo muestra la gura 1.11, un sistema puede representarse por una caja negra a la cual ingresan datos y de la cual salen datos. En audio, los sistemas son muy importantes. Un ltro, como por ejemplo los que posee un equalizador de audio, es un sistema. Un efecto digital, como por ejemplo un chorus, anger o reverb tambi en son sistemas y se modelan como tales. La teor a e implementaci on de estos y otros tipos de efectos, se aborda en el cap tulo 6.

1.4.1.

Clasicaci on

Existen sistemas din amicos y est aticos. Un sistema est atico es uno en el cual los valores de las salidas dependen solamente de los valores actuales de las entradas. En cambio, en un sistema din amico los valores de las salidas dependen de los valores presentes y pasados de las entradas. Un sistema de este tipo posee memoria. Un sistema est atico, por ende, no posee memoria. Tambi en los sistemas pueden clasicarse en lineales y no lineales. Cuando un sistema es lineal, se puede utilizar el principio de superposici on , es decir, si un sistema posee varias entradas, pueden analizarse por separado las respuestas del sistema a cada una de las entradas y luego calcular la salida como la suma de las respuestas individuales. En cambio en un sistema no lineal, esto no ocurre y su an alisis es bastante m as complejo. Los sistemas tambi en pueden ser variantes o invariantes en el tiempo. Un sistema variante en el tiempo es uno en el cual las reglas del sistema dependen del tiempo. Es decir, estas van cambiando a medida que el tiempo cambia. En cambio, los sistemas invariantes en el tiempo mantienen sus reglas indenidamente. Tambi en los sistemas pueden ser continuos o discretos, dependiendo si las variables de entrada y salida son continuas o discretas. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

1.4. SISTEMAS

19

1.4.2.

Respuesta al impulso y respuesta de frecuencia

Para estudiar el comportamiento de un sistema sistema lineal e invariante se utilizan normalmente dos tipos de entradas, dado que cualquier tipo de entrada puede ser descompuesta en se nales m as elementales y por lo tanto la respuesta total del sistema puede calcularse mediante el principio de superposici on, si es que se conoce su respuesta a cada una de estas se nales elementales.
Entrada
1., 0., 0., 0.,

ltro

Salida
.1, .6, .7, .4, -.3, -.1,

a) Entrada: Impulso Dominio del tiempo c) Entrada: constante Dominio de la frecuencia

b) Salida: respuesta al impulso

t
d) Salida: respuesta de frecuencia

Figura 1.12: Respuesta al impulso La respuesta al impulso corresponde a la respuesta de un sistema a un impulso cuando el sistema se encuentra en estado de reposo. Un impulso, denido en la ecuaci on 1.27 es una funci on matem atica abstracta que tiene una amplitud innita y una duraci on casi cero. Por una propiedad matem atica llamada propiedad del cedazo, se puede demostrar que cualquier funci on puede descomponerse en una suma de impulsos. Dado que la transformada de Fourier de un impulso de una funci on constante en la frecuencia, esta se nal es ideal para estudiar sistemas, ya que permite estimar la respuesta de un sistema cualquiera a se nales con un contenido de frecuencias previamente determinado. Otra respuesta muy utilizada para dise nar sistemas es la respuesta de frecuencia, que se dene como la respuesta del sistema en el dominio de la frecuencia. Esta respuesta puede calcularse como la transformada de Fourier de la respuesta al impulso, o bien puede medirse o estimarse directamente, si se utilizan como entrada se nales de tipo sinusoidal. Dado que cualquier se nal puede descomponerse, de acuerdo a la serie o transformada de Fourier, en muchas sinusoides individuales, la respuesta total del sistema puede CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

20

CAP ITULO 1. SENALES Y SISTEMAS

calcularse mediante el principio de superposici on. En el ambito de los sistemas digitales, dado que un impulso es una abstracci on matem atica no posible de representar en un computador, un impulso se implementa como una secuencia de n umeros con valor cero salvo una sola muestra que toma el valor uno. Un tren de impulsos, en cambio, es una secuencia de muestras todas con valor unitario. La gura 1.12 muestra en forma gr aca la relaci on entre la respuesta al impulso y la respuesta de frecuencia de un sistema digital o ltro. El estudio de la respuesta de frecuencia de un sistema, es clave en la teor a y dise no de los ltros digitales, la cual se detalla en el cap tulo 6. Si se conoce la respuesta al impulso, basta realizar una operaci on matem atica denominada convoluci on (ver ecuaci on 6.5) entre una se nal de entrada cualquiera y la respuesta al impulso para obtener la respuesta del sistema a esa entrada.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 2

El sonido

Si una piedra cae en la supercie de un desierto, donde no hay ser humano alguno ... suena?. Si uno hace esta pregunta las respuestas generalmente son divididas. Hay gente que dice que s suena y otra dice que no. Esto se debe mayormente a que el sonido existe en dos dimensiones paralelas: una f sica y otra perceptual. Por lo tanto existen dos deniciones posibles de sonido: una f sica, donde se considera al sonido como una perturbaci on en alg un medio y otra psicoac ustica, que se reere al sonido como la sensaci on que produce una onda sonora en nuestro sistema auditivo. El sonido en su dimensi on perceptual se abordar a en el cap tulo 3. A continuaci on se describe el sonido en su dimensi on f sica.

2.1.

Ondas de sonido

El sonido es una se nal producida por una fuente en vibraci on. Esta vibraci on perturba las mol eculas de aire adyacentes a la fuente en sincronismo con la vibraci on, creando zonas donde la presi on del aire es menor a la presi on atmosf erica (rarefacci on o enrarecimiento) y zonas donde la presi on del aire es mayor a la presi on atmosf erica (compresi on). Estas zonas de rarefacci on y compresi on, representadas en la gura 2.1 generan una onda de sonido la cual viaja a trav es del aire. Las ondas en general poseen ciertas propiedades comunes. Las ondas transportan informaci on de un lugar a otro y tambi en transportan energ a. Las ondas son parametrizables, lo que quiere decir que pueden describirse de acuerdo a algunos pocos par ametros. Los cuatro par ametros m as comunes son: amplitud, per odo, fase y forma de onda. Existen algunos otros par ametros tales como frecuencia, espectro o intensidad que pueden derivarse de los par ame21

22

CAP ITULO 2. EL SONIDO

tros mencionados anteriormente. En la gura 2.1 se muestran algunos de ellos.

Figura 2.1: Rarefacci on y compresi on en una onda sonora

Existen distintos tipos de ondas que dieren en su naturaleza, por ejemplo ondas de radio, ondas de luz, ondas de agua, ondas electromagn eticas ondas de sonido o rayos X. Tambi en dieren en su forma de propagaci on, la que puede ser longitudinal o transversal. En una onda longitudinal, el desplazamiento de las part culas es paralelo a la direcci on de propagaci on de la onda. En una onda transversal, el desplazamiento de las part culas es perpendicular a la direcci on de propagaci on de la onda. Las ondas de sonido son longitudinales. Cuando esta onda alcanza alguna supercie (como el t mpano del o do humano o la membrana de un micr ofono), produce una vibraci on en dicha supercie por simpat a o resonancia. De esta forma, la energ a ac ustica es transferida desde la fuente al receptor manteniendo las caracter sticas de la vibraci on original. El sonido necesita de un medio para propagarse. El sonido puede viajar a trav es de objetos s olidos, l quidos o gases. Su velocidad es proporcional a la densidad del medio por el cual viaja. A temperatura ambiente, la velocidad el sonido en el aire es de 343 [m/s] y en agua, es de 1500 [m/s]. La velocidad del sonido es independiente de su intensidad y su intensidad decae con la distancia en forma inversamente proporcional. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

2.2. FUENTES SONORAS

23

2.2.

Fuentes sonoras

El sonido puede ser producido por distintos tipos de fuentes y procesos. Estos son: 1. Cuerpos en vibraci on. Un ejemplo de este tipo de fuentes es un diapas on, el cual al ponerse en vibraci on genera un cierto tipo de onda sonora. Al estar la fuente vibrando, causa un desplazamiento en el aire cercano, lo que produce cambios locales en la presi on de aire. Estas uctuaciones de presi on viajan en forma de una onda. Los cuerpos en vibraci on son las fuentes sonoras m as comunes. 2. Cambios en ujos de aire. Un ejemplo de este tipo de fuentes es lo que sucede cuando hablamos. Las cuerdas vocales se abren y cierran en forma alternada, produciendo cambios en la tasa del ujo de aire, lo que a su vez se traduce en una onda sonora. Este mismo principio se aplica a los instrumentos de viento como el clarinete u oboe. Otro ejemplo de este tipo de fuentes es una sirena, la cual produce sonido a trav es de una placa rotatoria bloquea en forma alternada el ujo proveniente de un compresor de aire. 3. Fuentes de calor. Una chispa el ectrica produce un sonido, tal como lo produce un trueno. En estos casos, el sonido se produce por un brusco cambio en la temperatura, el cual produce una veloz expansi on del aire circundante. 4. Flujo supers onico. En el caso de un avi on supers onico se producen ondas de choque que fuerzan al aire a viajar m as r apido que la velocidad del sonido.

2.3.

Medici on del sonido

El sonido en su dimensi on f sica es medible o cuanticable. Existen par ametros que pueden ser medidos en forma precisa como su intensidad y otros pueden ser estimados con mayor o menor precisi on como la frecuencia o su forma de onda. El sonido fundamentalmente es una onda de presi on, y la presi on P puede medirse de la siguiente forma: P = F/a CADIZ, R. (2.1)

A LA MUSICA INTRODUCCION COMPUTACIONAL

24

CAP ITULO 2. EL SONIDO

lo que equivale a una fuerza F ejercida en una unidad de area a determinada. La presi on corresponde a la fuerza ejercida en forma perpendicular a una supercie dividida por el area de esta supercie. Las ondas de sonido transportan energ a. La energ a es una medida abstracta de mucha utilidad en la f sica, dado que se dene de tal forma que en un sistema cerrado la energ a siempre es constante, principio que se conoce como la conservaci on de la energ a. La energ a se mide en unidades de masa por velocidad al cuadrado y usualmente se mide en [Joules]. Otras unidades de medida de la energ a son [Btu], [Calor a] y el [kW/h]. Una importante medida del sonido es su potencia , la cual corresponde a la energ a total por unidad de tiempo y se mide en [Joules/sec]. A continuaci on se describen en detalle los par ametros f sicos del sonido.

2.4.

Amplitud e intensidad

La amplitud de un sonido corresponde a la magnitud del cambio, sea este positivo o negativo, de la presi on atmosf erica causado por la compresi on y rarefacci on de las ondas ac usticas. Esta cantidad es un indicador de la magnitud de energ a ac ustica de un sonido y es el factor que determina que tan fuerte se percibe un sonido. Por lo general, la amplitud se mide en [N/m2 ]. El rango de amplitudes perceptible por el ser humano va desde los 0.00002 [N/m2 ] hasta los 200 [N/m2 ], donde el cuerpo entero siente las vibraciones. La intensidad del sonido caracteriza la raz on a la cual la energ a es entregada en la sensaci on audible asociada con la amplitud. Suponiendo una fuente puntual que irradia energ a uniforme en todas las direcciones, entonces la presi on sonora var a en forma inversamente proporcional a la distancia medida desde la fuente y la intensidad cambia en forma inversamente proporcional al cuadrado de la distancia. Si esta distancia es r, entonces se tiene que: I = /4r2 (2.2) donde es la potencia sonora. La intensidad se mide en [W/m2 ]. Esto se observa claramente en la gura 2.2. La p erdida de intensidad al incrementarse la distancia es de dB = 20log10 (r1 /r2 ). Al doblarse la distancia, se experimenta una p erdida en intensidad de 6 dB. La presi on e intensidad se relacionan a trav es de la siguiente ecuaci on: P = CADIZ, R. Ic (2.3)

A LA MUSICA INTRODUCCION COMPUTACIONAL

2.4. AMPLITUD E INTENSIDAD

25

2r

3r

Figura 2.2: Intensidad vs distancia donde equivale a densidad del medio y c es la velocidad del sonido en el aire. El sistema auditivo humano puede detectar un inmenso rango de intensidades desde 1012 [W/m2 ] a 1 [W/m2 ]. En t erminos de presi on, el rango detectable va desde 2 105 [Pa] a 2 [Pa], lo que equivale a una raz on de 10.000.000:1. En t erminos pr acticos, medir la intensidad de sonido en [W/m2 ] resulta inmanejable debido a su enorme rango, por lo que una escala logar tmica de medici on de intensidad resulta mucho m as apropiada. La intensidad (sound level) del sonido se mide en decibeles. Un bel indica una raz on de 10:1, por lo tanto 1bel = log10 (I1 /I0 ) (2.4)

Pero los beles resultan muy grandes para efectos pr acticos y por eso se utiliza el decibel (dB), denido por: 1dB = 10log10 (I1 /I0 ) (2.5)

I0 se escoge t picamente como 1012 W/m2 . Un incremento de 10 dB equivale a un incremento de la intensidad del sonido de un orden de magnitud. Un incremento de 3dB equivale a doblar la intensidad y un incremento de 1dB representa un 25 % de incremento en la intensidad. La intensidad es proporcional al cuadrado de la presi on 1dB = 20log10 (P1 /P0 ) CADIZ, R. (2.6)

A LA MUSICA INTRODUCCION COMPUTACIONAL

26 0 10 20 50 70 90 110 120 140 160 dB dB dB dB dB dB dB dB dB dB

CAP ITULO 2. EL SONIDO Umbral de audici on Respiraci on normal Susurro Conversaci on suave Tr aco Disparo Exposici on prolongada (causa p erdida auditiva) Avi on a propulsi on despegando Jet despegando Perforaci on instant anea del t mpano (1016 veces 0 dB) Cuadro 2.1: Tabla de intensidades sonoras

donde P0 = 2x105 [P a]. Esta medida se conoce como dBSP L (sound pressure level). 0 dB se escoge para el umbral de audici on, el sonido m as tenue que puede ser detectado. En los equipos de audio suele usarse el dBV U (volume unit), donde 0 dB corresponde al m aximo nivel de audio posible sin tener distorsi on (clipping). El area sobre los 0 dB en este caso se conoce como headroom.

2.5.

Frecuencia

En el caso de un onda peri odica, el patr on que se repite corresponde a un ciclo. La duraci on de cada uno de los ciclos de una onda se conoce como perodo. La tasa a la cual los ciclos de una onda peri odica se repiten se conoce como frecuencia y por lo general se mide en ciclos por segundo o Hertz (Hz). Matem aticamente, la frecuencia es el inverso del per odo, por lo tanto un per odo de 1 ms (milisegundos) tiene una frecuencia de 1000 Hz. El o do humano percibe frecuencias que van entre los 20 y los 20.000 Hz, aunque esto puede variar para distintas personas. En t erminos de su contenido de frecuencia, un sonido puede poseer lo que se denomina una frecuencia fundamental, com unmente denotada por f 0, que usualmente corresponde a la frecuencia m as baja y de mayor amplitud presente en el espectro. Es la frecuencia fundamental de una onda la que determina en gran medida su altura musical, la cual es una medida perceptual, explicada en detalle en la secci on 3.5. Las se nales aperi odicas no poseen una frecuencia fundamental f acilmente determinable, dado que nada se repite en forma peri odica. La estimaci on de f 0 para se nales complejas es CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

2.6. FASE

27

en s un problema bastante complicado, que escapa a este texto. La ausencia de una fundamental hace que este tipo de ondas se perciba musicalmente como ruido.

2.6.

Fase

La fase es simplemente el desfase o corrimiento de una se nal respecto a un punto de referencia, el que se determina en forma arbitraria. La fase se mide en radianes, en el rango [0, 2 ] o en grados, en el rango [0, 360]. Una fase mayor a 2 o 360 carece de sentido f sico, pues no es posible de distinguir de una que ocurre dentro del rango normal. La fase de un sonido aislado no altera en nada su percepci on. La fase adquiere importancia cuando dos o m as sonidos se mezclan entre s . Dos sonidos pueden ser id enticos, pero estar desfasados entre s , lo que implica que un sonido comenz o antes que el otro. Al interactuar, el resultado percibido puede cambiar radicalmente dependiente del grado de desfase entre ellos. Si el desfase es 0, o bien 2 , los sonidos al mezclarse se suman, y como las zonas de rarefacci on y compresi on de ambos sonidos coinciden, como resultado se obtiene el mismo sonido pero amplicado. Si el desfase es de o 180 grados, signica que las zonas de rarefacci on de un sonido coinciden con las zonas de compresi on del otro, y al mezclarse, los sonidos se anulan completamente. El resultado es que no se percibe nada. Esto no es un problema perceptual, es un fen omeno puramente f sico. La fase es una variable com unmente ignorada y poco tomada en cuenta, pero es sumamente importante en el an alisis de Fourier, abordado en el cap tulo 4 y algunas t ecnicas de s ntesis, como las descritas en el cap tulo 5, entre otras cosas.

2.7.

Forma de onda

El patr on de variaciones de presi on producido por una fuente de acuerdo al tiempo se conoce como la forma de onda. La forma de onda determina en gran medida la cualidad del sonido. Un factor importante de considerar en un sonido es su periodicidad. En el cap tulo 1 se estudiaron distintos tipos de ondas, entre ellas las ondas peri odicas y aperi odicas. Ellas se muestran en la gura 1.3. En la primera de ellas, se aprecia que est a compuesta de patrones repetitivos, mientras que la segunda posee una forma aleatoria, sin un comportamiento denido. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

28

CAP ITULO 2. EL SONIDO

La forma de onda de un sonido determina y est a determinada por su contenido de frecuencias o espectro. La forma de onda se asocia com unmene con lo que se denomina timbre, detallado en la secci on 3.6, cualidad perceptual que le otorga identidad al sonido. Es la forma de onda la que permite diferenciar, por ejemplo, el sonido de una trompeta del de un viol n. El espectro contiene en el eje de las ordenadas el rango de frecuencias presente en el sonido y en las abscisas, la amplitud de cada componente. Tal como se detalla en el cap tulo 4, el espectro de una se nal real, como el sonido, no es real, si no complejo o imaginario. Esto signica que las amplitudes no son n umeros reales, sino n umeros complejos y en realidad consisten en un par de n umeros y no en uno s olo. En la secci on 1.1.4 se describen las dos formas b asicas de representar n umeros complejos: como un par ordenado, lo que se denomina forma cartesiana, o bien mediante una magnitud y un angulo o fase, lo que se llama forma polar. Usualmente, en el mundo del audio profesional se utiliza el espectro como sin onimo de la magnitud solamente. Si bien la informaci on que entrega la magnitud de un espectro es u til, no lo es todo. Por lo tanto, una representaci on que s olo contenga la magnitud es en realidad incompleta, ya que no muestra otro componente igual de importante que es la fase. El espectro puede estimarse en base a la transformada de Fourier, la cual se explica en mayor detalle en la secci on 1.2. Sin embargo, existen limitaciones en cuanto a la resoluci on de esta estimaci on tanto de tipo te oricas como pr acticas.

2.8.

Representaci on gr aca

Existen diversas formas de representar el sonido en forma gr aca. La forma de representaci on m as utilizada se basa en un diagrama de amplitud versus tiempo, tal como se observa en la gura 2.1, donde se pueden apreciar las zonas de compresi on y rarefacci on, adem as de indicaciones algunos par ametros como amplitud y per odo, que tienen que ver con la forma de onda. Un sonido tambi en puede ser representado por su espectro, mediante un gr aco amplitud versus frecuencia. Este gr aco muestra las amplitudes de cada componente de frecuencia contenido en el sonido. Por lo general, siempre es posible pasar de una representaci on en el tiempo a una representaci on en la frecuencia y viceversa, mediante la transformada de Fourier. No obstante, es importante destacar que el diagrama de tiempo no contiene informaci on alguna sobre el contenido de frecuencias del CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

GRAFICA 2.8. REPRESENTACION

29

sonido y el espectro no contiene informaci on de tipo temporal. Por lo tanto, si bien cada una de estas representaciones basta por s sola para determinar un vocamente un sonido, son en cierto sentido complementarias. Una representaci on intermedia es lo que se llama el sonograma. Un sonograma consiste b asicamente en un eje tridimensional donde se graca la magnitud del espectro de un sonido versus el tiempo. Esto se logra mediante la subdivisi on de la se nal de audio en varias peque nas ventanas de tiempo, usualmente traslapadas entre s . En cada una de estas ventanas temporales, se estima el espectro mediante lo que se denomina la transformada de Fourier de tiempo corto (o short time Fourier transform en ingl es). De esta forma es posible determinar como va cambiando el contenido de frecuencia del sonido en el tiempo. Si bien el sonograma es muy u til, la informaci on que entrega es altamente dependiente de los par ametros que se utilicen para su c alculo, como el tipo de ventana, el tama no de cada ventana y el porcentaje de traslape, entre otros.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

30

CAP ITULO 2. EL SONIDO

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 3

Psicoac ustica

La psicoac ustica es la ciencia que estudia la percepci on de los sonidos. Tal como veremos en este cap tulo, la percepci on sonora est a basada en fen omenos bastante complejos. Una vez que una onda sonora proveniente del mundo f sico ingresa al sistema auditivo humano, se suceden una serie de reacciones en forma casi instant anea que producen como resultado una representaci on mental de lo escuchado, que no corresponde exactamente a lo que sucede en el mundo f sico. Las variables f sicas del sonido estudiadas en el cap tulo anterior no constituyen una representaci on dedigna de lo que ocurre en el mundo perceptual. Por ejemplo, en ciertas situaciones hay sonidos que bloquean a otros sonidos, incluso si estos ocurren en forma asincr onica. Este fen omeno se conoce como enmascaramiento. En estos casos, si bien todas las ondas sonoras en juego existen en el mundo f sico, al presentarse todas juntas algunas de ellas simplemente no se perciben, a pesar de que si cada uno de estos sonidos se presentaran por separado, si se percibir an.

3.1.
3.1.1.

Conceptos b asicos
M nima diferencia notoria

La psicoac ustica intenta medir o cuanticar la percepci on de los sonidos. Una forma de estudiar la percepci on es medir el m nimo cambio de alguna variable que produzca efectivamente un cambio notorio en la percepci on de alg un est mulo. Esto se conoce como la m nima diferencia notoria y usualmente se abrevia como JND (del ingl es just noticeable dierence). Tambi en se conoce como umbral diferencial o limen diferencial. 31

32

CAP ITULO 3. PSICOACUSTICA

Usualmente, la m nima diferencia notoria var a de persona a persona y de acuerdo al m etodo de medici on. Incluso, puede cambiar para la misma persona, si las condiciones externas son modicadas.

3.1.2.

Ley de Weber

La Ley de Weber es una ley obtenida experimentalmente a trav es de experimentos perceptuales. Cuando se est a midiendo la percepci on de alg un est mulo, esta ley arma que la m nima diferencia notoria es proporcional a la magnitud del est mulo original. Matem aticamente, si tenemos un est mulo I y nos interesa entonces medir la m nima diferencia I que producir a un cambio efectivo en la percepci on de I , entonces se cumple que: I =k I (3.1)

donde k es una constante. Esto signica que a mayor intensidad de est mulo, mayor es la diferencia que se necesita para producir un cambio en la percepci on de ese est mulo.

3.1.3.

Modos de percepci on

Existen dos modos principales de percepci on: lineal y logar tmico. En el primer caso, el cambio entre dos valores de una variable se percibe sobre la base de la diferencia entre ambos valores. En el segundo, el cambio entre dos valores de una variable se percibe de acuerdo a la raz on entre ellos. Tal como se ver a a continuaci on, la percepci on de sonidos por parte del sistema auditivo humano es altamente logar tmica.

3.2.

El sistema auditivo humano

En su famoso libro Auditory Scene Analysis, Albert Bregman [5], describe la siguiente analog a: supongamos que estamos frente a un lago, del cual salen dos surcos largos y angostos hacia la orilla. En cada surco se coloca una hoja de arbol, la cual se mover a a medida que el agua del lago uya hacia los surcos. S olo analizando el movimiento de ambas hojas, sin mirar nada m as que las hojas, la idea es poder responder preguntas como: 1. Cu antos barcos hay en el lago y donde est an? 2. Qu e barco esta m as cerca? CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO 3. Cual es m as potente? 4. Hay viento? 5. Ha caido alg un objeto grande sobre el lago? 6. Hay alg un nadador y qu e tan rapido nada?

33

Esto puede parecer una misi on imposible. Pero la verdad es que el sistema auditivo humano hace este tipo de an alisis todo el tiempo y a una velocidad extremadamente alta. Nuestros t mpanos equivalen a las hojas depositadas en los surcos. Nuestro sistema auditivo, bas andose u nicamente en el an alisis del patr on de variaciones en ambos t mpanos, es capaz de generar una idea muy precisa de nuestro entorno auditivo. Suponiendo que nos encontremos en una esta muy ruidosa, lo que t picamente de conoce en ingl es como el cocktail party problem, donde hay muchas fuentes sonoras de todo tipo interactuando al mismo tiempo, no necesitamos realizar ning un esfuerzo para responder acertadamente preguntas c omo Cu anta gente est a hablando? o Qui en suena m as fuerte o est a m as cerca? o Hay alg un m aquina haciendo ruido de fondo?. El sistema auditivo humano se extiende desde el o do externo hasta la corteza cerebral y es capaz de realizar una cantidad impresionante de operaciones complejas en muy poco tiempo. A continuaci on, se detallan los principales componentes de nuestro sistema auditivo.

3.2.1.

El o do

Sin duda el uno de los componentes m as importantes del sistema auditivo humano es el o do. El o do se encarga de convertir las ondas de presi on ac ustica en impulsos nerviosos que le permiten al cerebro crear una representaci on mental de la sensaci on auditiva. La gura 3.1 muestra las partes y componentes m as importantes del o do humano. Tal como se puede observar en la gura, el o do humano est a dividido en tres partes principales: o do externo, o do medio e o do interno. Cada una de estas partes cumplen roles espec cos en el proceso general de la audici on. El funcionamiento general del o do es el siguiente: cuando una onda sonora llega al o do viaja desde el pabell on auricular o pinna hasta el t mpano, a trav es del canal auditivo. El sonido es modicado en t erminos de su contenido de frecuencias por el o do externo. El t mpano se encarga de traspasar el patr on de vibraciones de presi on hacia el o do medio al hacer contacto con tres diminutos huesecillos, que a su vez traspasan la vibraci on hacia la ventana oval, lo que causa una onda de propagaci on del l quido contenido CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

34
Oido medio

CAP ITULO 3. PSICOACUSTICA

Oido Externo Pabellon auricular

Oido interno

Conductos semicirculares Nervio auditivo

Timpano Canal auditivo

(Martillo, yunque, estribo)

Huesecillos

Coclea o caracol

Trompa de Ventana Oval Eustaquio

Figura 3.1: El o do humano al interior de la c oclea, estimulando las c elulas ciliares de la membrana basilar, la que est a conectada a un gran n umero de terminales nerviosos que env an a su vez se nales el ectricas al cerebro. De esta manera, el cerebro puede recibir la informaci on proveniente de la onda sonora para su posterior procesamiento. A continuaci on se detalla el funcionamiento de cada una de las partes del o do. O do externo El o do externo est a constituido por el pabell on auricular o pinna , el canal auditivo y el t mpano. El efecto de la pinna es atenuar y enfatizar cierto contenido de frecuencias y juega un rol fundamental en la localizaci on de sonidos. El canal auditivo mide alrededor de 2,5 cm y act ua como CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO

35

un resonador para el rango de frecuencias entre 1000 y 4000 Hz, siendo el m aximo alrededor de 3000 Hz. El t mpano vibra en respuesta al sonido y transmite esta vibraci on de presi on en forma de vibraci on mec anica hacia el o do medio.

Figura 3.2: Respuesta de frecuencia del canal auditivo La gura 3.2 detalla la respuesta de frecuencia del canal auditivo. Claramente se puede observar que el canal auditivo enfatiza el rango desde 1 a 4 kHz. Esto corresponde al rango de la voz humana hablada. El rol que cumple el canal auditivo, por lo tanto, es el de optimizar la se nal ac ustica del tal forma de resaltar la voz humana. O do medio El o do medio act ua como un transductor de vibraci on. Su rol es amplicar la vibraci on de presi on mediante un sistema mec anico. Esto se hace mediante tres huesitos llamados martillo, yunque y estribo. La vibraci on de estos huesitos puede ser amortiguada por un m usculo anexado a ellos llamado stapedius, lo cual otorga protecci on contra sonidos muy intensos, los cuales hacen contraer este m usculo, pero no protege contra sonidos muy intensos y s ubitos, como un disparo. O do interno El o do interno consiste b asicamente de la c oclea, ya que los canales semicirculares, si bien se encuentran all , no tienen rol alguno en la audici on. Pero CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

36

CAP ITULO 3. PSICOACUSTICA

si tienen un rol fundamental en el equilibrio, es por esto que una infecci on en el o do interno usualmente afecta la capacidad de mantener el equilibrio. La gura 3.3 muestra un esquema que representa un corte del o do interno, con sus componentes principales. La c oclea se muestra desenrollada en este corte.

Figura 3.3: Secci on del o do interno La c oclea es un pasaje angosto, con forma de caracol, lleno de l quido incompresible, largo y enrollado 3,5 veces sobre s mismo. El di ametro de este pasaje es de 2 mm y su largo es 35 mm. La gura 3.4 muestra un corte perpendicular de la c oclea, la cual est a dividida en tres secciones: scala tympani, scala vestibula y scala media. Estas zonas est an unidas por el helicotrema y contienen u dos de distintas densidades que vibran de acuerdo a la onda transmitida por el sistema mec anico del o do medio. Estos u dos transmiten una onda de propagaci on que estimula la membrana basilar, lugar donde se codica la informaci on sonora.

3.2.2.

Membrana basilar

El organo de corti es el lugar donde ocurre la producci on de impulsos nerviosos. En su fondo se encuentra la membrana basilar. La membrana basilar separa la scala media de la scala tympani. La membrana basilar responde a est mulos sonoros y causa vibraci on en algunas de las 3500 c elulas ciliares, conectadas a la membrana tectorial encima de ellas. Esta vibraci on es transmitida por el nervio auditivo al cerebro para su procesamiento. La membrana basilar comienza en la base, conectada a la ventana oval y termina en el apex, en el helicotrema. Al presionarse lentamente la ventana CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO

37

Figura 3.4: Secci on perpendicular de la c oclea

Figura 3.5: La membrana basilar desenrrollada

oval, la ventana redonda tambi en se ve presionada porque el volumen de l quido al interior de la c oclea es constante. Si la ventana oval se presiona en forma r apida, se produce una onda en la membrana basilar que viaja desde la ventana oval hacia el helicotrema. Esta onda no puede pasar m as all a de un punto determinado, dependiendo de la frecuencia a la cual vibra la membrana basilar. La membrana basilar entonces responde en forma diferente CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

38

CAP ITULO 3. PSICOACUSTICA

dependiendo de la frecuencia presente en su base, que est a conectada a la ventana oval. Esto signica que sonidos graves pueden enmascarar a sonidos agudos, pero no al rev es.
25 Hz

50 Hz

100 Hz

200 Hz

400 Hz

800 Hz

1600 Hz

10

20

30

Figura 3.6: Patrones de vibraci on en la membrana basilar El punto de m aximo desplazamiento de la membrana basilar est a cerca del apex para frecuencias bajas y cerca de la base para las altas frecuencias. Las frecuencias bajas estimulan tanto el apex como la base. No as las altas frecuencias, que est an connadas a la zona basal. Este hecho explica fen omenos como el enmascaramiento y la raz on por la cual la teor a de la posici on (ver secci on 3.5) para la percepci on de alturas no funciona para las bajas frecuencias. En la gura 3.5 se muestra un dibujo de la membrana basilar desenrrollada y se indican los puntos que resuenan de acuerdo a la frecuencia del est mulo recibido. Como cada punto de la membrana basilar alcanza un desplazamiento m aximo a distintas frecuencias, es posible estudiar la respuesta de la membrana en forma global de acuerdo a la frecuencia. La gura 3.6 muestra los patrones de vibraci on de la membrana basilar para tonos de distintas frecuencias fundamentales. Es f acil de observar que el punto de m axima CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO excitaci on de la membrana var a con la frecuencia de entrada.

39

3.2.3.

C elulas auditivas

En la gura 3.7 se muestra un esquema del organo de corti, el cual se encuentra entre la membrana basilar y la membrana tectorial. Contiene en su interior las c elulas ciliares o auditivas, que son las encargadas de transmitir la informaci on proveniente de la membrana basilar en forma de impulsos el ectricos hacia el nervio auditivo y la corteza auditiva. Hay dos tipos de c elulas auditivas: internas y externas. Las c elulas internas est an compuestas por bras que env an pulsos hacia el cerebro. Las c elulas externas est an compuestas por bras que reciben pulsos nerviosos provenientes de las areas superiores del sistema auditivo.

Figura 3.7: Esquema del organo de corti, que contiene las c elulas auditivas o ciliares

3.2.4.

El cerebro auditivo

El cerebro funciona como una supercie 2D (materia gris) altamente convolucionada. La supercie del cerebro contiene el nal neuronas cuyos axones est an debajo de esta supercie y las distintas regiones del cerebro se interconectan por esta causa. La corteza auditiva esta organizada tonot opicamente, es decir existen areas del cerebro organizadas espacialmente en torno a distintos rangos de frecuencia. Es como si ciertas areas del cerebro fueran sensibles a s olo un grupo reducido de frecuencias. Esto indica que hay algo fundamental en torno a la frecuencia en la respuesta del cerebro al sonido, incluso al m as alto nivel, como es la corteza auditiva. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

40

CAP ITULO 3. PSICOACUSTICA

3.3.

Bandas cr ticas y enmascaramiento

Una caracter stica fundamental del sistema auditivo humano es su capacidad resoluci on de frecuencia e intensidad. Al momento de estudiar este aspecto de nuestra audici on es fundamental el concepto de banda cr tica. Una forma de entender el funcionamiento del sistema auditivo es suponer que contienen una serie o banco de ltros pasa banda sobrelapados conocidos como ltros auditivos (Fletcher (1940) citado en (Moore, 1998)). Estos ltros se producen a lo largo de la membrana basilar y tienen como funci on aumentar la resoluci on de frecuencia de la c oclea y as incrementar la habilidad de discriminar entre distintos sonidos. Este banco de ltros no sigue una conguraci on lineal, y el ancho de banda y morfolog a de cada ltro depende de su frecuencia central. El ancho de banda de cada ltro auditivo se denomina banda cr tica (Fletcher (1940) citado en (Gelfand 2004).
Intensidad (dB)

Figura 3.8: Esquema de las bandas cr ticas del sistema auditivo humano Las bandas cr ticas, esquematizadas en la gura 3.8, son rangos de frecuencia dentro de los cuales un sonido bloquea o enmascara la percepci on de otro sonido. Las bandas cr ticas conceptualmente est an ligadas a lo que sucede en la membrana basilar, ya que una onda que estimula la membrana basilar perturba la membrana dentro de una peque na area m as all a del punto de primer contacto, excitando a los nervios de toda el area vecina. Por lo tanto, las frecuencias cercanas a la frecuencia original tienen mucho efecto sobre la sensaci on de intensidad del sonido. La intensidad percibida no es afectada, en cambio, en la presencia de sonidos fuera de la banda cr tica. Es importante destacar aqu que el concepto de banda cr tica es una CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.3. BANDAS CR ITICAS Y ENMASCARAMIENTO construcci on te orica y no algo f sicamente comprobado.

41

3.3.1.

Escala de Barks y ERB

Una inquietud que surge de inmediato es preguntarse cuantas bandas cr ticas existen en el sistema auditivo y cual es la frecuencia central de cada una. Existe una escala de medici on de las bandas cr ticas llamada la escala de Barksla cual se detalla en la tabla 3.3.1. La escala tiene un rango del 1 al 24 y corresponde a las primeras veinticuatro bandas cr ticas del sistema auditivo. Esta escala tiene relaci on con la escala mel, abordada en la secci on 3.5.1 pero no es tan utilizada. La relaci on entre un Bark y un Hz est a dada por: Bark = 13 arctan(0,00076f ) + 3,5 arctan(( f 2 ) ) 7500 (3.2)

Otro concepto asociado al concepto de banda cr tica es el equivalente rectangular de ancho de banda, o ERB, por sus siglas en ingl es.Esta medida muestra la relaci on entre el conducto o canal auditivo y el ancho de banda de un ltro auditivo. La idea de esta medida es reemplazar una banda cr tica por un rect angulo equivalente cuya area sea la misma, de manera de permitir en su interior la misma cantidad de energ a. La ERB se calcula mediante la siguiente ecuaci on: ERB = 24,7(4,37f + 1) (3.3)

La gura 3.22 muestra la escala de Barks, la ERB y la escala mel en funci on de la frecuencia. Ambas tienen curvas parecidas, pero dieren en algunos detalles. La gura 3.9 muestra una aproximaci on computacional a los ltros auditivos, basado en la escala ERB.

3.3.2.

Enmascaramiento

El enmascaramiento ocurre cuando la presencia de un sonido, llamado m ascara, hace inaudible otro sonido que ser a perfectamente audible en la ausencia de la m ascara. Esto ocurre si es que ambos sonidos se encuentran dentro de la misma banda cr tica, tal como lo muestra la gura 3.10. El sistema auditivo no es capaz de diferenciar dos sonidos al interior de una banda cr tica. Basta con que exista algo de energ a al interior de una banda cr tica para que esta se active y el sistema auditivo perciba actividad en esa banda. Si existe m as de un sonido o se incrementa la energ a CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

42 Banda cr tica (Bark) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Frec. central (Hertz) 50 150 250 350 450 570 700 840 1000 1170 1370 1600 1850 2150 2500 2900 3400 4000 4800 5800 7000 8500 10500 13500 18775

CAP ITULO 3. PSICOACUSTICA Ancho de banda (Hertz) 100 100 100 110 120 140 150 160 190 210 240 280 320 380 450 550 700 900 1100 1300 1800 2500 3500 6550 Frec. min. (Hertz) 100 200 300 400 510 630 770 920 1080 1270 1480 1720 2000 2320 2700 3150 3700 4400 5300 6400 7700 9500 12000 15500 Frec. max. (Hertz) 100 200 300 400 510 630 770 920 1080 1270 1480 1720 2000 2320 2700 3150 3700 4400 5300 6400 7700 9500 12000 15500 22050

Cuadro 3.1: Escala de Barks, para estimaci on de las bandas cr ticas del sistema auditivo

al interior del ltro, esto no cambia la informaci on desde el punto de vista del sistema auditivo. Entonces, si un sonido se encuentra al interior de una banda cr tica de otro sonido y si su amplitud no es lo sucientemente grande como para traspasar el umbral de dicha banda y activar otra banda cr tica cercana, se produce el fen omeno denominado enmascaramiento. La codicaci on perceptual de audio, detallada en la secci on 3.8, se basa fuertemente en este fen omeno para reducir la cantidad de informaci on necesaria para almacenar y reproducir una se nal sonora. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.3. BANDAS CR ITICAS Y ENMASCARAMIENTO


Banco de filtros auditivos

43

Amplitud 0

500

1000

1500

2000 2500 Frecuencia (Hz)

3000

3500

4000

Figura 3.9: Banco de ltros auditivos


Intensidad (dB) Banda crtica o filtro auditivo Enmascarador Seal

Cantidad de enmascaramiento en la misma banda crtica que la seal

Figura 3.10: Enmascaramiento Las bandas cr ticas pueden medirse en funci on del enmascaramiento que producen de acuerdo al procedimiento descrito en la gura 3.11. El ancho de banda de una m ascara constitu da por ruido blanco se ensancha cont nuamente y se mide el nivel de enmascaramiento que produce respecto a una se nal de prueba. Una vez que se alcanza el punto sobre el cual el enmascaramiento no cambia signicativamente al agrandarse el ancho de banda, se est a en la presencia de los l mites de la banda cr tica en medici on.

3.3.3.

Midiendo la banda cr tica

El tipo de enmascaramiento m as com un es el que se denomina simult aneo, es decir cuando la m ascara y el sonido enmascarado coinciden en el tiempo, CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

44

CAP ITULO 3. PSICOACUSTICA


seal mscara

tiempo seal mscara

tiempo seal mscara

tiempo seal mscara

tiempo

Figura 3.11: Medici on de la banda cr tica

tal como lo muestra la gura 3.12.


seal mscara

tiempo

Figura 3.12: Enmascaramiento simult aneo

Pero existe tambi en enmascaramiento de tipo temporal, que ocurre cuando la m ascara se encuentra antes o despu es del sonido enmascarado en el tiempo. La gura 3.13 muestra lo que se denomina enmascaramiento hacia atr as (backward masking en ingl es) y la gura 3.14 muestra lo que se denomina enmascaramiento hacia adelante (forward masking en ingl es) CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.4. INTENSIDAD PERCEPTUAL (LOUDNESS)


seal tm tiempo mscara

45

Figura 3.13: Enmascaramiento hacia atr as


mscara seal tm tiempo

Figura 3.14: Enmascaramiento hacia adelante

3.4.

Intensidad perceptual (loudness)

La gura 3.15 muestra los umbrales de audibilidad del sistema auditivo humano, en funci on de la frecuencia. En la l nea mas gruesa se muestran los l mites de la audici on humana, en la parte baja el umbral de audibilidad, que corresponde a la m nima intensidad necesaria para percibir un sonido y en la parte superior el umbral del dolor, correspondiente a la m axima intensidad que nuestro sisema auditivo es capaz de tolerar. Tal como se puede apreciar, la percepci on de intensidad no es uniforme para todas las frecuencias. Para comenzar a percibir un tono de 100 Hz se necesita una intensidad de unos 40 dB SPL mientras que para un tono de 2000 Hz s olo basta con una intensidad de unos 5 dB SPL. Claramente, el rango entre 1 a 5 kHz es el m as f acil de percibir. La percepci on de la intensidad de un sonido no corresponde exactamente a su intensidad f sica. En el idioma ingl es existe el t ermino loudness para referirse a la intensidad perceptual de un sonido y diferenciar esta medida de la intensidad f sica. En el idioma castellano no existe un t ermino equivalente y en el presente texto se utilizar a la expresi on intensidad perceptual para referirse a la medida perceptual de la intensidad de un sonido. Usando una expresi on coloquial, la idea es determinar que tan fuerte suena algo. La sensaci on de intensidad perceptual depende principalmente de la cantidad de energ a ac ustica recibida por el o do. Tal como sucede con la percep CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

46

CAP ITULO 3. PSICOACUSTICA

Figura 3.15: Umbrales de audibilidad ci on de altura, la intensidad de un sonido es percibida en forma logar tmica, siguiendo en forma casi exacta la ley de Weber. En relaci on con las bandas cr ticas, si las frecuencias de dos sonidos caen dentro de una cierta banda cr tica, su intensidad perceptual ser a la suma de sus intensidades individuales. Sin embargo, si las frecuencias de dos sonidos est an fuera de esta banda cr tica, su intensidad perceptual ser a mayor a la suma de las intensidades individuales.

3.4.1.

Escala de fonos y escala de sonos

Existe una escala establecida para medir la intensidad perceptual, denominada escala de fonos. Un fono (phone en ingl es) se dene como el nivel de un tono de 1000 Hz medido en dB SPL que iguala la intensidad percibida de un sonido de referencia. Por ejemplo, si un motor el ectrico es igual en intensidad perceptual a un tono de 1000 Hz a 65 dB SPL, el motor tiene una intensidad perceptual de 65 fonos. La gura 3.16 muestra una serie de curvas para las cuales la intensidad perceptual medida en fonos es constante. Estas curvas fueron inicialmente medidas por Fletcher y Munson y son denominadas contornos de intensidad equivalentes (en ingl es equal loudness contours). Por ejemplo, de acuerdo a dichos contornos, un tono de 9 kHz a CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.4. INTENSIDAD PERCEPTUAL (LOUDNESS) 57dB tiene una intensidad perceptual de 50 fonos.
Curvas ISO 226 para intensidad perceptual 140

47

120 Intensidad perceptual (fonos) 100 90 80 80 Nivel SPL (db) 70 60 60 50 40 40 30 20 20 10 0 0 Umbral de audibilidad 20

2000

4000

6000 8000 Frecuencia (Hz)

10000

12000

14000

Figura 3.16: Contornos de intensidad perceptual, norma ISO 226 Existe otra escala que permite medir la intensidad perceptual denominada escala de sonos. Un son se dene arbitrariamente como la intensidad perceptual de un tono de 1000 Hz a 40 dB SPL. Por lo tanto, un sonido tiene una intensidad perceptual de 2 sones si se juzga como el doble de intenso que un tono de 1000 Hz a 40 dB SPL. Bas andose en informaci on proveniente de experimentos psicoac usticos, es posible determinar una relaci on matem atica entre la intensidad perceptual (L) y la intensidad f sica (I ), dada por la siguiente ecuaci on: L = kI 0,3 (3.4)

donde k es una constante. Esta ecuaci on nos indica que para sonidos sobre 40 dB, la intensidad perceptual se duplica cuando el nivel de sonido es incrementado en 10 dB. Para cada una de las curvas, el nivel de sonido total es constante. El ruido tiene mayor intensidad perceptual que un tono de referencia despu es de un cierto punto cr tico. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

48

CAP ITULO 3. PSICOACUSTICA

3.5.

Altura (pitch)

Tal como sucede con la intensidad perceptual, en el idioma ingl es existe un t ermino especial para referirse a la percepci on de la periodicidad de un sonido, llamado pitch. En el idioma castellano podr a traducirse como tono o altura. Ambas palabras tienen inconvenientes. Usualmente, la palabra tono se reere indistintamente a un tipo especial de sonido, de car acter sinusoidal o bien a la percepci on de la frecuencia o periodicidad. Por otra parte, la palabra altura proviene del espacio, es una medida de distancia y no aparece como muy apropiada para referirse a un fen omeno exclusivamente temporal. Adem as, tal como se ver a m as adelante, la percepci on de periodicidad sonora es un fen omeno bi-dimensional, y se divide en lo que se llama en ingl es pitch height (que podr a traducirse como altura) y pitch chroma (color). Por lo tanto, en realidad la palabra altura se reere a s olo una de las dimensiones de esta medida. A pesar de estas limitaciones, en el presente texto se utilizar a la palabra altura para referirse a la medida perceptual de la periodicidad de un sonido, siempre teniendo en cuenta la otra dimensi on de color, y la palabra tono se referir a a un sonido sinusoidal, com unmente referido como tono puro. La altura, que es un fen omeno puramente perceptual, est a muy correlacionada con la frecuencia f sica, pero no existe una relaci on exacta uno a uno entre ellas. La altura no debe confundirse con lo que se conoce como brillo, el cual depende de la distribuci on de energ a entre las altas y bajas frecuencias y no exclusivamente de la periodicidad de un sonido. El rango de frecuencias que percibe el sistema auditivo humano se extiende usualmente desde los 20 Hz hasta los 20.000 Hz o 20 kHz. Si bien el l mite inferior es com unmente aceptado, existe controversia sobre el l mite superior. Existe evidencia que indica que el rango normal de una persona adulta no supera los 17 kHz como l mite superior, dada la t pica p erdida auditiva asociada a la edad, pero hay investigadores que arman que el rango de audici on humana va m as all a de los 20 kHz. La m nima diferencia notoria (JND) de alturas es de alrededor de 1/30 de la banda cr tica para una frecuencia determinada. Esta depende de la frecuencia, intensidad y la duraci on, como tambi en de cambios s ubitos en la frecuencia. La resoluci on de frecuencia auditiva es muy superior a la resoluci on de frecuencia visual o la percepci on de color. La visi on humana abarca en total unas 120 JND, lo que equivale a una octava. En cambio, el sistema auditivo humano abarca unas 5000 JND, lo que equivale a unas diez octavas. Los mecanismos de percepci on de altura funcionan en forma distinta para las altas y bajas frecuencias. No existe una teor a que explique com CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.5. ALTURA (PITCH)

49

pletamente el funcionamiento de la percepci on de alturas por s sola y es necesario, entonces, recurrir a dos teor as distintas pero complementarias para explicar nuestra percepci on de alturas. La teor a de la posici on (o frecuencia) argumenta que la percepci on de alturas est a determinada por el lugar de m axima vibraci on en la membrana basilar, tal como se muestra en la gura 3.6. Esta teor a funciona muy bien para altas frecuencias, y no as para las bajas frecuencias, dado que en este caso la membrana entera vibra con los sonidos graves y no ser a posible discriminar alturas usando solamente esta informaci on. La teor a temporal (o de periodicidad) considera que la altura percibida est a determinada por la distribuci on de los impulsos el ectricos en las neuronas auditivas. Sucede que estos impulsos el ectricos producidos por las neuronas se sincronizan con la frecuencia fundamental del est mulo que est a siendo percibido. Este fen omeno se conoce como sincronizaci on de fase (en ingl es phase locking). Esta teor a funciona para bajas frecuencias, hasta unos 5 kHz, porque hay un l mite f sico que impide a las neuronas disparar impulsos el ectricos a tasas mayores. La altura es en realidad una medida bi-dimensional que puede ser mejor descrita en forma circular, o por una espiral, tal como lo muestra la gura 3.17. Esta representaci on fue propuesta por Roger Shepard en 1982. De acuerdo a esta idea, la altura posee realmente dos atributos, denominados en ingl es pitch height y pitch chroma. El primero efectivamente mide la altura de un sonido en una escala ascendente y el segundo mide algo que se podr a denominar como color o croma, que se reere a la nota musical m as pr oxima a una determinada frecuencia f sica y que se representa en forma circular. Esta es la raz on por la cual los seres humanos son capaces de reconocer las notas musicales independiente de la octava en que se encuentren. En algunas situaciones es m as f acil determinar el croma de un sonido que su altura efectiva. La relaci on entre frecuencia, medida en Hz, y la altura percibida no es lineal. Esto se debe a que la estimulaci on en la membrana basilar ocurre en puntos espaciados de acuerdo a una funci on logar tmica de la frecuencia. Cuando la frecuencia de un est mulo sonoro se duplica, la distancia entre los puntos de estimulaci on de la membrana basilar se encuentran aproximadamente a una distancia constante, de unos 3.4mm para el caso de las altas frecuencias. Esto implica que los seres humanos comparamos sonidos de distintas frecuencias no en base a la diferencia entre estas frecuencias, si no en base a la raz on entre ellas, lo que musicalmente se conoce como un intervalo musical. Un ejemplo claro de aquello es justamente la octava, intervalo que implica una raz on 2:1, cuando la frecuencia se duplica. Percep CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

50

CAP ITULO 3. PSICOACUSTICA

Altura
Fa Fa# Solb Do Mi Re# Mib Re Do# Reb

Sol

Si Sol# Lab La La# Sib

Do

Croma
Figura 3.17: Pitch

tualmente, cuando hay una raz on 2:1 esta distancia se juzga como la misma, una octava, independiente del rango de frecuencias donde ocurra. Por lo general, la altura est a altamente correlacionada con la frecuencia fundamental de un sonido. Sin embargo, existe evidencia que muestra que la percepci on de altura no est a relacionada u nicamente con la fundamental. Ejemplo de esto son algunas ilusiones auditivas tales como los tonos de Shepard o de Risset, dise nadas especialmente para enga nar al sistema auditivo. Los tonos de Shepard se construyen con componentes sinusoidales separados por una octava, a los cuales se les aplica un envolvente de tipo Gaussiano, tal como se muestra en la gura 3.18. Si se elevan las frecuencias de los componentes de frecuencia en un semitono, se percibe un incremento en la altura. Pero cuando esto se repite 12 veces, se vuelve al punto de partida y el sistema auditivo ya no es capaz de determinar si la altura ha subido o bajado. Si el incremento es de 6 semitonos, alguna gente escucha CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.5. ALTURA (PITCH) un movimiento ascendente y otras uno descendente.


Espectro de frecuencias de un tono de Shepard

51

Amplitud

Frecuencia

Figura 3.18: Espectro de un tono de Shepard Otra variante de los tonos de Shepard, son los de Risset, en los cuales los parciales no se encuentran en una relaci on arm onica y los parciales est an separados por un poco m as de una octava. Si se doblan las frecuencias de los parciales, se percibe un descenso en la altura. Esto se debe a que el sistema auditivo explica este fen omeno mediante el reemplazo del tono por parciales de frecuencias un poco menores que las existentes, de otra manera, la situaci on no le hace ning un sentido. Estas ilusiones demuestran que la percepci on de altura depende del patr on de arm onicos del sonido y no s olo de la frecuencia fundamental. Contrariamente a lo que se pudiera pensar, ni siquiera depende de la presencia f sica de un tono de la frecuencia correspondiente a la altura percibida. Este fen omeno se conoce como altura virtual y se muestra en la gura 3.19. En la gura se observa un experimento dividido en tres partes. En la parte a) se tiene una sinusoide pura con frecuencia fundamental f0 y un tono virtual compuesto por los tres primeros arm onicos f 0, f 1 y f 2. En ambos casos se percibe la misma altura, correspondiente a la frecuencia fundamental. Esto sucede por que el sistema auditivo al encontrar los primeros arm onicos autom aticamente trata de encontrar alg un patr on que tenga sentido y concluye que lo m as evidente es que se trate de un tono con frecuencia fundamental f 0, aunque no est e presente f sicamente. Para probar esta hip otesis, en la parte b) se aplica un ltro pasa bajo con frecuencia de corte entre f 0 y f 1 y en la parte c) un ltro pasa altos con la misma frecuencia de corte. En CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

52

CAP ITULO 3. PSICOACUSTICA

el caso b) la sinusoide no se percibe porque es eliminada por el ltro pasa bajos pero el tono virtual se percibe con la misma altura de antes, ya que el ltro en realidad no elimina nada. En el caso c) la sinusoide se percibe ya que no es afectada por el ltro pasa altos, pero el tono virtual deja de percibirse, ya que desaparecen los arm onicos que permit an su percepci on.
sinusoide
f0 f0

tono virtual
f1 f2 f3

f0

pasa bajo

f
f0

pasa bajo

f
f1 f2 f3

b f
f0

f0

pasa alto

pasa alto

f
f1 f2 f3

c f f

Figura 3.19: Demostraci on de la existencia del tono virtual

El fen omeno de la altura virtual por lo general s olo se presenta para frecuencias bajo 1000 Hz. Para frecuencias sobre este valor, la altura s olo se percibe cuando la fundamental correspondiente a esa altura est a efectivamente presente. La sensaci on de altura tambi en depende de otros factores, tales como la intensidad y la duraci on. En t erminos de la intensidad, la percepci on de una determinada depende de la intensidad del est mulo, tal como se muestra en la gura 3.20. Cambios en la intensidad de un sonido pueden generar peque nos cambios en la altura percibida. La altura tambi en est a condicionada por la duraci on de los est mulos. Para sonidos de bajas frecuencias la duraci on m nima necesaria para percibir esa altura es considerablemente mayor que para tonos de frecuencias m as altas. Dependiendo de la frecuencia fundamental, si la duraci on del est mulo es muy corta el sistema auditivo no es capaz de generar la percepci on de una altura determinada. Esto se ejemplica en la gura 3.21, donde se muestra la percepci on de la altura en funci on de la duraci on. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.5. ALTURA (PITCH)

53

Figura 3.20: Altura e intensidad

Figura 3.21: Altura y duraci on

3.5.1.

Escala de mels

Al igual como sucede con la intensidad perceptual y la escala de fonos y sonos, es u til el contar con una escala perceptual de alturas, que pueda representar de manera m as dedigna nuestra percepci on de la periodicidad de un sonido. Esta escala se conoce como la escala mel, y fue propuesta por Stevens, Volkman y Newmann en 1937. El nombre mel deriva de melod a, como una forma de explicitar que se trata de una escala basada en comparaciones entre alturas. Esta escala se construye equiparando un tono de 1000 Hz y a 40 dBs por encima del umbral de audici on del oyente, con un tono de 1000 mels. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

54

CAP ITULO 3. PSICOACUSTICA

Sobre los 500 Hz, los intervalos de frecuencia espaciados exponencialmente son percibidos como si estuvieran espaciados linealmente. En consecuencia, sobre este punto, cuatro octavas en la escala lineal de frecuencias medida en Hz se comprimen a alrededor de dos octavas en la escala mel.
(a) Escala de mels 4000 Altura (mels) 3000 2000 1000 0 0 1000 2000 3000 4000 5000 6000 7000 Frecuencia (Hz) (b) Bandas crticas medidas en barks 8000 9000 10000

Banda crtica (barks)

30 20 10 0

1000

2000

3000

4000 5000 6000 7000 Frecuencia (Hz) (c) Bandas crticas medidas en ERBs

8000

9000

10000

40 30 ERB 20 10 0 0 1000 2000 3000 4000 5000 6000 Frecuencia (Hz) 7000 8000 9000 10000

Figura 3.22: Altura y duraci on La gura 3.22 muestra la escala mel en comparaci on con la escala de Barks y la escala ERB, discutidas en la secci on 3.3.1. Claramente se aprecia su no linearidad respecto a la frecuencia. La relaci on entre mels (m) y Hz (f) es la siguiente: m = 1127,01048 ln(1 + y por lo tanto: f = 700(e 1127,01048 1)
m

f ) 700

(3.5)

(3.6)

3.6.

Timbre

Qu e es el timbre? C omo podemos denirlo? C omo se caracteriza? C omo se mide? C omo se representa o anota musicalmente?. El timbre, en claro contraste con la altura y la intensidad perceptual, sigue siendo un atributo auditivo mal entendido. Personas que tratan de entender se puede confundir tanto por su naturaleza como su denici on. De hecho, el timbre CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.6. TIMBRE

55

es un atributo raro y multidimensional del sonido, que se dene justamente por lo que no es: no es ni la altura, ni la intensidad, ni la duraci on. En 1885, Helmholtz propone una denici on de timbre limitada al estado de reposo de un sonido. De acuerdo a su interpretaci on, el timbre est a basado principalmente en la estructura arm onica de sus componentes de frecuencia. En 1934, Fletcher lo dene como esa caracter stica de la sensaci on que permite al oyente escuchar el tipo de instrumento que emite el sonido. En 1938, Seashore lo liga al t ermino Sonoridad, que es la calidad del tono cuando el la altura y la intensidad percibida var an. M as a un, el comit e de est andares ANSI dene el timbre como el atributo de la sensaci on auditiva en t erminos de la cual un auditor puede juzgar dos sonidos que presentados en forma similar, teniendo la misma altura e intensidad percpetual, como no similares. Seg un Donnadieu, la ausencia de una denici on satisfactoria del timbre se debe principalmente a dos grandes problemas [12]. El primero se reere a la naturaleza multidimensional del timbre. De hecho, no es posible medir el timbre en forma unidimensional, en contraste con al altura (baja o alta), la duraci on (corta o larga), o la intensidad (suave o fuerte). El vocabulario empleado para describir los distintos timbres de los sonidos producidos por instrumentos musicales indica su aspecto multidimensional. Por ejemplo, brillante, opaco, apagado o claro son t erminos frecuentemente utilizados para describir los sonidos musicales. El segundo problema est a relacionado con el hecho de que el timbre es un concepto que hace referencia a diferentes niveles de an alisis. Schaeer se nal o que se puede hablar de .el timbre de un sonido sin atribuirlo directamente a un determinado instrumento, sino m as bien como una caracter stica intr nseca del sonido, percibida per se. Habr an, por lo tanto, dos conceptos de timbre: uno relacionado con el instrumento, la indicaci on de la fuente que nos es dada por la simple escucha, y la otra en relaci on con cada uno de los objetos proporcionados por el instrumento y el reconocimiento de los efectos musicales en ellos. El concepto de timbre, es entonces, mucho m as general, que la simple habilidad de reconocer instrumentos. Donnadieu enfatiza que el gran problema es que un s olo t ermino se reere a muchas nociones diferentes. El timbre puede describirse entonces en distintos t erminos: 1. Un conjunto de sonidos de un instrumento y tambi en de la especicidad de cada sonido del timbre de un instrumento en particular 2. Un sonido aislado CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

56

CAP ITULO 3. PSICOACUSTICA 3. Una combinaci on de diferentes instrumentos 4. La composici on de una compleja estructura sonora 5. En el caso de timbres producidos por el an alisis/res ntesis, sonidos h bridos o quimeras, sonidos nunca antes escuchados, que se no se pueden asociar con una fuente natural conocida

El concepto de timbre est a muy ligado al problema de la fuente, tan com un en la m usica electroac ustica y tratado en detalle en la secci on 7.1.1, ya que el timbre transmite la identidad de una fuente de sonido. En otras palabras, el timbre de un sonido complejo se compone de la informaci on pertinente para la identicaci on de fuentes de ruido o eventos, incluso en un contexto musical. Hay dos enfoques o teor as prinicipales sobre el timbre. El primer modelo es el procesamiento de la informaci on, que describe las dimensiones de percepci on de timbre resumen, en t erminos de los atributos de los sonidos. En otras palabras, los par ametros ac usticos (espectrales, temporales, y espectrotemporal) de la se nal sonora son procesadas por el sistema sensorial, perceptivo y el resultado es el timbre de los sonidos complejos. El escalamiento multidimensional o MDS ha sido fruct fero en la determinaci on de estas diferentes dimensiones de percepci on de timbre. El segundo enfoque, basado en la teor a ecol ogica propuesta por Gibson, s olo recientemente ha dado lugar a la experimentaci on sistem atica en la percepci on auditiva. Seg un este punto de vista, el timbre de la percepci on es una funci on directa de las propiedades f sicas del objeto sonoro. El objetivo de estos estudios es describir los par ametros f sicos que son perceptualmente de inter es para el objeto que vibra. Es importante destacar que el timbre no es un fen omeno est atico. Por el contrario, el espectro de un sonido cambia cont nuamente en el tiempo. Al momento de crear sonidos a trav es de la s ntesis aditiva, detallada en la secci on 5.4, es muy importante generar trayectorias din amicas en el tiempo para cada parcial. Al momento de analizar sonidos en t erminos de su timbre es importante estudiar qu e tan r apido decae la energ a en los arm onicos superiores, el n umero de arm onicos presentes en la se nal y que frecuencias son enfatizadas a medida que pasa el tiempo, entre otras cosas. La gura 3.23 muestra parte del espectro de un sonido de trompeta. Es posible observar en la gura como cada parcial sigue una trayectoria distinta en el tiempo. Esto demuestra que el timbre no es algo est atico y dependiende u nicamente de la conguraci on o patr on de arm onicos, sino que est a muy ligado a la evoluci on temporal de la informaci on que conlleva. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

3.7. CONSONANCIA Y DISONANCIA

57

Amplitud Frecuencia

Tiempo

Figura 3.23: Trayectoria de arm onicos en la trompeta

3.7.

Consonancia y disonancia

Los fen omenos de la consonancia y disonancia han despertado el inter es de cient cos y estudiosos hace mucho tiempo. Galileo Galilei formulo una teor a que arma que las consonancias son pares de tonos que llegan al o do con una cierta regularidad; esta regularidad consiste en el hecho de que pulsos entregados por los dos tonos, en el mismo intervalo de tiempo, deben ser conmensurables en n umero, de manera de no mantener el o do en un tormento perceptual. En 1877 Helmholtz explic o la consonancia mediante la ley ac ustica de Ohm al armar que la altura que corresponde a cierta frecuencia s olo se puede escuchar si la onda acustica contiene energ a en esa frecuencia, algo que sabemos hoy que no es cierto (ver secci on 3.5). Helmholtz propuso que la disonancia aparece dado los abatimientos (beatings en ingl es) que se producen entre tonos adyacentes en tonos complejos y calcul o que la disonancia m axima aparecer a entre dos tonos puros cuando la raz on de abatimiento es de unos 35 Hz. Existen varios enfoques distintos sobre las causas de la consonancia. El primer enfoque se basa en las razones entre frecuencias de los distintos intervalos, los que se muestran en la tabla 3.7. Seg un esta idea, la consonancia se forma simplemente de acuerdo a razones entre frecuencias. Las CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

58 2:1 3:2 4:3 5:3 5:4 8:5 6:5

CAP ITULO 3. PSICOACUSTICA Octava Quinta justa Cuarta justa Sexta mayor Tercera mayor Sexta menor Tercera menor

Cuadro 3.2: Razones entre intervalos musicales teor as ac usticas explican el fen omeno basadas en las propiedades f sicas de la se nal ac ustica, una de las cuales es la raz on de frecuencias. Otras teor as de car acter psicoac ustico se basan en principios perceptuales del sistema auditivo humano, tal como la inuencia de la membrana basilar. Las teor as cognitivas se fundamentan en fen omenos cognitivos de nivel superior, tal como la categorizaci on de intervalos musicales mediante entrenamiento. Por u ltimo, las teor as culturales dan cuenta de normas sociales, culturales o estil sticas que son internalizadas por los auditores. Estudios bastante m as recientes han permitido una mayor comprensi on del fen omeno y relacionarlo con el concepto de banda cr tica. En 1965, Plomp y Levelt llegaron a la conclusi on que la consonancia o disonancia depende m as de la diferencia entre frecuencias que de sus razones. Si la diferencia de frecuencia entre dos tonos es mayor que una banda cr tica, suenan consonantes, si es menor, suenan disonantes. Esto se conoce como disonancia tonot opica. Kameoka y Kuriyagowa tambi en en 1965 encontraron que la m axima disonancia ocurre cuando la diferencia de frecuencia es aproximadamente un cuarto de la banda cr tica. Seg un Boomsliter y Creel (1961) la consonancia aparece cuando los disparos neuronales del sistema auditivo est an sincronizados, lo que se denomina teor a de sincron a de las descargas neuronales. Seg un Irvine (1946), la consonancia y disonancia est an relacionadas con el largo del per odo de un ciclo. Por ejemplo, cuando dos tonos est an relacionados por razones de frecuencia simples, el ciclo de repetici on de la se nal combinada es relativamente corto. Cuando la raz on de frecuencia entre los tonos no est an relacionados por razones sencillas, el ciclo de repetici on es largo. Stumpf (1890) argumenta que la fusi on tonal es la base para la consonancia, entendi endose por fusi on a la propensi on de dos o m as tonos de fusionarse perceptualmente y sonar como un s olo tono complejo. Las mayores consoancias se producen cuando los tonos tienden a sonar como uno CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

PERCEPTUAL DE AUDIO 3.8. CODIFICACION

59

s olo. Se han determinado distintos tipos de disonancia de acuerdo al contexto donde esta se inserta. Por ejemplo, la disonancia de resoluci on de altura aparece cuando el tiempo que toma resolver alturas de una se nal completa es relativamente largo. Resnick (1981). En la disonancia de categor a de intervalo, la disonancia aparece cuando dos pitches forman un intervalo que es categ oricamente ambiguo para un auditor. Esto es, cuando el intervalo est a cerca de una categor a interv alica aprendida. La disonancia de pitch absoluto es el componente de la disonancia que aparece cuando un pitch es ambiguo para un auditor que posee o do absoluto. En el caso de la disonancia de ujo incoherente, la disonancia aparece debido a la confusi on que pueden causar distintos ujos de eventos musicales. (Wright and Bregman, 1987). La disonancia temporal es el componente de la disonancia que aparece por la r apida uctuaci on de amplitud o abatimientos. La disonancia de altura virtual aparece por la compentencia entre alturas virtuales no resueltas (Terhardt, 1974). Hay un u ltimo tipo de disonancia que es importante destactar denominada disonancia de expectaci on. Consiste en el componente de la disonancia que aparece debido al retraso de expectativas aprendidas. Existen tres niveles para este tipo de disonancia. (Cazden, 1980 ) El primer nivel se denomina tono disonante, y ocurre cuando un tono no acordal o no arm onico tiene una tendencia de resolver dentro del marco de un acorde o armon a subyacente. En un segundo nivel, un momento disonante de acorde es cuando un acorde puede ser disonante hasta el extremo de generar una expectativa de resoluci on hacia otro acorde o progresi on arm onica. Por u ltimo, la disonancia de centro tonal se maniesta cuando un pasaje musical retiene un cierto centro tonal dominante, y la disonancia aparece cuando al area dominante nalmente se mueve hacia el area original.

3.8.

Codicaci on perceptual de audio

La codicaci on perceptual de audio consiste, de modo general, en un m etodo para reducir la cantidad requerida de datos para representar una se nal de audio digital. Este m etodo inevitablemente genera p erdidas en t erminos de calidad, introduciendo una cierta cantidad de ruido que podr a perfectamente caer dentro del rango de la audici on humana si se analiza en forma aislada. Sin embargo, la codicaci on perceptual est a dise nada de tal manera que el ruido generado por el codicador cae fuera de los l mites de audici on humana en presencia de la se nal original. Esta distinci on es muy CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

60

CAP ITULO 3. PSICOACUSTICA

importante, ya que los algoritmos de compresi on basados en percepci on, a diferencia de los esquemas puramente num ericos o algor tmicos, tales como -law o ADPCM, se aprovechan de las limitaciones del sistema auditivo humano. La idea fundamental de la codicaci on perceptual de audio es que la presencia de ciertos est mulos auditivos pueden inuenciar la habilidad del cerebro humano para percibir otros est mulos. En palabras m as simples, este tipo de algoritmos se basa fuertementente en le fen omeno de enmascaramiento, descrito en detalle en la secci on 3.3.2. Un codicador perceptual por lo tanto, no codica aquellos componentes de la se nal de audio que se ver an enmascarados por otros, ahorrando de esta manera una considerable cantidad de datos perceptualmente redundantes e innecesarios. Hoy d a existen numerosos esquemas de compresi on basados en esta premisa, siendo el m as conocido el MPEG-1, capa 3, com unmene conocido como mp3, pero existen muchos otros tales como MPEG layers 1-3, AAC, OGG, Microsofts Windows Media Audio, Lucents PAC, ATRAC (utilizado en los minidiscs) y Real Audio.

BUFFER

CODIFICADOR

Entrada
FFT UMBRAL
ENMASCARADOR

MUX
ASIGNACIN DINMICA DE PARMETROS

C A N A L D I G I T A L

Salida

DECODIFICADOR

DEMUX
ASIGNACIN DINMICA DE PARMETROS

Figura 3.24: Esquema de un codicador perceptual de audio La gura 3.24 muestra los componentes principales de una cadena de codicaci on perceptual. En el codicador, la se nal de entrada se descompone en m ultiples bandas de frecuencia. De esta forma, los datos de cada banda se pueden procesar de manera independiente y cada banda puede ser representada con un grado variable de resoluci on. La idea es asignar una menor resoluci on en aquellas bandas de frecuencia que pueden ser representadas con una menor cantidad de informaci on, CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

PERCEPTUAL DE AUDIO 3.8. CODIFICACION

61

debido principalmente al enmascaramiento. Cuando la resoluci on se reduce en alguna banda en particular, crece el ruido de cuantizaci on, detallado en la secci on 4.1.2, en esa zona de frecuencias. La idea es cambiar el nivel de cuantizaci on de esa banda de manera de satisfacer la tasa de bits objetivo manteniendo la mayor cantidad de detalles posible. El codicador est a constantemente analizando la se nal de entrada y toma decisiones acerca de que zonas del espectro se ven emascaradas y por lo tanto, al ser inaudibles, pueden descartarse de la se nal y as disminuir la resoluci on. Para decodicar se aplica una transformada inversa de manera de combinar las bandas y restaurar la se nal original. En el caso en que la resoluci on de una banda no se vea reducida, el proceso es ideal y sin p erdida. La efectividad de un codicador perceptual depende de que tan bien puede modelar las limitaciones perceptuales del sistema auditivo humano, pero tambi en depende de si dispone de ancho de banda necesario para contener todo el detalle sonoro que los seres humanos somos capaces de percibir.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

62

CAP ITULO 3. PSICOACUSTICA

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 4

Audio digital

La m usica computacional, tal como su nombre lo indica, usualmente se hace mediante un computador, ya sea mediante la s ntesis o el procesamiento de una se nal de audio digital, que consiste b asicamente en una secuencia discreta de n umeros. Una se nal digital tiene caracter sticas especiales que la hacen muy diferente de una se nal anal ogica, como por ejemplo una onda de presi on ac ustica en el mundo f sico. En consecuencia es importante estudiar los principios b asicos de operaci on de un computador y la naturaleza de las se nales digitales.

4.1.

An alogo versus digital

Una se nal continua o anal ogica es una que posee valores en cada instante de tiempo. En contraste, una se nal discreta o digital s olo posee valores en ciertos instantes de tiempo, distanciados a intervalos regulares. Una se nal discreta no est a denida para valores intermedios de tiempo. Esto se visualiza claramente en la gura 4.1. Una se nal continua es convertida en una se nal digital mediante un proceso denominado digitalizaci on , el cual a su vez es un proceso que depende de dos operaciones: muestreo (sampling en ingl es), que corresponde a tomar muestras de la se nal en el tiempo y cuantizaci on, que consiste en aproximar valores continuos de la amplitud a un grupo de valores manejables en el computador. Este proceso se visualiza en la gura 4.2. Una se nal continua (a) es primero muestreada en el tiempo para producir una versi on de tiempo discreto (b). Luego, su amplitud es cuantizada, lo que implica aproximar su amplitud a un conjunto discreto de valores, proceso que se muestra en (c). Bajo ciertas condiciones, es posible reconstruir desde (c) la se nal original, la 63

64

CAP ITULO 4. AUDIO DIGITAL


Seal anloga

y(t)

Seal digital

y(n)

Figura 4.1: Se nal an aloga versus digital que se muestra en (d). Una se nal digital consiste en una secuencia de numeros, ...xn2 , xn1 , xn , xn+1 , xn+2 ... (4.1)

donde n corresponde al n umero de muestra y s olo toma valores enteros. Una se nal sinusoidal digital se escribe como: xn = A cos(n + ) (4.2)

donde A es la amplitud, es la frecuencia angular y la fase inicial. Al ser n meramente un ndice que indica el n umero de muestra, las se nales digitales de audio no tienen una dependencia intr nseca con el tiempo. Para poder escuchar un sonido digital es necesario escoger una tasa de muestreo, usualmente denotada fs , la cual ndica cuantas muestras hay por unidad de tiempo, t picamente en un segundo. Esto es, fs t = n. Por lo tanto, una sinusoide con velocidad angular tiene una frecuencia temporal dada por fs (4.3) 2 Al tratarse una se nal digital de una secuencia de n umeros, por lo general para analizar cualquier caracter stica de ella es necesario escoger una ventana f= CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.1. ANALOGO VERSUS DIGITAL

65

Figura 4.2: Digitalizaci on de una se nal an aloga de an alisis. Esto es una ventana que comienza en una muestra M arbitraria y con un largo de N muestras: xM , xM +1 , ..., xM +N 1 (4.4)

Hay muchas formas de elegir una ventana apropiada. El tipo de ventana indice directamente en lo que se denomina spectral leaking, que podr a traducirse como derramado espectral, como se observa en el espectro de frecuencias de cada ventana. Una ventana ideal debiera tener un derramado los m as angosto y atenuado posible. La ventana m as simple es una de tipo rectangular, en la cual la secuencia digital se multiplica por una funci on rectangular pero presenta problemas sobre todo en los bordes, dado que introduce un cambio muy brusco en la se nal, lo que provoca que la se nal se desparrame en la frecuencia. Hay muchas otras formas de ventanas que CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

66

CAP ITULO 4. AUDIO DIGITAL

pueden resultar m as apropiadas para ciertas operaciones, y tratan de suavizar el efecto en los bordes, en la gura 4.3 se muestran tres de las m as utilizadas: rectangular (a), hamming (b) y Hann (c). Claramente, la ventana Hann presenta un mejor derramado, respecto a las otras dos.
Ventana Rectangular Espectro de frecuencias

Ventana Hamming

Espectro de frecuencias

Ventana Hann

Espectro de frecuencias

Figura 4.3: Algunas funciones de ventanas

4.1.1.

Muestreo

Este proceso consiste en tomar muestras de la se nal continua cada cierto tiempo a intervalos constantes. La frecuencia a la cual se toman dichas muestra se conoce como tasa de muestreo. En una forma m as precisa, el muestreo consiste en multiplicar una se nal an aloga por un tren de impulsos unitarios discretos, tal como se muestra en la gura 4.4. La separaci on del los impulsos en el dominio del tiempo se conoce como per odo de muestreo y la separaci on en el dominio de la frecuencia la tasa de muestreo. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.1. ANALOGO VERSUS DIGITAL


G(f) g(t)

67

-w

-2fs

-f s

fs

2fs

fs

-w

-w

Figura 4.4: Muestreo de una se nal digital Tal como se aprecia en la gura, la se nal muestreada consiste s olo en muestras de la se nal original. A primera impresi on, en el dominio del tiempo, da la sensaci on de que se ha perdido informaci on, pero en realidad no es as . Esto es bastante m as f acil de entender en el dominio de la frecuencia. Teorema del muestreo La gura 4.4 muestra el proceso de muestro en los dominios del tiempo y de la frecuencia. En el tiempo, al muestrear se multiplica la se nal por un tren de impulsos. En la frecuencia lo que sucede es que se convoluciona el espectro de la se nal original con otro tren de impulsos, cuya separaci on entre impulsos sucesivos es inversamente proporcional al per odo de muestreo. Esta operaci on genera innitas r eplicas del espectro original, separadas entre s de acuerdo a la tasa de muestreo. Para reconstruir la se nal original desde la se nal muestreada, en el dominio CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

68

CAP ITULO 4. AUDIO DIGITAL

de la frecuencia basta con ltrar la se nal por un ltro pasa bajos con una frecuencia de corte tal que permita s olo aislar el espectro original. Dado que al ltrar el espectro original se obtiene en forma intacta, no hay p erdida de informaci on alguna. En el dominio del tiempo, este ltraje equivale a convolucionar con la transformada de Fourier de una funci on rectangular, es decir una funci on sinc, ambas funciones denidas en la secci on 1.3. Es por esto que para reconstruir una se nal muestreada en su forma anal ogica, es necesario realizar una interpolaci on sinc. Es por lo tanto, clave tener una separaci on suciente entre las r eplicas de manera que no intereran unas con otras y pueda recuperarse el espectro original de la se nal muestreada. Por simple inspecci on es claro que la tasa m nima de muestreo debe ser al menos el doble de la m axima frecuencia presente en el espectro original. Esta condici on se conoce como el teorema del muestreo. Al muestrear una se nal, la m axima frecuencia permitida en el espectro de la se nal original se conoce como frecuencia de Nyquist. Aliasi on Si la tasa de muestreo no es suciente, las r eplicas del espectro se traslapar an entre s y no ser a posible reconstruir el espectro original al ltrar con el pasa bajos. Este fen omeno se conoce como aliasi on, tal como se puede observar en la gura 4.5. En t erminos sonoros, el fen omeno de la aliasi on es claramente audible ya que se introducen frecuencias en el espectro correspondientes a la diferencia entre la frecuencia de muestreo y la m axima frecuencia de la se nal original. Esto es claro de observar en el dominio del tiempo, como lo muestra la gura 4.6. Al reconstruir la se nal mediante la interpolaci on sinc, se obtiene otra con una frecuencia bastante menor. La gura 4.6 muestra el caso de una se nal submuestreada (con aliasi on) versus una se nal sobremuestreada, donde la tasa de muestreo es mayor a la m axima frecuencia de la se nal original. Claramente la se nal reconstruida en el caso submuestrado se encuentra distorsionada respecto a la original.

4.1.2.

Cuantizaci on

Una se nal digital no solamente es discretizada en el tiempo, sino tambi en en su amplitud. Esto se debe a que el computador, por su naturaleza discreta, no es capaz de representar ni manipular una funci on continua de amplitud. El proceso por el cual se discretiza la amplitud de una sonido en el computador se denomina cuantizaci on. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.1. ANALOGO VERSUS DIGITAL


s(f)

69

a)
-w x(f) w

b)
-f s -w x(f) w fs f

c)
-f s -w x(f) w fs f

d)
-fs -w w fs

Figura 4.5: Aliasi on en el dominio de la frecuencia


a) Seal sobremuestreada
Seal original

b) Seal submuestreada
Seal original

Pulso de muestreo

Pulso de muestreo

Seal reconstruida

Seal reconstruida

Figura 4.6: Aliasi on en el dominio del tiempo La cuantizaci on es un proceso claramente no lineal, como se muestra en la gura 4.7. Esto implica que genera distorsiones o errores no lineales. La gura 4.8 muestra el proceso de la cuantizaci on de una se nal anal ogica. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

70

CAP ITULO 4. AUDIO DIGITAL

6 5/2

5 3/2

Q(xn)

/2

/2

3/2

5/2

xn

Figura 4.7: Proceso de cuantizaci on La cuantizaci on se encarga de otorgarle a un rango de la se nal una u nica salida. La diferencia que resulta de restar la se nal de entrada a la de salida es el error de cuantizaci on, esto es, la medida en la que ha sido necesario cambiar el valor de una muestra para igualarlo a su nivel de cuantizaci on m as pr oximo.

Figura 4.8: Cuantizaci on de una se nal anal ogica Los valores continuos de la se nal son aproximados a 2n niveles de amplitud cuantizados donde n corresponde al n umero de bits disponible, tal como se explica en la secci on 4.2. Esto depende de cada sistema. La resoluci on de la se nal por ende tendr a relaci on con el numero de niveles que se tenga para codicar. En el caso del compact disc o CD, se utilizan 16 bits para representar la amplitud. Esto signica que hay 216 = 65536 niveles distintos para representar la amplitud. Esto claramente induce un error en la se nal CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.1. ANALOGO VERSUS DIGITAL

71

8d

7d 6d

Amplitud de la seal

5d

4d 3d

2d

1d

0
1 2 3 4 5

10 11 12 13 14 15 16 17 18 19 20 21

Tiempo

Error en la amplitud

d/2

-d/2

1 2

3 4 5

10 11 12 13 14 15 16 17 18 19 20 21

Tiempo

Figura 4.9: Error de cuantizaci on cuantizada, a diferencia de lo que sucede con el muestreo, donde es posible reconstruir la se nal original si se muestra a una tasa adecuada.
+2 +1 0 -1 -2

Figura 4.10: Dithering El error de cuantizaci on puede ser audible dependiendo del contexto, por lo cual no es un tema menor. Una forma de minimizar el efecto de este ruido es mediante la adici on de una se nal aleatoria llamada dither,, tal CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

72

CAP ITULO 4. AUDIO DIGITAL

como se muestra en la gura 4.10. Al aplicar esta se nal aleatoria, se logra desestructurar el ruido de cuantizaci on y convertirlo en ruido uniforme, el cual es bastante menos audible que el ruido estructurado.

4.2.

Sistema binario

La unidad b asica de informaci on que un computador puede reconocer es un bit. Un bit representa el estado o posici on de un switch dentro del hardware del computador y solamente puede asumir dos estados: encendido o apagado (electr onicamente esto es equivalente a decir que por un cierto punto de un circuito pasa o no pasa corriente el ectrica). Normalmente el estado de encendido se representa por un 1 y el apagado por un 0. Un sistema de informaci on de este tipo, en el cual s olo hay dos estados posibles, se conoce como sistema binario. . La cantidad de informaci on que puede ser representada por un sistema binario depende del n umero de bits disponible. Por ejemplo, si s olo se cuenta con 2 bits, las u nicas posibilidades distintas de informaci on son: 00, 01, 10 y 11. En general, n bits pueden representar 2n estados distintos. Hexadecimal (base 16) 0 1 2 3 4 5 6 7 8 9 A B C D E F Decimal (base 10) 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Octal (base 8) 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 Binario (base 2) 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Cuadro 4.1: Representaci on num erica en distintos sistemas CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.3. EL COMPUTADOR

73

Por lo general, los bits son agrupados en bytes, que corresponden normalmente a agrupaciones de ocho bits cada una. En consecuencia, un byte puede asumir 28 = 256 estados distintos. La tabla 4.1 muestra los n umeros del cero al quince representados en distintos sistemas: hexadecimal, decimal, octal y binario. Estos sistemas dieren en la base que utilizan.

4.3.

El computador

Un computador es b asicamente una m aquina que realiza dos funciones b asicas: ejecuta en forma muy r apida una secuencia de instrucciones (un programa) y almacena y recupera grandes cantidades de informaci on (datos). De acuerdo a esto, un computador puede caracterizarse por su velocidad de operaci on (medida en Hertz o ciclos por segundo), el tipo de instrucciones que puede ejecutar (esto determina el tipo de computador) y la capacidad de su memoria (medida en bytes). El t ermino hardware se reere a la circuiter a electr onica que posee un determinado computador y software a los programas que dicho computador puede ejecutar. Dentro del hardware est an, entre otras cosas, el procesador, la memoria RAM, el disco duro, la placa madre, la tarjeta de sonido, el monitor y el lector de CD. Inclu dos en el software est an el sistema operativo y programas tales como procesadores de texto, planillas de c alculo, agendas y juegos. El sistema operativo es un conjunto de programas que permiten que el hardware funcione correctamente y que el usuario cree otros programas para usos m as espec cos.

Figura 4.11: Estructura b asica de un computador En la gura numero 4.11 se puede apreciar la estructura b asica de un computador. En ella se aprecian cuatro unidades fundamentales: memoria CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

74

CAP ITULO 4. AUDIO DIGITAL

externa, entrada/salida, unidad central de procesos (CPU) y memoria interna. La Unidad Central de Procesos (CPU en ingl es), es el sistema central del computador. Controla la operaci on del sistema leyendo e interpretando instrucciones para el ujo de la informaci on. Estas instrucciones pueden tambi en tomar decisiones basadas en los datos que son almacenados en el computador o en dispositivos externos. Es esta propiedad de tomar decisiones la que diferencia a un computador de, por ejemplo, una simple calculadora. La memoria guarda tanto programas (instrucciones) como datos. Est a dividida en distintas particiones en las cuales la informaci on es almacenada. Cada partici on de memoria est a un vocamente asociada a un n umero de direcci on. La CPU utiliza este n umero tanto para almacenar como para leer la informaci on contenida en una partici on determinada. Cuando el computador es encendido, el harware interno le da a la CPU la direcci on de memoria que contiene la primera instrucci on de programa. La ejecuci on del programa comienza en este momento. Las instrucciones siguentes son obtenidas en forma secuencial a partir de las sucesivas direcciones de memoria a menos que el programa indique a la CPU que hay que hacer un salto a alguna direcci on de memoria distinta. Mientras la CPU est a ejecutando algo, el programa puede hacer referencias a direcciones de memoria distintas a las que contienen las instrucciones del programa ya sea para almacenar datos o para ejecutar otras instrucciones. El programa almacenado en memoria le otorga al computador la exibilidad de ejecutar una gran cantidad de tareas diversas, porque el programa puede ser cambiado f acilmente cambiando s olo las direcciones de memoria. Esto no siempre fue as . Antiguamente los programas y los datos no compart an la misma memoria, por lo tanto los cambios en los programas eran dicultosos porque muchas veces implicaban tambi en cambio en el hardware. Pero a nes de 1940, John von Neumann llev o a cabo la idea de utilizar la misma memoria tanto para los datos como para los programas. Este nueva concepci on fue todo un hito en la historia de la computaci on, pues permiti o que los programas fueran tratados como datos. De esta manera, los programas pueden utilizarse para escribir otros programas, lo que facilita la labor del programador. Actualmente, el noventa por ciento de los computadores modernos utiliza la arquitectura de von Neumann. Existen dos tipos b asicos de memoria: ROM y RAM. La memoria ROM (Read Only Memory) es una memoria que no puede alterada durante el proceso normal de ejecuci on de la CPU. Por lo general, las instrucciones de inicializaci on de un computador est an contenidas en memoria de este tipo, CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

DE COMPUTADORES 4.4. PROGRAMACION

75

de manera de garantizar que el computador siempre se reinicie de la misma manera. La memoria RAM (Random Access Memory) es una memoria vol atil, en el sentido de que puede ser le da y escrita por la CPU y una vez que el computador se apaga, su contenido es borrado. La cantidad de memoria RAM que un posee un computador determina el tama no de los programas que este puede ejecutar. Una instrucci on de CPU puede utilizar uno o m as bytes. La mayor a de los computadores utiliza instrucciones de largo variable: de esta manera se optimiza el uso de la memoria, dado que instrucciones m as simples necesitan menos memoria que las que son m as complejas. Para que el trabajo de la CPU sea u til, es necesario que esta tenga acceso a informaci on externa y tenga los mecanismos necesarios para reportar el resultado de sus c alculos. El sistema en Entrada/Salida (Input/Output en ingl es, o simplemente I/O), permite a la CPU interactuar con una gran cantidad de dispositivos externos. Ejemplos de dispositivos de entrada son el teclado y el mouse y de salida el monitor o una impresora que permiten al usuario interactuar adecuadamente con el computador. Un ejemplo de este tipo de dispositivo es el disco duro, que constituye la memoria externa del computador. Este disco almacena datos y programas que no est an siendo utilizados por la CPU en un determinado momento y tiene la capacidad de guardar su contenido en el tiempo, es decir, su contenido no desaparece una vez que el computador es apagado. Otro ejemplo es el CD-ROM, dispositivo que permite guardar informaci on en un disco removible. Por lo general, este tipo de dispositivos tiene una capacidad de almacenamiento bastante mayor que la memoria RAM y pueden llegan al orden de 20 o m as Gigabytes (mil millones de bytes). Todas las instrucciones que ejecuta la CPU est an sincronizadas por un reloj interno que oscila con una frecuencia del orden de los 1000 MHz en el caso de los computadores m as modernos. Este sincronismo es necesario para que, por ejemplo, la CPU no trate de leer y escribir en una misma direcci on de memoria al mismo tiempo. La velocidad de oscilaci on de este reloj se conoce como la velocidad de operaci on del computador y determina el n umero de instrucciones por segundo que la CPU puede ejecutar aunque no necesariamente en una relaci on uno a uno.

4.4.

Programaci on de computadores

En general un computador puede ser programado para realizar cualquier tarea siempre y cuando el hardware y el sistema operativo lo permitan. El CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

76

CAP ITULO 4. AUDIO DIGITAL

programador debe determinar un procedimiento o algoritmo que puede ser escrito como una secuencia de instrucciones que permiten realizar una tarea determinada. Cada paso del algoritmo debe ser especicado sin ambig uedades y debe haber un camino (trazo) claro para que el algoritmo pueda ser completado. Un algoritmo puede describir, por ejemplo, el proceso de ejecuci on de una obra musical por parte de un pianista. El algoritmo debe describir claramente cada paso que el m usico debe seguir al ejecutar cada una de las notas de la pieza. En este caso, el algoritmo debiera ser el siguiente: 1. Encontrar el inicio de la pieza. 2. Leer la primera nota. 3. Ir al paso 5. 4. Leer la siguiente nota. 5. Apretar la tecla apropiada en el piano. 6. Contar la duraci on de la nota y soltar la tecla. 7. Era esta la u ltima nota? Si la respuesta es si, entonces ir al paso 8. Si la respuesta es no, entonces ir al paso 4. 8. Fin del algoritmo.

4.5.

Sistema operativo y sistema de archivos

Dado que un computador por lo general tiene acceso a una gran cantidad de programas de distinta naturaleza, es necesario contar con alg un grupo de programas que se encarguen de la operaci on b asica del computador y permitan la correcta operaci on de otros programas. Esto es lo que se conoce como sistema operativo. Un sistema operativo no es m as que una colecci on de programas que prestan servicios u tiles para la operaci on del computador. Por ejemplo, un sistema operativo contiene el software necesario para la comunicaci on de la CPU con los dispositivos de Entrada/Salida. Tambi en provee el orden necesario para que la CPU pueda cambiar de un programa a otro en forma correcta. Por lo general, los sistemas operativos m as simples (como DOS o Windows 3.1) solamente pueden ejecutar un s olo programa a la vez. Esto es porque la CPU est a exclusivamente dedicada a ejecutar un programa y no CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.5. SISTEMA OPERATIVO Y SISTEMA DE ARCHIVOS


Sistema Operativo DOS Windows 3.0 Windows 95/98 Windows NT MacOS Linux SunOS / Solaris AIX IRIX HP-UX Fabricante Microsoft Microsoft Microsoft Microsoft Apple No tiene (gratis) Sun Microsystems IBM Silicon Graphics Hewlett Packard Multitasking NO NO SI SI SI SI SI SI SI SI Multiusuario NO NO NO SI NO SI SI SI SI SI

77

Figura 4.12: Sistemas Operativos m as utilizados

abandona la ejecuci on hasta que el programa termine o hasta que reciba una interrupci on de la ejecuci on. Pero los sistemas operativos m as avanzados (como UNIX) son multitarea (multitasking, en ingl es) y permiten que varios programas se ejecuten en forma simult anea y adem as que hayan varios usuarios conectados al sistema al mismo tiempo. En la tabla 4.5 se pueden apreciar los sistemas operativos m as utilizados y alguna de sus caracter sticas. El dram atico aumento en la capacidad de almacenamiento de dispositivos tales como el disco duro o el CDROM obliga al sistema operativo a ser eciente en el proceso de almacenar y recuperar grandes cantidades de bytes en un medio f sico cada vez m as peque no. Por lo tanto, el sistema operativo debe disponer de un sistema de archivos adecuado. El elemento b asico de almacenamiento de informaci on reconocido por los sistemas operativos modernos es el archivo. Un archivo (le en ingl es), puede contener programas o datos indistintamente. El largo de un archivo est a determinado solamente por su contenido. Para ejecutar un programa que est a contenido en una memoria externa, la CPU carga en la memoria principal el archivo apropiado y ejecuta la primera instrucci on que este contenga. Los archivos de datos pueden contener cualquier tipo de informaci on. Para manejar las grandes cantidades de informaci on de un sistema computacional, los archivos se agrupan en directorios o carpetas (folder en ingl es). Estos directorios pueden contener archivos y tambi en otros directorios, que se llaman subdirectorios. Para referenciar un directorio determinado y no confundirlo con otros directorios, los sistemas operativos utilizan ciertos caracteres delimitadores. Por ejemplo, si se trata de un sistema operativo Windows, la expresi on \Windows\Escritorio\Carpeta1, da cuenta de CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

78

CAP ITULO 4. AUDIO DIGITAL

tres directorios distintos, uno llamado Windows, que contiene a su vez un subdirectorio llamado Escritorio y que a su vez contiene otro subdirectorio llamado Carpeta1. En el caso de un sistema Macintosh esta expresi on ser a Windows:Escritorio:Carpeta1 y en el caso de un sistema Unix Windows/Escritorio/Carpeta1. Lo u nico que cambia es el caracter delimitador.

4.6.

Uso del computador en sistemas de audio

Un computador puede generar y manipular sonidos de varias formas diferentes. Sin embargo, el sonido debe estar representado en un formato que el computador pueda procesar. Dado que los computadores son binarios, es necesario digitalizar el audio para que el computador pueda leer la informaci on sonora. En otras palabras, un computador s olo puede procesar audio digital. Esto no signica que el computador no pueda interactuar con audio an alogo. La diferencia entre audio an alogo y digital es abordada en forma detallada en la secci on 4.1. La gura 4.13 muestra las tres formas m as usuales del uso del computador en sistemas de audio. El caso a) corresponde al proceso de grabaci on o procesamiento digital. El audio an alogo es captado por un transductor, por ejemplo un micr ofono, que convierte las la variaciones de presi on del aire (energ a ac ustica) en una se nal el ectrica, que consiste b asicamente en variaciones de voltaje. Esta se nal es luego ltrada por un ltro pasabajos con el n de eliminar componentes de frecuencia no deseados y eliminar la posibilidad de aliasi on, explicada en la secci on 4.1.1. Una vez ltrada la se nal, esta es digitalizada (sampleada o muestreada) por un conversor an alogo/digital. La salida de este conversor contiene audio digital, que puede ser procesado o guardado en memoria externa por el computador. Un ejemplo de procesamiento de la se nal podr a ser aplicar reverberaci on al sonido original o mezclarlo con otro previamente almacenado en memoria externa. Una vez realizado el proceso, el audio es introducido esta vez en un conversor digital/an alogo y pasado por un ltro pasabajos. La salida de este ltro produce audio an alogo que podr a ser amplicado y lanzado nuevamente al aire mediante parlantes. La grabaci on digital tiene varias ventajas por sobre su similar an aloga. Dado que la informaci on digitalizada contiene s olo n umeros y no una se nal an aloga, tiene una calidad superior ya que no se deteriora con el tiempo CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.6. USO DEL COMPUTADOR EN SISTEMAS DE AUDIO

79

Figura 4.13: Sistemas computacionales de audio ni depende de variables como la temperatura ambiente, presi on atmosf erica, viscosidad del aire o el ruido ambiental. Adem as, una copia digital del original digital es exactamente id entica y el. El caso b) corresponde al an alisis de se nales. Cuando el computador opera como un analizador de se nales, el computador toma una se nal digital y matem aticamente determina sus caracter sticas. Por ejemplo, un an alisis computacional puede revelar informaci on importante sobre las propiedades ac usticas de un determinado sonido. El computador tambi en puede sintetizar sonido mediante el c alculo de secuencias de n umeros que corresponden a la forma de onda del sonido deseado como salida. El proceso de utilizar hardware digital para generar sonidos mediante el c alculo de su forma de onda se conoce como s ntesis digital directa. Este proceso tiene varias ventajas respecto a la s ntesis an aloga de sonidos, dado que las se nales digitales dentro de un computador son extremadamente precisas, por lo tanto se pueden representar num ericamente en forma exacta y reproducir en el tiempo con gran exactitud. Otra ventaja es la repetibilidad. Un sistema digital siempre va a producir CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

80

CAP ITULO 4. AUDIO DIGITAL

exactamente la misma salida para los mismos datos de entrada, cosa que no sucede en los sistemas an alogos. Pero la ventaja m as importante es la generalidad. Dado que cualquier sonido puede ser convertido en una se nal digital, consecuentemente cualquier sonido puede ser sintetizado utilizando algoritmos apropiados para calcular su representaci on digital. En teor a, los sonidos sintetizados digitalmente pueden ser arbitrariamente complejos y tener cualquier car acter. Uno de los desaf os m as importantes de la s ntesis digital es encontrar los algoritmos adecuados para producir determinados sonidos. Muchos modelos de s ntesis se basan en las caracter sticas naturales de los sonidos, pero otros buscan modicar sus caracter sticas para ampliar los sonidos originales y darle propiedades no naturales.

Figura 4.14: Uso del computador por parte de los compositores La gura 4.14 muestra alguna de las formas en que los compositores CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.7. SOFTWARE PARA MUSICA COMPUTACIONAL hacen uso de los sistemas computacionales.

81

4.7.

Software para m usica computacional

La mayor a de los software de m usica computacional caen en una de las siguientes categor as: algoritmos para s ntesis de sonidos, algoritmos para modicaci on de sonidos sintetizados o sampleados, programas que asisten al m usico en la composici on ya sea con sonidos sintetizados o sonidos ac usticos de instrumentos tradicionales y programas que permiten una interpretaci on composicional de una obra. Esta divisi on es s olo un modelo que responde a actividad musical tradicional, pero no es una verdad absoluta y pueden haber enfoques diferentes.

Figura 4.15: Familia de los programas de s ntesis de sonidos El primer software para s ntesis de sonidos fue el Music 3, creado por Max Matthews en los Laboratorios Bell en la primera mitad de los a nos sesenta. Su sucesor, Music 4, fue distribuido entre distintas universidades, donde la actividad musical era m as intensa. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

82
S ntesis directa Csound Cmix Cmusic Chant Common Music Lisp UPIC Granular Synthesis Procesadores de partituras y programas de composici on Score 11 Common Music HMSL Finale

CAP ITULO 4. AUDIO DIGITAL


Modicaci on digital de sonidos Sound Hack Protools (Digidesign) Dyaxis Sound Forge (Sonic Solutions) RT

Control en tiempo real MAX jMax Vision Studio Vision Cypher HMSL

Figura 4.16: Softwares de m usica m as utilizados en los a nos noventa La gura 4.15 muestra una serie de programas que han evolucionado en distintos lugares a partir de los originales Music 1 2 3 y 4. All se aprecia que en Princeton Godfrey Winham y Hubert Howe hicieron variaciones de la versi on de Music 4 y m as tarde en el Massachusetts Institute of Technology (MIT) se llevaron a cabo las versiones Music 360 y Music 11 por Barry Vercoe, quien a nos m as tarde dar a luz a la primera versi on de CSound. Por otra parte, en Stanford University se programaron las variaciones Music 6 y Music 10 y mucho tiempo despu es se cre o Common Music Lisp, un lenguaje de s ntesis basado en inteligencia articial con una ra z absolutamente distinta. Si bien la familia de lenguajes Music-N se encuentra actualmente obsoleta debido al avance de la tecnolog a, la mayor a de los programas de s ntesis utilizados actualmente (CSound, Cmusic, Cmix) est an basados en ella. La gura 4.7 muestra algunos de los softwares de m usica m as utilizados en los u ltimos a nos. Tal como se mencion o anteriormente, estos pueden clasicarse de acuerdo a cuatro categor as.

4.8.

MIDI

MIDI signica Musical Instruments Digital Interface y consiste en un protocolo digital de comunicaciones entre sintetizadores. Es decir, consiste solamente en instrucciones que los sintetizadores entienden y que pueden compartir entre si. MIDI no es audio digital. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

4.8. MIDI

83

En la misma forma en que dos computadores se comunican, dos sintetizadores pueden intercambiar informaci on v a MIDI. Esta informaci on es musical por naturaleza. La informaci on MIDI le dice a un sintetizador, por ejemplo, cuando empezar a tocar una nota y cuando terminar. Tambi en puede indicar con que volumen se toca esa nota, o cuando cambiar sonidos o incluso puede contener informaci on de hardware espec ca. Cada comando MIDI tiene una secuencia de bytes espec ca. El primer byte es el byte de status, que le indica al sintetizador que funci on ejecutar. Inclu do en este byte de status va el canal MIDI. MIDI opera con 16 canales de audio diferentes en forma simult anea, denominador por los n umeros del 0 al 15. Algunas de las funciones indicadas por el byte de status son Note On, Note O, System Exclusive (SysEx) o Patch Change. Dependiendo del contenido del byte de status, un n umero determinado de bytes seguir an al byte de status hasta que se reciba un nuevo byte de status. Los fabricantes de computadores pronto se dieron cuenta que el computador podr a ser una fant astica herramienta para MIDI, dado que los dispositivos MIDI y los computadores hablan en el mismo lenguaje. Dado que la tasa de transmisi on de los datos MIDI (31.5 kbps) no es la misma que utilizan los computadores, los fabricantes tuvieron que dise nar una interfaz especial que permitiera a los computadores comunicarse con cualquier sintetizador. Virtualmente cualquier cosa que puede ser hecha v a MIDI posee software especializado en el mercado. En primer lugar, est an los secuenciadores (Cakewalk, Encore) que simplemente ordenan eventos MIDI en listas y los env an en los tiempos apropiados a las distintos dispositivos externos o internos. Estos secuenciadores permiten grabar, almacenar, tocar y editar datos MIDI. Tambi en existe una gran variedad de editores de sonido y librer as de sonidos que permiten exibilizar los sonidos de un determinado sintetizador. Las librer as m as avanzadas permiten editar y grabar bancos enteros de sonidos en las memorias de los sintetizadores.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

84

CAP ITULO 4. AUDIO DIGITAL

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 5

S ntesis digital de sonidos

Una de las grandes ventajas que ofrece la tecnolog a digital es la posibilidad de dise nar sonidos con un alto nivel de precisi on y exibilidad. El computador permite crear sonidos directamente mediante algoritmos o manipulaci on num erica, sin la mediaci on del mundo ac ustico y sin la necesidad de partir sobre la base sonidos previamente grabados. Este proceso de dise no o creaci on n umerica se denomina s ntesis. Desde los primeros experimentos de s ntesis sonora a trav es de computadores, numerosas t ecnicas y algoritmos han sido propuestos en la literatura los cuales se basan en principios muy diversos e incluso en algunos casos bastante opuestos. Por lo tanto, es importante contar con criterios de clasicaci on que nos permitan agrupar las diferentes t ecnicas de acuerdo a sus caracer sticas comunes.

5.1.

Clasicaci on

Un primer esquema b asico de clasicaci on divide las distintas t ecnicas entre las que intentan reproducir un sonido existente y las que no. El primer grupo puede ser llamado concreto (no el sentido de la m usica concreta, sino en el de reproducir alg un sonido ya existente) y el segundo abstracto. Esta clasicaci on puede parecer confusa ya que hay t ecnicas de s ntesis que no est an basadas en ninguno de estos criterios y al mismo tiempo satisfacen ambos, como es el caso de la s ntesis FM, la cual puede ser utilizada para simular bronces o campanas como tambi en para producir sonidos electr onicos abstractos que responden a criterios matem aticos no necesariamente musicales. No obstante, esta primera clasicaci on resulta adecuada para discutir el problema concerniente a la fuente sonora, o el objeto sonoro seg un 85

86

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

Schaeer, y nos provee de un claro acercamiento a estas t ecnicas (ver secci on 7.2.4). Otro criterio de clasicaci on muy utilizado divide las t ecnicas en tres areas principales: abstracta, modelos f sicos y modelos espectrales. En el primer grupo se pueden incluir las t ecnicas de s ntesis m as clasicas que pretenden simplemente explorar algoritmos matem aticos para generar sonidos. Es as como en 1977, Moorer [38] ya propone que la forma natural de clasicaci on debiera considerar t ecnicas de s ntesis aditiva, subtractiva y modulaci on (tambi en llamada s ntesis no lineal o de distorsi on), y que en general son usadas en combinaci on. Esta clasicaci on es raticada por Moore en su libro Elements of Computer Music [19]. Es importante aclarar que hoy en d a la s ntesis no lineal no se reere exclusivamene a la modulaci on, sino que agrupa un gran numero de t ecnicas basadas en ecuaciones matem aticas con comportamiento no lineal [32]. En el segundo grupo se incluyen todas las t ecnicas que se basan en el estudio de las propiedades f sicas de los instrumentos musicales u otras fuentes sonoras y su posterior implementaci on y simulaci on en el computador. Existen autores que s olo toman en cuenta estos dos primeros grupos para clasicaci on. Por ejemplo, Borin et al. sugiere que la s ntesis algor tmica de sonidos se puede dividir en dos clases: S ntesis algor tmica directa cl asica, la que incluye transformaciones de s ntesis aditiva, granular, subtractiva y no lineal y las t ecnicas de modelos f sicos, en la cual se encuentran la familia de m etodos que modelan la ac ustica de los instrumentos [26]. El tercer grupo consiste en t ecnicas que pretenden modelar el comportamiento del sonido directamente en su espectro de frecuencias. Este tipo de t ecnicas de s ntesis se basa fuertemente en el mundo perceptual de los sonidos y no en el mundo f sico. Tal como se describe en detalle en el cap tulo 3, el sistema auditivo humano puede modelarse como un analizador de frecuencias, de forma muy similar a un analizador de Fourier (ver secci on 1.2). Es por esto que este tipo de t ecnicas son m as apropiadas para sintetizar sonidos naturales que instrumentales y usualmente requieren de una etapa previa de an alisis, antes de la s ntesis. Existen otros esquemas de clasicaci on bastante divergentes de este modelo tripartito. En 1983, De Poli [22] sugiri o la siguiente clasicaci on para las s ntesis algor tmicas: t ecnicas de generaci on, las cuales producen una se nal de datos entregados, y t ecnicas de transformaci on que pueden ser divididas en dos sub-clasicaciones, la generaci on de una o mas se nales simples y sus modicaciones. De Poli tambi en sugiere que habitualmente se utilizan combinaciones de estas t ecnicas. En el u ltimo tiempo, se han propuesto clasicaciones m as detalladas CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.1. CLASIFICACION

87

y sin grupos tan divisorios o fuertemente delimitados. Es as como en su famoso libro The Computer Music Tutorial [27], Curtis Roads propone la siguiente clasicaci on para la s ntesis de sonidos: Sampling y s ntesis aditiva. S ntesis mediante multiples tablas de ondas, wave terrain, s ntesis granular, y subtractiva. S ntesis por modulaci on : Ring, AM, FM, distorsi on de fase y forma de onda. S ntesis mediante modelos f sicos. S ntesis por segmento de ondas, s ntesis gr aca y estoc astica. En cambio, Dodge and Jerse [11] usan el siguiente esquema de clasicaci on: S ntesis utilizando t ecnicas no perturbativas: aditiva, AM, modulaci on de anillo. S ntesis utilizando t ecnicas pertubativas: FM, waveshaping, s ntesis usando formulas aditivas discretas. S ntesis subtractiva. S ntesis para el an alisis de datos : voz, STFT, phase vocoder, wavelets. S ntesis granular. Modelos f sicos. En 1991, Smith propone una clasicaci on mas detallada dividiendo los m etodos de s ntesis en cuatro grupos: algoritmos abstractos, grabaci on procesada, modelos espectrales y modelos f sicos. Propone adem as la siguiente taxonom a para las t ecnicas de s ntesis digital [36]: De acuerdo con Serra, una forma de entender la clasicaci on de Smith es hablar de los m etodos de s ntesis como t ecnicas digitales que nos permiten obtener una sonoridad continua que va desde la reproducci on de sonidos pre-existentes (grabados) hasta la generaci on de sonidos mediante una abstracci on (sonidos imaginados), pasando por todos los pasos intermedios. En este contexto, t ecnicas basadas en el procesamiento de grabaciones tienen como fundamento la pre-existencia de sonidos e intentan crear sonidos nuevos o imaginarios. En el otro extremo de la clasicaci on est an los algoritmos CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

88 Procesado Concreta Tabla de Onda T Muestreo Vector Granular Componentes principales T Wavelet T

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS Modelos espectrales Tabla de Onda F Aditiva Phase Vocoder PARSHL Sinosoides + Ruido (Serra) Componentes principales F Chant VOSIM FM de Risset (bronces) FM de Chowning (voz) Subtractiva LPC FFT inversa Clusters de l neas de Xenakis Cuadro 5.1: Taxonom a de las t ecnicas de s ntesis digital de sonidos Modelos f sicos Cuerdas de Ruiz KarplusStrong Ext. Ondas gu as Modal Cordis-Anima Mosaico Algoritmos abstractos VCO, VCA, VCF Music V FM FM con retroalimentaci on Formateo de onda Distorsi on de fase KarplusStrong

abstractos, que de ecuaciones matem aticas generan sonidos que distan de los sonidos naturales, pero que manipul andolos se obtienen sonidos que nos permiten una comunicaci on musical especica, como por ejemplo, los sintetizadores basados en t ecnicas de FM. Los modelos espectrales y f sicos est an en la zona intermedia y tienen su fundamento en modelos o abstracciones que describen sonidos pre-existentes y los objetos que lo generan. Esto nos permite la exploraci on de la conexi on entre el sonido real y el sonido virtual [32]. En 2004, Bank et al. [2] dividen las t ecnicas de s ntesis de audio en tres grupos, unicando dos grupos de la clasicaci on propuesta por Smith. El CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.2. EVALUACION

89

primer grupo es la familia de m etodos abstractos. Estos son diferentes algoritmos que generan f acilmente sonidos sint eticos. M etodos tales como FM y waveshaping pertenecen a esta categor a. El modelar instrumentos reales con este m etodo es en extremo complejo si la relaci on entre los par ametros de la t ecnica y aquellos de los instrumentos reales no pueden ser determinados con facilidad. El segundo grupo, denominado modelo de se nales, es el que modela los sonidos de los instrumentos musicales. En este caso, la entrada al modelo es solo la forma de onda o un conjunto de ellas generadas por el instrumento y la f sica no es tratada en detalle. Los m etodos de s ntesis tales como sampling y SMS (spectral modeling synthesis) pertenecen a esta categor a. Este grupo corresponde al procesamiento de sonidos pre-grabados en la taxonom a de Smith. El tercer grupo, denominado como modelamiento f sico, es el intenta reproducir el comportamiento f sico de un instrumento o fuente sonora. Usualmente, los sistemas f sicos (tales como una cuerda de un instrumento o la membrana de un tambor) pueden ser descritos resolviendo una ecuaci on de onda. Dada una excitaci on inicial (tal como tocar la cuerda o golpear el tambor) y estableciendo las condiciones de contorno para el problema en particular, las ecuaciones pueden ser resueltas y utilizadas como entradas al sistema por lo que la salida se espera sea cercana al sonido original. Un m etodo conocido en esta categor a es la s ntesis digital con ondas gu as o waveguides, que modela ecientemente ondas unidimensionales.

5.2.

Evaluaci on

Dado el gran n umero de t ecnicas de s ntesis que han sido propuestas en la literatura, surge la legitima inquietud de como evaluar o compara cada una de estas aproximaciones. Como Jae dice Un gran numero de t ecnicas de s ntesis y procesamiento se han inventado. La pregunta es cual es la mejor [16]. Lamentablemente no hay una respuesta simple a eso y la mejor t ecnica depende de las prioridades de quien la utiliza y del problema a tratar. Serra [32] menciona cuatro consideraciones que se debiesen tener en cuenta al escoger una t ecnica de s ntesis especica. Estas son: 1. Calidad del sonido. Con esto queremos expresar la riqueza del sonido. Un sonido de gran calidad ser a uno que se asemeje a un sonido natural, en cambio uno de baja calidad ser a un sonido simple, sintetizado electr onicamente sin micro-variaciones durante su duraci on. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

90

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS 2. Flexibilidad. Este t ermino describe la habilidad que tiene una t ecnica de s ntesis especica para modicar el sonido desde el control de un conjunto reducido de par ametros. Bajo este criterio, un sampler no es considerado como exible, en cambio que la s ntesis FM si lo es. 3. Generalidad. Por generalidad se entiende la posibilidad de una t ecnica de s ntesis de crear una gran variedad de timbres. As , la s ntesis aditiva sera una t ecnica general, en tanto que el sampler sera una t ecnica mucho m as espec ca. 4. Tiempo de c omputo. Esto se reere al n umero de instrucciones computacionales que se necesitan para sintetizar un sonido. En este contexto, la s ntesis FM es muy econ omica en comparaci on con la s ntesis aditiva, la cual resulta muy costosa.

Jae postul o 10 criterios espec cos para evaluar m etodos de s ntesis de sonidos[16]. Formul o sus criterios en forma de las siguientes preguntas: 1. Qu e tan intuitivos son los par ametros? 2. Qu e tan perceptibles son los cambios en los par ametros? 3. Qu e tan f sicos son los par ametros? 4. Qu e tan bien se comportan los par ametros? 5. Qu e tan robusta es la identidad sonora? 6. Qu e tan eciente es el algoritmo? 7. Qu e tan escaso es el control sobre el stream? 8. Qu e clase de sonidos puede ser representado? 9. Cual es la mas peque na latencia? 10. Existen herramientas de an alisis? Si bien es importante contestar estas preguntas para cada m etodo nuevo de s ntesis, la respuesta sobre cual m etodo es el m as adecuado depende en gran medida de su aplicaci on y de los recursos disponibles. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.3. FUNDAMENTOS

91

5.3.
5.3.1.

Fundamentos
Osciladores

Una oscilaci on de la variaci on peri odica en el tiempo de alguna medida en torno a un valor central o de equilibrio o entre dos o m as estados. Ejemplos de oscilaciones en el mundo f sico son un p endulo o un resorte. En un computador, un oscilador puede implementarse en forma algor tmica, el requisito indispensable es que la se nal se repita despu es de un cierto tiempo.

Figura 5.1: Oscilador Para sintetizar sonidos en un computador es necesario disponer de se nales b asicas mediante las cuales se puedan constriur sonidos m as complejos. Esto se hace a trav es de un oscilador. Un oscilador consiste b asicamente en un algoritmo o dispositivo que es capaz generar se nales peri odicas o aleatorias. El oscilador m as com un es un oscilador sinusoidal, el cual genera se nales sinusoidales con una amplitud, frecuencia y fase determinada. Un oscilador puede tambi en generar distintos tipos de se nales estoc asticas o ruidos, tales como ruido blanco, ruido cafe o ruido rosa. Por lo general, los osciladores generan funciones b asicas, como las descritas en la gura 5.2. Esto es debido a un l mite en el ancho de banda disponible dada la tasa de muestreo del sistema. Si la se nal generada por el oscilador contiene componentes de frecuencia muy elevados, es probable que al generar el audio se produzca aliasi on. Para evitar esto, es com un implementar osciladores de ancho de banda limitada, los cuales evitan generar componentes de frecuencia m as all a de un cierto l mite. En el ap endice A.3 se describen los principales osciladores existentes en SuperCollider, denominados UGens, abreviaci on de unidades generadoras. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

92

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

Seno

Cuadrada

Tringular

Sierra

Figura 5.2: Se nales b asicas com unmente utilizadas en osciladores

5.3.2.

Tabla de ondas

Un oscilador por lo general lee los datos necesarios desde una tabla de ondas. Una tabla de ondas (wavetable en ingl es) consiste b asicamente en un pedazo de memoria donde se puede almacenar una se nal de audio. La tabla puede contener audio generado en forma sint etica o una se nal proveniente del mundo real muestreada. Es com un almacenar en una tabla de onda un ciclo de una onda de sonido cualquiera.

...

Indice

Figura 5.3: Tabla de ondas Un oscilador puede entonces leer datos desde la tabla de onda a distintas frecuencias y con eso puede generar una onda per odica de frecuencia arbitraria cuya forma de onda se encuentra determinada por los datos almacenados en la tabla. La gura 5.4 detalla el principio b asico de funcionamiento de un oscila CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.3. FUNDAMENTOS

93

INC

Incremento de muestra (determina la frecuencia)

PHS

Contador de fase (0

PHS < N)

Tabla de Onda
0

N-1 Salida

Figura 5.4: Algoritmo de un oscilador digital de sonidos dor. Un oscilador tiene dos contadores: uno que lleva la posici on en la tabla de ondas desde la cual se est a leyendo, denominado contador de fase, y otro llamado incremento, que contiene la cantidad de muestras que deben saltarse para leer desde la siguiente posici on de fase. La cantidad de incremento determina la frecuencia del sonido generado por el oscilador. Mientras mayor sea el incremento, la tabla de onda se completa m as r apido y mayor es la frecuencia de la se nal generada. Dado que usualmente se especica la frecuencia deseada y no directamente el valor del incremento, es necesario realizar alg un tipo de interpolaci on

5.3.3.

Envolventes

El sonido no es un fen omeno est atico. Muy por el contrario, usualmente cada componente de frecuencia de un sonido tiene vida propia, en el sentido de que adquiere un comportamiento independiente (o casi independiente) en el tiempo. Esto signica que cada parcial recorre una trayectoria o envolvente particular en su evoluci on temporal. En el dominio del tiempo, el sonido como un todo tambi en tiene un comportamiento denido por una envolvente de amplitud, tal como el mostrado en la gura 5.5. La gura 5.6 muestra la forma de la envolvente de sonidos reales para distintas din amicas. Claramente, la evoluci on temporal del sonido es distinta dependiendo del nivel de energ a, denido por su contenido de frecuencias, presente en la se nal ac ustica. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

94

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS


a
1.0

envolvente de amplitud

Figura 5.5: Envolvente de amplitud

Intensidad
ff

alta t med.
mf

t
p

baja t

Figura 5.6: Envolventes para distintas din amicas

Existen muchas formas de envolvente, pero por lo general siguen un patr on o evoluci on com un. La forma m as gen erica de envolvente se denomina ADSR (ataque, decaimiento, sostenimiento, relajo) por su abreviatura y mostrada en la gura 5.7. A continuaci on se describe cada secci on de esta envolvente.
Envolvente ADSR

Amplitud

Sostenimiento

Tiempo Ataque Decaimiento Relajo

Figura 5.7: Envolvente ADSR

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

5.4. S INTESIS ADITIVA

95

Ataque. El ataque es el tiempo que toma la se nal en alcanzar su m aximo Decaimiento. El decamiento es el tiempo que toma la se nal para estabilizarse Sostenimiento. Tiempo que dura la se nal estable. Relajo. El relajo es el tiempo que toma la se nal en desvanecerse.

Especificacin

Escala de amp Escala de tiempo

Tipo de env.

Gen. Env.
Frecuencia Mul: amp

Tabla de onda

Osc. Salida

Figura 5.8: Proceso de generaci on de envolventes

Las envolventes usualmente se utilizan para controlar la salida de un oscilador, tal como se detalla en la gura 5.8. Una vez elegida la forma de la envolvente, esta se escala tanto en tiempo como en amplitud y se multiplica por la salida de un oscilador. De esta forma, es posible manipular el comportamiento temporal de la se nal sintetizada. En el ap endice A.4 se describen las principales funciones de envolventes existentes en SuperCollider y su forma de utilizaci on.

5.4.

S ntesis aditiva

La s nteis aditiva consiste b asicamente en la superposici on o mezcla de ondas sinusoidales con el objetivo de generar ondas m as complejas. En el mundo ac ustico, este es el principio de funcionamiento de un organo de tubos. El concepto tras la s ntesis aditiva es simplemente la aplicaci on directa de la serie de Fourier con un n umero nito de componentes. Si bien esta CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

96

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

t ecnica se basa en Fourier, no todo es necesario seguirlo al pie de la letra, ya que perfectamente en un computador se pueden sumar sinusoides no arm onicas, es decir, se nales cuyas frecuencias no est en relacionadas por m ultiplos enteros. En este caso, los arm onicos se denominan parciales. La gura 5.9 muestra la suma de 5 sinusoides de distinta amplitud, frecuencia y fase, con relaciones no arm onicas entre si.
s1

s2

s3

s4

s5

s1+s2+s3+s4+s5

Figura 5.9: Suma de se nales simples para generar una compleja

Un sonido generado mediante s ntesis aditiva est a formado entonces por una cantidad variable de arm onicos o parciales que evolucionan a lo largo del tiempo con respecto a un tono o frecuencia fundamental. El n umero de parciales y su amplitud, frecuencia y fase relativa es lo que permite crear un sonido con un timbre determinado. Sin embargo, por lo general el timbre no es est atico y cada parcial sigue una curva particular de evoluci on temporal, tal como se describe en la secci on 3.6. Es por esto que en la s ntesis aditiva es muy importante la utilizaci on de diferentes envolventes que se encarguen del manejo la amplitud sobre cada parcial y es lo que estructura el comportamiento global del sonido en el tiempo. Para realizar el proceso se hace necesario disponer de un banco de osciladores, cada uno con su amplitud, fase y frecuencia respectiva, adem as de su propia envolvente de amplitud, cre andose un sonido din amico y realista, tal como lo muestra la gura 5.10

5.5.

S ntesis substractiva

En la s ntesis substractiva se sintetiza el sonido mediante la ltraci on o simplicaci on de una onda compleja. La se nal pasa a trav es de uno o m as ltros que modican su contenido arm onico, atenuando o reforzando determinadas areas del espectro de la se nal, tal como se describe en la gura CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.5. S INTESIS SUBSTRACTIVA

97

Figura 5.10: S ntesis aditiva

5.11. La s ntesis sustractiva est a basada de cierta manera en la idea inversa de la s ntesis aditiva, ya que a partir de se nales ricas en contenido de frecuencia la idea es eliminar ciertas bandas o componentes de manera de generar una se nal simplicada. Es por esta raz on que usualmente se utilizan se nales aleatorias o de ruido como punto de partida ya que poseen un espectro de frecuencias muy rico. Detalles completos de la implementaci on y teor a de los ltros digitales se encuentra en la secci on 6.1.

Figura 5.11: S ntesis substractiva

Los resultados de la s ntesis substractiva dependen en gran medida de la calidad y dise no de los ltros utilizados, de manera de poder producir en forma efectiva los cambios requeridos en la se nal de entrada. Las caracter sticas de los ltros se determinan por su funci on de transferencia y su orden. La primera determina la forma en que la se nal aplicada cambia en t erminos de su amplitud y fase al pasar por el ltro y la segunda describe el grado de precisi on en la aceptaci on o rechazo de frecuencias por encima o por debajo de la respectiva frecuencia de corte. Si se desea obtener m as precisi on en las frecuencias de corte o bien procesar la se nal de distintas maneras, se pueden combinar ltros de primer o segundo orden en dos formas: serie y paralelo, tal como se muestra en la gura 5.12. En el primer caso, la salida de un ltro alimenta a otro ltro. Un ejemplo de esta conguraci on podr a ser un sonido que primero es pasado por un ltro pasa bajos y luego reverberado mediante otro proceso. En el CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

98

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS


Entrada

Filtro

Filtro

Salida

Filtro
Entrada

+
Filtro

Salida

Figura 5.12: Conguraci on de ltros en la s ntesis substractiva

caso de ltros en paralelo, la se nal se ve modicada por uno o m as ltros al mismo tiempo y las salidas de estos se suman para generar la se nal modicada. Un ejemplo t pico de esta conguraci on es un ecualizador multibanda, descrito en la secci on 6.6.

5.6.

Modulaci on

El concepto modulaci on se basa en la idea de alterar alg un par ametro de una onda sonora en raz on de otra onda. Las formas m as comunes de modulaci on son modulaci on de amplitud o AM, que consiste en alterar la amplitud de una se nal portadora en funci on de la amplitud de otra se nal llamada moduladora y la modulaci on de frecuencia o FM, que consiste b asicamente en variar la frecuencia de una portadora en funci on de otra se nal moduladora. La s ntesis aditiva y las substractiva descritas anteriormente pueden ser consideradas como lineales en cuanto no afectan el contenido arm onico de la se nal. Simplemente se basan en operaciones lineales sobre la se nal en entrada. En contraste, las t ecnicas de modulaci on suelen tambi en llamarse de distorsi on o no lineales, dado que generan componentes arm onicos no posibles de obtener mediante operaciones lineales. Modular una se nal consiste en modicar alguna de las caracter sticas de esa se nal, llamada portadora, de acuerdo con las caracter sticas de otra se nal llamada modulador. Sea, xp (n) = Ap sin(p n) la se nal portadora o modulada y xm (n) = Am sin(m n) la se nal modulante o moduladora. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL (5.2) (5.1)

5.6. MODULACION

99

5.6.1.

Modulaci on Ring

En la modulaci on ring o anillo, ambas se nales simplemente de multiplican, como lo muestran la gura 5.13 y la ecuaci on 5.3.
Frecuencia Transportadora Frecuencia Moduladora

OSC

OSC

*
Figura 5.13: Modulaci on ring o anillo

x(n) = xm (n)xp (n)

(5.3)

El resultado que es en el espectro los componentes de frecuencia se reagrupan, generando dos componentes en fp + fm y fp fm , tal como se muestra en la gura 5.14. Este caso de modulaci on es un caso especial de la m as general s ntesis AM, que se detalla a continuaci on.

Figura 5.14: Espectro de la modulaci on ring

5.6.2.

S ntesis AM

En la s ntesis AM la se nal modulada tendr a una amplitud igual al valor m aximo de la se nal portadora m as el valor instant aneo de la se nal modulada: CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

100

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

x(n) = (Ap + Am sin(m n))sin(p n) Factorizando, la ecuaci on anterior puede escribirse como: x(n) = Ap (1 + donde m =
Am Ap

(5.4)

Am sin(m n))sin(p n) Ap

(5.5)

es el ndice de modulaci on. x(n) = Ap (1 + msin(m n))sin(p n) (5.6)

De acuerdo a los principios de la trigonometr a la se nal puede ser reescrita como x(n) = Ap sin(p n) + Ap msin(m n)sin(p n) y expandiendo se tiene que, Ap m Ap m cos((p + m )n) cos((p m )n) (5.8) 2 2 (5.7)

x(n) = Ap sin(p n) +

Frecuencia Transportadora

Frecuencia Moduladora

OSC

OSC

*
ENV

*
Figura 5.15: S ntesis AM

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

5.6. MODULACION
Ap Apm 2 Fp-Fm Fp Fp+Fm

101

Figura 5.16: Espectro de la modulaci on AM

La ecuaci on 5.8 nos permite deducir que al modular la amplitud se generan dos arm onicos laterales, tal como se muestra en la gura 5.16. Cuando la se nal moduladora sea una onda compleja y no sinusoidal como resultado de la modulaci on AM se obtendra un conjunto de bandas laterales dados por los arm onicos que esta contenga.

5.6.3.

S ntesis FM

Otra forma de modular la se nal es variar peri odicamente la frecuencia mediante otra se nal. Esto se denomina s ntesis FM o de frecuencia modulada.
Frecuencia Moduladora

OSC
Frecuencia Transportadora

OSC ENV

*
Figura 5.17: S ntesis FM

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

102

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS Matem aticamente, esto es: x(n) = sin(p n + Asin(m n)n) (5.9)

Esta expresi on puede ser reescrita como una serie de potencia que expresa la serie espectral resultante: x(n) = Ji (A)[sin( (ft + nfm )n + sin( (ft nfm )n)] (5.10)

Donde los Ji son funciones de Bessel. Al analizar el espectro de frecuencias de una se nal FM, observamos innitas frecuencias laterales, espaciadas en fm , alrededor de la frecuencia de la se nal portadora fp , tal como se observa en la gura 5.6.3. Sin embargo la mayor parte de las frecuencias laterales tienen poca amplitud, lo cual depende del ndice de modulaci on.

Fp-2Fm Fp-Fm

Fp

Fp+Fm Fp+2Fm

Figura 5.18: Espectro de la modulaci on FM En el ap endice A.6 se aborda la modulaci on SuperCollider, a trav es de ejemplos tanto de modulaci on de amplitud como de frecuencia.

5.7.

S ntesis granular

La s ntesis de sonido basada en granos o s ntesis granular es una t ecnica de producci on de sonidos que se basa en una concepci on del sonido en t erminos de part culas o cuantos, peque nas unidades de energ a encapsuladas en una envolvente y agrupados en conjuntos mayores, cuya organizaci on ser a determinada por dos m etodos principales de distribuci on temporal: sincr onico y asincr onico. En el m etodo sincr onico, los granos son disparados a frecuencias m as o menos regulares para producir sonidos con una altura denida. En contraste, el m etodo asincr onico genera secuencias aleatorias de separaci on entre los granos con el objetivo de producir una nube sonora (Dodge & Jerse, 262). La unidad m nima de la s ntesis granular es el cuanto sonoro o grano. Estos son fragmentos de sonido muy cortos, cuya longitud oscila entre 5 y CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.8. MODELOS F ISICOS

103

Figura 5.19: Grano sonoro sinusoidal 100 milisegundos para evitar que un grano individual pueda producir una respuesta perceptiva de altura en el oyente. La envolvente de los granos es determinada por una ventana usualmente de tipo gaussiana. La gura 5.19 muestra un grano basado en una onda sinusoidal con una envolvente de tipo gaussiana y la gura 5.20 un grano con la misma envolvente pero basado en ruido blanco. Las diferencias en la forma de la ventana y el contenido interno denen la cantidad de informaci on espectral en el grano.

Figura 5.20: Grano sonoro de ruido blanco El ap endice A.7 muestra ejemplos de s ntesis granular realizados en SuperCollider.

5.8.

Modelos f sicos

La s ntesis basada en modelos f sicos se hace a partir de la simulaci on en una computadora de un objeto f sico y sus caracter sticas. Estos m etodos de s ntesis generan sonidos describiendo el comportamiento de los elementos, tal como lo son las cuerdas, ca nas, labios, tubos, membranas y cavidades que conforman el instrumento. Todos estos elementos, estimulados mec ani CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

104

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

camente, vibran y producen perturbaciones, por lo general peri odicas en el medio que los rodea.

5.9.

Modelos espectrales

Los modelos espectrales est an basados en la descripci on de las caracter sticas del sonido que el auditor percibe. Por lo tanto, se basa n la percepci on y no en el mundo f sico. El sonido es generado en base a medidas perceptuales del timbre que se desea generar. La idea general de la s ntesis espectral es analizar un sonido de manera de obtener representaciones espectrales alternativas, las cuales pueden ser a su vez alteradas de manera de producir nuevos sonidos. La mayor a de esos enfoques involucra, por lo tanto, una etapa de an alisis previa a la s ntesis.

5.9.1.

Phase vocoder

Un vocoder (nombre derivado del ingl es voice coder), o codicador de voz, es un analizador y sintetizador de voz. Fue desarrollado en la d ecada de 1930 como un codicador de voz para telecomunicaciones. Su primer uso fue la seguridad en radiocomunicaciones, donde la voz tiene que ser digitalizada, cifrada y transmitida por un canal de ancho de banda estrecho. Muchos vocoders usan un gran n umero de canales, cada uno en una frecuencia. Los diversos valores de esos ltros no son almacenados como n umeros, que est an basados en la frecuencia original, sino por una serie de modicaciones que el fundamental necesita para ser modicado en la se nal vista en el ltro. Durante la reproducci on esos n umeros son enviados de vuelta a los ltros y entonces se modican con el conocimiento de que el habla var a t picamente entre esas frecuencias. El resultado es habla inteligible, aunque algo mec anica. Los vocoders a menudo incluyen tambi en un sistema para generar sonidos sordos, usando un segundo sistema para generar sonidos sordos consistente en un generador de ruido en lugar de la frecuencia fundamental. El vocoder examina el habla encontrando su onda b asica, que es la frecuencia fundamental, y midiendo c omo cambian las caracter sticas espectrales con el tiempo grabando el habla. Esto da como resultado una serie de n umeros representando esas frecuencias modicadas en un tiempo particular a medida que el usuario habla. Al hacer esto, el vocoder reduce en gran medida la cantidad de informaci on necesaria para almacenar el habla. Para recrear el habla, el vocoder simplemente revierte el proceso, creando la CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.9. MODELOS ESPECTRALES

105

frecuencia fundamental en un oscilador electr onico y pasando su resultado por una serie de ltros basado en la secuencia original de s mbolos. El vocoder est a relacionado con el algoritmo denominado phase vocoder, o vocoder de fase, aunque esencialmente es diferente de este. Una phase vocoder es un tipo de vocoder que permite escalar una se nal de audio tanto en el dominio de la frecuencia como en el dominio del tiempo usando informaci on de fase. El algoritmo permite la modicaci on del espectro de un se nal de audio, mediante lo cual es posible realizar efectos tales como compresi on o expansi on temporal y desfase de alturas (pitch shifting). El phase vocoder se basa en la Transformada de Fourier de tiempo corto, o STFT. La STFT genera un representaci on combinada de tiempo y frecuencia del sonido, o lo que se denomina un sonograma, a trav es de sucesivas FFT en intervalos de tiempo relativamente cortos. En cada frame es posible modicar la informaci on de amplitud o fase de la FFT, para luego resintetizar el sonido, generando de esta manera variaciones espectrales.

5.9.2.

S ntesis de formantes

La voz humana consiste en sonidos generados por la apertura y cierre de la glotis o cuerdas vocales, lo que produce una onda peri odica por lo general rica en contenido de frecuencia. Este sonido b asico es modicado por el tracto vocal, generando zonas de concentraci on de le energ a espectral, denominados formantes. Un formante consiste en una alta concentraci on de energ a que se da en una determinada banda de frecuencias. En el caso de la voz humana, para cada sonido usualmente se producen entre tres y seis formantes principales, denotados como F1, F2, F3, etc. Normalmente s olo los dos primeros son necesarios para caracterizar una vocal, si bien la pueden caracterizar hasta seis formantes. Los formantes posteriores determinan propiedades ac usticas como el timbre. Los dos primeros formantes se determinan principalmente por la posici on de la lengua. F1 tiene una frecuencia m as alta cuanto m as baja est a la lengua, es decir, cuanta mayor abertura tenga una vocal, mayor es la frecuencia en que aparece el F1. F2 tiene mayor frecuencia cuanto m as hacia delante est a posicionada la lengua, es decir, cuanto m as anterior es una vocal, mayor es el F2. La s ntesis basada en formantes se basa en este fen omeno de la voz humana. La idea es crear zonas de concentraci on de energ a en el espectro del sonido sintetizado, lo que imita el sonido de la voz. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

106

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

5.10.

Modelos basados en part culas

Una gran variedad de s ntesis basada en modelos de part culas, sin tratarse de la s ntesis granular propiamente tal, puede ser encontrada en la literatura [28]. Algunas de ellas derivan de la s ntesis granular, otras de t ecnicas gr acas, formantes y de la f sica. Castagne y Cadoz destacan que los esquemas de masa-interacci on son usualmente citados como t ecnicas de modelo f sico, pero que muchas de las posibilidades musicales no han sido exploradas [8]. Ellos propusieron un entorno gr aco llamado GENESIS, el cual esta basado en el paradigma CORDIS-ANIMA mass-interaction y dise nado para m usicos. El principal objetivo de este acercamiento es el de proveer de un pensamiento f sico. En otras palabras, descubrir y experimentar nuevas formas de crear m usica. Los modelos basados en part culas est an basados com unmente en modelos f sicos [37], los cuales usan una descripci on matem atica del instrumento f sico que se desea sintetizar. Un interesante enfoque presenta lo que Cook llamo modelamiento estoc astico f sicamene informado (PhISEM) [9]. Este algoritmo se basa en el traslape pseudo-aleatorio y a la suma de peque nos granos de sonido. Esta t ecnica considera modelos puntuales caracterizados por las ecuaciones de Newton. Este algoritmo ha sido exitoso en el modelaje de peque nos instrumentos de percusi on tal como las maracas y otros instrumentos anes. Sturm [39] [40] [41] ha trabajado en la sonicaci on de part culas basado en la hipotesis de de Broglie. Como el sonido es una superposici on din amica de frecuencias, existe la posibilidad de establecer una met afora que relacione la f sica de part culas y la s ntesis de sonidos. De acuerdo con Sturm, pensar en el sonido en t erminos de la evoluci on de un sistema de part culas nos otorga una nueva interpretaci on y una contra parte sonora a los eventos f sicos. Bajo este criterio Sturm, deriva sus ecuaciones de transformaci on s onica.

5.11.

Modelos basados en din amica no lineal y caos

Se han propuesto variadas t ecnicas de s ntesis basadas en din amica no lineal y sistemas ca oticos. Uno de los mas importantes trabajos ha sido el de R obel [30], quien propuso una nuevo modelo para la s ntesis de sonido basada en atractores y un m etodo llamado modelo din amico. Originalmente, este m etodo fue desarrollado para modelar sistemas ca oticos dado solo un series de muestras obtenidos de la salida del sistema. El CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

5.12. S INTESIS BASADA EN COMPLEJIDAD

107

modelo para la din amica de los atractores no solo se limita al caso ca otico sino que tambi en para modelar sistemas con par ametros jos. Adem as, se propuso el m etodo como un modelo de redes neuronales para el habla y la m usica mediante la aplicaci on de series de tiempo [29]. Polotti et al. propusieron un m etodo llamado s ntesis aditiva fractal, el cual permite separar las componentes estoc asticas de la voz para luego poder re-sintetizarlas separadamente [23] [24].

5.12.

S ntesis basada en complejidad

El acercamiento tradicional para la s ntesis de sonido ha sido intentar generar los sonidos mediante la combinaci on de elementos simples. En los u ltimos a nos se no han hecho evidente las dicultades para producir sonidos complejos de inter es musical y que estos puedan competir con los instrumentos reales en t erminos de complejidad y expresi on. Ya en 1997, Serra evidenci o la necesidad de un nuevo foco para la s ntesis digital [32]. Una forma natural de abarcar esta problem atica es sintetizar sonidos directamente a trav es de sistemas complejos, esto es sistemas compuestos por muchos agentes individuales, con un comporamiento complejo e incluso en muchos casos ca otico, y no recurrir al modelo de la simplicaci on. Un esquema de este tipo debiera ser muy u til para sintetizar sonidos provenientes de la naturaleza o que presenten una alta complejidad tanto espectral como temporal.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

108

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 6

Procesamiento digital de audio

6.1.

Filtros digitales

Un ltro es b asicamente una caja negra con una entrada y una salida. Si la salida es diferente a la entrada, signica que la se nal original ha sido ltrada. Cualquier medio por el cual una se nal de audio pasa, cualquiera sea su forma, puede describirse como un ltro. Sin embargo, algo no nos parece un ltro a menos que pueda modicar el sonido de alguna manera.

x(n)

h(n)

y(n)

Figura 6.1: Un ltro como una caja negra Los ltros pueden ser an alogos, como el caso de un ltro solar de un telescopio, o digitales, como un eliminador de ruido implementado en el computador. Un ltro digital es un sistema de tiempo discreto que deja pasar ciertos componentes de frecuencia de una secuencia de entrada sin distorsi on y bloquea o aten ua otros. Se trata simplemente de un ltro que opera sobre se nales digitales, tales como las que operan dentro de un computador. Un ltro digital es una computaci on que recibe una secuencia de n umeros (la se nal de entrada) y produce una nueva (la se nal de salida). La gura 6.2 muestra el cambio que produce un ltro en el dominio de la frecuencia. En el primer caso el espectro de frecuencias se mantiene 109

110

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO


Amplitud

f a) No hay ltrado Amplitud

b) Si hay ltrado

Figura 6.2: Filtrado versus no ltrado simplemente igual, lo que indica que ese ltro no realiza cambio alguno en la se nal de entrada. El segundo caso claramente muestra una modicaci on en el contenido de frecuencias de la se nal original. Los ltros an alogos pueden ser usados para cualquier tarea, sin embargo, los ltros digitales pueden alcanzar resultados muy superiores. Un ltro digital puede hacer todo lo que un ltro an alogo es capaz de realizar.

6.1.1.

Ecuaci on de diferencias

En forma general, cualquier ltro digital puede ser descrito por la siguiente ecuaci on de diferencias:
M N

y (n) =
i=0

bi x(n i)
k=1

ak y (n k )

(6.1)

De esta ecuaci on se concluye que lo u nico que se necesita para implementar un ltro digital son sumas (o restas), multiplicaciones y retrasos, ya que nos dice que la salida del ltro depende de versiones presentes y pasadas de la entrada menos versiones pasadas de la salida. El ndice n es un n umero entero que representa unidades discretas y los n umeros ak y bi se denominan los coecientes del ltro. Los coecientes ak multiplican a valores pasados de la salida y los coecientes bi a valores pasados de la entrada. Si todos los coecientes ak son cero, entonces el ltro s olo depende de valores pasados y presentes de la entrada y se trata de un ltro no recursivo o FIR. Si los valores ak no son todos nulos, entonces se trata de un ltro recursivo o IIR. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.1. FILTROS DIGITALES

111

6.1.2.

Funci on de transferencia

En el dominio de la frecuencia compleja discreta (Z ), cualquier tro digital puede ser representado por una funci on de transferencia de la siguiente forma: H (z ) = Y (z ) 1 + b1 z 1 + ... + bM z M =A X (z ) 1 + a1 z 1 + ... + aN z N (6.2)

donde z 1 es un retraso unitario y H (z ) es la funci on de transferencia y corresponde a la respuesta de frecuencia del ltro. El teorema fundamental del algebra nos permite reescribir la ecuaci on 6.2 de la siguiente forma: Y (z ) X (z ) (1 q1 z 1 )...(1 qM z M ) = A (1 p1 z 1 )...(1 pN z N )

H (z ) =

(6.3) (6.4)

donde qi son llamados ceros y pi polos. Los ceros corresponden a valores donde la funci on de transferencia es cero y los polos a valores donde la funci on de transferencia tiende a innito (ver secci on 6.1.5). Dado que la multiplicaci on en el dominio del tiempo corresponde a una convoluci on en el dominio de la frecuencia, tomando la transformada Z inversa de la ecuaci on 6.2 se obtiene:
n

y (n) = h(n) x(n) =


i=0

h(i)x(n i)

(6.5)

donde h(n) se conoce como la respuesta al impulso del ltro, discutida previamente en la secci on 1.4.2. Por simple inspecci on, es f acil comprobar que la ecuaci on 6.5 se corresponde con la ecuaci on 6.1. En el caso de ltros no recursivos, o ltros de respuesta al impulso nita, los coecientes del ltro corresponden directamente a los valores de la respuesta al impulso. Todo sistema lineal e invariante en el tiempo (LTI) se caracteriza un vocamente por una respuesta al impulso y una respuesa de frecuencia. Cada una de estas respuestas contiene informaci on completa sobre el ltro, pero codicada de una manera diferente. Si una de estas respuestas es conocida, la otra puede ser obtenida en forma directa a trav es de la transformada de Fourier. La manera m as directa de implementar un ltro digital es mediante la convoluci on de la se nal de entrada con la respuesta al impulso del ltro. Todas los ltros lineales pueden ser implementados de esta manera. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

112

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.1.3.

Respuesta de frecuencia

Si bien en el dominio del tiempo, un sistema LTI de tiempo discreto se caracteriza completamente por su respuesta al impulso h(n), interesa conocer el comportamiento del ltro en t erminos de su contenido de frecuencias. Utilizando el principio de superposici on, es posible estudiar la respuesta global de un ltro a se nales de distinta frecuencia mediante una combinaci on lineal de se nales sinusoidales aisladas. Es as que en el dominio de la frecuencia, la respuesta de un sistema LTI a una combinaci on lineal de se nales sinusoidales se denomina respuesta de frecuencia, usualmente denotada por H (Z ). La idea de esta respuesta es determinar el comportamiento del ltro en regimen permanente de reposo en la presencia de distintos componentes de frecuencia en la entrada. La respuesta de frecuencia H (Z ) puede ser calculada directamente como la transformada de fourier discreta de la respuesta al impulso h(n). Los ltros usualmente se clasican dependiendo de la morfolog a de sus respuestas de frecuencia, t picamente en una de las siguientes formas: pasabajo, pasa-alto, pasa-banda o rechaza-banda, detallados en la gura 6.3.

a) pasa bajos

b) pasa altos

c) pasa banda

d) rechaza banda

Figura 6.3: Respuestas de frecuencia t picas Dado que la variable de frecuencia Z es una variable compleja, es importante no olvidar que la respuesta de frecuencia se compone de una magnitud y una fase. La magnitud de esta respuesta es lo que com unmente se conoce como respuesta de frecuencia o respuesta de ampliud, mientras que su angulo se conoce como respuesta de fase. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.1. FILTROS DIGITALES

113

6.1.4.

Respuesta de fase

La respuesta de fase ( ) de un ltro LTI se dene como la fase (o angulo jt complejo) de la respuesta de frecuencia H (e ). La gura 6.4 muestra una respuesta de fase t pica. La respuesta de fase usualmente es referida simplemente como la fase del ltro. Para ltros con coecientes reales, la fase puede ser denida sin ambiguedades como la la fase de la respuesta de frecuencia. La respuesta de fase determina el desfase medido en radianes al que ser a cometido cada componente de frecuencia de la se nal de entrada.
Respuesta de fase 200

150

100

50 Fase en grados

50

100

150

200

0.1

0.2

0.3

0.4 0.5 0.6 Frecuencia normalizada

0.7

0.8

0.9

Figura 6.4: Respuesta de fase La gura 6.5 muestra respuestas de fase lineales y no lineales tanto para ltros FIR, descritos en la secci on 6.2, como para ltros IIR, abordados en la secci on 6.3. Retraso de fase (phase delay) Dado que la respuesta de fase ( ) otorga informaci on sobre el desfase en radianes o grados, no es muy util en t erminos pr acticos, por lo que resulta m as intuitivo disponer de alguna forma de conocer el retraso de cada componente medido en segundos. Esto se conoce como retraso de fase (en ingl es phase delay), el cual se dene como: CADIZ, R. ( ) (6.6)

A LA MUSICA INTRODUCCION COMPUTACIONAL

114

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO


a) Filtro FIR con fase lineal
1 0.5 0 0.5 1 1.5 2 2.5 0 0.2 0.4 0.6 0.8 1 2 1.5 1 0.5 0 0.5 1 1.5 2 2.5 3 3.5 0 0.2 0.4 0.6 0.8 1

b) Filtro FIR con fase lineal

c) Filtro IIR con fase no lineal


0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0

d) Filtro FIR con fase no lineal

0.2

0.4

0.6

0.8

Figura 6.5: Respuestas de fase lineales versus no lineales

Retraso de fase 3

Tiempo

0.1

0.2

0.3

0.4 0.5 0.6 Frecuencia normalizada

0.7

0.8

0.9

Figura 6.6: Retraso de fase

La gura 6.6 muestra el retraso de fase de la respuesta de fase mostrada anteriormente en la gura 6.4. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.1. FILTROS DIGITALES Retraso de grupo (Group delay)

115

Otra forma com un de presentar la informaci on de fase de un ltro se denomina retraso de grupo (en ingl es group delay), denido como: d( ) (6.7) d Para respuestas de fase lineales, es decir cuando ( ) = para alguna constante , el retraso de grupo y el retraso de fase son id enticos, y cada uno de ellos puede interpretarse como retraso de tiempo. Pero si la respuesta de fase es no lineal, por lo general las fases relativas de los componentes sinusoidales de la entrada se ven alterados. En este caso, el retraso de grupo puede ser interpretato como el retraso temporal de la envolvente de la amplitud de una sinusoide de frecuencia . El ancho de banda de esta envolvente debe estar restringido a un intervalo de frecuencias sobre el cual la respuesta de fase es aproximadamente lineal. Por lo tanto, el nombre retraso de grupo se reere al hecho que este especica el retraso que experimenta una banda de frecuencias con un intervalo de frecuencias peque no en torno a . Desenrollado de fase (phase unwrapping) Muchas veces es necesario desenrollar la respuesta de fase, ( ), dado que, com unmente, esta contiene saltos o discontinuidades, como el caso de la gura 6.4, donde se aprecian saltos de magnitud 2 .
Respuesta de fase desenrollada 100

200

300

400 Fase en grados

500

600

700

800

900

0.1

0.2

0.3

0.4 0.5 0.6 Frecuencia normalizada

0.7

0.8

0.9

Figura 6.7: Fase desenrrollada CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

116

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

Al desenrrollar la fase, se asegura que todos lo m ultiplos de 2 hayan sido incluidos en ( ). Por si misma, ( ) no es suciente para obterner una respuesta de fase que pueda ser convertida a un desfase de tiempo verdadero. Si se descartan los m ultiplos de 2 , tal como se hace en la denici on de un angulo complejo, el retraso de fase se modica de acuerdo a m ultiplos enteros del per odo sinusoidal. Dado que el an alisis de los ltros LTI se basa en sinusoides peri odicas, sin principio ni n, no es posible en principio distinguir entre retraso de fase verdadero y un retraso de fase con peri odos descartados si se observa a una salida sinusoidal de una frecuencia determinada. Sin embargo, frecuentemente es u til denir la respuesta de fase de un ltro como una funci on continua de la frecuencia con la propiedad (0) = 0 (para ltros reales). Esto especica como desenrrollar la respuesta de fase en el dominio de la frecuencia. La gura 6.7 muestra la respuesta de fase de la gura 6.4 desenrollada.

6.1.5.

Diagramas de polos y ceros

La ecuaci on 6.4 muestra la funci on de transferencia H (z ) de un ltro escrita en t erminos de ceros y polos. El t ermino cero se reere al n umero mientras la palabra polo es una traducci on del ingl es pole, que podr a traducirse como palo. Estos t erminos adquieren sentido cuando se graca la magnitud de H (z ) como una funci on de la frecuencia compleja z . Esto se realiza en lo que se denomina el plano-z , que es simplemente un plano donde el eje de ordenadas representa los n umeros reales y el eje de abscisas n umeros puramente imaginarios. Dado que z es una variable compleja, esta puede gracarse como un vector que parte desde el origen y cuya distancia al origen representa su magnitud mientras su angulo respecto al eje de los n umeros reales representa la fase. La magnitud de H (Z ) es real y puede interpretarse como la distancia sobre el plano-z , mostrado en la gura 6.8. El gr aco de H (Z ) aparece entonces como una supercie innitamente delgada que se extiende en todas las direcciones del plano. Los ceros son puntos donde la supercie casi toca el plano-z . Por el contrario, los polos representan puntos donde esta supercie alcanza una gran altitud y se hacen cada vez m as angostos a medida que se alejan del plano. Este tipo de diagrama resulta u til porque muestra una representaci on gr aca tanto de la respuesta de amplitud como de fase de un ltro digital. Todo lo que se necesita conocer son los valores de los polos y ceros para poder estimar en forma gr aca la respuesta de fase y magnitud. La magnitud de la respuesa de frecuencia, o respuesta de amplitud para CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.1. FILTROS DIGITALES


imaginario crculo unitario

117

plano z

frecuencia

real

DC

Nyquist

-3/2 SR

-1/2 SR

1/2 SR

3/2 SR

Figura 6.8: El plano z

Figura 6.9: Estimaci on de la respuesta de amplitud mediante un diagrama de polo y ceros

cada frecuencia est a dada por el producto de las magnitudes de los vectores dibujados desde los ceros hacia el c rculo unitario divivido por el producto de las magnitudes de los vectores dibujados desde los polos hacia el c rculo unitario. La respuesta de fase de obtiene dibujando l neas desde todos los polos CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

118

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

Figura 6.10: Estimaci on de la respuesta de fase mediante un diagrama de polo y ceros y ceros hacia el c rculo unitario, tal como se muestra en la gura 6.10. Los angulos de las l neas de los ceros se suman y los angulos de las l neas de los polos se restan.

6.1.6.

Filtros de primer orden

Los ltros digitales se clasican segun el n umero de retrasos involucrados en su implementaci on y esto determina su orden. Un ltro de primer orden s olo involucra un retraso y por ende s olo puede estar constituido por un cero o un polo. La gura 6.11 muestra un ltro de un cero y la gura 6.12 uno de un polo. Dependiendo del coeciente se pueden construir ltros pasabajos o pasa altos, tal como muestra la gura. La forma de la respuesta de frecuencia en ambos casos cambia dependiendo si el ltro es de un polo o de un cero.

6.1.7.

Filtros de segundo orden

Si el ltro involucra dos retrasos, se habla de un ltro de segundo orden. Al disponer de dos polos y dos ceros, es posible construir ltros pasa banda o rechaza bandas, tal como lo muestra la gura 6.13. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.1. FILTROS DIGITALES


= cero

119

pasa alto
f

|Z|

a=1

0 SR/2

plano z

pasa bajos
f

a = -1

|Z|

0 SR/2

plano z

Figura 6.11: Filtro de primer orden de un cero


= polo

pasa bajos
0 SR/2

|P|
b = .9 plano z

pasa altos |P|


b = -.9 plano z

0 SR/2

Figura 6.12: Filtro de primer orden de un polo


dos ceros rechaza banda a

0 SR/2

dos polos

pasa banda a

0 SR/2

Figura 6.13: Filtro de segundo orden de dos polos y dos ceros

El caso general de un ltro de segundo orden, de dos polos y dos ceros, denominado, ltro bi-cuadr atico, se detalla en la secci on 6.4. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

120

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.2.

Filtros FIR

En un ltro con respuesa al impulso nita o FIR, los coecientes ak son cero, lo que signica que la respuesta del ltro depende s olamente de la entrada y no de valores pasados de la salida. Este tipo de ltros tiene una respuesta nita ya que no exhiben recursi on. La gura 6.14 muestra la implementaci on de un ltro FIR. Una de las propiedades m as interesantes de este tipo de ltros es la simetr a de sus coecientes y el hecho que pueden ser dise nados de tal forma de exhibir una respuesta de fase lineal.

Figura 6.14: Esquema de implementaci on de un ltro FIR La funci on de transferencia de un ltro FIR est a dada por:
M

H (z ) =
i=

hn z n =
n=0

bn z n

(6.8)

Los ltros FIR tienen las siguientes propiedades: Respuesta de fase lineal (si se dise nan adecuadamente) Estabilidad con coecientes cuantizados En general, requieren de un mayor orden que los ltros IIR El dise no de ltros FIR se basa usualmente en una aproximaci on directa de la magnitud de la respuesta deseada a la cual se le agrega la condici on de una respuesa de fase lineal. Este requerimiento es: h(N 1 n) = h(n) CADIZ, R. (6.9)

A LA MUSICA INTRODUCCION COMPUTACIONAL

6.3. FILTROS IIR

121

6.2.1.

Dise no de ltros FIR

Un ltro FIR puede ser dise nado utilizando distintas t ecnicas tanto en el dominio del tiempo como de la frecuencia. Existe un m etodo optimo llamado algoritmo de Parks McClellan que produce coecientes optimos y fase lineal. Este m etodo es muy popular dado su facilidad de usar, exibilidad y excelentes resultados. Las t ecnicas de ventaneo (en ingl es windowing), b asicamente toman la respuesta al impulso de un ltro ideal con duraci on innita y aplican una ventana para truncar y limitar los coecientes a un n umero espec co, para luego desplazar la secuencia de manera de garantizar causalidad. Esta t ecnica es simple y produce resultados razonables, pero con distorsi on respecto a la respuesta ideal. Otras t ecnicas se basan en muestreo en la frecuencia. La idea es muestrear la respuesta de amplitud deseada a intervalos regulares y luego utilizar la DFT inversa para general una respuesa al impulso de duraci on nita. El n umero de muestras determina el nivel de precisi on del ltro respuesto a la respuesa ideal. Esta t ecnica es bastante sosticada y requiere una tasa de muestreo alta. Por u ltimo, hay una t ecnica ad-hoc denominada posicionamiento de ceros. La idea es colocar ceros en el plano-z de forma estrat egica con el n de aproximarse a la respuesta deseada y realizar el c alculo de los coecientes en forma gr aca. Mientras m as cercano est e el cero al c rculo unitario, mayor efecto tendr a en la respuesta de frecuencia del ltro para ese rango de frecuencias. Esta t ecnica sin dudas es r apida y no muy precisa, pero puede funcionar para aplicaciones simples.

6.3.

Filtros IIR

Los ltros de respuesta al impulso innita o IIR tambi en son llamados ltros recursivos, porque la salida del ltro depende de valores pasados de si misma. La funci on de transferencia de un ltro IIR es: H (z ) = 1
N N n=0 an z

(6.10)

Los ltros IIR tienen las siguientes caracter sticas: Mejor atenuaci on que los ltros FIR F ormulas cerradas de aproximaci on CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

122

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

Figura 6.15: Esquema de implementaci on de un ltro IIR Respuesta de fase no lineal Inestabilidad (oscilaciones de ciclo l mite) en computaciones de largo de palabra nito

6.3.1.

Dise no de ltros IIR

Los ltros IIR pueden tener polos (debido a la retroalimentaci on) y ceros, y las t ecnicas de dise no dieren enteramente de las t ecnicas para dise no de ltros FIR. Los m etodos directos de dise no se llevan a cabo en el plano complejo discreto Z , y los m etodos indirectos empiezan en el plano an alogo o continuo S , para ser transformados despu es al plano-Z . Las t ecnicas son indirectas son las m as utilizadas y por lo general entregan mejores resultados. Entre las t ecnicas directas se encuentran el posicionamiento ad-hoc de polos y zeros con el subsiguiente an alisis de frecuencia, an alisis en el dominio del tiempo y en el dominio de la frecuencia. En el dominio del tiempo, se transforma la respuesta de frecuencia de un ltro ideal H (Z ) en su respuesta al impulso y se resuelve un sistema de ecuaciones de N coecientes de manera de minimizar el error cuadr atico medio. En el dominio de la frecuencia, le CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.3. FILTROS IIR

123

objetivo es mapear una respuesta de frecuencia ideal hacia una estructura IIR. Las t ecnicas indirectas implican el dise no de un ltro anal ogico apropiado en el plano S y luego mapear desde este al plano discreto Z , usando las siguientes transformaciones:

Z = esTs 1 s= ln(Z ) Ts

(6.11) (6.12)

El logaritmo natural presenta un problema cuando se trata de mapear desde el plano S al Z . Una soluci on muy utilizada es expandir ln(Z ) como una serie y truncar el primer elemento. Una vez hecho esto, hay dos t ecnicas que permiten generar la transformada Z : la transformada bilinear y la diferencia hacia atr as (backward dierence), de la cual la m as utilizada es la transformada bilinear.

6.3.2.

Transformada Z bilinear

Este es usualmente el m etodo que se utiliza para el dise no de ltros IIR. El enfoque m as utilizado es empezar de las especicaciones del ltro y luego escoger la funci on apropiada para obtener un ltro an alogo equivalente y su funci on de transferencia H (s). Luego, se transforma o mapea este ltro al plano Z . Esto se realiza mediante la siguiente ecuaci on: s= 2 1 Z 1 Ts 1 + Z 1 (6.13)

T picamente, los ltros escogidos son: Filtros Butterworth. Poseen una respuesta de fase razonable y una respuesta de amplitud monot onica. Filtros Chebyschev. Poseen una zona de corte m as pronunciada que un ltro Butterworth. Filtos el pticos. Poseen la mejor respuesta de amplitud y el orden optimo para dise nos IIR, pero la peor respuesta de fase en t erminos de linearidad. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

124

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.4.

Filtros bi-cuadr aticos

Los ltros bi-cuadr aticos o simplemente biquad en ingl es , son ltros que constan de dos polos y dos ceros y cuya funci on de transferencia est a dada por: 1 + b1 z 1 + b2 z 2 H (z ) = g (6.14) 1 + a1 z 1 + a2 z 2 donde g es la ganancia. Dado que tanto el numerador como el denominador son polinomios de segundo orden en z , esta funci;on de transferencia se conoce como bi-cuadr atica en z . Existen diferentes maneras de implementar un ltro bi-cuadr atico. Una de las m as conocidas es a trav es de las f ormulas obtenidas por Robert Bristow-Johnson. Estas formulas pueden utilizarse para calcular los coecientes de los tipos m as comunes de ltros digitales: pasa-bajos, pasa-altos, pasa-bandas, notch, peakingEQ, lowShelf y highShelf. El ap endice A.9 contiene c odigo SuperCollider que implementa ltros bi-cuadr aticos utilizando las ecuaciones de Bristow-Johnson.

6.5.

Filtros comb

Un tipo de ltro muy com un en aplicaciones de audio es el llamado ltro comb (peineta en ingl es), el cual es implementado mediante una l nea de retraso. La idea de este ltro es combinar la se nal de entrada con una versi on retrasada de la misma. Hay dos subtipos de ltros comb: no recursivos (o feedforward) y recursivos (o feedback). Este ltro debe su nombre a que su respuesta de amplitud se asemeja mucho a la forma de una peineta o comb en ingl es.

b0
-M

x(n)

bM

y(n)

Figura 6.16: Filtro comb no recursivo El ltro comb no recursivo usualmente se implementa tal como se muestra en la gura 6.16 y el ltro recursivo se graca en la gura 6.17. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.5. FILTROS COMB

125

b0 y(n) x(n)

-M

-aM

Figura 6.17: Filtro comb recursivo La ecuaci on de diferencias de un ltro comb no recursivo es: y (n) = b0 x(n) + bM x(n M ) y para un ltro comb recursivo: y (n) = b0 x(n) aM y (n M ) (6.16) (6.15)

La respuesta de amplitud t pica de un ltro comb se muestra en la gura6.18.


Respuesta de frecuencia de un filtro comb general

Amplitud

Frecuencia

Figura 6.18: Respuesta de amplitud de un ltro comb

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

126

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.5.1.

Phasing y anging

Un phaser, que podr a traducirse como faseador, genera zonas de peaks y depresiones en el espectro. La posici on de estos var a en el tiempo, creando un efecto de glissando. Para estos efectos, se utiliza usualmente un oscilador de baja frecuencia. Este efecto se logra al mezclar la se nal de entrada con una versi on modicada de s misma, a trav es uno o varios ltros pasa-todo, que mantienen la magnitud del espectro de frecuencias, pero alteran su fase en forma no lineal. Para cada componente de frecuencia, el cambio en la fase es distinto. Al mezclarse ambas versiones, las frecuencias que se encuentran fuera de fase, se cancelan, creando las zonas de depresi on caracter sticas de este efecto, las cuales usualmente no ocurren en forma arm onica. Al cambiar la mezcla se logra modicar la profundidad de las depresiones, alcanzandose los m aximos valores cuando la mezcla es de 50 %. El anging es un tipo espec co de phaser, donde la secci on pasa-todo se implenta como una secuencia de l neas de retraso. La se nal de entrada se agrega a una copia retrasada de la misma, lo que resulta en una se nal de salida con peaks y depresiones en relaci on arm onica. Ambos efectos son variaciones de ltros comb. El anger utiliza un ltro comb con dientes regularmente espaciados, mientras que el phasing utiliza una ltro con dientes separados irregularmente. Los controles habituales en este tipo de efectos son: Retraso: Es el umbral m aximo de desfase de la onda duplicada respecto a la original, se suele expresar en milisegundos. Frecuencia: Es la frecuencia de oscilaci on del desfase de la onda duplicada. Profundidad: Es la cantidad de onda original que se mezcla con la duplicada.

6.6.

Ecualizador

Un ecualizador modica el contenido en frecuencias de la se nal de entrada. Consiste b asicamente en un banco de ltros pasa-banda, cada uno centrado en una banda de frecuencias espec cas. Com unmente se utilizan para reforzar ciertas bandas de frecuencias, ya sea para compensar la respuesta del equipo de audio (amplicador + altavoces) o equilibrar en t erminos espectrales el sonido. Existen ecualizadores anal ogicos y digitales, activos CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.7. COMPRESION

127

o pasivos, param etricos, gr acos y paragr acos. Los ecualizadores suelen poseer control sobre diez bandas de frecuencia o m as.
+12

+6

-6

-12 20

100

1k

10k

20k

Figura 6.19: Dos curvas de ecualizaci on La gura 6.19 muestra dos curvas de ecualizaci on posibles, una que enfatiza la zona alrededor de los 1000 Hz y otra que aten ua frecuencias cercanas a 100 Hz.

6.7.

Compresi on

Tal como se detalla en el cap tulo 3, una caracter stica notable del sistema auditivo humano es su capacidad de detectar un amplio rango de amplitud o intensidad sonora, desde el m as d ebil murmullo hasta el sonido ensordecedor de un avi on a propulsi on. Al tratar de grabar o reproducir este vasto espectro de amplitudes sonoras, es imposible evitar limitaciones f sicas, tanto electr onicas como ac usticas, de la tecnolog a de almacenamiento y reproducci on de sonido. Cuando el rango din amico de la se nal ac ustica excede las capacidades de un sistema de reproducci on o grabaci on de sonido, inevitablemente los puntos m aximos de la se nal ser an distorsionados por truncamiento (en ingl es clipping), los altavoces pueden sufrir da no al verse sometidos a niveles muy altos de intensidad, o pasajes muy suaves en t erminos de amplitud pueden pasar desapercibidos en la presencia de ruido el ectrico o de fondo (en ingl es noise oor). Por lo tanto, se hace necesario mantener el nivel operativo de la se nal lo m as alto posible de manera de minimizar la distorsi on que se produce por el ruido de fondo, y al mismo tiempo limitar los picos de la se nal para no causar truncamiento o sobrecarga del sistema. Esto se realiza a trav es de un compresor. Es importante no confundir a este tipo de compresores de amplitud de audio con la compresi on CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

128

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

de informaci on digital o perceptual.


Umbral 1:1

2:1 Nivel de Salida (dB)

4:1 :1

Nivel de entrada (dB)

Figura 6.20: Funciones de compresi on a distintas tasas Los compresores usualmente tienen un sistema autom atico de control de ganancia que constante monitorea la se nal y ajusta la ganancia para maximizar la raz on se nal a ruido sin producir distorsi on. Este tipo se dispositivos se conocen como procesadores din amicos, compresores y limitadores. La utilizar procesadores din amicos, los niveles peaks de la se nal se pueden reducir, lo que a su vez permite incrementar el nivel global o promedio de la se nal de audio. Los principales par ametros de un compresor son: Umbral (usualmente desde -40 a +20 dBu). Este par ametro ja el nivel sobre el cual las se nales ser an comprimidas o limitadas. Al incrementarse el umbral, la se nal se ve truncada a niveles mayores y por lo tanto se reduce la cantidad de compresi on o limitaci on. Raz on (1:1 a :1). Este par ametro determina la pendiente de la compresi on, lo que incide en como la se nal de salida cambia en relaci on a la se nal de entrada una vez que excede el umbral. El primer d gito indica cuando cambio de la se nal de entrada medido en dB causar a un cambio de 1 dB en la salida. Mientras m as alta la raz on, mayor es la compresi on y m as achatado se vuelve el sonido. La gura 6.21 muestra como normalmente se implementa la correci on de ganancia autom atica. Primero, la amplitud estimada se compara con el umbral, se toma el valor m aximo entre los dos y se sustrae esa cantidad al umbral. Esto determina el rango de amplitud que es necesario comprimir. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.8. REVERBERACION

129

Luego, este rango es multiplcado por la cantidad 1 (1/R) donde R es la tasa de compresi on. Finalmente se resta el bias a esta cantidad y el resultado se convierte a ganancia lineal.
amplitud estimada
max

+
Umbral

x
1 - (1/R)

+
Sesgo

db->lin

correccin de ganancia

Umbral

Figura 6.21: Correcci on autom atica de ganancia En el ap endice A.10 se puede encontrar c odigo SuperCollider que implementa un compresor de audio completo, con correcci on de ganancia como la reci en descrita.

6.8.

Reverberaci on

Si un sonido no es absorbido o transmitido cuando impacta una supercie, simplemente se reeja. La ley de reexi on en este caso funciona exactamente como para el caso de la luz, y el angulo de incidencia de una onda de sonido es equivalente al angulo de reexi on, tal como si esta hubiera sido producida por una imagen espejo del est mulo en el lado opuesto de la supercie. Sin embargo, esta ley de reexi on s olo es aplicable cuando la longitud de onda del sonido es peque na en comparaci on con las dimensiones de la supercie reectante. La reexi on del sonido da paso a la difusi on, reverberaci on y el eco. Para supercies distintas, el grado de reexi on, medido a trav es de su coeciente de absorci on o reexi on, es distinto. Por lo general, las supercies c oncavas concentran las ondas de sonido en areas espec cas, mientras las formas convexas diseminan las ondas sonoras, promoviendo una buena difusi on del sonido. Retrasos muy cortos provocan un desplazamiento en la imagen sonora hacia ambos lados y una coloraci on del sonido debido al efecto phasing. Retrasos m as prolongados contribuyen a la impresi on espacial de la reverberaci on, mientras que retrasos mayores a 50 ms perturban la imagen sonora y son percibidos como ecos. La reverberaci on es el resultado de un gran n umero de reexiones sonoras que ocurren en una sala. Desde cualquier fuente sonora usualmente hay un camino directo entre esa fuente y los o dos del auditor. Pero esa no es la CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

130

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

u nica forma en que un sonido llega a quienes lo escuchan. Las ondas de sonido pueden tomar caminos m as largos mediante rebotes o reejos en las paredes, cielo o piso, antes de llegar a los o dos. Un sonido reejado toma un tiempo mayor en llegar que el sonido directo, dado que recorre una mayor distancia y generalmente se encuentra debilitado, ya que las paredes y otras supercies absorben parte de su energ a. Onda onda sonora que ya ha rebotado en alguna supercie puede seguir experimentando rebotes sucesivos antes de llegar a los oyentes. Esta sucesi on de sonidos atenuados y retrasados es lo que se conoce como reverberaci on y es lo que causa nuestra sensaci on de espacio dentro de una sala de conciertos. La reverberaci on es, en efecto, una multiplicidad de ecos cuya frecuencia de repetici on es demasiado r apida como para ser percibidos como sonidos separados entre uno y otro. Otra caracter stica importante de la reverberaci on es la correlaci on de las se nales que llegan a nuestros o dos. Para obtener una sensaci on realista de la espacialidad de una sala es necesario que los sonidos en cada o do est en en alguna medida decorrelacionados. Esto es parte de la causa por la cual las salas de concierto tiene cielos tan elevados, ya que con un cielo de baja altura, las primeras reexiones ser an las provenientes del cielo y alcanzar an ambos o dos al mismo tiempo. Si se dispone de un cielo m as elevado, las reexiones tempranas provendr an en su mayor a de las paredes, y dado que estas se encuentran com unmente a diferentes distancias del auditor, el sonido que llega a cada o do es diferente. Una unidad de medida que t picamente se utiliza en la reverberaci on de salas es lo que se denomina el tiempo de reverberaci on, el cual es la cantidad de tiempo que toma la intensidad de la se nal en decar 60 dB respecto a su valor original. Tiempos de reverberaci on largos signican que la energ a del sonido permanece en la sala una cantidad de tiempo considerable antes de ser absorbidos. El tiempo de reverberaci on se asocia con el tama no de una sala. Las salas se conciertos t picamente tienen tiempos de reverberaci on del orden de 1,5 a 2 segundos. El tiempo de reverberaci on es controlado primordialmente mediante dos factores: las supercies de la sala y su tama no. El tipo de supercie determina cuanta energ a se pierde en cada reexi on. Los materiales altamente reectivos, como el concreto, cer amicas, ladrillo o vidrio, incrementan el tiempo de reverberaci on debido a su rigidez. Los materiales absorbentes, como cortinas, alfombras y la gente, reduce el tiempo de reverberaci on. Adem as es necesario considerar que los coecientes de absorci on de cada material usualmente var an con la frecuencia. La gente tiende a absorber una gran cantidad de energ a ac ustica, reduciendo el tiempo de reverberaci on. Las salas grandes tienden a tener tiempo CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.8. REVERBERACION

131

de reverberaci on m as largos, dado que, en promedio, las ondas de sonido viajan una distancia m as larga entre reexiones. El aire en la sala tambi en aten ua las ondas sonoras, reduciendo el tiempo de reverberaci on. Esta atenuaci on var a con la humedad y la temperatura, y las altas frecuencias son las m as afectadas en estos casos. Debido a esto, muchos reverberadores articiales incorporan una etapa de ltros pasa bajo para lograr un mayor realismo en el efecto.

6.8.1.

Reverberaci on articial

La reverberaci on articial es necesaria para asegurar un grado convincente de realismo de una escena auditiva virtual y para proveer control sobre las distancias percibidas de las fuentes sonoras. Las aplicaciones del procesamiento espacial de audio y t ecnicas de reverberaci on articial incluyen la producci on de m usica grabada o en vivo, multimedia o realidad virtual o evaluaci on de ac ustica de arquitecturas. La reverberaci on de una sala se puede simular mediante la convoluci on de una se nal de entrada con la respuesta al impulso de la sala, sea esta medida en forma f sica o simulada en el computador. Mediante los algoritmos disponible hoy en d a, es posible implementar convoluci on de respuestas al impulso de larga duraci on en tiempo real, sin experimentar retrasos signicativos y sin exceder la capacidad computacional de los procesadores digitales de se nales. El enfoque de la convoluci on resulta adecuado para la auralizaci on predictiva o comparativa de salas de conciertos, auditorios o sistemas de sonidos, cuando un ambiente de escucha controlado, o a trav es de aud fonos se pueda experimentar todas las ventajas de la t ecnica. La aproximaci on tradicional a la reverberaci on sint etica en tiempo real se basa en redes de retraso basadas en algoritmos de feedforward para generar las reexiones tempranas y algoritmos de feedback para la reverberaci on tard a. Este enfoque no puede garantizar el mismo grado de precisi on que la convoluci on con la respuesta al impulso de la sala, pero permite una parametrizaci on m as eciente del control din amico del efecto de reverberaci on sint etico. El ap endice A.11 contiene c odigo SuperCollider que implementa un reverberador articial completo. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

132

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.9.
6.9.1.

Otros efectos
Chorus

El efecto chorus o de coro se obtiene al mezclar una se nal de entrada con vibrato junto con la se nal sin procesar. Para producir el efecto, ya sea natural o articialmente, deben mezclarse varios sonidos individuales con aproximadamente el mismo timbre y alturas levemente dis miles, de manera de ser percibidos como un s olo sonido proveniente de una misma fuente. El efecto de coro se enfatiz cuando los sonidos se originan en tiempos y lugares del espacio levemente distintos. Esto es lo que t picamente sucede en un coro de voces, y es lo que original el nombre del efecto.

6.9.2.

Wah wah

El wah-wah es un tipo de efecto usualmente utilizado en instrumentos como la guitarra o bajo el ectrico. B asicamente, se trata de un ltro pasa bajos con una frecuencia de corte variable. Al variar esta frecuencia de corte se produce el sonido caracter stico que da origen el nombre de este efecto. El efecto wah-wah tambi en es posible de producir mediante el modelamiento de un sonido instrumental utilizando un vocoder y el sonido wah-wah hablado como se nal moduladora. De esta forma, se transeren los formantes del sonido hablado al sonido musical.

6.9.3.

Delay

Un efecto de delay o retraso consiste en la multiplicaci on y retraso modulado de una se nal de entrada, que se mezcla con la se nal original, obteniendose un efecto de eco sonoro. Los par ametros m as comunes de un delay son el tiempo de retraso, que corresponde al tiempo que tarda en producirse un eco, la cantidad de feedback o retroalimentaci on, denida como la cantidad de veces que se repite la se nal sonora y la proporci on de mezcla, que es la cantidad de sonido retrasado que se mezcla con el original.

6.10.

Procesador de efectos gen erico

Un procesador general de efectos se puede implementar insertando en primer lugar la se nal de entrada en una l nea de retraso recursiva. La se nal desfasada es luego ltrada utilizando un ltro de primer orden, usualmente un ltro de un polo. La cantidad de retroalimentaci on y su signo pueden ser especicados. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

6.10. PROCESADOR DE EFECTOS GENERICO

133

Usualmente, el retraso es modulado de manera de obtener efectos m as interesantes tales como el anging. Esta arquitectura es b asicamente un ltro comb con la variaci on de poseer un ltro pasa bajos en vez de un multiplicador simple para la linea de retroalimentaci on. Los par ametros usuales de un procesador gen erico son: Ganancia de entrada en dB (no mostrada en la gura) Tiempo de retreaso en ms Fase de retroalimentaci on Cantidad de retroalimentaci on Mezcla de salida Oscilador de frecuencia de retraso variable Desviaci on de retraso En el ap endice A.12 se detalla la implementaci on de un procesador de efecto gen erico en SuperCollider, basado en esta descripci on.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

134

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Cap tulo 7

La m usica electroac ustica

La m usica electroac ustica constituye un g enero bastante particular en la historia de la m usica y en mi opini on, uno que no es muy bien entendido incluso por algunos m usicos profesionales, te oricos y music ologos. Son los compositores quienes parecen ser m as conscientes de las caracter sticas y particularidades de este tipo de m usica. Una muestra de esto es que la mayor a de los escasos an alisis publicados sobre m usica electroac ustica est an hechos por compositores, ya sea el propio autor u otro compositor. Al hablar de m usica electroac ustica es importante determinar claramente qu e se entiende por el t ermino. Hay dos posibles deniciones. La primera considera formas de m usica que pueden utilizar cualquier tipo de fuente sonora que pase a trav es de un circuito el ectrico y que resuene a trav es de un altoparlante. Cualquier tipo de m usica grabada electr onicamente y reproducida mediante altoparlantes cae en esta categor a. La segunda denici on contempla la m usica que es generada mediante aparatos electr onicos o mediante una combinaci on de estos con instrumentos ac usticos [4]. En el presente texto, se considerar a la segunda denici on. Esta m usica maniesta grandes diferencias con respecto a la m usica instrumental [25]. Tanto es as que algunos compositores de m usica electroac ustica han llegado a cuestionar si lo que hacen puede ser considerado m usica en el sentido en que normalmente entendemos el t ermino. Otros preeren la denici on arte auditivo (audio art) o arte sonoro (sonic art) y muchos rechazan la idea de ser compositores en el sentido tradicional. Por lo general, comprenden a la m usica como un subconjunto del m as amplio arte auditivo [20]. Estas diferencias afectan tambi en a los roles de compositor e int erprete. Claramente separados y denidos en la tradici on musical de occidente, ahora 135

136

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

se han vuelto difusos y muchas veces no es posible separarlos. La posibilidad de ser compositor/int erprete abre nuevas interrogantes y nuevos espacios en la pr actica de este arte [25]. A pesar de que el campo de la m usica electroac ustica, y en especial de la m usica computacional, es muy rico en publicaciones e investigaci on, su an alisis est a todav a en pa nales. De hecho, las publicaciones sobre an alisis de obras electroac usticas son muy escasas en comparaci on con la cantidad de an alisis publicados sobre m usica instrumental o incluso contempor anea. Al comparar la m usica electroac ustica con la m usica instrumental o vocal tradicional, naturalmente surgen algunas interrogantes. Por qu e es tan diferente la m usica electroac ustica respecto a formas m as tradicionales de m usica? C omo escuchamos este tipo de m usica? C omo la percibimos? C omo podemos aproximarnos su an alisis?

7.1.
7.1.1.

Caracter sticas de la m usica electroac ustica


Material sonoro

Smalley identica tres tipos diferentes de sonidos [34]: 1. Sonidos naturales o ambientales capturados mediante micr ofonos, sonidos que antes de su captura no posean prop osito musical alguno. 2. Sonidos especialmente creados con un prop osito musical, tales como sonidos vocales o instrumentales. 3. Sonidos electroac usticos, creados mediante s ntesis o transformaciones de otros sonidos y totalmente separados de las otras dos categor as. Una inmediata observaci on sobre esta categorizaci on es que estos distintos tipos de sonidos dieren en sus fuentes sonoras. En el u ltimo caso es dif cil identicar la fuente, mientras que en los dos primeros usualmente no necesitamos de ninguna pista visual para reconocerlas. Esto sugiere que la percepci on de estos tipos de sonidos diere en cada caso. Desde otro punto de vista, tambi en es importante clasicar los sonidos de acuerdo a su capacidad de referencia y signicaci on. Sonidos abstractos El concepto de sonido abstracto est a directamente relacionado con el concepto de audici on reducida (ver secci on 3.4) y con el t ermino acusm atico. Un sonido abstracto puede privilegiar perceptualmente alguna cualidad o CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.1. CARACTER ISTICAS DE LA MUSICA ELECTROACUSTICA 137 par ametro en el cual el compositor ha puesto su atenci on en dentro del estudio. Esto puede relacionarse con las t ecnicas empleadas en su creaci on o manipulaci on y/o en la contribuci on de ese sonido en particular al discurso musical de una obra. La percepci on de un sonido abstracto, por lo tanto, est a frecuentemente determinada por su contexto. Un sonido puede ser denominado abstracto o acusm atico simplemente por la incapacidad del auditor de asignarle una fuente sonora real o imaginaria y por la negaci on de una fuente visual [46]. Esto nos permite organizar y clasicar el material sonoro en base a sus caracter sticas morfol ogicas y no en base a una referencia a la posible fuente de emisi on sonora. Muchos compositores de m usica electroac ustica aprovechan este fen omeno y construyen un continuo entre lo abstracto y lo referente que funciona como un principio micro o macroestructural, o que determina la narrativa general de la m usica [6]. Sonido referencial Un sonido referencial es un sonido que expone, sugiere, o al menos no oculta su fuente sonora. Un sonido de este tipo apunta en la direcci on opuesta a la interioridad; se reere a algo concreto, a un contexto determinado y no a criterios perceptuales intr nsecos. No es su origen real lo que importa, sino m as bien su poder de evocar situaciones extr nsecas. Un sonido referencial incluso puede tener un origen sint etico [6]. Es interesante notar que autores como Windsor creen que todos los sonidos poseen ambas cualidades y que no existen los sonidos puramente abstractos o referenciales [45]. Incluso el mismo Smalley, quien propuso esta clasicaci on en un comienzo, algunos a nos m as tarde opt o por los t erminos intr nseco/extr nseco para diferenciar ambas clasicaciones [35]. Por lo general los sonidos instrumentales son referenciales, por el simple hecho de que la fuente es conocida. Un sonido de viol n, por ejemplo, puede ser muy abstracto en t erminos musicales pero el auditor siempre tiene la opci on de hacer referencia al instrumento que emite el sonido. Un sonido creado articialmente tiende a ser abstracto, dada la imposibilidad de asignarle una fuente real. No obstante, Smalley arma que la mayor a de los sonidos tienen fuentes reconocibles e incluso, cuando dichas fuentes est an ocultas, pueden ser percibidas fuentes sustitutas (ver secci on 4.4) [33]. Usualmente, cuando uno considera el material sonoro de la m usica electroac ustica, se trata de material que tradicionalmente no es considerado como musical [44]. Las t ecnicas electroac usticas han llevado a la inclusi on de todos los tipos de sonidos anteriormente excluidos del discurso musical: CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

138

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

ruidos, sonidos no instrumentales, no vocales, obtenidos del medio ambiente o a trav es de la manipulaci on de otros sonidos previamente grabados, o puramente mediante s ntesis. La m usica electroac ustica usualmente presenta sonidos en una forma directa, inmediata, en contraposici on con el mundo estructurado y altamente mediado de la m usica tradicional. A este respecto, Barry Truax nota, por ejemplo, que las l neas divisorias entre lenguaje, m usica y paisaje sonoro son cada vez m as difusas cuando estos son usados como material sonoro en el estudio [43]. Desde un punto de vista de la composici on, los sonidos dejan de ser s olo soportes para las alturas o estructuras r tmicas. Su compleja multidimensionalidad se torna en el factor formal preponderante y gran parte de la composici on electroac ustica se basa en el valor del sonido por s mismo y no solamente en relaciones entre sonidos [18].

7.1.2.

Ausencia de notaci on y representaci on abstracta

El an alisis musical, tal como lo conocemos, es un producto del siglo XIX y la representaci on abstracta de la m usica (partituras o equivalentes) es un pre-requisito anal tico incluso m as antiguo. Bennett y Camilleri sugieren que no existen herramientas anal ticas o un vocabulario anal tico para la m usica electroac ustica, dado que esta en general ni siquiera posee una representaci on de este tipo [3] [7]. La dicultad para pensar en t erminos abstractos acerca de la m usica electroac ustica y la falta de un vocabulario adecuado hacen muy dif cil la concepci on de modelos anal ticos que tengan una validez m as all a de las experiencias personales del compositor o auditor. La m usica electroac ustica existe s olo como sonido, existe s olo en el presente y al no tener una representaci on gr aca, no tiene un pasado. Desde un punto de vista anal tico, una partitura o una representaci on gr aca de otro tipo nos permite detener el tiempo y formarnos una idea del discurso temporal de la m usica sin tener que lidiar con la urgencia del tiempo mismo. Una partitura no es la m usica en s , sino s olo una intermediaria, una representaci on, cuyas caracter sticas nos permiten pensar acerca de la m usica que representa. La notaci on tiene dos grandes prop ositos en la m usica de arte occidental [44]. Puede prescribir las acciones de los ejecutantes, actuando como un conjunto de restricciones sobre las variables interpretativas. En este sentido, la notaci on provee un medio mediante el cual un compositor puede tratar de determinar qu e es lo que debe ser tocado, cundo y c omo. Una partitura puede ser considerada como un mensaje, con una fuente (el compositor) y un receptor (el o los int erpretes). CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.1. CARACTER ISTICAS DE LA MUSICA ELECTROACUSTICA 139 Sin embargo, una partitura tambi en funciona como un ente descriptor en un sentido bastante m as estricto. Es posible analizar una pieza musical tal como si fuera una representaci on de la pieza en s misma. La notaci on musical provee al analista de una representaci on dedigna y lista sobre lo que puede ser escuchado en una pieza musical cuando esta es interpretada correctamente. Frente a esta lectura estricta de la notaci on, es importante tener en cuenta que una partitura es s olo una de las fuentes de informaci on sobre una pieza de m usica. Otros factores, tales como an alisis ac usticos, datos psicol ogicos o perceptuales, documentos hist oricos, impresiones de los int erpretes, compositores o auditores tambi en proveen al analista de distintas e importantes descripciones de una pieza. En consecuencia, dado que la m usica electroac ustica no posee ning un tipo de partitura, que no hay en ella ninguna correlaci on entre una representaci on gr aca y sonido, el enfoque anal tico no puede ser otro que de orden est etico/perceptivo/cognitivo. Lo u nico que puede analizarse, entonces, es el discurso musical; lo que Camilleri llama el texto sonoro [7]. A pesar de esta aparente dicultad del enfoque anal tico, al concentrarse el analista solamente en el material sonoro sin ninguna referencia escrita, se evita el riesgo de realizar un an alisis basado en un solo aspecto (como, por ejemplo, la relaci on entre alturas), un proceder que com unmente no tiene en cuenta lo que los auditores realmente escuchan.

7.1.3.

Composici on y an alisis

De acuerdo con Camilleri, un aspecto interesante de la m usica electroac ustica es que su an alisis por lo general no coincide con un examen del proceso compositivo, como usualmente sucede con la m usica instrumental [7]. El proceso de composici on en este caso s olo sirve para enfatizar y correlacionar algunas caracter sticas f sicas de las fuentes sonoras que dan origen a la pieza. Este es un hecho importante que no debe ser subestimado. Tradicionalmente uno de los objetivos del an alisis es descubrir o explicitar las intenciones del compositor y su metodolog a. Generalmente esto no es posible en el caso de la m usica electroac ustica. Lo que se inere al escuchar una pieza de m usica puede tener muy poco que ver con la metodolog a del compositor, dadas las m ultiples transformaciones y or genes que el material sonoro puede tener. En consecuencia, el an alisis de la m usica electroac ustica debe centrarse en otros aspectos y el divorcio entre compositor y la obra de arte una vez terminada es m as pronunciado en este caso que en formas de m usica m as CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

140

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

tradicionales. Tal como ya se mencion o, es habitual que los compositores de m usica electroac ustica no consideren que el resultado de su arte sea m usica. Morthenson es bastante dr astico en este sentido y preere directamente el t ermino arte electros onico [20].

7.1.4.

Composici on e improvisaci on

Stephen Pope sostiene que muchos compositores de m usica electroac ustica que utilizan computadores realizan improvisaciones estructuradas en tiempo real, o en otras palabras, composiciones interactivas [25]. El debate acerca de donde termina la improvisaci on y donde empieza la composici on es algo que toma extraordinaria fuerza en el caso de la m usica electroac ustica. Sin duda, el concepto tradicional de composici on aqu se ve amenazado.

7.1.5.

M usica electroac ustica y su signicado

Jan Morthenson sugiere que la m usica electroac ustica no puede ser psicol ogicamente catalogada como m usica bajo las condiciones culturales actuales, porque no conlleva el signicado esperado que usualmente le asignamos a la m usica [20]. Bajo su punto de vista, hay dos tipos de signicado. Uno es el representado por un signo y el otro es el signicado de colocar ese signo en particular en alg un contexto o lugar espec co. El primer signicado es mec anico y autom atico y est a basado en signos aprendidos, mientras el segundo depende de juicios, experiencias, situaciones y personalidades. El arte, en su forma de ver, no es un requisito necesario para la vida y por lo tanto no necesitamos aprender el signicado de los signos o s mbolos art sticos y est eticos. De acuerdo a estas ideas, los eventos musicales representan fundamentalmente un signicado interno, porque se reeren a otros eventos musicales que est an por suceder o que han ocurrido recientemente. Para rearmar esta idea, Morthenson cita a Leonard Meyer: Si, en base a la experiencia pasada, un est mulo actual produce la expectativa de un evento musical posterior, entonces ese est mulo posee un signicado. De esto se deriva que un est mulo o gesto que no apunta o no genera expectativas de un evento posterior carece de signicado. Dado que la expectativa es un producto derivado de la experiencia estil stica, cualquier m usica en un estilo con el cual no estemos familiarizados no nos signica nada Este punto constituye la esencia del argumento de Morthenson: incluso la m usica contempor anea m as extra na involucra a int erpretes haciendo cosas CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.2. ESTRATEGIAS AUDITIVAS

141

con sus instrumentos, pero ese simple hecho le permite al auditor asignarle un signicado hipot etico porque aquello se relaciona con ocurrencias pasadas en la historia de la m usica. Se le puede asignar el segundo tipo de signicado, como una variante de la m usica con todas sus implicaciones hist oricas. En cambio, la m usica electroac ustica por lo general no precisa de artistas en el escenario para inuenciar las evaluaciones de los auditores. M as a un, la mayor parte del tiempo est an ausentes las acciones otrora reconocibles de los compositores. En este tipo de m usica, usualmente no existe una discriminaci on evidente entre creatividad art stica y s olo operaciones matem aticas o t ecnicas. Algunas veces el compositor se convierte en un supervisor, dado que son operaciones estad sticas las que deciden el curso de los eventos. Los sonidos instrumentales tradicionales permiten distinguir la experiencia musical de cualquier otra experiencia auditiva. En el caso de la m usica electroac ustica esto no sucede, porque los sonidos electroac usticos se relacionan m as con el medio ambiente que con la m usica. Por lo tanto, los auditores no poseen referencias sucientes con las cuales comparar lo que est an escuchando. En resumen, cada pieza de m usica electroac ustica es nueva y, de acuerdo con la denici on de Meyer, musicalmente no posee signicado. En consecuencia, la m usica electroac ustica no puede ser considerada como m usica. Este enfoque propuesto por Morthenson puede parecer hoy un poco radical, pero seguramente tuvo mucho sentido en el tiempo en que dichas ideas fueron escritas (1985). Actualmente existe una cultura sobre m usica electroac ustica con referentes hist oricos sucientes como para poder comparar cada nueva pieza que se crea. Al respecto, Adkins introduce el concepto de cadena ac ustica, que consiste b asicamente en v nculos que se establecen cuando un compositor se reere al trabajo de otro en la propia m usica, no por una menci on directa, sino porque utiliza los mismos objetos sonoros [1]. Una cadena acusm atica de este tipo claramente establece una nueva categor a de signicaci on para la m usica electroac ustica.

7.2.

Estrategias auditivas

Investigaciones recientes en m usica electroac ustica sugieren que no escuchamos en una forma ja, uniforme u objetiva, sino que percibimos la m usica de maneras diversas y adoptamos distintas aproximaciones en nuestra audici on. M as a un, es bastante frecuente que adoptemos estrategias auditivas diferentes durante el transcurso de una misma pieza. Los aspectos m as sobresalientes de las estructuras y supercies musicales CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

142

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

(espectromorfolog a) llevan a los auditores a adoptar estrategias diversas en la audici on. Por ejemplo, una r apida secuencia monof onica de eventos sonoros aut onomos no se escucha de la misma manera que una densa textura granular que evoluciona en el tiempo. Similarmente, es poco probable que escuchemos de la misma manera una pieza con una clara narrativa musical y otra con una supercie musical altamente abstracta.

7.2.1.

Audici on musical

Smalley menciona que la audici on musical es muy distinta a la audici on ordinaria. Escuchar no es lo mismo que o r [34]. O r implica un acto involuntario, mientras que la audici on conlleva un acto intencional, una voluntad de aprehender el sonido. De la misma manera, escuchar m usica es muy distinto a o rla. Cuando o mos una m usica en particular, solamente podemos escucharla si decidimos prestar atenci on. Tal como sugieren Jones y Yee, no es posible percibir, entender o recordar m usica si no prestamos atenci on a ella [17].

7.2.2.

Modos Schaeerianos de audici on

Pierre Schaer identica cuatro modos de audici on [34]. Los primeros dos modos se relacionan con la audici on ordinaria y los modos tres y cuatro guardan relaci on con la audici on musical. Estos modos son: ` 1. Ecouter. El auditor se ocupa de la proveniencia de los sonidos y el mensaje que conllevan. La atenci on se enfoca en la ocurrencia o en los eventos conectados al sonido. Por ejemplo, si escuchamos el sonido de un autom ovil atravesando una calle, no nos interesa el sonido en s mismo, sino lo que signica; probablemente el veh culo va muy r apido y nos podr a atropellar. Este modo trata al sonido como un signo de su fuente. 2. Ou` r. No hay intenci on de escuchar, pero un sonido nos llega y no podemos evitarlo. Un ejemplo de esto puede ser una explosi on o un llanto s ubito. Este es el nivel m as crudo y elemental de percepci on auditiva. 3. Entendre. Corresponde a un proceso selectivo donde algunos sonidos son preferidos respecto a otros. De acuerdo a su etimolog a, signica mostrar una intenci on de escuchar. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.2. ESTRATEGIAS AUDITIVAS

143

4. Comprendre. Un paso m as all a del modo tercero. Implica la intenci on de aprehender un signicado o unos valores, tratando al sonido como un signo que se reere a este signicado como una funci on de un lenguaje o de alg un c odigo (audici on sem antica).

7.2.3.

Audici on de fondo

Barry Truax propone el t ermino audici on de fondo (background listening) para diferenciar un nivel distinto de audici on que ocurre cuando existen sonidos que permanecen en el fondo de nuestra atenci on [43]. Esto sucede cuando un auditor no escucha un sonido en particular que sin embargo est a presente, debido a que ese sonido no tiene alguna signicaci on inmediata o relevante. Sin embargo, el auditor es consciente de el y si se le pregunta si ha escuchado el sonido en cuesti on probablemente responder de forma armativa. Los sonidos que son escuchados en el fondo ocurren frecuentemente y por lo tanto son esperados y predecibles. Se les presta atenci on solamente si es necesario; de lo contrario, no son siquiera notados.

7.2.4.

Audici on reducida

En la teor a de Schaeer, la audici on reducida corresponde a la actitud con la que el auditor escucha sonidos por su propio valor, como un objeto sonoro puro, carente de una fuente sonora y sin un signicado atribuible a esta. En la audici on reducida, el foco es el objeto sonoro en s mismo (no a lo que se reere) y con los valores que conlleva (y no los que sugiere). El nombre audici on reducida se reere a la noci on de una reducci on fenomenol ogica, porque consiste en descartar de la percepci on auditiva todo lo que no le es propio, de manera que se llegue a escuchar solamente el sonido puro, en toda su materialidad, sustancia y dimensi on. La audici on reducida y el objeto sonoro se correlacionan directamente y se denen mutuamente como la actividad y el objeto de la percepci on. Dado que en la audici on ordinaria el sonido siempre es tratado como un veh culo, entonces la audici on reducida se convierte en un proceso antinatural, que va en contra de todo condicionamiento. El acto de remover las referencias auditivas habituales es un acto voluntario y articial.

7.2.5.

Modos auditivos de Smalley

Denis Smalley extiende los modos Schaeerianos al combinarlos con los conceptos de autocentricidad y alocentricidad de Schachtel (ver secci on 4.3). Como resultado, propone los siguientes modos [34]: CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

144

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

1. Indicativo. Corresponde al primer modo de Schaeer y considera al sonido como un mensaje y centrado en el objeto. En este caso, el sonido acta como una se nal o un signo de algo que no es sonoro por naturaleza, algo necesario, por ejemplo, para la supervivencia. 2. Reexivo. Este modo est a centrado en el sujeto, es claramente autoc entrico y se basa en respuestas emocionales al objeto percibido. El objeto y la emoci on no son separables en este caso. 3. Interactivo. Corresponde a los modos tres y cuatro de Schaeer y es claramente aloc entrico. Involucra una relaci on activa de parte del sujeto para explorar continuamente las cualidades y estructuras del objeto. Esta modo abarca la audici on estructural, actitudes est eticas hacia los sonidos y la m usica y el concepto de audici on reducida de Schaeer (ver secci on 3.4). Los modos indicativos y reexivos son los dominantes. En cambio, el embarcarse en una relaci on interactiva requiere de esfuerzo y voluntad. A pesar de esto, en mi opini on, una relaci on de este tipo es la necesaria para apreciar realmente la m usica y constituye un requisito b asico para el an alisis.

7.2.6.

Conductas auditivas de Delalande

La teor a anal tica de Francois Delalande, basada en el an alisis de comportamientos auditivos, obtiene conclusiones estructurales del estudio de diversos testimonios auditivos [10]. Delalande argumenta que la mejor forma de representar los distintos aspectos de una obra musical se consigue al basar el an alisis en una amplia muestra de experiencias auditivas, con el objetivo de extraer los elementos estructurales y narrativos comunes a ellas. Este tipo de an alisis es llamado por Delalande an alisis de conductas auditivas (ver secci on 5.3). Delalande propone tres diferentes conductas auditivas: taxon omica, enf atica y gurativa. 1. La audici on taxon omica se maniesta a trav es de la tendencia a distinguir grandes unidades morfol ogicas tales como secciones y hacer una lista mental de ellas. Tambi en se maniesta en la habilidad para notar c omo estas unidades se relacionan e interconectan entre ellas. 2. La conducta enf atica presta atenci on a las sensaciones, las cuales son com unmente descritas como el producto psicol ogico del sonido. Esto est a claramente relacionado con el modo reexivo de Smalley. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

DE LA MUSICA 7.3. PERCEPCION ELECTROACUSTICA

145

3. En la audici on gurativa el auditor tiende a pensar que los sonidos evocan algo que se mueve y que est a vivo y presta su atenci on a la supercie musical, a los detalles sobresalientes.

7.3.

Percepci on de la m usica electroac ustica

A pesar de que el campo de la percepci on musical es bastante amplio, la percepci on de la m usica electroac ustica es un tema que an no ha sido estudiado en profundidad. En los u ltimos a nos ha habido un gran avance en la investigaci on sobre percepci on de m usica instrumental o vocal, pero los estudios publicados sobre percepci on de m usica electroac ustica son todav a escasos. A continuaci on se presentan los enfoques perceptuales m as importantes que han sido propuestos hasta ahora

7.3.1.

Enfoque ecol ogico

Luke Windsor propone que los sonidos sean entendidos con relaci on a los ambientes din amicos en los cuales estos son producidos, ya sean sonidos creados naturalmente o mediante alguna mediaci on cultural [45]. En consecuencia, las dicultades te oricas y anal ticas que la m usica electroac ustica posee requerir an soluciones basadas en una conciencia dual del auditor sobre los aspectos naturales y culturales del sonido. En otras palabras, esto sugiere que la m usica electroac ustica posee una naturaleza dual. Por una parte, los sonidos son percibidos y por la otra signican. Son percibidos porque proveen informaci on que permite a un organismo reaccionar adecuadamente a su ambiente de una manera directa. Y tambi en signican porque son interpretados como artefactos culturales con un contenido expl cito. Esta idea puede ser directamente relacionada con los modos tercero y cuarto de los modos de audici on de Schaeer (ver secci on 3.2). El tercer modo (Entendre) implica seleccionar algunos sonidos sobre otros y el modo cuarto (Comprendre) implica asignar un signicado a esa experiencia. En el contexto de la ac ustica ecol ogica, los sonidos no son concebidos como entidades abstractas relacionadas una con la otra, como por ejemplo tonos de colores o timbres, ni tampoco como signos referentes a conceptos o cosas. Antes bien, se considera que los sonidos proveen un contacto directo entre los auditores y ocurrencias ambientales signicativas [46]. Estas ideas est an basadas en el trabajo de Gisbon, creador del enfoque ecol ogico para la percepci on visual, quien arma que la percepci on no CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

146

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

requiere de la mediaci on de representaciones mentales del mundo externo. Este argumento es contrario al punto de vista dominante de la percepci on y cognici on musical, en el cual el procesamiento, el almacenamiento y la manipulaci on de la informaci on en la mente son lo principal. De acuerdo con Windsor, el enfoque ecol ogico asume que el ambiente est a altamente estructurado y que los organismos son sensibles a dicha estructura. Sin embargo, esto no signica que la memoria, el lenguaje y otros sistemas simb olicos no tengan un rol importante en nuestra experiencia del mundo, sino que la percepci on, por un lado; y los sistemas simb olicos que facilitan la mediaci on, el almacenamiento y la comunicaci on de las percepciones, por el otro, son cosas distintas. Esta perspectiva ecol ogica se basa en la percepci on de eventos. Este tipo de percepci on trata de identicar las propiedades invariantes de eventos que especican las caracter sticas permanentes y cambiantes del ambiente que son importantes para un organismo. Este enfoque es distinto de la psicoac ustica tradicional en el sentido de que esta u ltima se ocupa de identicar cambios en alturas, estructuras espectrales o duraciones, mientras que la primera trata de identicar las transformaciones en las estructuras ac usticas que informan al auditor de cambios importantes en el medio ambiente. Cabe destacar que este punto de vista no implica que los sonidos no puedan ser percibidos con ciertas cualidades, tales como los objetos sonoros de Schaeer (ver secci on 7.2.4) o que ellos no puedan signicar. Lo que s implica es que los sonidos no necesitan de tal mediaci on para informarnos acerca de nuestro ambiente y que las fuentes sonoras pueden dif ciles de ignorar, debido principalmente a la naturaleza no musical de los sonidos electroac usticos. En conclusi on, esta visi on es fundamentalmente opuesta al concepto acusm atico de Schaeer en el sentido de que la m usica electroac ustica, m as que proveer un m etodo de lidiar con fuentes sonoras, es m as bien una fuente informativa de est mulos ac usticos estructurados. La percepci on de m usica electroac ustica puede ser radicalmente distinta a la percepci on de eventos reales, pero esto no es s olo audici on acusm atica o reducida. El auditor que habita en un ambiente rico en estimulaci on y estructura percibir eventos no s olo a trav es de la informaci on presente en una pieza de m usica sino del ambiente como un todo, sea este ac ustico o no.

7.3.2.

Paisajes sonoros

Un paisaje sonoro se dene como la fuente imaginaria de los sonidos percibidos [47]. Por ejemplo, el paisaje sonoro de los sonidos escuchados en CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

DE LA MUSICA 7.3. PERCEPCION ELECTROACUSTICA

147

una sala de conciertos est a constituido por m usicos tocando instrumentos. El paisaje sonoro de la misma m usica tocada a trav es de altoparlantes tambi en corresponde a m usicos tocando instrumentos. Cu al es el paisaje sonoro de una pieza de m usica electroac ustica? La respuesta a esta pregunta no es f acil y depende de cada pieza en particular. La mayor a de la gente acostumbrada a escuchar conciertos de m usica tradicional en vivo se desorienta al escuchar un concierto de m usica electroac ustica presentado mediante altoparlantes. Esta desorientaci on se debe a la incapacidad de denir una fuente sonora imaginable, un paisaje sonoro, para los sonidos percibidos. Smalley menciona que el extenso rango de fuentes sonoras que han sido incorporado a la m usica electroac ustica ha provocado una revoluci on en el contenido sonoro, ante lo cual se observa una variada gama de respuestas auditivas [34]. Wishart propone que nuestra percepci on de un paisaje sonoro puede ser descompuesta en tres partes: naturaleza del espacio ac ustico percibido, la disposici on de los objetos sonoros en tal espacio y la identicaci on de objetos sonoros individuales [47].

7.3.3.

Autocentricidad y alocentricidad

Ernest Schachtel establece una diferencia entre actividades perceptuales centradas en el sujeto y centradas en el objeto. Para hacer la diferenciaci on, propone dos modos perceptuales [34]. El modo autoc entrico es el basado en el sujeto y en respuestas b asicas y sentimientos de satisfacci on o insatisfacci on. Este enfoque est a relacionado con las reacciones subjetivas a los est mulos. Esta idea de percepci on es primitiva, basada en necesidades y se asocia con las primeras relaciones del ni no con el mundo. Cabe destacar aqu la similitud con la percepci on ecol ogica propuesta por Windsor. Por el contrario, el modo aloc entrico es el centrado en el objeto en el sentido de que no involucra las necesidades del individuo. La satisfacci on o insatisfacci on no son relevantes en este caso. Este modo implica un proceso activo y selectivo de focalizaci on en un objeto para posteriormente discernir sus propiedades. Las actitudes musicales autoc entricas se relacionan con respuestas emocionales al sonido. En cambio, las actitudes aloc entricas involucran la aprehensi on de las estructuras musicales y la apreciaci on de sonidos fuera de un contexto musical. Este modo constituye un encuentro directo con el sonido y est a directamente relacionado con el modo cuarto de Schaeer (ver secci on 3.2) y con el modo interactivo de Smalley (ver secci on 3.5). CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

148

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

La autocentricidad y alocentricidad pueden existir en forma paralela y tambi en var an de acuerdo con cada auditor. Hay algunos que en la presencia de un sonido inmediatamente utilizar an un enfoque autoc entrico mientras otros seguir an una estrategia aloc entrica. Esta idea complementa la naturaleza sonora dual que propone Windsor, en el sentido de que los sonidos son percibidos (en el sentido autoc entrico) pero tambi en signican (de una manera aloc entrica). Tambi en esta idea puede vincularse directamente con las conductas auditivas de Delalande (ver secci on 3.6).

7.3.4.

Sustituci on

Denis Smalley introduce el t ermino sustituci on (surrogacy) como una forma de describir el nivel o el grado en los cuales los auditores relacionan perceptualmente los sonidos con fuentes f sicas y gestuales reales o imaginarias en un contexto acusm atico. A medida que el nivel de sustituci on se hace m as fuerte, los auditores pueden asignar causas imaginarias a distintos sonidos y a su evoluci on espectromorfol ogica, o etiquetar el sonido como abstracto. Smalley denomina a estos varios niveles como ordenes de sustituci on [33].

7.4.

Estrategias anal ticas

El an alisis de la m usica, como teor a y praxis, ha pasado u ltimamente por un per odo de autocuestionamiento, sin duda como resultado de la incapacidad de las t ecnicas tradicionales de abordar m usica de la avant-garde de la post-guerra [21]. Incluso hoy, mucha m usica contempor anea parece inescrutable. Este es el contexto en el cual se encuentra la m usica electroac ustica. Tal como Delalande se nala, el objeto del an alisis es el sonido. Y los objetos sonoros (ver secci on 5.1) existen s olo en las mentes de los auditores [10]. Camilleri arma que la introducci on de la tecnolog a en sus varias fases de desarrollo desde 1940 hasta hoy ha provocado no solo un enriquecimiento de la gama sonora, sino que tambi en ha generado una gran cantidad de reexiones te oricas acerca de c omo clasicar los sonidos de las nuevas obras y como analizarlas [7]. Para algunos autores, entre ellos Nicola Sani, el rol del an alisis debe ser no s olo el proveer an alisis individuales sobre obras espec cas, sino m as bien identicar la especicidad de este g enero en el contexto de la producci on art stica de nuestro tiempo [31]. La m usica electroac ustica se basa fuertemente en el uso de la tecnolog a, la cual avanza a una velocidad vertiginosa. En el momento de analizar, CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.4. ESTRATEGIAS ANAL ITICAS

149

esto se convierte en un problema, dado que existe una fuerte tendencia a basar el an alisis en los aspectos t ecnicos [31]. La m usica computacional y electroac ustica se presenta y legitima como una parte del conocimiento (know-how) tecnol ogico, lo cual no puede estar m as lejos de la verdad. El conocimiento tecnol ogico hace posible la creaci on de ciertas composiciones, pero no puede ser la justicaci on est etica de las mismas. En este sentido, el an alisis de una pieza de m usica electroac ustica no debe convertirse en un manual de instrucciones o una gua de uso de la tecnolog a. Hay dos cosas que hay que considerar al momento de analizar m usica electroac ustica. En primer lugar, el punto de partida del an alisis es la audici on de la obra. Segundo, la actitud receptiva del auditor inuye en el an alisis porque sus propiedades no son meramente asociativas, sino una parte estructural de la potencialidad del medio electroac ustico [7]. Camilleri sugiere que las estrategias anal ticas para la m usica electroac ustica deben considerar tres aspectos: 1. Reexi on del lenguaje musical, sus potencialidades y sus ligazones al mundo sonoro natural 2. Relaci on entre las propiedades psicoac usticas del fen omeno sonoro y su descripci on 3. Creaci on de un l exico anal tico Estos tres aspectos son esenciales e igualmente importantes, porque permiten crear un marco apropiado al proceso de an alisis. Una de las caracter sticas de la m usica electroac ustica es que puede fusionar f acilmente sonidos naturales y articiales de forma casi imperceptible. Este solo hecho obliga al analista a reexionar sobre el tipo de lenguaje musical utilizado. El establecer relaciones estructurales entre los elementos presentados en la m usica es crucial. El an alisis musical no es una mera descripci on, y esto tambi en es v alido para la m usica electroac ustica. Adem as, dado que a un no existen m etodos y estrategias generales para este tipo de an alisis, tampoco existe un l exico anal tico, por lo que un objetivo importante de cualquier nueva estrategia debe ser el proveer un marco de referencia (l exico) consistente y exhaustivo. A continuaci on se presentan las principales metodolog as anal ticas propuestas hasta ahora. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

150

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

7.4.1.

Objetos sonoros

La teor a tipomorfol ogica de Pierre Schaeer, a pesar de que no constituye realmente una metodolog a anal tica sino m as bien compositiva y te orica, ha sido utilizada por muchos como un punto de partida para el an alisis de m usica electroac ustica. En su propuesta, Schaeer identica tres tipos de objetos sonoros, presentes en el discurso musical, de acuerdo a criterios topol ogicos y morfol ogicos; los cuales indican los tipos generales de estos objetos y sus caracter sticas respectivamente. En esencia, los tres tipo de objetos sonoros propuestos por Schaeer son los continuos, los iterativos y los impulsivos. Esta clasicaci on claramente se basa en las caracter sticas morfol ogicas de los sonidos, y ser extendida m as adelante por Smalley, tal como se describe en la secci on 7.4.2. Schaeer tambi en considera tres planes de referencia a trav es de los cuales los objetos sonoros son descritos y clasicados: Plan mel odico o de textura: la evoluci on de las alturas en el tiempo Plan din amico o formal: los par ametros de la intensidad en el tiempo Plan arm onico o t mbrico: las relaciones entre los par ametros anteriores y sus componentes espectrales Cada plan de referencia presenta diversos sistemas de clasicaci on de acuerdo a los tipos de movimientos mel odicos, din amicos y t mbricos. Adem as, Schaeer establece cuatro clases de criterios de clasicaci on: material, mantenimiento, forma y variaci on, los cuales se correlacionan con las caracter sticas morfol ogicas de los objetos sonoros.

7.4.2.

Espectromorfolog a

Denis Smalley desarroll o el concepto de espectromorfolog a como una herramienta para describir y analizar experiencias auditivas [33] [35]. Las dos partes del t ermino se reeren al sonido (espectro) y la evoluci on de su molde o forma de onda (morfolog a) a trav es del tiempo. El espectro no puede existir sin la morfolog a: algo tiene que ser moldeado y debe poseer tambi en contenido sonoro. Desde un punto de vista anal tico, la propuesta de Smalley es extremadamente importante, dado que en los primeros treinta y cinco a nos de actividad electroac ustica no fue propuesta ninguna metodolog a comprehensiva para el an alisis. La teor a de Pierre Schaeer sobre tipos morfol ogicos CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.4. ESTRATEGIAS ANAL ITICAS

151

o tipomorfolog a (objetos sonoros, ver secci on 5.1) fue el intento m as serio. La espectromorfolog a es m as exhaustiva, puede ser aplicada a distintos contextos musicales y extiende las ideas de Schaeer al incluir estructuras jer arquicas y otras propiedades como movimiento y espacio [7]. Es importante destacar, no obstante, que la espectromorfolog a es una herramienta descriptiva basada en la percepci on auditiva. Un enfoque espectromorfol ogico considera modelos y procesos espectrales y morfol ogicos y provee un marco de referencia para entender relaciones estructurales y comportamientos sonoros experimentados en el ujo temporal de la m usica [35]. El marco te orico de la espectromorfolog a se articula en cuatro partes principales: los arquetipos espectrales, morfolog a, movimiento y procesos estructurales. A continuaci on se detallan las primeras dos partes, dado que son las m as relevantes para efectos del presente texto. Arquetipos espectrales Smalley identica tres tipos b asicos de espectros: nota, nodo y ruido. La nota corresponde a un tono musical normal, con una frecuencia fundamental y arm onicos. Un nodo corresponde a una densidad de sonido m as compleja, donde la identicaci on de un croma o altura determinada es dif cil. Un ruido es una densidad sonora extremadamente comprimida donde no hay identicaci on de una altura o croma posible. Cada uno de estos arquetipos espectrales puede tener un comportamiento temporal distinto, que Smalley clasica en arquetipos morfol ogicos.

7.4.3.

Arquetipos morfol ogicos, modelos y cadenas

Smalley va mucho m as all a de las deniciones de Schaeer al designar diversos arquetipos morfol ogicos y crear una serie de modelos obtenidos a trav es de diversas transformaciones tales como la retrogradaci on. Pueden discernirse tres arquetipos b asicos en las fuentes de sonidos: ataque impulsivo, ataque resonante y continuo graduado. El ataque impulsivo corresponde a un r apido impulso que es inmediatamente terminado. En este caso el inicio del sonido es tambi en su nal. La atenci on se enfoca por completo en el ataque s ubito. El ataque resonante es modelado en sonidos cuyo ataque impulsivo es extendido a trav es de una resonancia (como por ejemplo una cuerda pulsada o una campana) para luego decaer ya sea en forma r apida o graduada dependiendo del caso. La atenci on se enfoca en la sorpresiva aparici on y en la forma en que esta se convierte en un sonido sostenido. El tercer arquetipo es un continuo graduado el cual CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

152

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

es modelado en sonidos sostenidos. El ataque es graduado, dando paso a un comportamiento continuo que luego decae en forma tambi en graduada. En este caso el ataque es percibido como una inuencia mucho m as d ebil que en el caso de los otros dos arquetipos. La atenci on se enfoca principalmente en la forma en que el sonido es mantenido. Desde estos tres arquetipos principales puede generarse una sutil variedad de articulaciones temporales. Smalley extiende estos arquetipos en una mayor cantidad de modelos morfol ogicos. Estos modelos permiten lo que Smalley denomina modulaci on morfol ogica, dado que proveen un marco de referencia m as completo y vers atil para la clasicaci on de unidades morfol ogicas estructurales. No obstante, estas morfolog as no son solamente objetos aislados sino que pueden enlazarse y mezclarse formando cadenas, creando as objetos h bridos.

7.4.4.

An alisis basado en conductas auditivas

Delalande [10] hace una cr tica expl cita de la espectromorfolog a de Smalley. De acuerdo con sus propuestas, hay un tipo de an alisis simplemente inaceptable: uno que apunte a demostrar lo que la m usica es, o cual sea la forma o la estructura. En consecuencia, uno debe descartar la ilusi on de un an alisis u nico y denitivo. Delalande enfatiza que al analizar m usica electroac ustica (o incluso un sonido medianamente complejo) es siempre posible revelar una innidad de caracter sticas morfol ogicas y distintas conguraciones de morfolog as. Esto no s olo se aplica a todas las piezas de m usica sino tambi en a todos los objetos sonoros. Un an alisis siempre implica una reducci on. S olo algunas caracter sticas y conguraciones son seleccionadas de entre todas las posibles. La pregunta del objetivo del an alisis y la pertinencia de las caracter sticas en relaci on con este objetivo es, por lo tanto, evadida. Como soluci on a esto, Delalande propone el curso de acci on opuesto. El objetivo del an alisis, seg un sus ideas, es revelar las elecciones (impl citas o expl citas) y acciones del compositor, o explicar los comportamientos auditivos de los receptores (ver secci on 3.6), o ambos al mismo tiempo. Solamente despu es que un objetivo anal tico ha sido elegido es posible denir un criterio de pertenencia. En un nivel general y te orico no hay raz on alguna para que las unidades pertinentes coincidan con unidades espectromorfol ogicas. En sus an alisis, Delalande realiza en forma separada an alisis taxon omicos, enf aticos y gurativos de la misma pieza. Los resultados son totalmente distintos, pero complementarios. Cada comportamiento da su propia forma a los objetos sonoros. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.4. ESTRATEGIAS ANAL ITICAS

153

7.4.5.

El sonograma

La m usica electroac ustica frecuentemente contiene cambios espectrales y otros aspectos t mbricos que hacen inadecuada la notaci on musical. En estos casos, representaciones visuales de la m usica pueden ayudar a entender y apreciar las caracter sticas que pueden haberse ignorado sin este soporte [14]. Al respecto, Mara Helmut propone el sonograma como una representaci on u til del espectro de frecuencias de una pieza y de su evoluci on en el tiempo. En adici on a esto, propone la utilizaci on de capas adicionales de informaci on relevante tales como relaciones de alturas, fraseo, din amicas locales y globales y t ecnicas empleadas. El sonograma se propone como una interesante herramienta de an alisis y que ha sido utilizada para entender el dise no sonoro de obras electroac usticas. Un sonograma consiste b asicamente en un gr aco bi-dimensional en donde el eje X corresponde al tiempo y el eje Y al eje de frecuencias. Distintos colores son utilizados para representar las intensidades individuales de los componentes de frecuencia presentes en la m usica. A pesar de que la informaci on visual que un sonograma proporciona no corresponde directamente al sonido, puede proveer informaci on u til de la m usica y servir como un complemento a otras formas de an alisis.

7.4.6.

An alisis narrativo

Cada proceso creativo desarrolla su propia narrativa, incluso en forma independiente de los prop ositos del creador [13]. En su trabajo, Giomi y Ligabue proponen un an alisis narrativo de m usica electroac ustica utilizando un proceso anal tico basado en aspectos perceptuales y una metodolog a est etica-cognitiva, desarrollada por los propios autores. Este an alisis pretende operar en forma an aloga al an alisis de una obra literaria, donde existen protagonistas y antagonistas, y una trayectoria narrativa claramente establecida. Este tipo de an alisis permite el examen de los objetos anal ticos desde distintos puntos de vista, empezando por unidades peque nas como los objetos o eventos sonoros para seguir con cadenas sintagm aticas, estrategias compositivas y la segmentaci on de la estructura formal de la pieza. Esta divisi on estructural se basa en criterios tales como material, comportamiento r tmico- din amico, coherencia, morfolog a t mbrica, densidad, movimiento y tensi on. Este an alisis tambi en considera estrategias de comienzo y nal, el uso de la analepsia (repetici on narrativa) y la prolepsia (anticipaci on narrativa), asociaciones sem anticas tanto musicales como metaf oricas y asociaciones CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

154

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

psicol ogicas extra musicales.

7.5.

Conclusiones

La m usica electroac ustica es, sin dudas, un g enero particular y distinto a la m usica instrumental. El s olo hecho de utilizar cualquier fuente sonora en un contexto musical establece una gran diferencia. La utilizaci on de sonidos no musicales en un contexto musical genera todo tipo de interrogantes acerca de la forma en que percibimos dichos sonidos y su signicado. Propuestas como la audici on reducida de Schaeer intentan enfocar la atenci on auditiva s olo en aspectos morfol ogicos, obviando toda referencia externa. Por el contrario, autores como Windsor y Wishart argumentan que los sonidos no pueden dejar de signicar y que una audici on reducida no es posible. Tal como Smalley propone, a un cuando no seamos capaces de asignar una fuente real o virtual a un sonido electroac ustico, podemos asignarles una fuente sustituta. Autores como Morthenson cuestionan la m usica electroac ustica como m usica y ofrecen diversos argumentos por los cuales esta no debiera ser considerada m usica. Algunos compositores tambi en cuestionan el rol de la composici on en este contexto. Desde mi punto de vista, creo que la m usica electroac ustica puede perfectamente ser considerada como un g enero m as dentro de la m usica, a pesar de sus diferencias, y a un sigo pensando que es posible componerla, toda vez que se trata de posicionar sonidos en el tiempo. Sin lugar a dudas, la m usica electroac ustica genera serios cuestionamientos perceptuales y te oricos, debido en gran parte a su naturaleza, pero tambi en debido a su poco tiempo de vida. Este g enero est a naciendo, y posee, seg un mi parecer, un futuro muy rico e interesante. Cada una de las propuestas anal ticas mencionadas en este texto son importantes de considerar ya que se enfocan en distintos aspectos de la m usica. La espectromorfolog a de Smalley se basa en las propiedades f sicas (ac usticas) del sonido, mientras Delalande considera las caracter sticas psicoac usticas. El sonograma permite observar la estructura espectral y en enfoque narrativo busca estructuras y estrategias narrativas identicables en la m usica. Cada uno de estas ideas tiene fortalezas y debilidades. Personalmente, creo que la mejor forma de analizar m usica electroac ustica es usar la mayor cantidad de estrategias como sea posible y tratar de abordar todos los aspectos de la obra. Estoy convencido que la m usica electroac ustica ha cambiado las bases te oricas del an alisis musical. El an alisis ya no se basa exclusivamente en una CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

7.5. CONCLUSIONES

155

partitura escrita y las intenciones del compositor ya no son el principal foco del an alisis. Lo que ahora importa es el resultado sonoro. Camilleri sugiere que la falta de una partitura en este caso no es una debilidad sino una fortaleza. Un modelo te orico y anal tico basado solo en el texto sonoro representa un punto de contacto real entre la teor a musical y el modelamiento de estrategias musicales perceptuales y cognitivas. A mi modo de ver, la m usica electroac ustica no s olo ha cambiado sino ampliado el campo del an alisis. Bajo este punto de vista, es posible armar que el an alisis tradicional es un subconjunto de un tipo m as general de an alisis como el descrito en este texto. El lector habr a notado que cada una de las estrategias descritas aqu podr an perfectamente ser aplicadas a m usica tradicional e incluso m usica popular. Para nalizar, me gustara enfatizar que desde 1940 se ha generado una intensa actividad en este campo y no hay se nales de que esto se haya acabado en ning un sentido. La investigaci on en m usica electroac ustica sigue su curso y nuevas ideas y enfoques son propuestos constantemente. Tal como Camilleri desea, quiz as en un futuro cercano podamos disponer de un l exico anal tico com un y s olidamente establecido.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

156

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

ndice A Ape

Ejemplos en SuperCollider

El siguiente ap endice contiene una introducci on al lenguaje de s ntesis SuperCollider y ejemplos tanto de s ntesis de sonido como procesamiento digital desarrollados en este lenguaje.

A.1.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

SuperCollider: introducci on

TUTORIAL DE SUPERCOLLIDER 3 PARTE 1 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l N o r t h we s te rn U n i v e r s i t y h t t p : //www . a u d i o s y n t h . com/ SuperCollider es : E d i t o r de t e x t o Lenguaje de programacion ( i n t e r p r e t e ) Compilador Sintetizador digital

todo en uno .

SuperCollider es : Open S o u r c e y g r a t i s O r i g i n a l m e n t e implementado en computadores Apple Macintosh La v e r s i o n 3 e s t a d i s p o n i b l e fundamentalmente para p l a t a f o r m a s POSIX ( Unix , Linux ,OSX) . 20 Tambien e x i s t e un p o r t a c t u a l m e n t e en d e s a r r o l l o para Windows . 21 22 H i s t o r i a : 23 S u p e r C o l l i d e r v e r s i o n e s 2 and 3 d5 . 1 para MacOS 8 and 9

157

158

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

24 SC S e r v e r o r i g i n a l m e n t e para MacOSX 25 S u p e r C o l i d e r 3 ( Open S o u r c e ) 26 27 A r q u i t e c t u r a 28 29 S u p e r C o l l i d e r t i e n e una e s t r u c t u r a c l i e n t e / s e r v i d o r . 30 31 Las o p e r a c i o n e s en S u p e r C o l l i d e r e s t a n d i v i d i d a s en un i n t e r p r e t e d e l l e n g u a j e de programacion de S u p e r C o l l i d e r ( s c l a n g ) y un s e r v i d o r de s i n t e s i s ( s c s e r v e r ) . E s t a s dos a p l i c a c i o n e s s e comunican mediante Open Sound C o n t r o l a t r a v e s de UDP o TCP. 32 33 Esto s i g n i f i c a e n t r e o t r a s c o s a s : 34 El s e r v i d o r puede s e r c o n t r o l a d o por o t r o s programas a p a r t e de sclang 35 El i n t e r p r e t e puede c a e r s e p e r o e l s e r v i d o r s i g u e c o r r i e n d o 36 El s e r v i d o r puede c a e r s e y e l i n t e r p r e t e s i g u e c o r r i e n d o 37 El i n t e r p r e t e y e l s e r v i d o r pueden c o r r e r en maquinas d i s t i n t a s , i n c l u s o en d i s t i n t a s p a r t e s d e l mundo , p e r m i t i e n d o una mejor d i s t r i b u c i o n de r e c u r s o s en l a r e d 38 39 D e s v e n t a j a s : e s t a a r q u i t e c t u r a produce l a t e n c i a . No l a t e n c i a de audio , l a c u a l e s muy b a j a s i n o l a t e n c i a de c o m u n i c a c i o n . Esto s e minimiza usando e l s e r v i d o r i n t e r n o ( i n t e r n a l ) . 40 41 Cada l a d o cumple una f u n c i o n d i s t i n t a . 42 s c s e r v e r e s un programa s i m p l e y e f i c i e n t e d e d i c a d o a t a r e a s de a u d i o . 43 No t i e n e i d e a de c o d i g o , o b j e t o s , OOP, o c u a l q u i e r c o s a r e l a c i o n a d a con e l i n t e r p r e t e . 44 45 S e r v i d o r i n t e r n o y l o c a l 46 S e r v i d o r l o c a l : c o r r e un p r o c e s o a p a r t e d e l i n t e r p r e t e , s i n c o m p a r t i r memoria 47 S e r v i d o r i n t e r n o : c o r r e un p r o c e s o que comparte memoria con e l i n t e r p r e t e , y por l o t a n t o p e r m i t e c o s a s como o s c i l o s c o p i o s y ademas minimiza l a t e n c i a . 48 49 S e r v i d o r por d e f e c t o . 50 Siempre hay un s e r v i d o r por d e f e c t o , que e s t a almacenado en l a v a r i a b l e de c l a s e default . 51 C u a l q u i e r s i n t e t i z a d o r ( Synths ) o grupo ( Groups ) c r e a d o s i n un d e s t i n o son c r e a d o s en e l s e r v i d o r por d e f e c t o . 52 Al momento de i n i c i o , e l s e r v i d o r por d e f e c t o e s e l s e r v i d o r l o c a l , p e r o e s t o puede s e r cambiado . 53 54 55 Ejemplo de c o d i g o S u p e r C o l l i d e r

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.1. SUPERCOLLIDER: INTRODUCCION


56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

159

// d e f i n i r e l s e r v i d o r por d e f e c t o como i n t e r n o S e r v e r . default = S e r v e r . i n t e r n a l ; // a s i g n a r l o a l a v a r i a b l e s s = S e r v e r . default ; // p a r t i r e l s e r v i d o r s . boot ; // d e f i n i r un s i n t e t i z a d o r y e n v i a r l o a l s e r v i d o r SynthDef ( s i n e , { Out . a r ( 0 , SinOsc . a r ( 4 4 0 , 0 , 0 . 2 ) ) } ) . send ( s ) ; // c o r r e r l a s i n t e s i s s . sendMsg ( s new , s i n e , n = s . nextNodeID , 0 , 1 ) ; // m ostrar e l o s c i l o s c o p i o i n t e r n o (OSX) Server . i n t e r n a l . scope (1) ; // p a r a r e l s i n t e t i z a d o r ( d e l e t e ) s . sendMsg ( / n f r e e , n ) ; // p a r a r e l s e r v i d o r ( o p c i o n a l ) s . quit ;

Ejemplos : ( S e r v e r . default = S e r v e r . i n t e r n a l ; s = S e r v e r . default ; s . boot ; ) H e l l o World . speak ; { SinOsc . a r ( LFNoise0 . a r ( [ 1 0 , 1 5 ] , 4 0 0 , 8 0 0 ) , 0 , 0 . 3 ) } . play ; { RLPF . a r ( LFSaw . a r ( [ 8 , 1 2 ] , 0 , 0 . 2 ) , LFNoise1 . a r ( [ 2 , 3 ] . choose , 1 5 0 0 , 1 6 0 0 ) , 0 . 0 5 , mul : 0 . 4 ) } . play ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

160

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

A.2.

SuperCollider: el lenguaje

1 TUTORIAL DE SUPERCOLLIDER 3 PARTE 2 2 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l 3 No r th we s te rn U n i v e r s i t y 4 5 El l e n g u a j e S u p e r C o l l i d e r (SC) 6 7 sclang : 8 Orientado a l objeto 9 B a s t a n t e s i m i l a r a l l e n g u a j e SmallTalk 10 S i n t a x i s e s s i m i l a r a C++. 11 12 S e n t e n c i a s 13 Las s e n t e n c i a s SC son t e r m i n a d a s por un punto y coma ; 14 15 L i t e r a l e s 16 Los l i t e r a l e s son v a l o r e s que t i e n e n una r e p r e s e n t a c i o n sintactica directa 17 18 Numeros 19 Un e n t e r o e s una s e r i e de d i g i t o s p r e c e d i d o s o p c i o n a l m e n t e por un s i g n o menos . 20 Ejemplos : 21 13 22 666 23 2112 24 96 25 26 Un numero r e a l ( f l o a t , de punto f l o t a n t e ) e s t a compuesto por d i g i t o s s e g u i d o s por un punto d e c i m a l d e s p u e s d e l c u a l hay mas d i g i t o s . 27 Deben haber d i g i t o s a ambos l a d o s d e l punto d e c i m a l . Por e j e m p l o : 28 29 0.0 30 3.1415 31 0.5 32 33 Esto d i s t i n g u e numeros r e a l e s de e x p r e s i o n e s como : 34 35 8 . rand 36 37 38 Tambien s e puede u t i l i z a r n o t a c i o n e x p o n e n c i a l . 39 40 1 . 2 e4 41 1 e 4

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.2. SUPERCOLLIDER: EL LENGUAJE


42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65

161

La c o n s t a n t e p i s e puede a g r e g a r a un numero para c r e a r una c o n s t a n t e de punto f l o t a n t e : 2 pi 0.5 pi 0.25 p i

Valores e s p e c i a l e s Las i n s t a n c i a s s i n g u l a r e s de l a s c l a s e s True , F a l s e , N i l y I n f i n i t u m s e e s c r i b e n : true , f a l s e , n i l y i n f . True y F a l s e son v a l o r e s b o o l e a n o s ( Boolean ) . x y z n = = = = true ; false ; nil ; inf ;

Variables Identificadores Los nombres de v a r i a b l e s ( y muchas o t r a s c o s a s ) empiezan con un c a r a c t e r a l f a b e t i c o en m i n u s c u l a s s e g u i d o de c e r o o mas caracteres alfanumericos . Las v a r i a b l e s son c a s e s e n s i t i v e : e s t a e s m i v a r i a b l e no e s l o mismo que e s t a E s M i V a r i a b l e Por c o n v e n c i o n , l o s nombres de v a r i a b l e s usan l a s i g u i e n t e convencion : unaCosa , o t r a C o s a Las v a r i a b l e s s e d e c l a r a n con l a c l a v e var : var abc , z123 , f u n c ; Las v a r i a b l e s pueden s e r i n i c i a l i z a d a s de l a s i g u i e n t e manera : var abc =3 , z123 =6; S u p e r C o l l i d e r d e f i n e l a s l e t r a s d e l a l f a b e t o automaticamente como v a r i a b l e s y , por l o tanto , pueden s e r u t i l i z a d a s s i n s e r declaradas .

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

162
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

Esto e s c o n v e n i e n t e para d e m o s t r a c i o n e s r a p i d a s de c o d i g o , p e r o no e s a c o n s e j a b l e para c o d i g o r e a l . Al ca n ce ( s c o p e ) de v a r i a b l e s Los programas SC s e o r g a n i z a n e n t e p a r e s de p a r e n t e s i s . Las v a r i a b l e s s e d e f i n e n y son e n t e n d i d a s e n t r e un par de p a r e n t e s i s , p e r o no a f u e r a de e l l o s . algoAqui ( var miNumero , myOtroNumero ; miNumero = miOtroNumero ; / E s t a s v a r i a b l e s son r e c o n o c i d a s a q u i / ); miOtroNumero = miNumero ; / Pero no a q u i ! ! ! / Nombres de c l a s e s Algunas p a l a b r a s u s a d a s en programas son a s o c i a d a s con una p a r t e d e l l e n g u a j e llamada c l a s e s . Los nombres de c l a s e s s i e m p r e empiezan con una l e t r a mayuscula . Las u n i d a d e s de g e n e r a c i o n ( Unit G e n e r a t o r s o UGen) que m o d i f i c a n y c r e a n a u d i o son t o d a s c l a s e s . O bjec t Point Synth Osc Reson

Comentarios Los c o m e n t a r i o s son l i n e a s de c o d i g o que no son tomadas en c u e n t a por e l i n t e r p r e t e ( o c o m p i l a d o r ) Empiezan con // y terminan en e l f i n a l de l a l i n e a . Tambien pueden s e r d e l i m i t a d o s con / y / . Ejemplos : // c o m e n t a r i o s de una l i n e a / comentario multi linea /

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.2. SUPERCOLLIDER: EL LENGUAJE


127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 / A d i f e r e n c i a de C, s e pueden t e n e r c o m e n t a r i o s / a n i d a d o s / /

163

Expresiones Las e x p r e s i o n e s son c o m b i n a c i o n e s de l i t e r a l e s , v a r i a b l e s y o p e r a d o r e s que producen un r e s u l t a d o . Los o p e r a d o r e s pueden s e r o p e r a c i o n e s a r i t m e t i c a s comunes . Ejemplos de o p e r a d o r e s 1 + 2 a b // suma de uno y dos // d i f e r e n c i a de a y b

P r e c e d e n c i a de o p e r a d o r e s No hay . Todos l o s o p e r a d o r e s t i e n e n e l mismo n i v e l de p r e c e d e n c i a y s e a s o c i a n de i z q u i e r d a a d e r e c h a . Por ejemplo , la expresion : x = a b + c d; es equivalente a : x = (( a b) + c ) d ; y no : x = (a b) + ( c d) ; Por l o tanto , bueno u t i l i z a r p a r e n t e s i s en l a s e x p r e s i o n e s .

143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159

Asignaciones A s i g n a c i o n s i m p l e . Una a s i g n a c i o n s i m p l e a s i g n a e l v a l o r de una e x p r e s i o n en e l l a d o d e r e c h o a una v a r i a b l e en e l l a d o izquierdo . Una a s i g n a c i o n s i m p l e t i e n e l a forma :

160 161 162 < v a r i a b l e > = < e x p r e s i o n > ; 163 164 Ejemplo : 165 166 c = a + b ; 167 168 cup = j a v a ; 169

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

164

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

170 r e s u l t a d o = e s t o a q u e l l o + mas ; 171 172 s i g n a l = SinOsc . a r ( 8 0 0 , 0 , 0 . 1 ) ; 173 174 Una a s i g n a c i o n no e s l o mismo que e l s i g n o i g u a l . 175 Una a s i g n a c i o n t r a n s f i e r e a l g o d e l l a d o d e r e c h o a l i z q u i e r d o . 176 177 178 Objetos , Mensajes 179 180 S u p e r C o l l i d e r e s un l e n g u a j e o r i e n t a d o a l o b j e t o . 181 Todas l a s e n t i d a d e s d e l l e n g u a j e son o b j e t o s . 182 Un o b j e c t o e s a l g o que t i e n e d a t o s que r e p r e s e n t a n e l e s t a d o d e l o b j e t o y un s e t de o p e r a c i o n e s que s e pueden a p l i c a r a e l . 183 Todos l o s o b j e t o s son i n s t a n c i a s de a l g u n a c l a s e que d e s c r i b e la estructura del objecto y sus operaciones . 184 Los o b j e c t o s en S u p e r C o l l i d e r i n c l u y e n numeros , c a d e n a s de c a r a c t e r e s , c o l e c c i o n e s , u n i d a d e s g e n e r a d o r a s , ondas de audio , puntos , r e c t a n g u l o s , e t c . 185 186 El e s t a d o i n t e r n o de un o b j e c t o e s c a p t u r a d a por s u s v a r i a b l e s instanciadas . 187 188 Las o p e r a c i o n e s s o b r e l o s o b j e c t o s son i n v o c a d a s mediante mensajes . 189 Un mensaje e s un r e q u e r i m i e n t o por un o b j e c t o , llamado e l r e c e p t o r ( r e c e i v e r ) que e j e c u t a n a l g u n o de s u s metodos instanciados . 190 El metodo a e j e c u t a r depende de l a c l a s e que d e f i n e a l o b j e t o . 191 O b j e t o s de c l a s e s d i s t i n t a s pueden implementar e l mismo mensaje de formas d i s t i n t a s . 192 Por ejemplo , l a s c l a s e s de u n i d a d e s g e n e r a d o r a s r e s p o n d e n a l mensaje a r y kr . 193 a r pro voc a a l o b j e t o e j e c u t a r p r o c e s a m i e n t o de a u d i o a l a t a s a de a u d i o y kr a l a t a s a de c o n t r o l . 194 195 196 N o t a ci o n de o b j e t o s 197 198 Para a c c e d e r o cambiar e l v a l o r de una v a r i a b l e de o b j e c t o s e usa l a n o t a c i o n de punto . 199 200 miInstrumento . f r e q = 4 4 0 . 0 ; // s e t e a r l a v a r i a b l e f r e q d e l o b j e c t o miInstrumento 201 s = S e r v e r . default ; // a c c e s a r una i n s t a n c i a de v a r i a b l e , en e s t e c a s o de una C l a s e 202 203 N o t a ci o n de m e n s a j e s

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.2. SUPERCOLLIDER: EL LENGUAJE

165

204 Un mensaje c o n s i s t e de un s e l e c t o r de mensaje , que nombra e l t i p o de o p e r a c i o n , una r e c e p t o r a l c u a l e l mensaje e s e n v i a d o y en a l g u n o s c a s o s una l i s t a de argumentos que o t o r g a n i n f o r m a c i o n a d i c i o n a l r e l a c i o n a d a a l a o p e r a c i o n en c u e s t i o n . 205 Un mensaje s i e m p r e produce un r e s u l t a d o . 206 El t i p o de r e s u l t a d o depende d e l t i p o de mensaje . Por ejemplo , l a s u n i d a d e s g e n e r a d o r a s r e t o r n a n s e n a l e s de a u i o . 207 Los m e n s a j e s pueden s e r e s c r i t o s usando o p e r a d o r e s ( como l o s matematicos ) , n o t a c i o n f u n c i o n a l o de r e c e p t o r . 208 209 N o t a c i o n f u n c i o n a l 210 El s e l e c t o r de mensaje p r e c e d e l a l i s t a de p a r e n t e s i s . 211 El p r i m e r argumento en l a l i s t a e s e l r e c e p t o r . 212 Las o p e r a c i o n e s pueden s e r u n a r i a s o b i n a r i a s . 213 214 Ejemplos : 215 sin (x) // s i n o o f xu n a r i a 216 max( a , b ) // maximo e n t r e a y b b i n a r i a 217 218 219 N o t a c i o n de r e c e p t o r 220 Una llamada a un metodo en n o t a c i o n f u n c i o n a l s e puede c o n v e r t i r a n o t a c i o n de r e c e p t o r a l poner e l r e c e p t o r a n t e s d e l nombre d e l metodo s e g u i d o por un punto ( n o t a c i o n de punto ). 221 222 223 1.25. sin es equivalente a sin (1.25) 224 x . cos es equivalente a cos (x) 225 226 1.max ( 3 ) e q u i v a l e a max( 1 ,3) 227 f (a , b) equivale a a . f (b) 228 229 Los m e n s a j e s de l a s UGen s e e s c r i b e n s i e m p r e en n o t a c i o n de receptor : 230 231 Osc . a r ( 8 0 0 . 0 , 0 . 0 , 0 . 4 ) 232 233 S u p e r C o l l i d e r t i e n e una gran c o l e c c i o n de o p e r a d o r e s u n a r i o s y b i n a r i o s , muchos de l o s c u a l e s son e s p e c i f i c o s para a u d i o . 234 235 Operadores u n a r i o s ( v e r [ SimpleNumber ] ) 236 ampdb dbamp reciprocal 237 cpsmidi midicps cpsoct octcps midiratio ratiomidi 238 abs ceil floor frac sign neg 239 sqrt s q u a r e d cubed distort softclip

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

166
240 241 sin

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


cos acos atan sinh cosh tan asin

242 243

244 245 246 Operadores b i n a r i o s ( v e r [ SimpleNumber ] ) 247 + / % 248 div pow max min 249 thresh trunc amclip c l i p 2 250 round scaleneg excess fold2 wrap2 251 d i f s q r sumsqr sqrsum s q y d i f absdif 252 atan2 hypot hypotApx 253 ring1 ring2 ring3 ring4 254 x . rand ( y ) x . exprand ( y ) 255 256 257 Argumentos c l a v e s 258 Los argumentos ( p a r a m e t r o s ) para metodos pueden s e r e s p e c i f i c a d o s por e l nombre mediante e l c u a l son d e c l a r a d o s en una c l a s e . 259 T a l e s argumentos son l l a m a d o s argumentos c l a v e s ( keyword arguments ) . 260 S i un argumento c l a v e y un argumento p o s i c i o n a l e s p e c i f i c a n e l mismo argumento , e l argumento c l a v e t i e n e p r e f e r e n c i a , 261 Por ejemplo , e l metodo a r de l a c l a s e SinOsc toma l o s argumentos f r e q , phase , mul , and add , en e s e orden . 262 263 Todos l o s e j e m p l o s s i g u i e n t e s son l l a m a d a s v a l i d a s para e s e metodo 264 265 SinOsc . a r ( 8 0 0 , pi , 0 . 2 , 0 ) ; 266 267 { SinOsc . a r ( 8 0 0 , pi , 0 . 2 , 0 ) } . p l a y ; 268 269 // f r e q = 800 , mul = 0 . 2 , o t h e r s g e t d e f a u l t v a l u e s . 270 SinOsc . a r ( 8 0 0 , mul : 0 . 2 ) ; 271 272 // f r e q = 800 , p h a s e = pi , mul = 0 . . 273 SinOsc . a r ( phase : pi , mul : 0 . 2 , f r e q : 8 0 0 ) ; 274 275 // 1200 predomina por s o b e 800

exp log isNegative isStrictlyPositive x . rand x . rand2

log2 isPositive

tanh log10

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.3. SUPERCOLLIDER: UNIDADES GENERADORAS

167

276 SinOsc . a r ( 8 0 0 , f r e q : 1 2 0 0 ) ; 277 278 SinOsc . a r ( z o r g : 9 9 9 ) ; // argumento i n v a l i d o 279 280 281 Argumentos por d e f e c t o 282 Se pueden l l a m a r a metodos con menos argumentos d e f i n i d o s en la clase correspondiente . 283 S i e s t o sucede , d i c h o s argumentos s e i n i c i a l i z a n e n v a l o r e s por d e f e c t o , s i e s que e s t o s e s t a n d e f i n i d o s en l a c l a s e , o s i no s e l e s a s i g n a e l v a l o r n u l o ( n i l ) . 284 S i s e pasan argumentos en e x c e s o , g e n e r a l m e n t e s e c o l e c c i o n a n en un a r r e g l o ( Array ) o son i g n o r a d o s . 285 S i s e l l a m a a un metodo s i n argumentos , l o s p a r e n t e s i s pueden ser omitidos . 286 287 288 // x e s d e c l a r a d a para tomar dos argumentos , a y b son v a l o r e s por d e f e c t o de 1 y 2 . 289 // Retorna l a suma de l o s argumentos 290 x = { a r g a =1, b=2; a + b } ; 291 292 z = x . value ; // z v a l e 3 . ( a = 1 , b = 2) 293 294 z = x . value (10) ; // z v a l e 1 2 . ( a e s 10 , b = 2) 295 296 z = x . value (10 , 5) ; // z v a l e 1 5 . ( a e s 10 , b e s 5) 297 298 z = x . v a l u e ( 1 0 , 5 , 9 ) ; // z v a l e 1 5 . ( a e s 10 , b e s 5 , 9 es ignorado )

A.3.
1 2 3 4 5 6 7 8 9 10 11

SuperCollider: Unidades generadoras

TUTORIAL DE SUPERCOLLIDER 3 PARTE 3 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l N o r t h we s te rn U n i v e r s i t y ( S e r v e r . default = S e r v e r . i n t e r n a l ; s = S e r v e r . default ; s . boot ; ) Unidades g e n e r a d o r a s (UGen)

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

168

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

12 O b j e t o s que p r o c e s a n o g e n e r a n s o n i d o s 13 Pueden t e n e r muchas e n t r a d a s , p e r o una s o l a s a l i d a 14 C a n a l e s m u l t i p l e s s e pueden h a c e r mediante a r r e g l o s de unidades generadoras 15 16 Creacion , t a s a de audio , t a s a de c o n t r o l 17 Se c r e a n a t r a v e s de l o s m e n s a j e s a r o kr 18 19 FSinOsc . a r ( 8 0 0 , 0 . 0 , 0 . 2 ) ; // c r e a r un o s c i l a d o r s i n u s o i d a l a 800 Hz , f a s e 0 . 0 , a m p l i t u d 0 . 2 20 21 Argumentos 22 Pueden s e r o t r a s UGen , e s c a l a r e s ( numeros ) o a r r e g l o s de UGen o escalares 23 Por c o n v e n c i o n , l o s u l t i m o s dos argumentos de l a mayoria de l a s UGen son mul ( m u l t i p l i c a d o r ) y add ( suma ) 24 V a l o r e s por d e f e c t o de mul =1.0 y add =0.0 25 Usar mul y add e s mas e f i c i e n t e que e s c r i b i r e x p r e s i o n e s con multiplicaciones y adiciones 26 27 N o t a ci o n f u n c i o n a l 28 29 { SinOsc . a r ( 4 4 0 , 0 , 0 . 2 ) } . p l a y ; 30 31 Objeto s e e s p e f i c a e n t r e { y } y s e l l a m a a l metodo p l a y 32 Como no s e e s p e c i f i c a s e r v i d o r , s e usa e l por d e f e c t o ( variable s) . 33 Tampoco s e almaceno nada en una v a r i a b l e , por l o que no s e puede r e u s a r . 34 35 ( 36 { // A b r i r l a f u n c i o n 37 SinOsc . a r ( // Crear un o b j e t o SinOsc a t a s a de a u d i o 38 440 , // f r e c u e n c i a de 440 Hz , LA 39 0, // f a s e i n i c i a l 0 40 0.2) // mul ( a m p l i t u d ) o f 0 . 2 41 } . play ; // c e r r a r l a f u n c i o n y l l a m a r play sobre e l l a 42 ) 43 44 Otro ejemplo , 45 46 ( 47 { var ampOsc ; // A b r i r l a f u n c i o n y d e c l a r a r una v a r i a b l e 48 ampOsc = SinOsc . kr ( 0 . 5 , 1 . 5 pi , 0 . 5 , 0 . 5 ) ; // Crear un o b j e t o SinOsc a t a s a de c o n t r o l

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.3. SUPERCOLLIDER: UNIDADES GENERADORAS


49 50 51

169

// a s i g n a r su r e s u l t a d o a una v a r i a b l e SinOsc . a r ( 4 4 0 , 0 , ampOsc ) ; // c r e a r un o b j e c t o SinOsc a t a s a de a u d i o // y u s a r l a v a r i a b l e para c o n t r o l a r amplitud } . play ; )

52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91

Conceptos b a s i c o s de o s c i l a d o r e s Forma mas f a c i l de g e n e r a r s o n i d o { SinOsc . a r ( 8 0 0 , 0 , 0 . 1 ) } . p l a y ; Que pasa en c a s o de e r r o r e s { SinOsc . a r ( 8 0 0 , 0 , 0 . 1 ) } , . p l a y ; Ejemplo de r u i d o browniano : { BrownNoise . a r ( 0 . 1 ) } . p l a y ; S e r v e r , BrownNoise y SinOsc son o b j e t o s play , y a r son m e n s a j e s 8 0 0 , 0 , y 0 . 1 son l i t e r a l e s

Ejemplo con a l i a s i o n ( a l a s i n g o f o l d o v e r ) { SinOsc . a r ( L i n e . kr ( 1 , 4 3 0 0 0 , 6 ) , 0 , 0 . 1 ) } . p l a y ;

F r e c u e n c i a l i n e a l v e r s u s tono ( p i t c h ) L i n e c r e a una i n t e r p o l a c i o n l i n e a l e n t r e dos puntos XLine c r e a una i n t e r p o l a c i o n e x p o n e n i a l , usualmente usada para frecuencia a r e s t a s a de a u d i o kr e s t a s a de c o n t r o l { SinOsc . a r ( L i n e . kr ( 4 0 0 , 4 0 0 0 , 5 ) , 0 , 0 . 3 ) } . p l a y ; una c u r v a // Suena como

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

170
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 1 2 3 4 5 6 7 8 9 10 11 12

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


// Suena

{ SinOsc . a r ( XLine . kr ( 4 0 0 , 4 0 0 0 , 5 ) , 0 , 0 . 3 ) } . p l a y ; lineal

f r e q , phase , mul , and add a r e t h e names o f arguments Otros e j e m p l o s : { SinOsc . a r ( f r e q : 4 4 0 , phase : 0 , mul : 0 . 4 , add : 0 ) } . play ; { SinOsc . a r ( phase : 0 , f r e q : 4 4 0 , add : 0 , mul : 0 . 4 ) } . play ; { SinOsc . a r ( f r e q : 4 4 0 , mul : 0 . 4 ) } . p l a y ; f r e q : 4 4 0 e s un e j e m p l o de argumento c l a v e

SC t i e n e muchos o t r o s o b j e t o s que son o s c i l a d o r e s : Por e j e m p l o : SinOsc Buffer Tambien son u t i l e s : Impulse LFPulse Saw Klang VOsc

FSinOsc OscN

Osc

Blip LFSaw Formant VOsc3

Pulse

Algunos un poco mas c o m p l i c a d o s : SyncSaw VarSaw LFPar LFCub Gendy1 Gendy2

Gendy3

TUTORIAL DE SUPERCOLLIDER 3 PARTE 4 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l No r th we s te rn U n i v e r s i t y ( S e r v e r . i n t e r n a l . boot ; S e r v e r . default = S e r v e r . i n t e r n a l ; s = S e r v e r . default ; )

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.3. SUPERCOLLIDER: UNIDADES GENERADORAS


13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 Mas s o b r e g e n e r a d o r e s de s e n a l Sumar s i n u s o i d e s e s i n e f i c i e n t e : ({ var f =200; a = SinOsc . a r ( f , 0 , 0 . 1 ) ; b = SinOsc . a r ( 2 f , 0 , 0 . 1 ) c = SinOsc . a r ( 3 f , 0 , 0 . 1 ) d = SinOsc . a r ( 4 f , 0 , 0 . 1 ) e = SinOsc . a r ( 5 f , 0 , 0 . 1 ) a+b+c+d+e ; } . play ; )

171

; ; ; ;

Look a t t h e Help p a g e s f o r t h e f o l l o w i n g : SinOsc FSinOsc Osc Buffer OscN These a r e a l s o u s e f u l : Impulse LFPulse Saw Klang VOsc

Blip LFSaw Formant VOsc3

Pulse

G e n e r a d o r e s de s e n a l de banda l i m i t a d a SinOsc , FSinOsc , Blip , Saw , Pulse , Formant no p r o d u c i r a n aliasion .

SinOsc , FSinOsc arguments : f r e q u e n c y , phase , mul , add { SinOsc . a r ( 8 0 0 , 0 , 0 . 5 ) } . p l a y ; { FSinOsc . a r ( 8 0 0 , 0 , 0 . 5 ) } . p l a y ;

Saw argumentos :

f r e q u e n c y , mul , add

{ Saw . a r ( 8 0 0 , 0 . 5 ) } . p l a y ; { Saw . a r ( XLine . kr ( 2 0 0 , 2 0 0 0 0 , 6 ) , 0 . 5 ) } . p l a y ;

// no a l i a s i n g

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

172
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

Blip argumentos :

f r e q u e n c y , numHarmonics , mul , add

{ Blip . ar (800 , 10 , 0 . 5 ) } . play ; { B l i p . a r ( XLine . kr ( 2 0 0 , 2 0 0 0 0 , 6 ) , 1 0 , 0 . 5 ) } . p l a y ; // no a l i a s i n g // modular e l numero de armonicos { B l i p . a r ( 4 0 0 , L i n e . kr ( 1 , 3 0 , 2 0 ) , 0 . 2 ) } . p l a y ; // a t r a v e s de un f i t r o pasa b a j o s r e s o n a n t e { RLPF . a r ( B l i p . a r ( 4 0 0 , 3 0 , 0 . 5 ) , XLine . kr ( 4 0 0 , 8 0 0 0 , 5 ) , 0 . 1 ) } . p l a y ;

Pulse argumentos :

f r e q u e n c y , width , mul , add

{ Pulse . ar ( 8 0 0 , 0 . 3 , 0 . 5 ) } . play ; { P u l s e . a r ( XLine . kr ( 2 0 0 , 2 0 0 0 0 , 6 ) , 0 . 3 , 0 . 5 ) } . p l a y ; // modulate p u l s e w i d t h { P u l s e . a r ( 4 0 0 , L i n e . kr ( 0 . 0 1 , 0 . 9 9 , 8 ) , 0 . 5 ) } . p l a y ;

Klang banco s i n u s o i d a l de o s c i l a d o r e s argumentos : [ f r e q u e n c i e s , a m p l i t u d e s , p h a s e s ] , mul , add { Klang . a r ( [ [ 8 0 0 , 1 0 0 0 , 1 2 0 0 ] , [ 0 . 3 , 0 . 3 , 0 . 3 ] , [ pi , pi , p i ] ] , 1 , 0) 0 . 4 } . play ; // 8 f r e c u e n c i a s a l e a t o r i a s { Klang . a r ( [ { exprand ( 4 0 0 , 2 0 0 0 ) } . dup ( 8 ) , n i l , n i l ] , 1 , 0 ) 0.04 } . play ; Formant o s c i l a d o r de f o rm an te argumentos : k f u n d f r e q , k f o r m f r e q , k w i d t h f r e q , mul , add G e n e r a t e s un s e t de a r m o n i c o s s o b r e una f r e c u e n c i a de formante , dada una f r e c u e n c i a fundamental k f u n d f r e q fundamental f r e q u e n c y i n Hertz . k f o r m f r e q formant f r e q u e n c y i n Hertz . k w i d t h f r e q p u l s e width f r e q u e n c y i n Hertz . C o n t r o l a e l ancho de banda d e l f or ma n te . // modula f r e c fund , f r e c . f o r m a n t e s c o n s t a n t e { Formant . a r ( XLine . kr ( 4 0 0 , 1 0 0 0 , 8 ) , 2 0 0 0 , 8 0 0 , 0 . 1 2 5 ) } . p l a y ; // modula f r e c formante , f r e c f u n d a m e n t a l c o n s t a n t e { Formant . a r ( 2 0 0 , XLine . kr ( 4 0 0 , 4 0 0 0 , 8 ) , 2 0 0 , 0 . 1 2 5 ) } . p l a y ; // modula mediante f r e c u e n c i a , o t r a s quedan c o n s t a n t e s { Formant . a r ( 4 0 0 , 2 0 0 0 , XLine . kr ( 8 0 0 , 8 0 0 0 , 8 ) , 0 . 1 2 5 ) } . p l a y ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.3. SUPERCOLLIDER: UNIDADES GENERADORAS


103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147

173

G e n e r a d o r e s de s e n a l b a s a d o s en t a b l a s

Osc , COsc , VOsc , VOsc3 Es n e c e s a r i o u s a r un b u f f e r a l o c a d o en e l s e r v i d o r ( // a l l o c a t e b u f f e r w i t h s e r v e r , s i z e , numChans , b u f f er N u m b e r b = B u f f e r . a l l o c ( s , 2 0 4 8 , 1 , bufnum : 8 0 ) ; // f i l l b u f f e r w i t h a r r a y o f a m p l i t u d e s , 3 t r u e ( default ) b . s i n e 1 ( [ 1 , 0 . 5 , 0 . 3 3 , 0 . 2 5 , 0 . 2 ] , true , true , true ) ; ) // s e puede e s c r i b i r tambien cmo b . s i n e 1 ( 1 . 0 / [ 1 , 2 , 3 , 4 , 5 ] , true , true , true ) ; // o : b . sine1 (1.0/(1..12) ) ; b . sine1 (1.0/(1..24) ) ; b . sine1 (1.0/(1..32) ) ;

Osc argumentos : b u f f e r number , f r e q u e n c y , phase , mul , add . { Osc . a r ( b . bufnum , 4 0 0 , 0 , 0 . 5 ) } . p l a y ; COsc dos o s c i l a d o r e s , detuned argumentos : b u f f e r number , f r e q u e n c y , b e a t f r e q u e n c y , mul , add . { COsc . a r ( b . bufnum , 2 0 0 , 0 . 4 , 0 . 3 ) } . p l a y ; // change b u f f e r as a b o v e . { COsc . a r ( b . bufnum , 2 0 0 , MouseX . kr ( 0 . 0 , 2 0 . 0 , l i n e a r ) , 0 . 3 ) } . play ;

VOsc o s c i l a d o r c r o s s f a c e de m u l t i p l e s w a v e t a b l e s argumentos : b u f f e r number , f r e q u e n c y , phase , mul , add . ( // a l l o c a r b u f f e r s 80 a 87 b = Array . new ( 8 ) ; 8 . do { a r g i ; b = b . add ( B u f f e r . a l l o c ( s , 2 0 4 8 , 1 , bufnum : 80+ i ) ) } ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

174
148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 ) (

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

// l l e n a r b u f f e r s 80 a 87 8 . do ( { a r g i ; var n , a ; // g e n e r a r a r r e g l o de a m p l i t u d e s armonicas n = ( i +1) 2 ; // armonicos : [1 ,4 ,9 ,16 ,25 ,36 ,49 ,64] a = { a r g j ; ( ( n j ) /n ) . s q u a r e d } . dup ( n ) ; // l l e n a r t a b l a b [ i ] . sine1 (a) ; }) ; ) // go ! { VOsc . a r ( MouseX . kr ( 8 0 , 8 7 ) , 1 2 0 , 0 , 0 . 5 ) } . p l a y ;

VOsc3 t r e s VOscs sumados . argumentos : b u f f e r number , f r e q 1 , f r e q 2 , f r e q 3 , b e a t f r e q u e n c y , mul , add . // c h o r u s i n g { VOsc3 . a r ( MouseX . kr ( 8 0 , 8 7 ) , 1 2 0 , 1 2 1 . 0 4 , 1 1 9 . 3 7 , 0 . 2 ) } . p l a y ; // a c o r d e s { VOsc3 . a r ( MouseX . kr ( 8 0 , 8 7 ) , 1 2 0 , 1 5 1 . 1 3 , 1 7 9 . 4 2 , 0 . 2 ) } . p l a y ;

G e n e r a d o r e s de b a j a f r e c u e n c i a (LF) LFTri , Impulse , LFSaw , LFPulse , VarSaw , SyncSaw Formas de onda g e o m e t r i c a s , no l i m i t a d o s en banda LFTri , LFSaw , Impulse argumentos : f r e q u e n c y , phase , mul , add { LFTri . a r ( 2 0 0 , 0 , 0 . 5 ) } . p l a y ; { LFSaw . a r ( 2 0 0 , 0 , 0 . 5 ) } . p l a y ; { Impulse . a r ( 2 0 0 , 0 , 0 . 5 ) } . p l a y ; // a l i a s i o n ? { LFTri . a r ( XLine . kr ( 2 0 0 , 2 0 0 0 0 , 6 ) , 0 , 0 . 5 ) } . p l a y ;

LFPulse , VarSaw

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.4. SUPERCOLLIDER: ENVOLVENTES


195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 argumentos : f r e q u e n c y , phase , width , mul , add

175

{ LFPulse . a r ( 2 0 0 , 0 , 0 . 3 , 0 . 5 ) } . p l a y ; { VarSaw . a r ( 2 0 0 , 0 , 0 . 3 , 0 . 5 ) } . p l a y ; // p u l s o con modulacion { LFPulse . a r ( 2 0 0 , 0 , MouseX . kr ( 0 , 1 ) , 0 . 5 ) } . p l a y ; { VarSaw . a r ( 2 0 0 , 0 , MouseX . kr ( 0 , 1 ) , 0 . 5 ) } . p l a y ;

SyncSaw argumentos : syncFreq , sawFreq , mul , add Onda d i e n t e de s i e r r a v i n c u l a d a con una f r e c u e n c i a fundamental . E f e c t o s i m i l a r a f o r m a n t e s que s e mueven o p u l s con modulacion . { SyncSaw . a r ( 1 0 0 , MouseX . kr ( 1 0 0 , 1 0 0 0 ) , 0 . 1 ) } . p l a y ;

A.4.
1 2 3 4 5 6 7 8 9 10 11 12 13 14

SuperCollider: Envolventes

TUTORIAL DE SUPERCOLLIDER 3 PARTE 5 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l N o r t h we s te rn U n i v e r s i t y ( S e r v e r . i n t e r n a l . boot ; S e r v e r . default = S e r v e r . i n t e r n a l ; s = S e r v e r . default ; ) Envolventes ( envelopes ) Envelope : Env Puede t e n e r c u a l q u i e r numero de segmentos y puede p a r a r en a l g u n l u g a r en p a r t i c u l a r o l o o p e a r v a r i o s segmentos a l h a c e r sustain .

15 16 17 18 19 20 21 22 23 24 25 26

Creacion new ( l e v e l s , times , c u r v e s , r e l e a s e N o d e , loopNode ) l e v e l s a r r e g l o de n i v e l e s t i m e s a r r e g l o de d u r a c i o n e s c u r v e t i p o de curva para l o s segmentos V a l o r e s p o s i b l e s son : s t e p segmento p l a n o l i n e a r segmento l i n e a l

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

176
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


e x p o n e n t i a l e x p o n e n c i a l n a t u r a l de c a i d a y crecimiento s i n e segmento s i n u s o i d a l con forma de S welch segmento s i n u s o i d a l basado en una ventana Welch un F l o a t v a l o r de c u r v a t u r a para t o d o s l o s segmentos a r r e g l o de F l o a t s v a l o r e s de c u r v a t u r a s para cada segmento r e l e a s e N o d e un e n t e r o o n u l o loopNode un e n t e r o o n u l o

Env . new ( [ 0 . 0 0 1 , 1 , 0 . 3 , 0 . 8 , 0 . 0 0 1 ] , [ 2 , 3 , 1 , 4 ] , linear ) . plot . test ; Env . new ( [ 0 . 0 0 1 , 1 , 0 . 3 , 0 . 8 , 0 . 0 0 1 ] , [ 2 , 3 , 1 , 4 ] , exponential ) . plot . test ; Env . new ( [ 0 . 0 0 1 , 1 , 0 . 3 , 0 . 8 , 0 . 0 0 1 ] , [ 2 , 3 , 1 , 4 ] , s i n e ) . plot . test ; Env . new ( [ 0 . 0 0 1 , 1 , 0 . 3 , 0 . 8 , 0 . 0 0 1 ] , [ 2 , 3 , 1 , 4 ] , s t e p ) . plot . test ; Env . new ( [ 0 . 0 0 1 , 1 , 0 . 3 , 0 . 8 , 0 . 0 0 1 ] , [ 2 , 3 , 1 , 4 ] , 2) . plot . test ; Env . new ( [ 0 . 0 0 1 , 1 , 0 . 3 , 0 . 8 , 0 . 0 0 1 ] , [ 2 , 3 , 1 , 4 ] , 2 ) . plot . test ; Env . new ([0.001 ,1 ,0.3 ,0.8 ,0.001] ,[2 ,3 ,1 ,4] ,[0 ,3 , 3 , 1]) . plot . test ;

43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60

Metodos de e n v o l v e n t e s de d u r a c i o n f i j a

l i n e n ( attackTime , sustainTime , r e l e a s e T i m e , l e v e l , curve ) t r i a n g l e ( duration , l e v e l ) s i n e ( duration , l e v e l ) p e r c ( attackTime , r e l e a s e T i m e , peakLevel , c u r v e ) Metodos de e n v o l v e n t e con un segmento s o s t e n i d o a d s r ( attackTime , decayTime , s u s t a i n L e v e l , releaseTime , peakLevel , c u r v e ) a s r ( attackTime , s u s t a i n L e v e l , r e l e a s e T i m e , peakLevel , curve )

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.4. SUPERCOLLIDER: ENVOLVENTES


61 62 63 64 65 66 67 68 69 70 71 72 EnvGen : g e n e r a d o r de e n v o l v e n t e E j e c u t a e n v o l v e n t e s ( Env ) a r ( e n v e l o p e , gate , l e v e l S c a l e , l e v e l B i a s , t i m e S c a l e , doneAction )

177

73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

envelope an i n s t a n c e o f Env ( or an a r r a y of Controls ) gate a c o n t r o l s i g n a l that holds the EnvGen open ( e x c e p t Env . l i n e n ) levelScale s c a l e s the l e v e l s of the breakpoints . levelBias o f f s e t s the l e v e l s of the breakpoints . timeScale s c a l e s the breakpoint durations . doneAction t h e doneAction a r g c a u s e s t h e EnvGen t o s t o p or end t h e synth w i t h o u t h avi ng t o u s e a PauseSelfWhenDone or FreeSelfWhenDone ugen . I t i s more e f f i c i e n t t o u s e a doneAction ( s e e below ) Usando Env y EnvGen j u n t o s Enfoque s i m p l e : { var env , amp ; env = Env . p e r c ( attackTime : 0 . 2 ) ; amp = EnvGen . kr ( e n v e l o p e : env , l e v e l S c a l e : 0 . 5 , doneAction : 2 ) ; SinOsc . a r ( f r e q : 4 4 0 , phase : 0 , mul : amp) } . play ; Se pueden i n c l u i r e n v o l v e n t e s m u l t i p l e s y g e n e r a d o r e s { var env1 , env2 , amp1 , amp2 ; env1 = Env . p e r c ( attackTime : 0 . 2 , r e l e a s e T i m e : 2 ) ; env2 = Env . l i n e n ( attackTime : 0 . 2 , s u s t a i n T i m e : 0 . 2 , releaseTime : 14 , l e v e l : 0 . 6 ) ; amp1 = EnvGen . kr ( e n v e l o p e : env1 , l e v e l S c a l e : 0 . 1 ) ; amp2 = EnvGen . kr ( e n v e l o p e : env2 , l e v e l S c a l e : 0 . 5 , doneAction : 2 ) ; B l i p . a r ( f r e q : 4 4 0 , numharm : 2 0 , mul : amp1 ) + SinOsc . a r ( f r e q : 2 4 4 0 , phase : 0 , mul : amp2 )

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

178
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 } . play ;

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

T r i g g e r s ( g a t i l l a d o r e s ) y Gates ( compuertas ) Ejemplo : i m p l e m e n t a c i o n d i r e c t a de una Gate ( SynthDef ( envh e l p , { a r g out , g a t e ; var z ; z = EnvGen . kr ( Env . adsr , g a t e ) SinOsc . a r (440 ,0 ,0.1) ; Out . a r ( out , z ) } ) . send ( s ) ; ) s . sendMsg ( / s new , envh e l p , 1 9 8 0 ) ; // empezar un s y n t h en forma s i l e n c i o s a // p r e n d e r s . sendMsg ( / n s e t , 1 9 8 0 , \ gate , 1 ) ; // apagar s . sendMsg ( / n s e t , 1 9 8 0 , \ gate , 0 ) ; // da l o mismo e l v a l o r m i e n t r a s s e a > 0 s . sendMsg ( / n s e t , 1 9 8 0 , \ gate , 2 ) ; s . sendMsg ( / n f r e e , 1 9 8 0 ) ;

Gates como T r i g g e r s ( { // Impulso va d e s d e 0 a v a l o r e s p o s i t i v o s a una t a s a regular e = Env . p e r c ( 0 . 0 0 1 , 1 . 0 ) ; t = Impulse . kr ( 2 ) ; // f r e q u e n c i a de l o s i m p u l s o s a = EnvGen . kr ( e , t ) ; SinOsc . a r ( 4 4 0 , mul : a ) } . play ) // I m p u l s o s a v a l o r e s a l e a t o r i o s e = Env . p e r c ( 0 . 0 0 1 , 1 . 0 ) ; t = Dust . kr ( 2 ) ; // numero promedio de i m p u l s o s a = EnvGen . kr ( e , t ) ; SinOsc . a r ( 4 4 0 , mul : a ) } . play ) ( {

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.4. SUPERCOLLIDER: ENVOLVENTES


143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 // MouseX c r e a e l t r i g g e r e = Env . p e r c ( 0 . 0 0 1 , 1 . 0 ) ; t = MouseX . kr ( 0.1 , 0 . 1 ) ; a = EnvGen . kr ( e , t ) ; SinOsc . a r ( 4 4 0 , mul : a ) } . play ) ( { var t r i g g e r S p e e d ; triggerSpeed = 2; e = Env . p e r c ( 0 . 0 0 1 , 1/ t r i g g e r S p e e d ) ; // T r i g g e r e s usado para TRand y EnvGen t = Impulse . kr ( t r i g g e r S p e e d ) ; f = TRand . kr ( 1 0 0 , 2 0 0 0 , t ) ; a = EnvGen . kr ( e , t ); SinOsc . a r ( f , mul : a ) ; } . play ) ( {

179

Gates

// MouseX c r e a t e l a g a t e e = Env . a d s r ( 0 . 0 0 1 , 0 . 3 , 0 . 2 , 0 . 1 ) ; t = MouseX . kr ( 0.1 , 0 . 1 ) ; a = EnvGen . kr ( e , t ) ; SinOsc . a r ( 4 4 0 , mul : a ) } . play ) // LF P u l s e c r e a t e l a g a t e e = Env . a d s r ( 0 . 0 0 1 , 0 . 3 , 0 . 2 , 0 . 1 ) ; t = LFPulse . kr ( 0 . 8 , 0 , MouseX . kr ( 0 . 0 , 1 . 0 ) ) ; // Mouse c o n t r o l a e l ancho a = EnvGen . kr ( e , t ) ; SinOsc . a r ( 4 4 0 , mul : a ) } . play ) ( {

( {

// LFNoise c r e a t e l a g a t e e = Env . a d s r ( 0 . 0 0 1 , 0 . 3 , 0 . 2 , 0 . 1 ) ; t = LFNoise0 . kr ( 3 ) ; a = EnvGen . kr ( e , t ) ; SinOsc . a r ( 4 4 0 , mul : a ) } . play )

( {

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

180

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

A.5.

SuperCollider: SynthDefs

1 TUTORIAL DE SUPERCOLLIDER 3 PARTE 6 2 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l 3 No r th we s te rn U n i v e r s i t y 4 5 ( 6 S e r v e r . i n t e r n a l . boot ; 7 S e r v e r . default = S e r v e r . i n t e r n a l ; 8 s = S e r v e r . default ; 9 ) 10 11 SynthDefs ( d e f i n i c i o n de s i n t e t i z a d o r ) 12 E q u i v a l e n t e a un patch or p r e s e t 13 Se puede e s c r i b i r c o d i g o para un SynthDef 14 SynthDefs con c o m p i l a d o s por s c l a n g en una e s p e c i e de bytecode 15 Se pueden p r e c o m p i l a r y almacenar en d i s c o 16 Tienen dos p a r t e s : un nombre y una f u n c i o n ( ugenGraphFunc ) 17 18 SynthDef ( 19 aSynthDef , // primer argumento : nombre 20 { . . . . yo soy una ugenGraphFunc . . . } // segundo argumento : ugenGraphFunc 21 ) 22 23 Ejemplo : 24 To make t h e template f u n c t i o n a l 25 26 ( 27 a = SynthDef ( 28 aSynthDef , // nombre 29 { // f u n c i o n 30 arg f r e q = 440; // argumentos a l a f u n c i o n 31 x = SinOsc . a r ( f r e q , 0 , 0 . 5 ) ; 32 Out . a r ( 0 , x ) 33 } 34 ) . l o a d ( s ) ; 35 ) 36 37 l o a d e s c r i b e l a d e f i n i c i o n y l a e n v i a a l s e r v i d o r 38 39 a . p l a y ( s ) ; 40 or

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.5. SUPERCOLLIDER: SYNTHDEFS


41 42 43 44 45 46 47 48 49 50 51 52 53 54 a . play ; play ej ecu ta l a synthdef

181

Notes : Arguments a r e i m p o r t a n t b e c a u s e t h e s e can change from n o t e t o note . The a u d i o output o f Synths i s g e n e r a l l y handled with t h e Out unit generator . a r ( bus , c h a n n e l s A r r a y ) bus . w r i t e a s i g n a l t o an a u d i o

The output bus numbers s t a r t a t 0 and go up by i n t e g e r f o r each a d d i t i o n a l c h a n n e l s . The s t e r e o output c h a n n e l s a r e 0 and 1 .

55 56 57 58 Synth 59 R e p r e s e n t a c i o n en e l c l i e n t e de un nodo de s i n t e t i z a d o r en e l servidor 60 R e p r e s e n t a una u n i c a unidad p r o d u c t o r a de s o n i d o 61 Lo que hace depende de su SynthDef 62 63 64 Ejemplos : 65 66 67 y = Synth . new ( aSynthDef ) ; 68 o 69 y = Synth ( aSynthDef , n i l , s ) ; 70 o 71 y = Synth . new ( aSynthDef , [ \ argument1 , v a l u e , \ argument2 , v a l u e , etc . ] , s ) ; 72 73 y . f r e e ; 74 75 // Con argumentos 76 y = Synth ( aSynthDef , [ \ f r e q , 2 6 2 ] ) ; 77 z = Synth ( aSynthDef , [ \ f r e q , 3 9 2 ] ) ; 78 y . f r e e ; 79 z . f r e e ; 80 81 82 83 Ejemplos

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

182
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

// DEFINIR UN SYNTHDEF SynthDef ( R i n g i n g , { a r g f r e q ; // f r e q u e n c i a e s e l u n i c o argumento var out ; out = RLPF . a r ( LFSaw . a r ( f r e q , mul : EnvGen . kr ( Env . perc , l e v e l S c a l e : 0 . 3 , doneAction : 2 ) ) , LFNoise1 . kr ( 1 , 3 6 , 1 1 0 ) . midicps , 0.1 ); 4 . do ( { out = A l l p a s s N . a r ( out , 0 . 0 5 , [ 0 . 0 5 . rand , 0 . 0 5 . rand ] , 4 ) } ) ; Out . a r ( 0 , out ) ; } ) . send ( s ) ;

) // Tocar una nota Synth ( R i n g i n g , [ \ f r e q , 440 ] ) ; }) . play ( s ) ; ( {

// Tocar dos n o t a s a l mismo tiempo ( { Synth ( R i n g i n g , [ \ f r e q , 440 ] ) ; Synth ( R i n g i n g , [ \ f r e q , 660 ] ) ; }) . play ;

) ( // Para t e n e r pausas , Synth e s t a r d e n t r o de una Routine Routine ( { Synth ( R i n g i n g , [ \ f r e q , 440 ] ) ; 1 . 0 . wait ; Synth ( R i n g i n g , [ \ f r e q , 660 ] ) ; }) . play ;

) ( // Loop d e n t r o de l a Routine p e r m i t e r e p e t i r un p a t r o n Routine ( { loop ({ Synth ( R i n g i n g , [ \ f r e q , 440 ] ) ; 1 . 0 . wait ; Synth ( R i n g i n g , [ \ f r e q , 660 ] ) ; 1 . 0 . wait ; }) ; }) . play ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.5. SUPERCOLLIDER: SYNTHDEFS


130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 C o n v i r t i e n d o de forma a n t i g u a a nueva Ejemplo a n t e r i o r { var env , amp ; env = Env . p e r c ( attackTime : 0 . 2 ) ; amp = EnvGen . kr ( e n v e l o p e : env , l e v e l S c a l e : 0 . 5 , doneAction : 2 ) ; SinOsc . a r ( f r e q : 4 4 0 , phase : 0 , mul : amp) } . play ; Usando SynthDef y f r e c u e n c i a como argumento (

183

// DEFINIR UN SYNTHDEF SynthDef ( SinEnv , { a r g f r e q u e n c y ; var out , env , amp ; env = Env . p e r c ( attackTime : 0 . 2 ) ; amp = EnvGen . kr ( e n v e l o p e : env , l e v e l S c a l e : 0 . 5 , doneAction : 2 ) ; // argument i s now used as t h e f r e q u e n c y v a l u e out = SinOsc . a r ( f r e q : f r e q u e n c y , phase : 0 , mul : amp) ; Out . a r ( 0 , out ) ; } ) . send ( s ) ;

) ( // Tocar dos n o t a s ( { Synth ( SinEnv , [ \ f r e q u e n c y , 440 ] ) ; Synth ( SinEnv , [ \ f r e q u e n c y , 660 ] ) ; }) . play ;

) ( // Loop Routine ( { loop ({ Synth ( SinEnv , [ \ f r e q u e n c y , 440 ] ) ; 1 . 0 . wait ; Synth ( SinEnv , [ \ f r e q u e n c y , 660 ] ) ; 1 . 0 . wait ; }) ; }) . play ; ) Se puede a g r e g a r un argumento para e l c a n a l de s a l i d a ( // DEFINICION SynthDef ( SinEnv , { a r g f r e q u e n c y , chan ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

184
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


var out , env , amp ; env = Env . p e r c ( attackTime : 0 . 2 ) ; amp = EnvGen . kr ( e n v e l o p e : env , l e v e l S c a l e : 0 . 5 , doneAction : 2 ) ; // argument i s now used as t h e f r e q u e n c y v a l u e out = SinOsc . a r ( f r e q : f r e q u e n c y , phase : 0 , mul : amp) ; Out . a r ( chan , out ) ; } ) . send ( s ) ;

) ( // Tocar dos n o t a s ( { Synth ( SinEnv , [ \ f r e q u e n c y , 4 4 0 , \ chan , 0 ] ) ; Synth ( SinEnv , [ \ f r e q u e n c y , 6 6 0 , \ chan , 1 ] ) ; }) . play ;

) ( // Loop Routine ( { loop ({ Synth ( SinEnv , [ \ f r e q u e n c y , 4 4 0 , \ chan , 0 ] ); 1 . 0 . wait ; Synth ( SinEnv , [ \ f r e q u e n c y , 6 6 0 , \ chan , 1 ] ) ; 1 . 0 . wait ; }) ; }) . play ; ) Ejemplo mas c o m p l e j o ( // F l u j o de t o n o s b a s a d o en una e s c a l a de Do Mayor var stream , dur , c S c a l e ; dur = 1 / 4 ; cScale = [ 6 0 , 62 , 64 , 65 , 67 , 69 , 71 , 7 2 ] ; // R o u t i n e s pueden g e n e r a r s e c u e n c i a s de t o n o s stream = Routine ( { loop ({ cScale . choose . y i e l d }) ; }) ; // R o u n t i n e s pueden s e r t o c a d a s Routine ( { loop ({ Synth ( R i n g i n g , [ \ f r e q , stream . next . midicps ] ) ; dur . w a i t ; // used by . p l a y t o schedule next occurence })

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 }) . play )

185

( // Ejemplo a n t e r i o r , e s t a v e z l o s t o n o s son a l e a t o r i o s var stream , dur ; dur = 1 / 4 ; // e s t a r u t i n a p r o d u c e una s e c u e n c i a randon de t o n o s stream = Routine . new ( { loop ({ i f ( 0 . 5 . coin , { // run o f f i f t h s : 24. yield ; // C1 31. yield ; // G1 36. yield ; // C2 43. yield ; // G2 48. yield ; // C3 55. yield ; // G3 }) ; r r a n d ( 2 , 5 ) . do ( { // a r p e g i o v a r i a d o 60. yield ; // C4 #[63 ,65]. choose . y i e l d ; // Eb , F 67. yield ; // G #[70 ,72 ,74]. choose . y i e l d ; // Bb , C5 , D }) ; // m e l o d i a a l e a t o r i a r r a n d ( 3 , 9 ) . do ( { # [ 7 4 , 7 5 , 7 7 , 7 9 , 8 1 ] . c h o o s e . y i e l d } ) ; // D5 , Eb , F , G, A }) ; }) ; // t o c a r l a r u t i n a Routine ( { loop ({ Synth ( R i n g i n g , [ \ f r e q , stream . next . midicps ] ) ; dur . w a i t ; }) }) . play )

A.6.

SuperCollider: Modulaci on

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

186
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

TUTORIAL DE SUPERCOLLIDER 3 PARTE 7 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l No r th we s te rn U n i v e r s i t y ( S e r v e r . i n t e r n a l . boot ; S e r v e r . default = S e r v e r . i n t e r n a l ; s = S e r v e r . default ; )

Amplitude Modulation Type #1 Ring / Balanced / Double Sideband Suppressed C a r r i e r Modulation The a m p l i t u d e o f one s i g n a l v a r i e s a c c o r d i n g t o a n o t h e r s i g n a l . Slow a m p l i t u d e modulation , t h a t i s , when t h e modulating f r e q u e n c y i s l e s s than 20 Hz . , can sound l i k e a s t e a d y rhythm . But when t h e modulating f r e q u e n c y i s above 20 Hz , i t sounds l i k e a c o n t i n u o u s t o n e with s i d e b a n d s . { SinOsc . a r ( 1 0 0 0 , 0 ) SinOsc . a r ( L i n e . kr ( 1 , 5 0 , 3 0 ) , 0 ) } . p l a y ; // Nothing more than two s i n u s o i d s m u l t i p l i e d

Slow modulation o f t h e modulator f r e q u e n c y r e v e a l s t h e sound o f s i d e b a n d s moving up and down s i m u l t a n e o u s l y . { var modFreq ; modFreq = L i n e . kr ( 0 , 6 0 0 , 3 0 ) ; // Mo dulation f r e q u e n c y g o e s from 0 t o 600 Hz SinOsc . a r ( 1 0 0 0 , 0 ) SinOsc . a r ( modFreq , 0 ) } . play ; The m u l t i p l i c a t i o n o f one s i g n a l by a n o t h e r i s b e t t e r done with t h e mul : argument . { var modFreq , amp ; modFreq = L i n e . kr ( 0 , 6 0 0 , 3 0 ) ; amp = SinOsc . a r ( modFreq , 0 ) ; SinOsc . a r ( 1 0 0 0 , 0 , amp) ; // R e w r i t t e n f o r f a s t e r m u l t i p l y } . play ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81

187

Type #2 AM/ Double Sideband Modulation Here t h e modulation i n d e x p r o v i d e s a way o f c o n t r o l l i n g t h e amount o f modulation and s i m u l t a n e o u s l y t h e amount o f e n e r g y i n t h e s i d e b a n d s . This example i s e a s y t o s e e i n t h e time domain . { var modIndex , modSignal ; modIndex = L i n e . kr ( 0 , 1 , 1 2 ) ; // Mo dulation I n d e x g o e s from 0 t o 1 // N o r m a l i z a t i o n i s needed i f you want t o k e e p t h e signal l e v e l constant modSignal = ( 1 + ( modIndex SinOsc . a r ( 3 7 8 , 0 ) ) ) / ( 1 + modIndex ) ; modSignal SinOsc . a r ( 1 0 0 0 , 0 , 0 . 5 ) ; } . play ; Below we u s e a c o n d i t i o n a l t o mimic t h e b e h a v i o r o f an a n a l o g system . Overmodulation o c c u r e s when t h e modIndex i s g r e a t e r than 1 . Here l i k e i n an a n a l o g system , t h e modution s i g n a l can not become n e g a t i v e and t h e r e f o r e t h e p r o c e s s i n non l i n e a r and p r o d u c e s many s i d e b a n d s . { var modIndex , modSignal ; modIndex = L i n e . kr ( 0 , 5 , 1 0 ) ; modSignal = ( 1 + ( modIndex SinOsc . a r ( 7 9 , 0 ) ) ) / ( 1 + modIndex ) ; modSignal = modSignal . max ( 0 ) ; // p a s s e s j u s t t h e p o s i t i v e part of the control signal modSignal SinOsc . a r ( 1 0 0 0 , 0 , 0 . 5 ) ; } . play ;

Frequency Modulation In t h e f o l l o w i n g example t h e f r e q u e n c y o f t h e a u d i o r a t e o s c i l l a t o r i s modulated by t h e c o n t r o l r a t e o s c i l l a t o r . C a r r i e r f r e q u e n c y i s 700 Hz and t h e f r e q u e n c y d e v i a t i o n i s 300 Hz . The c o n t r o l f r e q u e n c y i s o n l y 0 . 5 Hz . { SinOsc . a r ( // c a r r i e r o s c i l l a t o r

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

188
82 83 84 85 86 87

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


SinOsc . a r ( // m o d u l a t o r o s c i l l a t o r 0.5 , // m o d u l a t i n g f r e q u e n c y 0, // z e r o p h a s e 300 , // mul f i e l d i s t h e freqency deviation 700 // add f i e l d i s t h e carrier frequency // These s e t t i n g s o f mul and add w i l l c a u s e the // f r e q u e n c y t o v a r y from 300+700 t o +300+700 Hz // which e q u a l s from 400 t o 1000 Hz ), 0, // z e r o p h a s e 0.5 // a m p l i t u d e 0 . 5 )

88

89 90 91 92 93 94 95 96 97

} . play ;

The c o n t r o l f r e q u e n c y w i l l now i n c r e a t e l i n e a r l y from 0 . 5 t o 100 Hz . Note t h e c h a n g e s i n t h e r e s u l t i n g sound from a s i n e wave with c h a n g i n g p i t c h t o a complex t o n e with m u l t i p l e sidebands . // sweep f r e q o f LFO { SinOsc . a r ( // c a r r i e r o s c i l l a t o r SinOsc . a r ( // m o d u l a t o r o s c i l l a t o r XLine . kr ( // make an exponential line generator for modulating freuqency 1, // b e g i n a t 1 Hz 1000 , // end a t 1000 Hz 20 // i n 20 s e c o n d s ), 0, // z e r o p h a s e 300 , // mul f i e l d i s t h e freqency deviation 1000 // add f i e l d i s t h e carrier frequency ), 0, // z e r o p h a s e 0.5 // a m p l i t u d e 0 . 5 ) } . play ;

98 99 100 101 102 103

104 105 106 107 108 109 110 111 112 113 114 115 116

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135

189

By c h a n g i n g t h e f r e q u e n c y d e v i a t i o n ( and thus , t h e modulation index ) the d i s t r i b u t i o n o f energy in the sidebands changes . ( The n e s t e d s t y l e used above can become hard t o read , s o o f t e n i t i s p r e f e r a b l e t o u s e v a r i a b l e s t o make i t more r e a d a b l e . ) This one makes i t e a s y t o s e e t h e f r e q u e n c y modulation i n t h e time domain . { var freqDev , f r e q ; // d e c l a r e t h e v a r i a b l e s we w i l l u s e i n t h i s f u n c t i o n . f r e q D e v = L i n e . kr ( generator // make a l i n e a r l i n e

({ var fundFreq , peakFMI , c a r r i e r F r e q , modulatorFreq , env1 , env2 , amp , instFreqDv , i n s t F r e q ; fundFreq = 4 4 0 . 0 ; // f u n d a m e n t a l f r e q u e n c y c = 3; m = 1; // A l l harmonics peakFMI = 2 ; c a r r i e r F r e q = c fundFreq ; // C:M r a t i o d e t e r m i n e s t h e c a r r i e r and modulatorFreq = m fundFreq ; // t h e m o d u l a t o r frequencies env1 = Env . new ([0 ,5.0 ,3.75 ,3.0 ,0]/5 ,[0.15 ,0.15 ,0.15 ,0.15] , linear ) ; amp = EnvGen . kr ( env1 ) ; // env2 = Env . new ( [ 3 peakFMI , peakFMI , 0 . 7 peakFMI ] , [ 0 . 3 , 0 . 4 5 ] , linear ) ; env2 = Env . new ( [ 0 . 3 peakFMI , peakFMI , 2 . 0 peakFMI ] ,[0.3 ,0.45] , linear ) ; in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; i n s t F r e q = SinOsc . a r ( modulatorFreq , 0 , instFreqDv , carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; ) 0, // b e g i n a t 0 Hz 600 , 20 ); f r e q = SinOsc . a r ( 100 , 0, // m o d u l a t i n g s i g n a l // m o d u l a t i n g f r e q u e n c y f i x e d a t 100 Hz // z e r o p h a s e // end a t 600 Hz // i n 20 s e c o n d s

136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

190
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 } . play ; );

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


freqDev , // mul f i e l d i s t h e frequency deviation 1000 // add f i e l d i s t h e carrier frequency

SinOsc . a r ( freq , 0, 0.5 ) } . play ;

// c r e a t e a s i n e o s c i l l a t o r // f r e q u e n c y m o d u l a t o r // z e r o p h a s e // a m p l i t u d e 0 . 5

The example below implements a v e r y s i m p l e Chowning FM i n s t r u m e n t i n which t h e c a r r i e r and t h e modulating f r e q u e n c y a r e i d e n t i c a l and one e n v e l o p e c o n t r o l s t h e a m p l i t u d e and t h e modulation i n d e x . { var env , amp , instFreqDv , i n s t F r e q ; // env = Env . l i n e n ( 3 . 0 , 3 . 0 , 3 . 0 , 0 . 5 ) ; env = Env . l i n e n ( 0 . 1 , 0 . 2 , 0 . 3 , 0 . 5 ) ; amp = EnvGen . kr ( env ) ; // a m p l i t u d e e n v e l o p e // i n s t a n t a n e o u s f r e q u e n c y = c a r r i e r F r e q + FreqDv Sin ( m o d u l a t o r F r e q ) // c a r r i e r F r e q = m o d u l a t o r F r e q = 500 Hz // FreqDv = 2000 Hz i ns tF re qD v = amp 2 0 0 0 . 0 ; // amp e n v e l o p i s used t o change // i n s t a n t a n e o u s f r e q u e n c y deviation i n s t F r e q = SinOsc . a r ( 5 0 0 , 0 , instFreqDv , 5 0 0 ) ; // m o d u l a t o r = 500 Hz SinOsc . a r ( i n s t F r e q , 0 , amp) ; // c a r r i e r = 500 Hz

Here i s an example i n which t h e C :M r a t i o s and peakFMI can be altered . ({ var fundFreq , peakFMI , c a r r i e r F r e q , modulatorFreq , env , amp , instFreqDv , i n s t F r e q ; fundFreq = 4 0 0 . 0 ; // f u n d a m e n t a l f r e q u e n c y c = 1; m = 1; // A l l harmonics // c = 1 ; m = 2 ; // M i s s i n g e v e r y 2nd harmonic

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


190 191 192 193 194 195 196 197 // c = 1 ; m = 3 ; // M i s s i n g e v e r y 3 rd harmonic // c = 5 ; m = 1 ; // A l l harmonics and s t a r t s on 5 t h harmonic // c = 1 ; m = 1 . 4 1 4 ; // Inharmonic peakFMI = 1 0 ; c a r r i e r F r e q = c fundFreq ; // C:M r a t i o d e t e r m i n e s t h e c a r r i e r and modulatorFreq = m fundFreq ; // t h e m o d u l a t o r frequencies

191

198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215

env = Env . new ([0 ,5.0 ,3.75 ,3.0 ,0]/5 ,[0.15 ,0.15 ,0.15 ,0.15] , linear ) ; amp = EnvGen . kr ( env ) ; in st Fr eq Dv = peakFMI amp modulatorFreq ; i n s t F r e q = SinOsc . a r ( modulatorFreq , 0 , instFreqDv , carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; ) Here i s an example with s e p a r a t e e n v e l o p e s f o r t h e a m p l i t u d e and f o r t h e f r e q u e n c y modulation i n d e x . ({ var fundFreq , peakFMI , c a r r i e r F r e q , modulatorFreq , env1 , env2 , amp , instFreqDv , i n s t F r e q ; fundFreq = 4 4 0 . 0 ; // f u n d a m e n t a l f r e q u e n c y c = 3; m = 1; // A l l harmonics peakFMI = 2 ; c a r r i e r F r e q = c fundFreq ; // C:M r a t i o d e t e r m i n e s t h e c a r r i e r and modulatorFreq = m fundFreq ; // t h e m o d u l a t o r frequencies env1 = Env . new ([0 ,5.0 ,3.75 ,3.0 ,0]/5 ,[0.15 ,0.15 ,0.15 ,0.15] , linear ) ; amp = EnvGen . kr ( env1 ) ; // env2 = Env . new ( [ 3 peakFMI , peakFMI , 0 . 7 peakFMI ] , [ 0 . 3 , 0 . 4 5 ] , linear ) ; env2 = Env . new ( [ 0 . 3 peakFMI , peakFMI , 2 . 0 peakFMI ] ,[0.3 ,0.45] , linear ) ; in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; i n s t F r e q = SinOsc . a r ( modulatorFreq , 0 , instFreqDv , carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; )

216 217 218 219 220 221 222 223

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

192

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39

TUTORIAL DE SUPERCOLLIDER 3 PARTE 8 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l No r th we s te rn U n i v e r s i t y Mas FM Detuning by a s m a l l f a c t o r . ({ var fundFreq , detune , peakFMI , c a r r i e r F r e q , modulatorFreq , env1 , env2 , amp , instFreqDv , i n s t F r e q ; fundFreq = 4 4 0 . 0 ; // f u n d a m e n t a l f r e q u e n c y detune = 0 . 5 ; c = 1; m = 1; peakFMI = 3 ; c a r r i e r F r e q = c fundFreq ; // C:M r a t i o d e t e r m i n e s t h e c a r r i e r and modulatorFreq = m fundFreq + detune ; // t h e modulator frequency + detuning env1 = Env . new ( [ 0 , 5 . 0 , 3 . 7 5 , 3 . 0 , 0 ] / 5 , [ 0 . 1 5 , 0 . 1 5 , 2 , 0 . 1 5 ] , l i n e a r ) ; // amp Env amp = EnvGen . kr ( env1 ) ; env2 = Env . new ( [ 2 peakFMI , peakFMI , peakFMI ] ,[0.3 ,0.45] , linear ) ; // FMI Env in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; i n s t F r e q = SinOsc . a r ( modulatorFreq , 0 , instFreqDv , carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play )

M u l t i p l e C a r r i e r FM can o f t e n produce t o n e s with a vowel l i k e quality . ({ var fundFreq , c1 , c2 , peakFMI , c a r r i e r F r e q 1 , c a r r i e r F r e q 2 , modulatorFreq , env1 , env2 ; var amp , freqDv , ins tF re qD v ; fundFreq = 4 4 0 . 0 ; c1 = 1 ; c2 = 6 ; m = 1; peakFMI = 0 . 5 ; c a r r i e r F r e q 1 = c1 fundFreq ; // C1 : C2 : M r a t i o

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 c a r r i e r F r e q 2 = c2 fundFreq ; modulatorFreq = m fundFreq ;

193

env1 = Env . new ([0 ,5.0 ,3.75 ,3.0 ,0]/5 ,[0.15 ,0.15 ,2.0 ,0.15] , linear ) ; amp = 0 . 3 EnvGen . kr ( env1 ) ; env2 = Env . new ( [ 0 . 5 peakFMI , peakFMI , 0 . 7 peakFMI ] ,[0.3 ,0.45] , linear ) ; freqDv = modulatorFreq EnvGen . kr ( env2 ) ; in st Fr eq Dv = SinOsc . a r ( modulatorFreq , 0 , freqDv ) ; SinOsc . a r ( i ns tF re qD v+c a r r i e r F r e q 1 , 0 , amp) + // Two c a r r i e r s a r e b e i n g modulated SinOsc . a r ( i ns tF re qD v+c a r r i e r F r e q 2 , 0 , amp) ; } . play )

M u l t i p l e Modulator FM can o f t e n produce t o n e s with a smoother q u a l i t y than raw FM. ({ var fundFreq , m1, m2, peakFMI1 , peakFMI2 , c a r r i e r F r e q , modulatorFreq1 , modulatorFreq2 ; var env1 , env2 , amp , instFMI , instFreqDv1 , instFreqDv2 , instFreq ; fundFreq = 4 4 0 . 0 ; c = 1; m1 = 1 ; m2 = 4 ; peakFMI1 = 1 ; peakFMI2 = 0 . 4 ; c a r r i e r F r e q = c fundFreq + 0 . 5 ; // C : M1 : M2 r a t i o modulatorFreq1 = m1 fundFreq ; modulatorFreq2 = m2 fundFreq ; env1 = Env . new ([0 ,5.0 ,3.75 ,3.0 ,0]/5 ,[0.15 ,0.15 ,2.0 ,0.15] , linear ) ; amp = 0 . 5 EnvGen . kr ( env1 ) ; env2 = Env . new ( [ 2 . 0 , 1 . 0 , 0 . 6 ] , [ 0 . 3 , 0 . 4 5 ] , l i n e a r ) ; instFMI = EnvGen . kr ( env2 ) ; // One FMI e n v e l o p e i ns t Fr e qD v 1 = peakFMI1 modulatorFreq1 instFMI ; // with i n d i v i d u a l i ns t Fr e qD v 2 = peakFMI2 modulatorFreq2 instFMI ; // instantaneous frequency deviations i n s t F r e q = SinOsc . a r ( modulatorFreq1 , 0 , i n st F re q Dv 1 ) + Two m o d u l a t i n g o s c i l l a t o r s //

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

194
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


SinOsc . a r ( modulatorFreq2 , 0 , i ns t Fr e qD v 2 ) + carrierFreq ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; // One c a r r i e r

} . play ) ({ // Try d i f f e r e n t v a l u e s f o r f u n d F r e q var fundFreq = 1 7 6 0 ; var d u r a t i o n , detune , peakFMI , vibRate , vibDepth ; var c a r r i e r F r e q , modulatorFreq , o c t a v e , attackTm , sustainTm , releaseTm ; var env1 , env2 , env3 , amp , instFreqDv , i n s t V i b , i n s t F r e q ; // p a r a m e t e r s duration = 2 . 0 ; detune = 0 . 5 ; c = 2; m = 1; peakFMI = 3 . 0 ; vibRate = 4 . 0 ; vibDepth = 0 . 0 0 6 ; // c a l c u l a t e a c t u a l c a r r i e r and m o d u l a t o r f r e q u e n c i e s c a r r i e r F r e q = c fundFreq ; modulatorFreq = m fundFreq + detune . rand ; // random variations // m o d i f i c a t i o n s b a s e d on f u n d a m e n t a l f r e q u e n c y o c t a v e = fundFreq . c p s o c t ; // d e t e r m i n e t h e o c t a v e post ( octave = ) ; octave . postln ; peakFMI = peakFMI 2 0 . 0 / ( o c t a v e o c t a v e ) ; // peakFM decreases in higher octaves vibRate = vibRate o c t a v e / 5 . 0 ; // v i b R a t e i n c r e a s e s in higher octaves vibDepth = vibDepth 5 . 0 / o c t a v e ; p o s t l n ( peakFMI/ vibRate / vibDepth = ) ; peakFMI . p o s t l n ; vibRate . p o s t l n ; vibDepth . p o s t l n ; // a t t a c k and r e l e a s e t i m e s b a s e d on f u n d a m e n t a l frequency attackTm = 0 . 4 4 . 0 / fundFreq . c p s o c t ; // attackTM decreases in higher octaves releaseTm = 1 . 5 attackTm ; sustainTm = d u r a t i o n attackTm releaseTm ; i f ( releaseTm > sustainTm , { releaseTm = sustainTm = ( d u r a t i o n attackTm ) / 2 } ) ; // amplitude envelope

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152

195

env1 = Env . new ( [ 0 , 1 . 0 , 0 . 7 5 , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; amp = EnvGen . kr ( env1 ) ; // FMI e n v e l o p e env2 = Env . new ( [ 2 peakFMI , peakFMI , 0 . 8 peakFMI , 0 . 5 peakFMI ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; // v i b r a t o e n v e l o p e env3 = Env . new ( [ 0 , vibDepth , 0 . 8 vibDepth , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; i n s t V i b = 1 + SinOsc . kr ( vibRate + 3 . 0 . rand , 0 , EnvGen . kr ( env3 ) ) ; i n s t F r e q = SinOsc . a r ( i n s t V i b modulatorFreq , 0 , instFreqDv , instVib carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; ) More c o m p l e t e i n s t r u m e n t d e s i g n V e r s i o n #1: V i b r a t o added with i t s own e n v e l o p e . ({ var fundFreq , d u r a t i o n , detune , peakFMI , vibRate , vibDepth ; var c a r r i e r F r e q , modulatorFreq , attackTm , sustainTm , releaseTm ; var env1 , env2 , env3 , amp , instFreqDv , i n s t V i b , instFreq ; // p a r a m e t e r s fundFreq = 8 8 0 . 0 ; duration = 2 . 0 ; detune = 0 . 5 ; c = 2; m = 1; peakFMI = 3 ; vibRate = 5 . 0 ; // v i b r a t o r r a t e vibDepth = 0 . 0 0 8 ; // v i b r a t o d e p t h as a f r a c t i o n o f fundament f r e q u e n c y // c a l c u l a t e a c t u a l c a r r i e r and m o d u l a t o r frequencies c a r r i e r F r e q = c fundFreq ; modulatorFreq = m fundFreq + detune . rand ; // random d e t u n i n g post ( c a r r i e r frequency = ) ; c arr ierF req . postln ; p o s t ( modulator f r e q u e n c y = ) ; modulatorFreq . postln ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

196
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

// a t t a c k and r e l e a s e t i m e s attackTm = 0 . 3 ; releaseTm = 2 . 0 attackTm ; sustainTm = d u r a t i o n attackTm releaseTm ; i f ( releaseTm > sustainTm , { releaseTm = sustainTm = ( d u r a t i o n attackTm ) / 2 } ) ; p o s t ( a t t a c k time = ) ; attackTm . p o s t l n ; p o s t ( s u s t a i n time = ) ; sustainTm . p o s t l n ; p o s t ( r e l e a s e time = ) ; releaseTm . p o s t l n ; // a m p l i t u d e e n v e l o p e env1 = Env . new ( [ 0 , 1 . 0 , 0 . 7 5 , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; amp = EnvGen . kr ( env1 ) ; // FMI e n v e l o p e env2 = Env . new ( [ 2 peakFMI , peakFMI , 0 . 8 peakFMI , 0 . 5 peakFMI ] , [ attackTm , sustainTm , releaseTm ] , linear ) ; i ns tF re qD v = modulatorFreq EnvGen . kr ( env2 ) ; // v i b r a t o e n v e l o p e env3 = Env . new ( [ 0 , vibDepth , 0 . 8 vibDepth , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; i n s t V i b = 1 + SinOsc . kr ( vibRate + 3 . 0 . rand , 0 , EnvGen . kr ( env3 ) ) ; // random v a r i a t i o n s t o o i n s t F r e q = SinOsc . a r ( i n s t V i b modulatorFreq , 0 , instFreqDv , i n s t V i b c a r r i e r F r e q ) ; // v i b r a t o r a f f e c t s b o t h c a r r i e r and modulators SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; )

169 170 171 172 173 174 175

176 177 178 179 180 181 182 183 184 185 186 187 188 189 190

More c o m p l e t e i n s t r u m e n t d e s i g n V e r s i o n #2: Parameters a r e made s e n s i t i v e t o t h e o c t a v e o f t h e fundamental . ({ // Try d i f f e r e n t v a l u e s f o r f u n d F r e q var fundFreq = 1 7 6 0 ; var d u r a t i o n , detune , peakFMI , vibRate , vibDepth ; var c a r r i e r F r e q , modulatorFreq , o c t a v e , attackTm , sustainTm , releaseTm ; var env1 , env2 , env3 , amp , instFreqDv , i n s t V i b , i n s t F r e q ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 // p a r a m e t e r s duration = 2 . 0 ; detune = 0 . 5 ; c = 2; m = 1; peakFMI = 3 . 0 ; vibRate = 4 . 0 ; vibDepth = 0 . 0 0 6 ;

197

// c a l c u l a t e a c t u a l c a r r i e r and m o d u l a t o r f r e q u e n c i e s c a r r i e r F r e q = c fundFreq ; modulatorFreq = m fundFreq + detune . rand ; // random variations // m o d i f i c a t i o n s b a s e d on f u n d a m e n t a l f r e q u e n c y o c t a v e = fundFreq . c p s o c t ; // d e t e r m i n e t h e o c t a v e post ( octave = ) ; octave . postln ; peakFMI = peakFMI 2 0 . 0 / ( o c t a v e o c t a v e ) ; // peakFM decreases in higher octaves vibRate = vibRate o c t a v e / 5 . 0 ; // v i b R a t e i n c r e a s e s in higher octaves vibDepth = vibDepth 5 . 0 / o c t a v e ; p o s t l n ( peakFMI/ vibRate / vibDepth = ) ; peakFMI . p o s t l n ; vibRate . p o s t l n ; vibDepth . p o s t l n ; // a t t a c k and r e l e a s e t i m e s b a s e d on f u n d a m e n t a l frequency attackTm = 0 . 4 4 . 0 / fundFreq . c p s o c t ; // attackTM decreases in higher octaves releaseTm = 1 . 5 attackTm ; sustainTm = d u r a t i o n attackTm releaseTm ; i f ( releaseTm > sustainTm , { releaseTm = sustainTm = ( d u r a t i o n attackTm ) / 2 } ) ; // a m p l i t u d ( { // Try d i f f e r e n t v a l u e s f o r f u n d F r e q var fundFreq = 1 7 6 0 ; var d u r a t i o n , detune , peakFMI , vibRate , vibDepth ; var c a r r i e r F r e q , modulatorFreq , o c t a v e , attackTm , sustainTm , releaseTm ; var env1 , env2 , env3 , amp , instFreqDv , i n s t V i b , i n s t F r e q ; // p a r a m e t e r s duration = 2 . 0 ; detune = 0 . 5 ; c = 2; m = 1; peakFMI = 3 . 0 ; vibRate = 4 . 0 ; vibDepth = 0 . 0 0 6 ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

198
231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


// c a l c u l a t e a c t u a l c a r r i e r and m o d u l a t o r f r e q u e n c i e s c a r r i e r F r e q = c fundFreq ; modulatorFreq = m fundFreq + detune . rand ; // random variations // m o d i f i c a t i o n s b a s e d on f u n d a m e n t a l f r e q u e n c y o c t a v e = fundFreq . c p s o c t ; // d e t e r m i n e t h e o c t a v e post ( octave = ) ; octave . postln ; peakFMI = pe ( { // Try d i f f e r e n t v a l u e s f o r f u n d F r e q var fundFreq = 1 7 6 0 ; var d u r a t i o n , detune , peakFMI , vibRate , vibDepth ; var c a r r i e r F r e q , modulatorFreq , o c t a v e , attackTm , sustainTm , releaseTm ; var env1 , env2 , env3 , amp , instFreqDv , i n s t V i b , i n s t F r e q ; // p a r a m e t e r s duration = 2 . 0 ; detune = 0 . 5 ; c = 2; m = 1; peakFMI = 3 . 0 ; vibRate = 4 . 0 ; vibDepth = 0 . 0 0 6 ; // c a l c u l a t e a c t u a l c a r r i e r and m o d u l a t o r f r e q u e n c i e s c a r r i e r F r e q = c fundFreq ; modulatorFreq = m fundFreq + detune . rand ; // random variations // m o d i f i c a t i o n s b a s e d on f u n d a m e n t a l f r e q u e n c y o c t a v e = fundFreq . c p s o c t ; // d e t e r m i n e t h e o c t a v e post ( octave = ) ; octave . postln ; peakFMI = peakFMI 2 0 . 0 / ( o c t a v e o c t a v e ) ; // peakFM decreases in higher octaves vibRate = vibRate o c t a v e / 5 . 0 ; // v i b R a t e i n c r e a s e s in higher octaves vibDepth = vibDepth 5 . 0 / o c t a v e ; p o s t l n ( peakFMI/ vibRate / vibDepth = ) ; peakFMI . p o s t l n ; vibRate . p o s t l n ; vibDepth . p o s t l n ; // a t t a c k and r e l e a s e t i m e s b a s e d on f u n d a m e n t a l frequency attackTm = 0 . 4 4 . 0 / fundFreq . c p s o c t ; // attackTM decreases in higher octaves releaseTm = 1 . 5 attackTm ; sustainTm = d u r a t i o n attackTm releaseTm ; i f ( releaseTm > sustainTm , { releaseTm = sustainTm = ( d u r a t i o n attackTm ) / 2 } ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.6. SUPERCOLLIDER: MODULACION


270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303

199

// a m p l i t u d e e n v e l o p e env1 = Env . new ( [ 0 , 1 . 0 , 0 . 7 5 , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; amp = EnvGen . kr ( env1 ) ; // FMI e n v e l o p e env2 = Env . new ( [ 2 peakFMI , peakFMI , 0 . 8 peakFMI , 0 . 5 peakFMI ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; // v i b r a t o e n v e l o p e env3 = Env . new ( [ 0 , vibDepth , 0 . 8 vibDepth , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; i n s t V i b = 1 + SinOsc . kr ( vibRate + 3 . 0 . rand , 0 , EnvGen . kr ( env3 ) ) ; i n s t F r e q = SinOsc . a r ( i n s t V i b modulatorFreq , 0 , instFreqDv , instVib carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . p l a y ; ) akFMI 2 0 . 0 / ( o c t a v e o c t a v e ) ; // peakFM d e c r e a s e s i n higher octaves vibRate = vibRate o c t a v e / 5 . 0 ; // v i b R a t e i n c r e a s e s in higher octaves vibDepth = vibDepth 5 . 0 / o c t a v e ; p o s t l n ( peakFMI/ vibRate / vibDepth = ) ; peakFMI . p o s t l n ; vibRate . p o s t l n ; vibDepth . p o s t l n ; // a t t a c k and r e l e a s e t i m e s b a s e d on f u n d a m e n t a l frequency attackTm = 0 . 4 4 . 0 / fundFreq . c p s o c t ; // attackTM decreases in higher octaves releaseTm = 1 . 5 attackTm ; sustainTm = d u r a t i o n attackTm releaseTm ; i f ( releaseTm > sustainTm , { releaseTm = sustainTm = ( d u r a t i o n attackTm ) / 2 } ) ; // a m p l i t u d e e n v e l o p e env1 = Env . new ( [ 0 , 1 . 0 , 0 . 7 5 , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; amp = EnvGen . kr ( env1 ) ; // FMI e n v e l o p e env2 = Env . new ( [ 2 peakFMI , peakFMI , 0 . 8 peakFMI , 0 . 5 peakFMI ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; // v i b r a t o e n v e l o p e env3 = Env . new ( [ 0 , vibDepth , 0 . 8 vibDepth , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; i n s t V i b = 1 + SinOsc . kr ( vibRate + 3 . 0 . rand , 0 , EnvGen . kr ( env3 ) ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

200
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

i n s t F r e q = SinOsc . a r ( i n s t V i b modulatorFreq , 0 , instFreqDv , instVib carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; ) e envelope env1 = Env . new ( [ 0 , 1 . 0 , 0 . 7 5 , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; amp = EnvGen . kr ( env1 ) ; // FMI e n v e l o p e env2 = Env . new ( [ 2 peakFMI , peakFMI , 0 . 8 peakFMI , 0 . 5 peakFMI ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; in st Fr eq Dv = modulatorFreq EnvGen . kr ( env2 ) ; // v i b r a t o e n v e l o p e env3 = Env . new ( [ 0 , vibDepth , 0 . 8 vibDepth , 0 ] , [ attackTm , sustainTm , releaseTm ] , l i n e a r ) ; i n s t V i b = 1 + SinOsc . kr ( vibRate + 3 . 0 . rand , 0 , EnvGen . kr ( env3 ) ) ; i n s t F r e q = SinOsc . a r ( i n s t V i b modulatorFreq , 0 , instFreqDv , instVib carrierFreq ) ; SinOsc . a r ( i n s t F r e q , 0 , amp) ; } . play ; )

A.7.

SuperCollider: S ntesis granular

1 TUTORIAL DE SUPERCOLLIDER 3 PARTE 9 2 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l 3 No r th we s te rn U n i v e r s i t y 4 5 ( 6 S e r v e r . default = S e r v e r . i n t e r n a l ; 7 s = S e r v e r . default ; 8 s . boot ; 9 ) 10 11 S i n t e s i s g r a n u l a r 12 13 Gendy1 ( tambien Gendy2 y Gendy3 ) 14 Implementacion d e l g e n e r a d o r dinamico e s t o c a s t i c o c o n c e b i d o por Xenakis 15 16 17 Metodos de c l a s e 18 a r ( ampdist =1, d u r d i s t =1, adparam =1.0 , ddparam =1.0 , m i n f r e q =20 , maxfreq =1000 , ampscale= 0 . 5 , d u r s c a l e =0.5 , i n i t C P s =12 , knum =12 , mul =1.0 , add =0.0)

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.8. SUPERCOLLIDER: PATRONES


19 20 21 22 23 24

201

Check t h e h e l p page f o r an e x p l a n a t i o n o f t h e p a r a m e t e r s ! // d e f a u l t s { Pan2 . a r (RLPF . a r ( Gendy1 . a r ( 2 , 3 , m i n f r e q : 2 0 , maxfreq : MouseX . kr (100 ,1000) , durscale : 0 . 0 , initCPs : 4 0 ) , 500 ,0.3 , 0 .2 ) , 0. 0 ) }. play ({ var mx, my ; mx= MouseX . kr ( 2 2 0 , 4 4 0 ) ; my= MouseY . kr ( 0 . 0 , 1 . 0 ) ; Pan2 . a r ( Gendy1 . a r ( 2 , 3 , 1 , 1 , m i n f r e q : mx, maxfreq : 8 mx, ampscale : my, d u r s c a l e : my, i n i t C P s : 7 , mul : 0 . 3 ) , 0 . 0 ) } . play )

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

S i n t e s i s g r a n u l a r a l a Gabor // Granular S y n t h e s i s ( SynthDef ( \ grainMaker , { a r g dur = 1 , amp = 3, f r e q = 4 4 0 ; var env , h a l f d u r , c a r ; h a l f d u r = dur 0 . 5 ; amp = amp . dbamp ; env = EnvGen . a r ( Env ( [ 0 , amp , 0 ] , [ h a l f d u r , h a l f d u r ] , \ l i n ) , doneAction : 2 ) ; c a r = SinOsc . a r ( f r e q , 0 , 1 ) ; O f f s e t O u t . a r ( 0 , c a r env ) ; }) . load ( s ) ; ) ( z = Routine ( { var f r e q , amp , time =0; f r e q = Env ( [ 1 0 0 0 , 5 0 0 ] , [ 1 5 ] , \ exp ) ; amp = Env ([ 12 , 3, 12] , [ 7 . 5 , 7 . 5 ] , \ l i n ) ; 1 5 0 0 . do { s . sendBundle ( 0 . 1 , [ \ s new , \ grainMaker , 1, 0 , 1 , \ dur , 0 . 0 0 9 , \ amp , amp [ time ] , \ f r e q , f r e q [ time ] ] ) ; 0 . 0 1 . wait ; time = time + 0 . 0 1 ; } }) . play )

54 55 56 57

A.8.

SuperCollider: Patrones
A LA MUSICA INTRODUCCION COMPUTACIONAL

CADIZ, R.

202

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

TUTORIAL DE SUPERCOLLIDER 3 PARTE 10 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l No r th we s te rn U n i v e r s i t y ( S e r v e r . i n t e r n a l . boot ; S e r v e r . default = S e r v e r . i n t e r n a l ; s = S e r v e r . default ; ) Patterns

Making Music with P a t t e r n s Here i s an example t h a t u s e s a P a t t e r n t o c r e a t e two i n s t a n c e s of t h e random melody stream . ( SynthDef ( SPE2 , { a r g i o u t =0 , i d u r =1 , f r e q ; var out ; out = RLPF . a r ( LFSaw . a r ( f r e q ) , LFNoise1 . kr ( 1 , 3 6 , 1 1 0 ) . midicps , 0.1 ) EnvGen . kr ( Env . perc , l e v e l S c a l e : 0 . 3 , timeScale : i dur , doneAction : 2 ) ; 4 . do ( { out = A l l p a s s N . a r ( out , 0 . 0 5 , [ 0 . 0 5 . rand , 0 . 0 5 . rand ] , 4 ) } ) ; Out . a r ( i o u t , out ) ; } ) . send ( s ) ; ) ( // s t r e a m s as a s e q u e n c e o f p i t c h e s var p a t t e r n , streams , dur , d u r D i f f ; dur = 1 / 7 ; durDiff = 3; p a t t e r n = Prout . new ( { loop ({ i f ( 0 . 5 . coin , {

28 29 30 31 32 33 34 35 36 37 38 39

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.8. SUPERCOLLIDER: PATRONES


40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67

203

#[ 2 4 , 3 1 , 3 6 , 4 3 , 4 8 , 5 5 ] . do ( { a r g f i f t h ; f i f t h . y i e l d }) ; }) ; r r a n d ( 2 , 5 ) . do ( { // v a r y i n g a r p e g g i o 60. yield ; #[63 ,65]. choose . y i e l d ; 67. yield ; #[70 ,72 ,74]. choose . y i e l d ; }) ; // random h i g h melody r r a n d ( 3 , 9 ) . do ( { # [ 7 4 , 7 5 , 7 7 , 7 9 , 8 1 ] . choose . y i e l d }) ; }) ; }) ; s t r e a m s = [ // Stream . a t ( 0 ) combines Prout s o u t p u t w i t h Pfunc t r a n s p o s i n g n o t e s randomly ( p a t t e r n Pfunc . new ( { #[12 , 7 , 7 , 0 ] . c h o o s e } ) ) . m i d i c p s . asStream , // 0 i n a r r a y p a t t e r n . m i d i c p s . asStream // 1 i n a r r a y ]; Routine ( { loop ({ // Do t h i s Synth ( SPE2 , [ \ f r e q , s t r e a m s . a t ( 0 ) . next , \ i d u r , dur d u r D i f f ] ); d u r D i f f . do ( { // t h e n do t h i s d u r D i f f times Synth ( SPE2 , [ \ f r e q , s t r e a m s . a t ( 1 ) . next , \ i d u r , dur ] ) ; dur . w a i t ; }) ; }) }) . play )

1 2 3 4 5 6 7 8 9

TUTORIAL DE SUPERCOLLIDER 3 PARTE 11 Rodrigo F . Cadiz , basado en a p u n t e s de Gary S . K e n d a l l N o r t h we s te rn U n i v e r s i t y ListPatterns ListPatterns are Patterns that i t e r a t e over arrays of o b j e c t s in some f a s h i o n . A l l L i s t P a t t e r n s have i n common t h e i n s t a n c e v a r i a b l e s l i s t and repeats . The l i s t v a r i a b l e i s some Array t o be i t e r a t e d o v e r . The r e p e a t s variable is

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

204
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

some measure o f t h e number o f t i m e s t o do something , whose meaning v a r i e s from s u b c l a s s t o s u b c l a s s . The default v a l u e f o r r e p e a t s is 1.

Making Music with L i s t P a t t e r n s Here i s an example we have heard b e f o r e r e w r i t t e n t o u s e ListPatterns . I t u s e s n e s t e d p a t t e r n s and r e s u l t s i n much more c o n c i s e code . ( SynthDef ( A l l p a s s 6 , { a r g f r e q , dur= 1 . 0 ; // Frequency and duration parameters var out , env ; out = RLPF . a r ( LFSaw . a r ( f r e q , mul : EnvGen . kr ( Env . perc , l e v e l S c a l e : 0 . 1 5 , t i m e S c a l e : dur , doneAction : 2 ) ), LFNoise1 . kr ( 1 , 3 6 , 1 1 0 ) . midicps , 0.1 ); 6 . do ( { out = A l l p a s s N . a r ( out , 0 . 0 5 , [ 0 . 0 5 . rand , 0 . 0 5 . rand ] , 4 ) } ) ; Out . a r ( 0 , out ) ; } ) . send ( s ) ) ( // This i s a good more complex model var f r e q S t r e a m ; f r e q S t r e a m = Pseq ( // l i s t , r e p e a t s , o f f s e t [ Prand ( [ n i l , Pseq ( # [ 2 4 , 3 1 , 3 6 , 4 3 , 4 8 , 5 5 ] ) ] ) , // no r e p e a t , n i l causes pattern to end Pseq ( [ 6 0 , Prand ( # [ 6 3 , 6 5 ] ) , 6 7 , Prand (#[70 , 72 , 7 4 ] ) ] , rrand (2 , 5) ) , Prand ( # [ 7 4 , 7 5 , 7 7 , 7 9 , 8 1 ] , { r r a n d ( 3 , 9) }) ], i n f ) . asStream . m i d i c p s ; Task ( { loop ({

25 26 27 28 29 30 31 32 33 34 35 36 37 38

39 40 41 42 43 44 45

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.8. SUPERCOLLIDER: PATRONES


46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 Synth ( A l l p a s s 6 , [ \ f r e q , f r e q S t r e a m . next ] ) ; 0 . 1 3 . wait ; }) ; }) . play ; )

205

Here i s an example t h a t u s e s a P a t t e r n t o c r e a t e a rhythmic s o l o . The v a l u e s i n t h e p a t t e r n s p e c i f y t h e a m p l i t u d e s o f i m p u l s e s f e d t o t h e Decay2 g e n e r a t o r . ( SynthDef ( Mridangam , { a r g t amp ; // Amplitude i s argument ( dur i s n t m e a n i n g f u l ) var out ; out = Resonz . a r ( WhiteNoise . a r ( 7 0 ) Decay2 . kr ( t amp , 0 . 0 0 2 , 0 . 1 ), 6 0 . midicps , 0 . 0 2 , 4 ) . distort 0.4; Out . a r ( 0 , out ) ; D e t e c t S i l e n c e . a r ( out , doneAction : 2 ) ; } ) . send ( s ) ; SynthDef ( Drone , { var out ; out = LPF . a r ( Saw . a r ( [ 6 0 , 6 0 . 0 4 ] . m i d i c p s ) + Saw . a r ( [ 6 7 , 6 7 . 0 4 ] . midicps ) , 1 0 8 . midicps , 0.007 ); Out . a r ( 0 , out ) ; } ) . send ( s ) ; ) ( // p e r c u s s i o n s o l o i n 10/8 var stream , pat , amp ; pat = Pseq ( [ Pseq ( # [ 0 . 0 ] , 1 0 ) , // i n t r o Pseq ( # [ 0 . 9 , 0 . 0 ] , 2) Pseq ( # [ 0 . 9 , 0 . 0 ] , 2)

0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , , 0.0 , 0.0 , 0.2 , 0.0 , 0.0 , 0.0 , 0.2 , 0.0 , ,

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

206
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


Pseq ( # [ 0 . 9 , 0 . 0 ] , 2) Pseq ( # [ 0 . 9 , 0 . 2 ] , 2) // s o l o Prand ( [ Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 2 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.2]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.2 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 2 , 0.2 , 0.2]) , Pseq ( # [ 0 . 9 , 0 . 2 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.4 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.4 , 0.2]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 7 , 0.0 , 0.0]) , Pseq ( # [ 0 . 9 , 0 . 0 , 0.0 , 0.0]) 0.0 , 0.7 , 0.0 , 0.2 , 0.0 , 0.7 , 0.0 , 0.7 , 0.0 , 0.2 , 0.0 , 0.7 , 0.0 , 0.7 , 0.0 , 0.2 , 0.0 , 0.7 , 0.0 , 0.7 , 0.2 , 0.2 , 0.0 , 0.7 , 0.0 , 0.7 , 0.0 , 0.2 , 0.2 , 0.7 , 0.2 , 0.7 , 0.2 , 0.2 , 0.2 , 0.7 , 0.2 , 0.7 , 0.2 , 0.2 , 0.2 , 0.7 , 0.0 , 0.7 , 0.2 , 0.2 , 0.2 , 0.7 , 0.4 , 0.0 , 0.4 , 0.0 , 0.4 , 0.0 , 0.0 , 0.4 , 0.0 , 0.0 , 0.4 , 0.2 , 0.2 , 0.7 , 0.0 , 0.2 , 0.0 , 0.7 , 0.0 , 0.7 , 0.0 , 0.0 , 0.0 , 0.7 , 0.7 , 0.0 , 0.0 , 0.2 , 0.2 , 0.2 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.0 , 0.2 , 0.0 , 0.2 , 0.0 , 0.2 , 0.0 , , 0.0 , 0.0 , 0.2 , 0.0 , 0.0 , 0.0 , 0.2 , 0.0 , ,

] , 30) , // c o n c l u s i o n Pseq ( # [ 2 . 0 , 0 . 0 , 0 . 2 , 0 . 5 , 0 . 0 , 0 . 2 , 0 . 9 , 1.5 , 0.0 , 0.2 , 0.5 , 0.0 , 0.2 , 0.9 , 1 . 5 , 0 . 0 , 0 . 2 , 0 . 5 , 0 . 0 , 0 . 2 ] , 3) , Pseq ( # [ 5 ] , 1 ) , Pseq ( # [ 0 . 0 ] , i n f ) ]) ; stream = pat . asStream ; Task ( { Synth ( Drone ) ; loop ({ i f ( ( amp = stream . next ) > 0 ,

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.9. SUPERCOLLIDER: FILTROS BI-CUADRATICOS


120 121 122 123 124 125 126

207

{ Synth ( Mridangam , [ \ t amp , amp ] ) } ); (1/8) . wait ; }) }) . play )

A.9.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 (

SuperCollider: Filtros bi-cuadr aticos


// F i l t r o s b i q u a d var w ; var c a p t i o n 1 , c a p t i o n 2 , c a p t i o n 3 , c a p t i o n f b S l i d e r , captionddSlider ; var lpfBox , hpfBox , bpfBox , notchBox , peakingEQBox , lowShelfBox , h i g h S h e l f B o x ; var in1Box , in2Box , in3Box , c a p t i o n S o u r c e ; var c a p t i o n g a i n S l i d e r , g a i n S l i d e r , gainNum ; var c a p t i o n f i l t e r S l i d e r , f i l t e r S l i d e r , f i l t e r N u m ; var c a p t i o n s h e l f S l i d e r , s h e l f S l i d e r , shelfNum ; var c a p t i o n Q S l i d e r , q S l i d e r , qNum ; var c a p t i o n O m e g a S l i d e r , o m e g a S l i d e r , omegaNum ; var f i l e n a m e , sound , s i g n a l ; var f o r e c o l o r ; var x o f f 1 , x o f f 2 ; var ftoW ; // c o n v e r t dB t o a m p l i t u d e var dBtoA ; dBtoA = { a r g d e c i b e l s ; r = 0.5011872336; r 10( d e c i b e l s / 2 0 . 0 ) ; } ;

ftoW = { a r g h e r t z ; 2 p i ( h e r t z / Synth . sampleRate ) ; } ;

// GUI Window w = GUIWindow . new ( F i r s t o r d e r biquad f i l t e r s >>> Rodrigo F . Cadiz , Rect . newBy ( 5 0 0 , 7 0 , 6 5 0 , 4 0 0 ) ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

208
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


w . b ac k C o l or = C o l o r . new ( 9 9 , 1 3 0 , 1 6 0 ) ;

// O f f s e t s xoff1 = 10; xoff2 = 350; // C o l o r s f o r e c o l o r = C o l o r . new ( 2 5 5 , 2 5 5 , 0 ) ; // Various l a b e l s c a p t i o n 1 = S t r i n g V i e w . new ( 2 0 ) , Advanced Audio S i g n a l P r o c e s s i n g ) ; caption1 . labelColor = f o r e c a p t i o n 2 = S t r i n g V i e w . new ( 20) , Assignment 2 : Second o r d e r biquad caption2 . labelColor = f o r e c a p t i o n 3 = S t r i n g V i e w . new ( 2 0 ) , Rodrigo F . Cadiz ) ; caption3 . labelColor = f o r e

w, Rect . newBy ( x o f f 1 , 1 0 , 2 2 8 ,

color ; w, Rect . newBy ( x o f f 1 , 3 0 , 3 2 8 , f i l t e r s ) ; color ; w, Rect . newBy ( x o f f 1 , 5 0 , 1 2 8 ,

color ;

// I n p u t Gain c a p t i o n g a i n S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 10 , 235 , 20) , Input g a i n [ dB ] ) ; g a i n S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 0 , 2 3 0 , 20 ) , Mix , 0 , 30 , 6 , 1 , l i n e a r ) ; gainNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 3 0 , 5 0 , 20 ) , NumericalView , 0 , 30 , 6 , 1 , l i n e a r ) ; gainNum . ba c k C o lo r = f o r e c o l o r ; g a i n S l i d e r . a c t i o n = { gainNum . v a l u e = g a i n S l i d e r . v a l u e } ;

// F i l t e r Gain c a p t i o n f i l t e r S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 60 , 235 , 20) , F i l t e r g a i n [ dB ] ) ; f i l t e r S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 8 0 , 2 3 0 , 20 ) , Mix , 0 , 0.02 , 0 . 0 2 , 0 . 0 0 0 1 , l i n e a r ) ; f i l t e r N u m = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 8 0 , 5 0 , 20 ) , NumericalView , 0 , 0.02 , 0 . 0 2 , 0 . 0 0 0 1 , l i n e a r ) ; f i l t e r N u m . b a c k C ol o r = f o r e c o l o r ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.9. SUPERCOLLIDER: FILTROS BI-CUADRATICOS


74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 f i l t e r S l i d e r . action = { filterNum . value = f i l t e r S l i d e r . value };

209

// S h e l f s l o p e c a p t i o n s h e l f S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 110 , 235 , 20) , Shelf slope ) ; s h e l f S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 3 0 , 2 3 0 , 20 ) , Mix , 1 , 0 . 0 0 1 , 2 , 0 . 0 0 1 , e x p o n e n t i a l ) ; shelfNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 3 0 , 5 0 , 20 ) , NumericalView , 1 , 0 . 0 0 1 , 2 , 0 . 0 0 1 , e x p o n e n t i a l ) ; shelfNum . b a c k C ol o r = f o r e c o l o r ; s h e l f S l i d e r . a c t i o n = { shelfNum . v a l u e = s h e l f S l i d e r . v a l u e } ; // Omega c a p t i o n O m e g a S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 160 , 235 , 20) , C u t o f f f r e q u e n c y [ Hz ] ) ; o m e g a S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 8 0 , 2 3 0 , 20 ) , Mix , 4 0 0 , 100 , 15000 , 1 0 , e x p o n e n t i a l ) ; omegaNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 8 0 , 5 0 , 20 ) , NumericalView , 4 0 0 , 1 0 0 , 1 5 0 0 0 , 1 0 , e x p o n e n t i a l ) ; omegaNum . b a c kC o l o r = f o r e c o l o r ; o m e g a S l i d e r . a c t i o n = { omegaNum . v a l u e = o m e g a S l i d e r . v a l u e } ; // Q c a p t i o n Q S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 1 0 , 2 3 5 , 2 0 ) , Q ) ; q S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 3 0 , 2 3 0 , 20 ) , Mix , 0 . 5 , 0 . 0 1 , 1 0 . 0 , 0 . 0 1 , e x p o n e n t i a l ) ; qNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 2 3 0 , 5 0 , 20 ) , NumericalView , 0 . 5 , 0 . 0 1 , 1 0 . 0 , 0 . 0 1 , e x p o n e n t i a l ) ; qNum . b a c k C ol o r = f o r e c o l o r ; q S l i d e r . a c t i o n = { qNum . v a l u e = q S l i d e r . v a l u e } ; lpfBox = 230 , pass , 1 , 0 , 1 , hpfBox = 230 , pass , 0 , 0 , 1 , CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 9 0 , 20 ) , Low 0, linear ) ; CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 1 0 , 20 ) , High 0, linear ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

210
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

bpfBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 3 0 , 2 3 0 , 20 ) , Band pass , 0 , 0 , 1 , 0 , l i n e a r ) ; notchBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 5 0 , 2 3 0 , 20 ) , Notch , 0 , 0 , 1 , 0 , l i n e a r ) ; peakingEQBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 7 0 , 2 3 0 , 20 ) , PeakingEQ , 0 , 0 , 1 , 0 , l i n e a r ) ; l o w S h e l f B o x = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 9 0 , 2 3 0 , 20 ) , Low S h e l f , 0 , 0 , 1 , 0 , l i n e a r ) ; h i g h S h e l f B o x = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 2 1 0 , 2 3 0 , 20 ) , High S h e l f , 0 , 0 , 1 , 0 , l i n e a r ) ; lpfBox . action = { lpfBox . value = 1 . 0 ; hpfBox . v a l u e = 0 . 0 ; bpfBox . v a l u e = 0 . 0 ; notchBox . v a l u e = 0 . 0 ; peakingEQBox . v a l u e = 0 . 0 ; lowShelfBox . value = 0 . 0 ; highShelfBox . value = 0 . 0 ; } ; hpfBox . a c t i o n = { lpfBox . value = 0 . 0 ; hpfBox . v a l u e = 1 . 0 ; bpfBox . v a l u e = 0 . 0 ; notchBox . v a l u e = 0 . 0 ; peakingEQBox . v a l u e = 0 . 0 ; lowShelfBox . value = 0 . 0 ; highShelfBox . value = 0 . 0 ; } ; bpfBox . a c t i o n = { lpfBox . value = 0 . 0 ; hpfBox . v a l u e = 0 . 0 ; bpfBox . v a l u e = 1 . 0 ; notchBox . v a l u e = 0 . 0 ; peakingEQBox . v a l u e = 0 . 0 ; lowShelfBox . value = 0 . 0 ; highShelfBox . value = 0 . 0 ; } ; notchBox . a c t i o n = { lpfBox . value = 0 . 0 ; hpfBox . v a l u e = 0 . 0 ; bpfBox . v a l u e = 0 . 0 ; notchBox . v a l u e = 1 . 0 ; peakingEQBox . v a l u e = 0 . 0 ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.9. SUPERCOLLIDER: FILTROS BI-CUADRATICOS


154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 lowShelfBox . value = 0 . 0 ; highShelfBox . value = 0 . 0 ; } ; peakingEQBox . a c t i o n = { lpfBox . value = 0 . 0 ; hpfBox . v a l u e = 0 . 0 ; bpfBox . v a l u e = 0 . 0 ; notchBox . v a l u e = 0 . 0 ; peakingEQBox . v a l u e = 1 . 0 ; lowShelfBox . value = 0 . 0 ; highShelfBox . value = 0 . 0 ; } ; lowShelfBox . a c t i o n = { lpfBox . value = 0 . 0 ; hpfBox . v a l u e = 0 . 0 ; bpfBox . v a l u e = 0 . 0 ; notchBox . v a l u e = 0 . 0 ; peakingEQBox . v a l u e = 0 . 0 ; lowShelfBox . value = 1 . 0 ; highShelfBox . value = 0 . 0 ; } ; highShelfBox . action = { lpfBox . value = 0 . 0 ; hpfBox . v a l u e = 0 . 0 ; bpfBox . v a l u e = 0 . 0 ; notchBox . v a l u e = 0 . 0 ; peakingEQBox . v a l u e = 0 . 0 ; lowShelfBox . value = 0 . 0 ; highShelfBox . value = 1 . 0 ; } ; // S e l e c t s o u r c e c a p t i o n S o u r c e = S t r i n g V i e w . new ( 235 , 20) , Select source ) ; captionSource . labelColor = f o r e in1Box = CheckBoxView . new ( w, 2 3 0 , 20 ) , Sound f i l e , 1, 0, 1, 0, linear ) ; in2Box = CheckBoxView . new ( w, 2 3 0 , 20 ) , LFSaw , 0 , 0 , 1 , 0 , l i n e a r ) ; in3Box = CheckBoxView . new ( w, 2 3 0 , 20 ) , BrownNoise , 0 , 0 , 1 , 0 , l i n e a r ) ;

211

w, Rect . newBy ( x o f f 2 , 2 5 0 ,

color ; Rect . newBy ( x o f f 2 , 2 7 0 ,

Rect . newBy ( x o f f 2 , 2 9 0 ,

Rect . newBy ( x o f f 2 , 3 1 0 ,

f i l e n a m e = : Sounds : r e d o b l e s . a i f f ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

212
199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


sound = S o u n d F i l e . new ; i f ( sound . r e a d ( f i l e n a m e ) , {

Synth . d u a l S c o p e ( { var s i g n a l ; // f o r a u d i o f i l e stream var input , input1 , input2 , i n p u t 3 ; // for e f f e c t s processor var l p f s i g , h p f s i g , b p f s i g , n o t c h s i g , peakingEQ sig , l o w S h e l f s i g , highShelf sig ;

s i g n a l = sound . data . a t ( 0 ) ; // D i f f e r e n t s o u r c e s i n p u t 1 = PlayBuf . a r ( s i g n a l , sound . sampleRate , 1 , 0 , 0 , s i g n a l . s i z e 2) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; i n p u t 2 = LFSaw . a r ( 2 0 0 , 0 . 1 ) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; i n p u t 3 = BrownNoise . a r ( 0 . 1 ) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; // Source mix i n p u t = Mix . a r ( [ i n p u t 1 in1Box . kr , i n p u t 2 in2Box . kr , i n p u t 3 in3Box . kr ] ) ;

// LPF l p f s i g = Pause . a r ( { var alpha , sn , c s ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ;

b0 b1 b2 a0 a1 a2

= = = = = =

1 + alpha ; ( 2 c s ) / b0 ; ( 1 a l p h a ) / b0 ; ( 1 c s ) / ( 2 b0 ) ; ( 1 c s ) / b0 ; ( 1 c s ) / ( 2 b0 ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.9. SUPERCOLLIDER: FILTROS BI-CUADRATICOS


241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282

213

SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , l p f B o x . kr ( 0 ) ) ;

// HPF h p f s i g = Pause . a r ( { var alpha , sn , c s ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ;

b0 b1 b2 a0 a1 a2

= = = = = =

1 + alpha ; ( 2 c s ) / b0 ; ( 1 a l p h a ) / b0 ; ( 1 + c s ) / ( 2 b0 ) ; ( 1 + c s ) . neg / b0 ; ( 1 + c s ) / ( 2 b0 ) ;

SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , hpfBox . kr ( 0 ) ) ;

// BPF b p f s i g = Pause . a r ( { var alpha , sn , c s ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ;

b0 b1 b2 a0 a1 a2

= = = = = =

1 + alpha ; ( 2 c s ) / b0 ; ( 1 a l p h a ) / b0 ; a l p h a / b0 ; 0; a l p h a . neg / b0 ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

214
283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , bpfBox . kr ( 0 ) ) ;

// NOTCH n o t c h s i g = Pause . a r ( { var alpha , sn , c s ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ;

b0 b1 b2 a0 a1 a2

= = = = = =

1 + alpha ; ( 2 c s ) / b0 ; ( 1 a l p h a ) / b0 ; 1/ b0 ; ( 2 c s ) / b0 ; 1/ b0 ;

SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , notchBox . kr ( 0 ) ) ; // PEAKINGEQ p e a k i n g E Q s i g = Pause . a r ( { var alpha , sn , cs , a ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ; a = 1 0 ( f i l t e r S l i d e r . kr / 4 0 . 0 ) ; b0 b1 b2 a0 a1 a2 = = = = = = 1 + alpha /a ; ( 2 c s ) / b0 ; ( 1 a l p h a / a ) / b0 ; ( 1 + a l p h a a ) / b0 ; ( 2 c s ) / b0 ; ( 1 a l p h a a ) / b0 ;

304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322

SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , peakingEQBox . kr (0) ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.9. SUPERCOLLIDER: FILTROS BI-CUADRATICOS


323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343

215

// LOWSHELF l o w S h e l f s i g = Pause . a r ( { var alpha , beta , sn , cs , a ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ; a = 1 0 ( f i l t e r S l i d e r . kr / 4 0 . 0 ) ; b e t a = s q r t ( ( a 2 + 1 ) / s h e l f S l i d e r . kr ( a 1 ) 2 ) ; b0 = b1 b2 a0 a1 a2 ( a + 1) + b e t a sn ; = ( 2 (( a 1 ) ) ) / b0 ; = ( ( a + 1) b e t a sn ) / b0 ; = a (( a + 1) + b e t a sn ) / b0 ; = (2 a (( a 1) ) ) / b0 ; = a (( a + 1) b e t a sn ) / b0 ; + ( a 1) cs + ( a + 1) cs + ( a 1) cs ( a 1) cs ( a + 1) cs ( a 1) cs

SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , l o w S h e l f B o x . kr (0) ) ;

344 345 346 347 348 349 350 351 352 353 354 355 356

// HIGHSHELF h i g h S h e l f s i g = Pause . a r ( { var alpha , beta , sn , cs , a ; var a0 , a1 , a2 , b0 , b1 , b2 ; sn = s i n ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; c s = c o s ( ftoW . v a l u e ( o m e g a S l i d e r . kr ) ) ; a l p h a = sn / ( 2 q S l i d e r . kr ) ; a = 1 0 ( f i l t e r S l i d e r . kr / 4 0 . 0 ) ; b e t a = s q r t ( ( a 2 + 1 ) / s h e l f S l i d e r . kr ( a 1 ) 2 ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

216
357 358 359 360 361 362 363 364

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


b0 = b1 b2 a0 a1 a2 ( a + 1) + b e t a sn ; = ( 2 ( ( a 1) ) ) / b0 ; = ( ( a + 1) b e t a sn ) /b0 ; = a (( a + 1) + b e t a sn ) /b0 ; = ( 2 a ( ( a 1 ) ) ) / b0 ; = a (( a + 1) b e t a sn ) /b0 ; ( a 1) cs ( a + 1) cs ( a 1) cs + ( a 1) cs + ( a + 1) cs + ( a 1) cs

SOS . a r ( input , a0 , a1 , a2 , b1 . neg , b2 . neg ) ; } , h i g h S h e l f B o x . kr (0) ) ;

365 366 367

Mix . a r ( [ l p f s i g , h p f s i g , b p f s i g , n o t c h s i g , peakingEQ sig , l o w S h e l f s i g , highShelf sig ]) ;

368 369 370 371 372 373 374 375 376 377 378 379

} ,0.1) ;

} , { ( f i l e n a m e ++ not found . \ n ) . p o s t } ) ; w. c l o s e ;

A.10.
1 2 3 4 5 6 7 8 9 (

SuperCollider: Compresi on
// Compresi o n de a m p l i t u d var w ; var c a p t i o n 1 , c a p t i o n 2 , c a p t i o n 3 , c a p t i o n f b S l i d e r , captionddSlider ; var in1Box , in2Box , in3Box , c a p t i o n S o u r c e ; var applyBox ; var c a p t i o n g a i n S l i d e r , g a i n S l i d e r , gainNum ; var c a p t i o n r a t i o S l i d e r , r a t i o S l i d e r , ratioNum ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.10. SUPERCOLLIDER: COMPRESION


10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 var var var var var var var var var var var

217

c a p t i o n t h r S l i d e r , t h r S l i d e r , thrNum ; c a p t i o n a t t a c k S l i d e r , a t t a c k S l i d e r , attackNum ; c a p t i o n r e l e a s e S l i d e r , r e l e a s e S l i d e r , releaseNum ; c a p t i o n d e l a y S l i d e r , d e l a y S l i d e r , delayNum ; ampview , ampdbview , captionampview , captionampdbview ; o r i g i n a l v i e w , compressedview , c a p t i o n o r i g i n a l v i e w , captioncompressedview ; est amp box , e s t a m p l a b e l ; attack coef label , r ele ase co ef la bel , attack coef box , release coef box ; rect db label , rect db box , r e c t l a b e l , rect box ; f a c t o r l a b e l , factor box , output label , output box ; b i a s l a b e l , bias box , input db label , input db box ;

var f i l e n a m e , sound , s i g n a l ; var f o r e c o l o r ; var a t t a c k c o e f ; var r e l e a s e c o e f ; var x o f f 1 , x o f f 2 ; var ftoW ; // c o n v e r t dB t o a m p l i t u d e var a t o d b ; var dBtoA , dB to A ;

var s h o w v a l u e i n b o x ; dBtoA = { a r g d e c i b e l s ; r = 0.5011872336; r 10( d e c i b e l s / 2 0 . 0 ) ; } ; // 96 d e c i b e l s s c a l e dB to A = { a r g d e c i b e l s ; r = 0.008229747050; r 10( d e c i b e l s / 2 0 . 0 ) ; } ; // 96 d e c i b e l s s c a l e a t o d b = { a r g amp ; r = 0.008229747050; 20 l o g (amp/ r ) ; } ; // H e r t z t o r a d i a n f r e q u e n c y ftoW = { a r g h e r t z ; 2 p i ( h e r t z / Synth . sampleRate ) ; } ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

218
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

// Show any s i g n a l v a l u e on a number box s h o w v a l u e i n b o x = { a r g input , box , p e r i o d ; S e q u e n c e r . kr ( { var v a l ; val = input . p o l l ; box . v a l u e = v a l ; val } , Impulse . kr ( p e r i o d ) ) ; } ;

// GUI Window w = GUIWindow . new ( Compressor >>> Rodrigo F . Cadiz , Rect . newBy ( 5 0 0 , 7 0 , 550 , 650) ) ; w . b ac k C o l or = C o l o r . new ( 9 9 , 1 3 0 , 1 6 0 ) ;

// O f f s e t s xoff1 = 10; xoff2 = 250; // C o l o r s f o r e c o l o r = C o l o r . new ( 2 5 5 , 2 5 5 , 0 ) ; // Various l a b e l s c a p t i o n 1 = S t r i n g V i e w . new ( 2 0 ) , Advanced Audio S i g n a l P r o c e s s i n g ) ; caption1 . labelColor = f o r e c a p t i o n 2 = S t r i n g V i e w . new ( 20) , Assignment 3 : Compressor ) ; caption2 . labelColor = f o r e c a p t i o n 3 = S t r i n g V i e w . new ( 2 0 ) , Rodrigo F . Cadiz ) ; caption3 . labelColor = f o r e

w, Rect . newBy ( x o f f 1 , 1 0 , 2 2 8 ,

color ; w, Rect . newBy ( x o f f 1 , 3 0 , 3 2 8 ,

color ; w, Rect . newBy ( x o f f 1 , 5 0 , 1 2 8 ,

color ;

// I n p u t Gain c a p t i o n g a i n S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 10 , 235 , 20) , Input g a i n [ dB ] ) ; g a i n S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 0 , 2 3 0 , 20 ) , Mix , 0 , 30 , 6 , 1 , l i n e a r ) ; gainNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 3 0 , 5 0 , 20 ) , NumericalView , 0 , 30 , 6 , 1 , l i n e a r ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.10. SUPERCOLLIDER: COMPRESION


99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 gainNum . ba c k C o lo r = f o r e c o l o r ; g a i n S l i d e r . a c t i o n = { gainNum . v a l u e = g a i n S l i d e r . v a l u e } ;

219

// Compression r a t i o c a p t i o n r a t i o S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 60 , 235 , 20) , Compression r a t i o ) ; r a t i o S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 8 0 , 2 3 0 , 20 ) , Mix , 1 . 0 , 1 . 0 , 1 0 . 0 , 0 . 1 , l i n e a r ) ; ratioNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 8 0 , 5 0 , 20 ) , NumericalView , 1 . 0 , 1 . 0 , 1 0 . 0 , 0 . 1 , l i n e a r ) ; ratioNum . ba c k C o lo r = f o r e c o l o r ; r a t i o S l i d e r . a c t i o n = { ratioNum . v a l u e = r a t i o S l i d e r . v a l u e } ;

// T h r e s h o l d c a p t i o n t h r S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 110 , 235 , 20) , T h r e s h o l d [ dB ] ) ; t h r S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 3 0 , 2 3 0 , 20 ) , Mix , 3 6 . 0 , 0 . 0 , 9 6 . 0 , 1 , l i n e a r ) ; thrNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 3 0 , 5 0 , 20 ) , NumericalView , 3 6 . 0 , 0 . 0 , 9 6 . 0 , 1 , l i n e a r ) ; thrNum . ba c k C ol o r = f o r e c o l o r ; t h r S l i d e r . a c t i o n = { thrNum . v a l u e = t h r S l i d e r . v a l u e } ;

// A t t a c k time c a p t i o n a t t a c k S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 160 , 235 , 2 0 ) , Attack time [ msec ] ) ; a t t a c k S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 8 0 , 2 3 0 , 20 ) , Mix , 0 . 1 , 0 . 0 0 1 , 4 0 . 0 , 0 . 0 0 0 1 , e x p o n e n t i a l ) ; attackNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 8 0 , 5 0 , 20 ) , NumericalView , 1 0 . 0 , 0 . 0 0 1 , 4 0 . 0 , 0 . 0 0 0 1 , e x p o n e n t i a l ) ; attackNum . b ac k C o l or = f o r e c o l o r ; a t t a c k S l i d e r . a c t i o n = { attackNum . v a l u e = a t t a c k S l i d e r . value }; // R e l e a s e time c a p t i o n r e l e a s e S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 210 , 235 ,

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

220
137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

2 0 ) , R e l e a s e time [ msec ] ) ; r e l e a s e S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 3 0 , 2 3 0 , 20 ) , Mix , 0 . 1 , 0 . 0 0 1 , 5 0 0 . 0 , 0 . 0 0 0 1 , e x p o n e n t i a l ) ; releaseNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 230 , 50 , 20 ) , NumericalView , 5 0 . 0 , 0 . 0 0 1 , 5 0 0 . 0 , 0 . 0 0 0 1 , e x p o n e n t i a l ); releaseNum . ba c k C o lo r = f o r e c o l o r ; r e l e a s e S l i d e r . a c t i o n = { releaseNum . v a l u e = r e l e a s e S l i d e r . value }; // Delay time c a p t i o n d e l a y S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 260 , 235 , 20) , Delay time [ msec ] ) ; d e l a y S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 8 0 , 2 3 0 , 20 ) , Mix , 5 0 . 0 , 0 . 0 , 5 0 0 . 0 , 0 . 0 1 , l i n e a r ) ; delayNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 2 8 0 , 5 0 , 20 ) , NumericalView , 5 0 . 0 , 0 . 0 , 5 0 0 . 0 , 0 . 0 1 , l i n e a r ) ; delayNum . ba c k C o lo r = f o r e c o l o r ; d e l a y S l i d e r . a c t i o n = { delayNum . v a l u e = d e l a y S l i d e r . v a l u e } ;

// Number b o x e s f o r v a r i a b l e s e s t a m p l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 207 , 150 , 20) , Estimated a m p l i t u d e [ dB ] ) ; e s t a m p b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,207 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 0 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; a t t a c k c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 230 , 150 , 20) , Attack time c o e f f i c i e n t ) ; a t t a c k c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,230 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 . 5 , 0 . 0 0 0 0 1 , l i n e a r ) ; r e l e a s e c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 253 , 150 , 20) , R e l e a s e time c o e f f i c i e n t [ dB ] ) ; r e l e a s e c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,253 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 . 5 , 0 . 0 0 0 0 1 , l i n e a r ) ; r e c t l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 2 7 6 , 150 , 20) , Rectified signal [ lin ] ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.10. SUPERCOLLIDER: COMPRESION


172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205

221

r e c t b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,276 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 . 5 , 0 . 0 0 0 1 , l i n e a r ) ; r e c t d b l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 300 , 150 , 20) , R e c t i f i e d s i g n a l [ dB ] ) ; r e c t d b b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,300 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 9 6 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; f a c t o r l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 3 2 4 , 150 , 20) , Amplitude c o r r e c t i o n ) ; f a c t o r b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,324 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 5 0 0 , 0 . 0 0 0 1 , l i n e a r ) ; o u t p u t l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 3 4 7 , 150 , 20) , Output s i g n a l [ l i n ] ) ; o u t p u t b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,347 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 3 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; i n p u t d b l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 324 , 125 , 20) , I n p ut s i g n a l [ dB ] ) ; i n p u t d b b o x = NumericalView . new ( w, Rect . newBy ( x o f f 2 +160 ,324 ,50 ,20 ) , bias , 0.0 , 0.0 , 100.0 , 0.001 , linear ) ; b i a s l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 4 7 , 125 , 20) , Bias ) ; b i a s b o x = NumericalView . new ( w, Rect . newBy ( x o f f 2 +160 ,347 ,50 ,20 ) , bias , 0.0 , 0.0 , 100.0 , 0.001 , linear ) ;

// Apply c omp ress or applyBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 7 7 , 2 3 0 , 20 ) , Apply c o m p r e s s o r , 1 , 0 , 1 , 0 , l i n e a r ) ; // S e l e c t s o u r c e c a p t i o n S o u r c e = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 1 0 0 , 235 , 20) , Select source ) ; captionSource . labelColor = f o r e c o l o r ; in1Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 2 0 , 2 3 0 , 20 ) , Sound f i l e , 1 , 0 , 1 , 0 , l i n e a r ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

222
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 in2Box 20 Sinusoid , in3Box 20 BrownNoise

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


= CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 4 0 , 2 3 0 , ), 0, 0, 1, 0, linear ) ; = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 6 0 , 2 3 0 , ), , 0, 0, 1, 0, linear ) ;

// S c o p e s captionampview = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 370 , 235 , 20) , RMS e s t i m a t o r ) ; ampview = ScopeView . new ( w, Rect . newBy ( x o f f 1 , 3 9 5 , 2 0 0 , 100) , 4410 , 0 , 1) ; captionampdbview = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 500 , 235 , 20) , RMS e s t i m a t o r [ dB ] ) ; ampdbview = ScopeView . new ( w, Rect . newBy ( x o f f 1 , 5 2 5 , 200 , 100) , 4410 , 0 , 96) ; c a p t i o n o r i g i n a l v i e w = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 370 , 235 , 20) , O r i g i n a l s i g n a l ) ; o r i g i n a l v i e w = ScopeView . new ( w, Rect . newBy ( x o f f 2 , 3 9 5 , 200 , 100) , 4410 , 1, 1 ) ; c a p t i o n c o m p r e s s e d v i e w = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 500 , 235 , 2 0 ) , Compressed s i g n a l ) ; c om p re s se dv i ew = ScopeView . new ( w, Rect . newBy ( x o f f 2 , 525 , 200 , 100) , 4 4 1 0 , 1, 1 ) ; f i l e n a m e = : Sounds : r e d o b l e s . a i f f ; sound = S o u n d F i l e . new ; i f ( sound . r e a d ( f i l e n a m e ) , { Synth . p l a y ( { var s i g n a l ; // f o r a u d i o f i l e stream var input , input1 , input2 , i n p u t 3 ; // for e f f e c t s processor var r e c t , r e c t d b , d e r i v a t i v e , est amp , est amp db ; var b i a s , d e l a y e d i n p u t ; s i g n a l = sound . data . a t ( 0 ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.10. SUPERCOLLIDER: COMPRESION


243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271

223

// D i f f e r e n t s o u r c e s i n p u t 1 = PlayBuf . a r ( s i g n a l , sound . sampleRate , 1 , 0 , 0 , s i g n a l . s i z e 2) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; i n p u t 2 = SinOsc . a r ( 2 0 0 , 0 . 1 ) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; i n p u t 3 = BrownNoise . a r ( 0 . 1 ) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; // Source mix i n p u t = Mix . a r ( [ i n p u t 1 in1Box . kr , i n p u t 2 in2Box . kr , i n p u t 3 in3Box . kr ] ) ;

// F i l t e r c o e f f i c i e n t s a t t a c k c o e f = 10( 2.0/(( a t t a c k S l i d e r . kr 0 . 0 0 1 ) Synth . sampleRate ) ) ; r e l e a s e c o e f = 10( 2.0/(( r e l e a s e S l i d e r . kr 0 . 0 0 1 ) Synth . sampleRate ) ) ;

// R e c t i f y t h e s i g n a l r e c t = abs ( i n p u t ) ; rect db = a to db . value ( rect ) ; // Take d e r i v a t i v e // d e r i v a t i v e = HPZ1 . ar ( r e c t d b ) ; d e r i v a t i v e = HPZ1 . a r ( r e c t ) ;

272

// F i l t e r e d s i g n a l // e s t a m p = OnePole . ar ( r e c t , i f ( derivative > 0 , attack coef , release coef ) , // if ( derivative > 0 , (1.0 attack coef ) , (1.0 release coef ) ) ) ;

273 274 275 276 277 278 release coef )) ;

// e s t a m p = OnePole . ar ( r e c t d b , i f ( derivative > 0 , attack coef ,

est amp = OnePole . a r ( r e c t , i f ( derivative > 0 , attack coef , release coef )) ;

279

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

224
280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


// e s t a m p = OnePole . ar ( r e c t d b , attack coef ) ; // e s t a m p d b = ampdb ( e s t a m p ) ; est amp db = a t o d b . v a l u e ( est amp ) ; // e s t a m p d b = 20 l o g ( e s t a m p ) ;

b i a s = ( 9 6 ( t h r S l i d e r . kr + ( ( 9 6 . 0 t h r S l i d e r . kr ) / r a t i o S l i d e r . kr ) ) ) ; // Peep . k r ( b i a s , b i a s ) ; // Peep . k r ( d e r i v a t i v e , d e r i v a t i v e , 1 0 ) ; // Peep . k r ( r e c t d B ) , r e c t i n dB , 1 0 ) ; // Peep . k r ( est amp , e s t i m a t e d a m p l i t u d e i n dB , 1 0 ) ; // Peep . k r ( a t t a c k c o e f , a t t a c k , 1 ) ; // Peep . k r ( r e l e a s e c o e f , r e l e a s e , 1 ) ; // b i a s = 0 ;

//ampestNum . v a l u e = e s t a m p ; a = b = c = d = // d // e // e e = max( est amp db , t h r S l i d e r . kr ) ; a t h r S l i d e r . kr ; b ( 1 ( 1 / r a t i o S l i d e r . kr ) ) ; bias c ; = c; = dB to A . v a l u e ( d ) ; = dbamp ( d ) ; 10(d / 2 0 . 0 ) ;

d e l a y e d i n p u t = DelayN . a r ( input , 5 0 0 0 . 0 0 1 , d e l a y S l i d e r . kr ) ; s h o w v a l u e i n b o x . v a l u e ( g a i n S l i d e r . kr +90 , i n p u t d b b o x , 7 ) ; show value in box . value ( bias , bias box , 7 ) ; s h o w v a l u e i n b o x . v a l u e ( est amp db , est amp box , 7 ) ; show value in box . value ( attack coef , attack coef box ,5) ; show value in box . value ( r e l e a s e c o e f , release coef box ,5) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343

225

show value in box . value ( rect , rect box , 7 ) ; show value in box . value ( rect db , rect db box , 7 ) ; show value in box . value ( e , factor box , 7 ) ; show value in box . value ( delayed input e applyBox . kr , output box , 7 ) ;

Scope . a r ( ampview , est amp ) ; Scope . a r ( ampdbview , est amp db ) ; Scope . a r ( o r i g i n a l v i e w , d e l a y e d i n p u t ) ; Scope . a r ( compressedview , d e l a y e d i n p u t e applyBox . kr ) ; Mix . a r ( [ d e l a y e d i n p u t e applyBox . kr , d e l a y e d i n p u t ( 1 . 0 applyBox . kr ) ] ) ;

}) ;

} , { ( f i l e n a m e ++ not found . \ n ) . p o s t } ) ; w. c l o s e ;

A.11.
1 2 3 4 5 6 7 8 9 10 11 12 13 (

SuperCollider: Reverberaci on
// R e v e r b e r a c i on var w ; var c a p t i o n 1 , c a p t i o n 2 , c a p t i o n 3 , c a p t i o n f b S l i d e r , captionddSlider ; var in1Box , in2Box , in3Box , in4Box , c a p t i o n S o u r c e ; var applyBox ; var c a p t i o n g a i n S l i d e r , g a i n S l i d e r , gainNum ; var c a p t i o n r e v e r b S l i d e r , r e v e r b S l i d e r , reverbNum ; var c a p t i o n p r e d e l a y S l i d e r , p r e d e l a y S l i d e r , predelayNum ; var c a p t i o n b w S l i d e r , b w S l i d e r ,bwNum; var c a p t i o n d e c a y S l i d e r , d e c a y S l i d e r , decayNum ; var c a p t i o n d a m p i n g S l i d e r , d a m p i n g S l i d e r , dampingNum ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

226
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 var var var var var var var var

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


c a p t i o n i n d i f f 1 S l i d e r , i n d i f f 1 S l i d e r , indiff1Num ; c a p t i o n i n d i f f 2 S l i d e r , i n d i f f 2 S l i d e r , indiff2Num ; c a p t i o n d e c d i f f 1 S l i d e r , d e c d i f f 1 S l i d e r , decdiff1Num ; c a p t i o n d e c d i f f 2 S l i d e r , d e c d i f f 2 S l i d e r , decdiff2Num ; c a p t i o n r a t e 1 S l i d e r , r a t e 1 S l i d e r , rate1Num ; c a p t i o n r a t e 2 S l i d e r , r a t e 2 S l i d e r , rate2Num ; c a p t i o n e x c u r s i o n S l i d e r , e x c u r s i o n S l i d e r , excursionNum ; c a p t i o n d e c a y t i m e S l i d e r , d e c a y t i m e S l i d e r , decaytimeNum ;

var view1 , view2 , view3 , view4 , c a p t i o n v i e w 1 , c a p t i o n v i e w 2 , c a p t i o n v i e w 3 , captionview4 ; var view5 , view6 , c a p t i o n v i e w 5 , c a p t i o n v i e w 6 ;

var var var var var var var var

diff1 coef label , diff1 coef box ; diff2 coef label , diff2 coef box ; diff3 coef label , diff3 coef box ; diff4 coef label , diff4 coef box ; decdiff1 coef label , decdiff1 coef decdiff2 coef label , decdiff2 coef decdiff3 coef label , decdiff3 coef decdiff4 coef label , decdiff4 coef

box box box box

; ; ; ;

var f i l e n a m e , sound , s i g n a l ; var f o r e c o l o r ; var a t t a c k c o e f ; var r e l e a s e c o e f ; var x o f f 1 , x o f f 2 , x o f f 3 ; var ftoW ; // c o n v e r t dB t o a m p l i t u d e var a t o d b ; var dBtoA , dB to A ; var c o n v e r t d e l a y , c o n v e r t s a m p l e , r e v t i m e ; var s h o w v a l u e i n b o x ; dBtoA = { a r g d e c i b e l s ; r = 0.5011872336; r 10( d e c i b e l s / 2 0 . 0 ) ; } ; // 96 d e c i b e l s s c a l e dB to A = { a r g d e c i b e l s ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 r = 0.008229747050; r 10( d e c i b e l s / 2 0 . 0 ) ; } ; // 96 d e c i b e l s s c a l e a t o d b = { a r g amp ; r = 0.008229747050; 20 l o g (amp/ r ) ; } ; // H e r t z t o r a d i a n f r e q u e n c y ftoW = { a r g h e r t z ; 2 p i ( h e r t z / Synth . sampleRate ) ; } ;

227

// Convert s a m p l e s t o d e l a y time revtime = { arg coef , delay ; ( 6.907755279 d e l a y ) / l o g ( c o e f ) ; } ; // Convert s a m p l e s t o 4 4 . 1 s a m p l i n g r a t e convert sample = { arg samples ; ( samples (44100/29761) ) . c e i l ; } ; // Convert d e l a y s t o 4 4 . 1 s a m p l i n g r a t e c o n v e r t d e l a y = { arg delay ; delay /29761;};

// Show any s i g n a l v a l u e on a number box s h o w v a l u e i n b o x = { a r g input , box , p e r i o d ; S e q u e n c e r . kr ( { var v a l ; val = input . p o l l ; box . v a l u e = v a l ; val } , Impulse . kr ( p e r i o d ) ) ; } ;

// GUI Window w = GUIWindow . new ( R e v e r b e r a t o r >>> Rodrigo F . Cadiz , Rect . newBy ( 2 0 0 , 70 , 850 , 650) ) ; w . b ac k C o l or = C o l o r . new ( 9 9 , 1 3 0 , 1 6 0 ) ;

// O f f s e t s xoff1 = 10; xoff2 = 250; xoff3 = 550;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

228
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


// C o l o r s f o r e c o l o r = C o l o r . new ( 2 5 5 , 2 5 5 , 0 ) ;

// Various l a b e l s c a p t i o n 1 = S t r i n g V i e w . new ( 2 0 ) , Advanced Audio S i g n a l P r o c e s s i n g ) ; caption1 . labelColor = f o r e c a p t i o n 2 = S t r i n g V i e w . new ( 20) , Assignment 4 : R e v e r b e r a t o r ) ; caption2 . labelColor = f o r e c a p t i o n 3 = S t r i n g V i e w . new ( 2 0 ) , Rodrigo F . Cadiz ) ; caption3 . labelColor = f o r e

w, Rect . newBy ( x o f f 1 , 1 0 , 2 2 8 ,

color ; w, Rect . newBy ( x o f f 1 , 3 0 , 3 2 8 ,

color ; w, Rect . newBy ( x o f f 1 , 5 0 , 1 2 8 ,

color ;

// I n p u t Gain c a p t i o n g a i n S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 10 , 235 , 20) , Dry g a i n [ dB ] ) ; g a i n S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 0 , 2 3 0 , 20 ) , Mix , 11 , 60 , 6 , 1 , l i n e a r ) ; gainNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 3 0 , 5 0 , 20 ) , NumericalView , 11 , 60 , 6 , 1 , l i n e a r ) ; gainNum . ba c k C o lo r = f o r e c o l o r ; g a i n S l i d e r . a c t i o n = { gainNum . v a l u e = g a i n S l i d e r . v a l u e } ;

// Reverb g a i n c a p t i o n r e v e r b S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 60 , 235 , 20) , Reverb g a i n [ dB ] ) ; r e v e r b S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 8 0 , 2 3 0 , 20 ) , Mix , 0 , 60 , 6 , 1 , l i n e a r ) ; reverbNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 8 0 , 5 0 , 20 ) , NumericalView , 0 , 60 , 6 , 1 , l i n e a r ) ; reverbNum . b a c k C ol o r = f o r e c o l o r ; r e v e r b S l i d e r . a c t i o n = { reverbNum . v a l u e = r e v e r b S l i d e r . value };

// P r e d e l a y

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183

229

c a p t i o n p r e d e l a y S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 110 , 235 , 20) , Predelay [ s ] ) ; p r e d e l a y S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 3 0 , 2 3 0 , 20 ) , Mix , 0 . 0 2 3 1 , 0 . 0 , 0 . 2 , 0 . 0 0 0 1 , l i n e a r ) ; predelayNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 130 , 50 , 20 ) , NumericalView , 0 . 0 2 3 1 , 0 . 0 , 0 . 2 , 0 . 0 0 0 1 , l i n e a r ) ; predelayNum . b a c k C ol o r = f o r e c o l o r ; p r e d e l a y S l i d e r . a c t i o n = { predelayNum . v a l u e = predelaySlider . value };

// Bandwidth c a p t i o n b w S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 160 , 235 , 20) , Bandwidth ) ; b w S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 8 0 , 2 3 0 , 20 ) , Mix , 0 . 7 9 9 5 , 0 . 0 0 0 0 1 , 0 . 9 9 9 9 9 , 0 . 0 0 0 0 1 , l i n e a r ) ; bwNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 8 0 , 5 0 , 20 ) , NumericalView , 0 . 7 9 9 5 , 0 . 0 0 0 0 0 1 , 0 . 9 9 9 9 9 , 0 . 0 0 0 0 1 , l i n e a r ) ; bwNum. b a c k Co l o r = f o r e c o l o r ; b w S l i d e r . a c t i o n = { bwNum. v a l u e = b w S l i d e r . v a l u e } ; // Decay c a p t i o n d e c a y S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 210 , 235 , 20) , Decay f a c t o r ) ; d e c a y S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 3 0 , 2 3 0 , 20 ) , Mix , 0 . 7 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; decayNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 2 3 0 , 5 0 , 20 ) , NumericalView , 0 . 7 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; decayNum . b a c k Co l o r = f o r e c o l o r ; d e c a y S l i d e r . a c t i o n = { decayNum . v a l u e = d e c a y S l i d e r . v a l u e } ; // Damping c a p t i o n d a m p i n g S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 260 , 235 , 2 0 ) , Damping ) ; d a m p i n g S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 8 0 , 2 3 0 , 20 ) , Mix , 0 . 3 , 0 . 0 , 1 . 0 , 0 . 0 0 0 0 0 1 , l i n e a r ) ; dampingNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 280 , 50 ,

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

230
184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

20 ) , NumericalView , 0 . 3 , 0 . 0 , 1 . 0 , 0 . 0 0 0 0 0 1 , l i n e a r ) ; dampingNum . b a c kC o l o r = f o r e c o l o r ; d a m p i n g S l i d e r . a c t i o n = { dampingNum . v a l u e = d a m p i n g S l i d e r . value }; // I n p u t d i f f 1 c a p t i o n i n d i f f 1 S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff3 , 10 , 235 , 2 0 ) , Input d i f f 1 ) ; i n d i f f 1 S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 3 0 , 2 3 0 , 20 ) , Mix , 0 . 9 4 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; i n d i f f 1 N u m = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 3 0 , 5 0 , 20 ) , NumericalView , 0 . 9 4 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; i n d i f f 1 N u m . b a ck C o l o r = f o r e c o l o r ; i n d i f f 1 S l i d e r . a c t i o n = { indiff1Num . value = i n d i f f 1 S l i d e r . value }; // I n p u t d i f f 2 c a p t i o n i n d i f f 2 S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff3 , 60 , 235 , 2 0 ) , Input d i f f 2 ) ; i n d i f f 2 S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 8 0 , 2 3 0 , 20 ) , Mix , 0 . 9 1 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; i n d i f f 2 N u m = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 8 0 , 5 0 , 20 ) , NumericalView , 0 . 9 1 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; i n d i f f 2 N u m . b a ck C o l o r = f o r e c o l o r ; i n d i f f 2 S l i d e r . a c t i o n = { indiff2Num . value = i n d i f f 2 S l i d e r . value }; // Decay d i f f 1 c a p t i o n d e c d i f f 1 S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff3 , 110 , 235 , 2 0 ) , Decay d i f f 1 ) ; d e c d i f f 1 S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 1 3 0 , 2 3 0 , 20 ) , Mix , 0 . 9 6 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; decdiff1Num = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 130 , 50 , 20 ) , NumericalView , 0 . 9 6 5 , 0 . 0 , 1 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; decdiff1Num . b a c k Co l o r = f o r e c o l o r ; d e c d i f f 1 S l i d e r . a c t i o n = { decdiff1Num . v a l u e = d e c d i f f 1 S l i d e r . value }; // Decay d i f f 2

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254

231

c a p t i o n d e c d i f f 2 S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff3 , 160 , 235 , 2 0 ) , Decay d i f f 2 ) ; d e c d i f f 2 S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 1 8 0 , 2 3 0 , 20 ) , Mix , 0 . 8 1 5 , 0 . 2 5 , 0 . 8 5 , 0 . 0 0 0 1 , l i n e a r ) ; decdiff2Num = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 180 , 50 , 20 ) , NumericalView , 0 . 8 1 5 , 0 . 2 5 , 0 . 8 5 , 0 . 0 0 0 1 , l i n e a r ) ; decdiff2Num . b a c kC o l o r = f o r e c o l o r ; d e c d i f f 2 S l i d e r . a c t i o n = { decdiff2Num . v a l u e = d e c d i f f 2 S l i d e r . value }; // Rate 1 c a p t i o n r a t e 1 S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 3 , 210 , 235 , 20) , Osc . Rate 1 [ Hz ] ) ; r a t e 1 S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 2 3 0 , 2 3 0 , 20 ) , Mix , 0 . 0 3 2 , 0 . 0 , 0 . 3 , 0 . 0 0 1 , l i n e a r ) ; rate1Num = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 2 3 0 , 5 0 , 20 ) , NumericalView , 0 . 0 3 2 , 0 . 0 , 0 . 3 , 0 . 0 0 1 , l i n e a r ) ; rate1Num . b ac k C o l or = f o r e c o l o r ; r a t e 1 S l i d e r . a c t i o n = { rate1Num . v a l u e = r a t e 1 S l i d e r . v a l u e } ; // Rate 2 c a p t i o n r a t e 1 S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 3 , 260 , 235 , 20) , Osc . Rate 2 [ Hz ] ) ; r a t e 2 S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 2 8 0 , 2 3 0 , 20 ) , Mix , 0 . 1 0 6 , 0 . 0 , 0 . 3 , 0 . 0 0 1 , l i n e a r ) ; rate2Num = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 2 8 0 , 5 0 , 20 ) , NumericalView , 0 . 1 0 6 , 0 . 0 , 0 . 3 , 0 . 0 0 1 , l i n e a r ) ; rate2Num . b ac k C o l or = f o r e c o l o r ; r a t e 2 S l i d e r . a c t i o n = { rate2Num . v a l u e = r a t e 2 S l i d e r . v a l u e } ; // E x c u r s i o n c a p t i o n e x c u r s i o n S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff3 , 310 , 235 , 20) , Excursion ) ; e x c u r s i o n S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 3 , 3 3 0 , 2 3 0 , 20 ) , Mix , 1 1 , 0 , 16 , 1 , l i n e a r ) ; excursionNum = NumericalView . new ( w, Rect . newBy ( x o f f 3 +235 , 330 , 50 , 20 ) , NumericalView , 1 1 , 0 , 1 6 , 1 , l i n e a r ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

232
255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


excursionNum . b a c kC o l o r = f o r e c o l o r ; e x c u r s i o n S l i d e r . a c t i o n = { excursionNum . v a l u e = ex c ur si on Sl id er . value };

// Decay time c a p t i o n d e c a y t i m e S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( xoff2 , 310 , 235 , 2 0 ) , Decay time [ s ] ) ; d e c a y t i m e S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 3 0 , 2 3 0 , 20 ) , Mix , 2 . 0 , 0 . 0 1 , 4 . 0 , 0 . 0 0 1 , l i n e a r ) ; decaytimeNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 330 , 50 , 20 ) , NumericalView , 2 . 0 , 0 . 0 1 , 4 . 0 , 0 . 0 0 1 , l i n e a r ) ; decaytimeNum . b a c kC o l o r = f o r e c o l o r ; d e c a y t i m e S l i d e r . a c t i o n = { decaytimeNum . v a l u e = decaytimeSlider . value }; // Number b o x e s f o r v a r i a b l e s d i f f 1 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 200 , 150 , 20) , Input d i f f 1 [ s ] ) ; d i f f 1 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,200 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; d i f f 2 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 220 , 150 , 20) , Input d i f f 2 [ s ] ) ; d i f f 2 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,220 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; d i f f 3 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 240 , 150 , 20) , Input d i f f 3 [ s ] ) ; d i f f 3 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,240 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; d i f f 4 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 260 , 150 , 20) , Input d i f f 4 [ s ] ) ; d i f f 4 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 +160 ,260 ,50 ,20 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329

233

d e c d i f f 1 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( xoff1 , 280 , 150 , 2 0 ) , Decay d i f f 1 [ s ] ) ; d e c d i f f 1 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 + 1 6 0 , 2 8 0 , 5 0 , 2 0 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; d e c d i f f 2 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( xoff1 , 300 , 150 , 2 0 ) , Decay d i f f 2 [ s ] ) ; d e c d i f f 2 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 + 1 6 0 , 3 0 0 , 5 0 , 2 0 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; d e c d i f f 3 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( xoff1 , 320 , 150 , 2 0 ) , Decay d i f f 3 [ s ] ) ; d e c d i f f 3 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 + 1 6 0 , 3 2 0 , 5 0 , 2 0 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ; d e c d i f f 4 c o e f l a b e l = S t r i n g V i e w . new ( w, Rect . newBy ( xoff1 , 340 , 150 , 2 0 ) , Decay d i f f 4 [ s ] ) ; d e c d i f f 4 c o e f b o x = NumericalView . new ( w, Rect . newBy ( x o f f 1 + 1 6 0 , 3 4 0 , 5 0 , 2 0 ) , amp , 0 . 0 , 0 . 0 , 1 0 . 0 , 0 . 0 0 0 1 , l i n e a r ) ;

// Apply c omp ress or applyBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 7 7 , 2 3 0 , 20 ) , Apply r e v e r b e r a t i o n , 1 , 0 , 1 , 0 , l i n e a r ) ; // S e l e c t s o u r c e c a p t i o n S o u r c e = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 1 0 0 , 235 , 20) , Select source ) ; captionSource . labelColor = f o r e c o l o r ; in1Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 2 0 , 2 3 0 , 20 ) , Sound f i l e , 1 , 0 , 1 , 0 , l i n e a r ) ; in2Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 4 0 , 2 3 0 , 20 ) , Sinusoid , 0 , 0 , 1 , 0 , l i n e a r ) ; in3Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 6 0 , 2 3 0 , 20 ) , BrownNoise , 0 , 0 , 1 , 0 , l i n e a r ) ; in4Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 1 , 1 8 0 , 2 3 0 , 20 ) , Impulses , 0 , 0 , 1 , 0 , l i n e a r ) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

234
330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 // S c o p e s

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

c a p t i o n v i e w 1 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 3 7 0 , 235 , 20) , Original signal ) ; view1 = ScopeView . new ( w, Rect . newBy ( x o f f 1 , 3 9 5 , 2 0 0 , 1 0 0 ) , 4 4 1 0 , 1, 1 ) ; c a p t i o n v i e w 2 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 5 0 0 , 235 , 20) , S i g n a l a f t e r BW f i l t e r ) ; view2 = ScopeView . new ( w, Rect . newBy ( x o f f 1 , 5 2 5 , 2 0 0 , 1 0 0 ) , 4 4 1 0 , 1, 1 ) ; c a p t i o n v i e w 3 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 7 0 , 235 , 20) , Signal after diffusors ) ; view3 = ScopeView . new ( w, Rect . newBy ( x o f f 2 , 3 9 5 , 2 0 0 , 1 0 0 ) , 4 4 1 0 , 1, 1 ) ; // c a p t i o n v i e w 4 = S t r i n g V i e w . new ( w , Rect . newBy ( x o f f 2 , 500 , 235 , 20) , Compressed s i g n a l ) ; // v i e w 4 = ScopeView . new ( w , Rect . newBy ( x o f f 2 , 525 , 200 , 100) , 4410 , 1, 1) ; c a p t i o n v i e w 5 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 3 , 3 7 0 , 235 , 20) , Left c h a n n e l output ) ; view5 = ScopeView . new ( w, Rect . newBy ( x o f f 3 , 3 9 5 , 2 0 0 , 1 0 0 ) , 4 4 1 0 , 1, 1 ) ; c a p t i o n v i e w 6 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 3 , 5 0 0 , 235 , 20) , Right c h a n n e l output ) ; view6 = ScopeView . new ( w, Rect . newBy ( x o f f 3 , 5 2 5 , 2 0 0 , 1 0 0 ) , 4 4 1 0 , 1, 1 ) ; f i l e n a m e = : Sounds : r e d o b l e s . a i f f ; sound = S o u n d F i l e . new ; i f ( sound . r e a d ( f i l e n a m e ) , { Synth . p l a y ( { var s i g n a l ; // f o r a u d i o f i l e stream var input , input1 , input2 , input3 , i n p u t 4 ; // f o r e f f e c t s p r o c e s s o r var d i f f 1 , d i f f 2 , d i f f 3 , d i f f 4 ; var d e c d i f f 1 , d e c d i f f 2 , d e c d i f f 3 , d e c d i f f 4 ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406

235

var in2 , in3 , in4 , in5 , in6 , in7 , i n 8 ; var outL , outL2 , outL3 , outL4 , outL5 , outL6 , outL7 , outL1 ; var outR , outR2 , outR3 , outR4 , outR5 , outR6 , outR7 , outR1 ; var outL8 =0; var outR8 =0; var osc1 , osc2 , osc3 , o s c 4 ; var b u f f e r l e f t , b u f f e r r i g h t , delL , delR ;

s i g n a l = sound . data . a t ( 0 ) ; // D i f f e r e n t s o u r c e s i n p u t 1 = PlayBuf . a r ( s i g n a l , sound . sampleRate , 1 , 0 , 0 , s i g n a l . s i z e 2) ; i n p u t 2 = SinOsc . a r ( 2 0 0 , 0 . 1 ) ; i n p u t 3 = BrownNoise . a r ( 0 . 1 ) ; i n p u t 4 = Impulse . a r ( 1 0 0 , 0 . 2 ) ; // Source mix i n p u t = Mix . a r ( [ i n p u t 1 input2 input3 input4

in1Box . kr , in2Box . kr , in3Box . kr , in4Box . kr ] ) ;

// A m p l i f i c a t i o n f a c t o r in2 = 1.0 input ; // P r e d e l a y i n 3 = DelayN . a r ( in2 , 1 . 0 , p r e d e l a y S l i d e r . kr ) ; // F i r s t f i l t e r f o r b a n d w i d t h i n 4 = OnePole . a r ( in3 , ( 1 . 0 b w S l i d e r . kr ) ) ;

d i f f 1 = revtime . value ( i n d i f f 1 S l i d e r convert delay . value (142) ) ; d i f f 2 = revtime . value ( i n d i f f 1 S l i d e r convert delay . value (107) ) ; d i f f 3 = revtime . value ( i n d i f f 2 S l i d e r convert delay . value (379) ) ; d i f f 4 = revtime . value ( i n d i f f 2 S l i d e r convert delay . value (277) ) ;

. kr , . kr , . kr , . kr ,

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

236
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439

APENDICE A. EJEMPLOS EN SUPERCOLLIDER


// F i r s t d i f f u s i o n f i l t e r i n 5 = A l l p a s s N . a r ( in4 , 1 . 0 , c o n v e r t d e l a y . value (142) , d i f f 1 ) ; // Second d i f f u s i o n f i l t e r i n 6 = A l l p a s s N . a r ( in5 , 1 . 0 , c o n v e r t d e l a y . value (107) , d i f f 2 ) ; // Third d i f f u s i o n f i l t e r i n 7 = A l l p a s s N . a r ( in6 , 1 . 0 , c o n v e r t d e l a y . value (379) , d i f f 3 ) ; // Fourth d i f f u s i o n f i l t e r i n 8 = A l l p a s s N . a r ( in7 , 1 . 0 , c o n v e r t d e l a y . value (277) , d i f f 4 ) ;

b u f f e r l e f t = S i g n a l . new ( Synth . sampleRate 0 . 3 ) ; b u f f e r r i g h t = S i g n a l . new ( Synth . sampleRate 0 . 3 ) ; d e l L = TapN . a r ( b u f f e r l e f t , c o n v e r t d e l a y . value (3720) ) ; delR = TapN . a r ( b u f f e r r i g h t , convert delay . value (3163) ) ; decdiff1 = r e v t i m e . v a l u e ( d e c d i f f 1 S l i d e r . kr , c o n v e r t d e l a y . v a l u e (672+ e x c u r s i o n S l i d e r . kr ) ) ; decdiff2 = r e v t i m e . v a l u e ( d e c d i f f 1 S l i d e r . kr , c o n v e r t d e l a y . v a l u e (908+ e x c u r s i o n S l i d e r . kr ) ) ; d e c d i f f 3 = revtime . value ( d e c d i f f 2 S l i d e r . kr , c o n v e r t d e l a y . v a l u e ( 1 8 0 0 ) ) ; d e c d i f f 4 = revtime . value ( d e c d i f f 2 S l i d e r . kr , c o n v e r t d e l a y . v a l u e ( 2 6 5 6 ) ) ; outL2 = A l l p a s s N . a r ( delL , 1 . 0 , c o n v e r t d e l a y . v a l u e (672+ e x c u r s i o n S l i d e r . kr ) , d e c d i f f 1 . neg ) ; outR2 = A l l p a s s N . a r ( delR , 1 . 0 , c o n v e r t d e l a y . v a l u e (908+ e x c u r s i o n S l i d e r . kr ) , d e c d i f f 2 . neg ) ; o s c 1 = SinOsc . kr ( r a t e 1 S l i d e r . kr , 0 . 0 , convert delay . value (4453) 0.5) ; o s c 2 = SinOsc . kr ( r a t e 2 S l i d e r . kr , 0 . 0 , convert delay . value (4217) 0.5) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.11. SUPERCOLLIDER: REVERBERACION


440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472

237

outL3 = DelayN . a r ( outL2 , 1 . 0 , ( c o n v e r t d e l a y . v a l u e ( 4 4 5 3 )+o s c 1 ) ) ; outR3 = DelayN . a r ( outR2 , 1 . 0 , ( c o n v e r t d e l a y . v a l u e ( 4 2 1 7 )+o s c 2 ) ) ; outL4 = OnePole . a r ( outL3 , d a m p i n g S l i d e r . kr ) ; outR4 = OnePole . a r ( outR3 , d a m p i n g S l i d e r . kr ) ; outL5 = d e c a y S l i d e r . kr outL4 ; outR5 = d e c a y S l i d e r . kr outR4 ; outL6 = d e c a y S l i d e r . kr A l l p a s s N . a r ( outL5 , 1 . 0 , c o n v e r t d e l a y . v a l u e ( 1 8 0 0 ) , decdiff3 ) ; outR6 = d e c a y S l i d e r . kr A l l p a s s N . a r ( outR5 , 1 . 0 , c o n v e r t d e l a y . v a l u e ( 2 6 5 6 ) , decdiff4 ) ; outL1 = dBtoA . v a l u e ( r e v e r b S l i d e r . kr ) applyBox . kr ( i n 8 + outR6 ) ; outR1 = dBtoA . v a l u e ( r e v e r b S l i d e r . kr ) applyBox . kr ( i n 8 + outL6 ) ; DelayWr . a r ( b u f f e r l e f t , outL1 ) ; DelayWr . a r ( b u f f e r r i g h t , outR1 ) ;

show value in diff1 coef show value in diff2 coef show value in diff3 coef show value in diff4 coef

box . value ( d i f f 1 box ,7) ; box . value ( d i f f 2 box ,7) ; box . value ( d i f f 3 box ,7) ; box . value ( d i f f 4 box ,7) ;

, , , ,

show value in box . value ( decdiff1 decdiff1 coef box ,7) ; show value in box . value ( decdiff2 decdiff2 coef box ,7) ; show value in box . value ( decdiff3 decdiff3 coef box ,7) ; show value in box . value ( decdiff4 decdiff4 coef box ,7) ;

, , , ,

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

238
473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

Scope . a r ( view1 , i n p u t ) ; Scope . a r ( view2 , i n 4 ) ; Scope . a r ( view3 , i n 8 ) ; Scope . a r ( view5 , outL1 ) ; Scope . a r ( view6 , outR1 ) ; [ Mix . a r ( [ dBtoA . v a l u e ( g a i n S l i d e r . kr ) input , outL1 ] ) , Mix . a r ( [ dBtoA . v a l u e ( g a i n S l i d e r . kr ) input , outR1 ] ) ] ;

}) ;

} , { ( f i l e n a m e ++ not found . \ n ) . p o s t } ) ; w. c l o s e ;

A.12.

SuperCollider: Procesador de efectos gen erico

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

// P r o c e s a d o r de e f e c t o s g e n e r i c o // Rodrigo F . Cadiz // Codigo para S u p e r C o l l i d e r 2 var w ; var c a p t i o n 1 , c a p t i o n 2 , c a p t i o n 3 , c a p t i o n f b S l i d e r , c a p t i o n d d S l i d e r ; var c a p t i o n f r e q S l i d e r , c a p t i o n d e l a y S l i d e r , c a p t i o n m i x S l i d e r , captiongainSlider ; var vdBox , r a d i o 1 , r a n g e 1 ; var f r e q S l i d e r , d e l a y S l i d e r , m i x S l i d e r , g a i n S l i d e r , fbBox , f b S l i d e r , ddSlider ; var delayNum , freqNum , mixNum , gainNum , fbNum , ddNum ; var in1Box , in2Box , in3Box , c a p t i o n S o u r c e ; var f i l e n a m e , sound , s i g n a l ; var f o r e c o l o r ; var x o f f 1 , x o f f 2 ; // c o n v e r t dB t o a m p l i t u d e

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.12. SUPERCOLLIDER: PROCESADOR DE EFECTOS GENERICO 239


17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 var dBtoA ; dBtoA = { a r g d e c i b e l s ; r = 0 . 5 0 1 1 8 7 2 3 3 6 ; r 1 0 ( d e c i b e l s / 2 0 . 0 ) ;}; // GUI Window w = GUIWindow . new ( G e n e r i c E f f e c t s P r o c e s s o r >>> Rodrigo F . Cadiz , Rect . newBy ( 5 0 0 , 7 0 , 6 5 0 , 4 0 0 ) ) ; w . b a c k C ol o r = C o l o r . new ( 9 9 , 1 3 0 , 1 6 0 ) ; // O f f s e t s xoff1 = 10; xoff2 = 350; // C o l o r s f o r e c o l o r = C o l o r . new ( 2 5 5 , 2 5 5 , 0 ) ; // Various l a b e l s c a p t i o n 1 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 1 0 , 2 2 8 , 2 0 ) , Advanced Audio S i g n a l P r o c e s s i n g ) ; caption1 . labelColor = f o r e c o l o r ; c a p t i o n 2 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 3 0 , 3 2 8 , 2 0 ) , Generic E f f e c t s Processor ) ; caption2 . labelColor = f o r e c o l o r ; c a p t i o n 3 = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 5 0 , 1 2 8 , 2 0 ) , Rodrigo F . Cadiz ) ; caption3 . labelColor = f o r e c o l o r ; // Mix c a p t i o n m i x S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 9 0 , 2 3 5 , 2 0 ) , Output Mix : 0 . 0 ( dry ) 1 . 0 ( wet ) ) ; m i x S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 1 , 1 1 0 , 2 3 0 , 20 ) , Mix , 0 . 5 , 0 . 0 , 1 . 0 , 0 . 1 , l i n e a r ) ; mixNum = NumericalView . new ( w, Rect . newBy ( x o f f 1 +235 , 1 1 0 , 5 0 , 20 ) , NumericalView , 0 . 5 , 0 . 0 , 1 . 0 , 0 . 1 , l i n e a r ) ; mixNum . b a c k C ol o r = f o r e c o l o r ; m i x S l i d e r . a c t i o n = { mixNum . v a l u e = m i x S l i d e r . v a l u e } ; // I n p u t Gain c a p t i o n g a i n S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 0 , 2 3 5 , 2 0 ) , Input g a i n [ dB ] ) ; g a i n S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 3 0 , 2 3 0 , 20 ) , Mix , 0 , 30 , 6 , 1 , l i n e a r ) ; gainNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 3 0 , 5 0 , 20 ) , NumericalView , 0 , 30 , 6 , 1 , l i n e a r ) ; gainNum . b a c k Co l o r = f o r e c o l o r ; g a i n S l i d e r . a c t i o n = { gainNum . v a l u e = g a i n S l i d e r . v a l u e } ; // Feedback p h a s e

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

240
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

fbBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 2 , 6 5 , 2 3 0 , 20 ) , Feedback phase : 1 ( o f f ) +1 ( on ) , 1 , 0 , 1 , 0 , l i n e a r ) ; // Feedback c a p t i o n f b S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 9 0 , 2 3 0 , 2 0 ) , Feedback [ %] ) ; f b S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 1 0 , 2 3 0 , 20 ) , Feedback , 5 0 , 0 , 9 9 , 1 , l i n e a r ) ; fbNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 1 0 , 5 0 , 20 ) , NumericalView , 5 0 , 0 , 9 9 , 1 , l i n e a r ) ; fbNum . b a c k Co l o r = f o r e c o l o r ; f b S l i d e r . a c t i o n = { fbNum . v a l u e = f b S l i d e r . v a l u e } ; // Delay time c a p t i o n d e l a y S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 1 7 0 , 2 3 5 , 2 0 ) , Delay time : ( s e c o n d s ) ) ; d e l a y S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 1 , 1 9 0 , 2 3 0 , 20 ) , Delay time , 0 . 0 0 1 , 0 , 0 . 0 5 , 0 . 0 0 0 5 , l i n e a r ) ; delayNum = NumericalView . new ( w, Rect . newBy ( x o f f 1 +235 , 1 9 0 , 5 0 , 2 0 ) , NumericalView , 0 . 0 0 1 , 0 , 1 , 0 . 0 0 0 5 , l i n e a r ) ; delayNum . b a c k Co l o r = f o r e c o l o r ; d e l a y S l i d e r . a c t i o n = { delayNum . v a l u e = d e l a y S l i d e r . v a l u e } ; // Delay s w i t c h vdBox = CheckBoxView . new ( w, Rect . newBy ( x o f f 2 , 1 4 5 , 4 2 8 , 2 0 ) , Variable delay , 0 , 0 , 1 , 0 , l i n e a r ) ; // O s c i l l a t o r f r e q u e n c y c a p t i o n f r e q S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 7 0 , 2 3 5 , 2 0 ) , O s c i l l a t o r Frequency ( d e l a y ) [ Hz ] ) ; f r e q S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 2 , 1 9 0 , 2 3 0 , 20 ) , SliderView , 10 , 0 , 20 , 1 , l i n e a r ) ; freqNum = NumericalView . new ( w, Rect . newBy ( x o f f 2 +235 , 1 9 0 , 5 0 , 2 0 ) , NumericalView , 1 0 , 0 , 2 0 , 1 , l i n e a r ) ; freqNum . b a ck C o l o r = f o r e c o l o r ; f r e q S l i d e r . a c t i o n = { freqNum . v a l u e = f r e q S l i d e r . v a l u e } ; // Delay d e v i a t i o n c a p t i o n d d S l i d e r = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 1 , 2 4 0 , 2 3 0 , 2 0 ) , Delay d e v i a t i o n : 0 % 99 % ) ; d d S l i d e r = S l i d e r V i e w . new ( w, Rect . newBy ( x o f f 1 , 2 6 0 , 2 3 0 , 20 ) , Deviation , 50 , 0 , 99 , 1 , l i n e a r ) ; ddNum = NumericalView . new ( w, Rect . newBy ( x o f f 1 +235 , 2 6 0 , 5 0 , 20 ) , NumericalView , 5 0 , 0 , 9 9 , 1 , l i n e a r ) ; ddNum . b a c k Co l o r = f o r e c o l o r ; d d S l i d e r . a c t i o n = { ddNum . v a l u e = d d S l i d e r . v a l u e } ; // S e l e c t s o u r c e

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

A.12. SUPERCOLLIDER: PROCESADOR DE EFECTOS GENERICO 241


88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 c a p t i o n S o u r c e = S t r i n g V i e w . new ( w, Rect . newBy ( x o f f 2 , 2 2 0 , 2 3 5 , 20) , S e l e c t source ) ; captionSource . labelColor = f o r e c o l o r ; in1Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 2 , 2 4 0 , 2 3 0 , 20 ) , Soundfile , 1 , 0 , 1 , 0 , linear ) ; in2Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 2 , 2 6 0 , 2 3 0 , 20 ) , LFSaw , 0 , 0 , 1 , 0 , l i n e a r ) ; in3Box = CheckBoxView . new ( w, Rect . newBy ( x o f f 2 , 2 8 0 , 2 3 0 , 20 ) , BrownNoise , 0 , 0 , 1 , 0 , l i n e a r ) ; f i l e n a m e = : Sounds : r e d o b l e s . a i f f ; sound = S o u n d F i l e . new ; i f ( sound . r e a d ( f i l e n a m e ) , { Synth . d u a l S c o p e ( { var var var var var s i g n a l ; // f o r a u d i o f i l e stream input , input1 , input2 , i n p u t 3 ; // f o r e f f e c t s p r o c e s s o r b u f f e r ; // f o r d e l a y l i n e m s i g n a l ; // wet s i g n a l d e l s i g n a l =0; // d e l a y e d s i g n a l

b u f f e r = S i g n a l . newClear ( Synth . sampleRate 3 0 . 5 ) ; s i g n a l = sound . data . a t ( 0 ) ; // D i f f e r e n t s o u r c e s i n p u t 1 = PlayBuf . a r ( s i g n a l , sound . sampleRate , 1 , 0 , 0 , s i g n a l . s i z e 2) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; i n p u t 2 = LFSaw . a r ( 2 0 0 , 0 . 1 ) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; i n p u t 3 = BrownNoise . a r ( 0 . 1 ) dBtoA . v a l u e ( g a i n S l i d e r . kr ) ; // Source mix i n p u t = Mix . a r ( [ i n p u t 1 in1Box . kr , i n p u t 2 in2Box . kr , i n p u t 3 in3Box . kr ] ) ; // O s c i l l a t o r f o r v a r i a b l e d e l a y v = SinOsc . kr ( f r e q S l i d e r . kr , 0 . 0 , vdBox . kr d e l a y S l i d e r . kr d d S l i d e r . kr 0 . 0 1 ) ; d e l s i g n a l = TapN . a r ( b u f f e r , d e l a y S l i d e r . kr + v ) ; m s i g n a l = Mix . a r ( [ i n p u t , 2 ( fbBox . kr 0 . 5 ) d e l s i g n a l f b S l i d e r . kr 0 . 0 1 ] ) ; DelayWr . a r ( b u f f e r , m s i g n a l ) ; Mix . a r ( [ m i x S l i d e r . kr msignal , ( 1 . 0 m i x S l i d e r . kr ) i n p u t ]) ; } ,0.1) ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

242
128 129 130

APENDICE A. EJEMPLOS EN SUPERCOLLIDER

} , { ( f i l e n a m e ++ not found . \ n ) . p o s t } ) ; w. c l o s e ;

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

Bibliograf a

[1] Mathew Adkins. Acoustic chains in acousmatic music. http: // www. hud. ac. uk/ schools/ music/ humanities/ music/ newmusic/ acoustic_ chains. html , 1999. [2] Bal azs Bank, J anos M arkus, Attila Nagy, and L aszl o Sujbert. Signal and physics-based sound synthesis of musical instruments. Periodica Polytechnica Ser. El. Eng., 47(3-4):269295, 2004. [3] Gerald Bennett. Thoughts on the oral culture of electroacoustic music. http: // www. computermusic. ch/ files/ articles/ ThoughtsontheOral. html , 1995. [4] Pierre Boeswillwald. Analysis in the electroacoustic world. In Analysis in Electroacoustic Music. Proceedings Volume II of the works of the International Academy of Electroacoustic Music, Bourges, 1996. [5] Albert S. Bregman. Auditory scene analysis. MIT Press, 1990. [6] Rodolfo Caesar. The Composition of Electroacoustic Music. PhD thesis, University of East Anglia, 1992. [7] Leo Camilleri. Electro-acoustic music: analysis and listening processes. Retrieved March 31, 2004 from http://www.sonus-online.org/ camilleri.htm. 1993. [8] Nicolas Castagne and Claude Cadoz. Creating music by means of physical thinking : The musician oriented genesis enviroment. In 5th international Conference on Digital Audio Eects (Dafx-02), pages 169174, Hamburg, Germany, 2002. 243

244

BIBLIOGRAF IA

[9] Perry R. Cook. Real sound synthesis for interactive applications. A K Peters, Natick Mass, 2002. [10] Fran cois Delalande. Music analysis and reception behaviors: Sommeil by pierre henry. Journal of New Music Research, 27:1366, 1998. [11] Charles Dodge and Thomas A. Jerse. Computer music : synthesis, composition, and performance. Schirmer Books ; Prentice Hall International, New York London, 2nd edition, 1997. [12] Sophie Donnadieu. Mental Representation of the Timbre of Complex Sounds, chapter 8. Springer, New York, 2007. [13] Francesco Giomi and Marco Ligabue. Understanding electroacoustic music: analysis of narrative strategies in six early compositions. Organised Sound, 3(1):4549, 1998. [14] Mara Helmut. Multidimensional representation of electroacoustic music. Journal of New Music Research, 25:77103, 1996. [15] Pablo Irarr azaval. An alisis de se nales. McGraw-Hill Interamericana, Santiago (Chile), 1999. Pablo Irarrazaval M. il. ; 23 cm. 20010913. [16] David A. Jae. Ten criteria for evaluating synthesis techniques. Computer Music Journal, 19(1):7687, 1995. [17] Mari Riess Jones and William Yee. Attending to auditory events: the role of temporal organization, chapter 4, pages 69112. Clarendon Press, New York, 1993. [18] Francisco Kr op. An approach to the analysis of electroacoustic music. In Analysis in Electroacoustic Music. Proceedings Volume II of the works of the International Academy of Electroacoustic Music, Bourges, 1996. [19] F. Richard Moore. Elements of computer music. Prentice Hall, Englewood Clis, N.J., 1990. [20] Jay W. Morthenson. The concept of meaning in electronic music. In Proceedings of the ICEM Conference on Electro-acoustic Music, Stockholm, 1985. [21] Michael Norris. The status of analysis in an electroacoustic context. http: // farben. latrobe. edu. au/ mikropol/ volume5/ norris_ m/ norris_ m. html , 1999. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

BIBLIOGRAF IA

245

[22] Giovanni De Poli. A tutorial on digital sound synthesis techniques. Computer Music Journal, 7(4), 1983. [23] Pietro Polotti and Gianpaolo Evangelista. Fractal additive synthesis via harmonic-band wavelets. Computer Music Journal, 25(3):2237, 2001. [24] Pietro Polotti, Fritz Menzer, and Gianpaolo Evangelista. Inharmonic sound spectral modeling by means of fractal additive synthesis. In Proceedings of the 5th Conference on Digital Audio Eects, Hamburg, Germany, 2002. [25] Stephen T. Pope. Why is good electroacoustics music so good? why is bad electroacoustic music so bad? Computer Music Journal, 18(3), 1994. [26] Curtis Roads. Musical signal processing. Studies on new music research 2. Swets & Zeitlinger, Lisse Netherlands ; Exton PA, 1997. [27] Curtis Roads. The computer music tutorial. MIT Press, Cambridge, Mass., 4th edition, 1999. [28] Curtis Roads. Microsound. MIT Press, Cambridge, Mass., 2001. [29] Axel R obel. Neural network modeling of speech and music signals. In Neural Network Information Processing Systems 9, NIPS 96, Denver, 1996. [30] Axel R obel. Synthesizing natural sounds using dynamic models of sound attractors. Computer Music Journal, 25(2):4661, 2001. [31] Nicola Sani. Thoughts on analysis of electroacoustic music. In Analysis in Electroacoustic Music. Proceedings Volume II of the works of the International Academy of Electroacoustic Music, Bourges, 1996. [32] Xavier Serra. Current perspectives in the digital synthesis of musical sound. Formats, 1, 1997. [33] Denis Smalley. Spectro-morphology and structural processes, pages 61 93. Harwood Academic, 1986. [34] Denis Smalley. The Listening Imagination: Listening in the Electroacoustic Era, chapter 26, pages 514554. Routeledge, London, 1992. [35] Denis Smalley. Spectromorphology: explaining sound-shapes. Organised Sound, 2(2):107126, 1997. CADIZ, R. A LA MUSICA INTRODUCCION COMPUTACIONAL

246

BIBLIOGRAF IA

[36] Julius O. Smith. Viewpoints on the history of digital synthesis. In Proceedings of the 1991 International Computer Music Conference, San Francisco, CA, 1991. [37] Julius O. Smith. Physical modeling synthesis update. The Computer Music Journal, 20(2):4456, 1996. [38] John Strawn and James F. McGill. Digital audio engineering : an anthology. Computer music and digital audio series; [v. 3]. W. Kaufmann, Los Altos, Calif., 1985. [39] Bob L. Sturm. Sonication of particle systems via de broglies hypothesis. In Proc. of the Int. Community for Auditory Display Conf, Atlanta, GA, USA, April 2000. [40] Bob L. Sturm. Composing for an ensemble of atoms: the methamorphosis of scientic experiment into music. Organised Sound, 6(2):131145, 2001. [41] Bob L. Sturm. Synthesis and algorithmic composition techniques derived from particle physics. In Proc. of the Eighth Biennial Arts and Tech. Symposium, New London, CT, USA, March 2001. [42] Tero Tolonen, Vesa V alim aki, and Matti Karjalainen. Evaluation of modern sound synthesis methods. Report No. 48, Helsinki University of Technology, Department of Electrical and Communications Engineering, 1998. [43] Barry Truax. Acoustic communication. Ablex Pub., 2001. [44] W. Luke Windsor. A Perceptual Approach to the Description and Analysis of Acousmatic Music. PhD thesis, City University, London, 1995. [45] W. Luke Windsor. Perception and Signication in Electroacoustic Music, chapter 7. Edinburgh University Faculty of Music, 1996. [46] W. Luke Windsor. Through and around the acousmatic: the interpretation of electroacoustic sounds, chapter 1. Ashgate, London, 2000. [47] Trevor Wishart. Sound symbols and landscapes., chapter 3. Harwood Academic, New York, 1986.

CADIZ, R.

A LA MUSICA INTRODUCCION COMPUTACIONAL

You might also like