You are on page 1of 264

RODRIGO F.

CADIZ

INTRODUCCION A LA MUSICA COMPUTACIONAL

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 0

Prlogo o

La era computacional y la msica estuvieron por mucho tiempo distanu ciadas debido a la gran cantidad de espacio de memoria que la msica reu quiere para ser almacenada y procesada. Con el aumento de las capacidades de memoria de los computadores, la msica comenz rpidamente un desau o a rrollo vertiginoso transformndose, hoy en d junto al mundo audiovisual a a, en las actividades predilectas en el uso del computador. En efecto, en las ultimas dcadas son mltiples los softwares, las he e u rramientas y las investigaciones que giran en torno a la actividad musical tanto en los terrenos del registro sonoro, como en el mbito creativo y en a el rea de la reproduccin. Tanto profesionales como acionados recurren al a o computador para manipular informacin musical pero siempre con la seno sacin de que aprovechan slo un m o o nimo porcentaje de las capacidades de los softwares o herramientas disponibles. El libro que tiene en sus manos constituye el ms importante aporte en a lengua espaola para acercar a los interesados a la tecnolog digital disn a ponible. Desde la terminolog bsica, pasando por los principios acsticos a a u del sonido hasta la psicoacstica, desde la nocin de audio digital, su prou o cesamiento hasta su aplicacin en la msica electroacstica constituyen el o u u contenido de esta publicacin dirigida a msicos, ingenieros, f o u sicos y amantes de la tecnolog aplicada a la msica. a u El sonido es la materia prima, dispuesta en el tiempo, de la msica. Por u 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 mbito digital hac dif el acceso a la informacin a a cil o necesaria, general y preferentemente en ingls, para todos los usuarios de e tecnolog aplicada al mundo musical. a i

ii

CAP ITULO 0. PROLOGO

Con este libro, el mundo tcnico y conceptual del sonido digital queda al e alcance de todos de una manera ordenada y sistemtica cubriendo en detalle a cada uno de los diversos aspectos tratados sin perder de vista, en ningn u momento, las nociones bsicas que permiten la comprensin profunda de los a o fenmenos y posibilidades de la era digital. o Su autor, Rodrigo Cdiz, en su doble condicin de ingeniero y compoa o sitor ha puesto a nuestra disposicin una informacin amplia, de enfoques o o mltiples que recorren lo tcnico esencial hasta lo art u e stico creativo. De este modo, esta publicacin se transforma en lectura obligada para msicos o u profesionales o no, interesados en la vinculacin de la tecnolog actual y o a la ms antigua y misteriosa de las artes: la msica. Inefable, inescrutable, a u inenarrable, mgica y misteriosa arte que, nalmente ha sido atrapada, a registrada y reproducida con la mayor de las delidades por las ciencias y tecnolog del sonido digital. as Aceptemos esta invitacin a conocer este nuevo mundo de la mano de o un autor atento y multidisciplinario que nos permite, en nuestra propia lengua, acercarnos y resolver nuestras inquietudes en torno a la msica y la u computacin. o Alejandro Guarello Santiago de Chile, Junio de 2008

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 0

Prefacio

Los computadores sin duda han cambiado nuestra forma de relacionarnos con el mundo externo. Espec camente en el mbito de la msica, los a u computadores permiten explorar nuevas posibilidades sonoras, crear nuevas formas de composicin y nuevas aproximaciones a la interpretacin musical. o o Las posibilidades musicales que nos ofrece la tecnolog computacional son a prcticamente innitas. a El propsito de este libro es introducir a estudiantes de msica, f o u sica o ingenier artistas, intrpretes y compositores al extenso mundo de la msia, e u ca computacional y electroacstica. Originalmente, este libro est pensado u a como un texto de apoyo para un curso bsico de msica computacional de a u uno o dos semestres de duracin, pero perfectamente puede utilizarse fuera o de un curso formal. El libro est divido en siete cap a tulos, cada uno de los cuales se enfoca a un tema espec co. El primer cap tulo expone los conceptos bsicos de a la teor de seales y sistemas, incluyendo conceptos claves como la reprea n sentacin en frecuencia y la transformada de Fourier, adems de introducir o a algunos conceptos matemticos imposibles de evitar al adentrarse en este a intenso mundo. Dado que un computador permite disear sonidos con un n mximo nivel de detalle y precisin, es muy relevante para esta disciplina a o el conocer en profundidad el fenmeno sonoro. No slo es importante estuo o diar como se comporta el sonido en el mundo f sico, sino tambin como es e percibido en la cabeza de cada auditor. Esto se divide en dos cap tulos: el segundo cap tulo estudia el fenmeno del sonido en su aspecto f o 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 seales de audio digitales que el computador es capaz de n 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 clasicacin y los principales mtodos de s o e ntesis utilizados. En el sexto cap tulo se estudia el procesamiento digital de audio, con un especial nfasis e en la teor e implementacin de los ltros digitales. a o Para nalizar, se incluye un cap tulo, el sptimo y ultimo, en el cual se e presentan las principales bases perceptuales, composicionales y anal ticas de la llamada msica electroacstica, la cual en la actualidad se realiza en su u u gran mayor gracias a la tecnolog computacional. a a Se incluyen tambin varios anexos con ejemplos de cdigo realizados en e o SuperCollider, una de las aplicaciones para s ntesis y procesamiento digital de sonidos ms utilizadas, poderosas y verstiles disponibles en la actualia a dad. Estos ejemplos complementan las materias presentadas en los distintos cap tulos y permiten llevar a la prctica de forma inmediata mucho de los a conceptos presentados en el libro. Este libro tuvo sus or genes en una serie de apuntes parcialmente nanciados por la Fundacin Andes, a travs de su Beca de Creacin e Investio e o gacin Art o stica, en el ao 2000. La actual versin ha sido posible gracias al n o apoyo del Fondo de Desarrollo de la Docencia (FONDEDOC), de la Vicerrector Acadmica de la Ponticia Universidad Catlica de Chile. Quisiera a e o agraceder el aporte de mi ayudante Jorge Forero, quin realiz muchas de e o las tablas y guras presentes en el libro y del Dr. Gary Kendall, quien fuera mi profesor gu y mentor en muchas de las materias tratadas en este libro, a y en cuyos apuntes se basan muchos de las guras y ejemplos de cdigo Suo perCollider que se pueden encontrar en el libro. Tambin quisiera agradecer e a Alejandro Guarello, por su apoyo constante en este proyecto. Rodrigo F. Cdiz, Ph.D. a Santiago de Chile, Abril de 2008

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Indice general

Prlogo o Prefacio 1. Se ales y sistemas n 1.1. Seales . . . . . . . . . . . . . . . . . . . . . . . . . . . n 1.1.1. Naturaleza de las seales . . . . . . . . . . . . n 1.1.2. Sinusoides . . . . . . . . . . . . . . . . . . . . . 1.1.3. Exponenciales . . . . . . . . . . . . . . . . . . . 1.1.4. Relacin entre sinusoides y exponenciales . . . o 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 seales importantes . . . . . . . . . . . . . . . . n 1.4. Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4.1. Clasicacin . . . . . . . . . . . . . . . . . . . o 1.4.2. Respuesta al impulso y respuesta de frecuencia 2. El sonido 2.1. Ondas de sonido . . . 2.2. Fuentes sonoras . . . . 2.3. Medicin del sonido . o 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 . . . . Representacin grca o a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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 stica u 3.1. Conceptos bsicos . . . . . . . . . . . . a 3.1.1. M nima diferencia notoria . . . . 3.1.2. Ley de Weber . . . . . . . . . . . 3.1.3. Modos de percepcin . . . . . . . o 3.2. El sistema auditivo humano . . . . . . . 3.2.1. El o do . . . . . . . . . . . . . . 3.2.2. Membrana basilar . . . . . . . . 3.2.3. Clulas auditivas . . . . . . . . . e 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. Codicacin perceptual de audio . . . . o

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

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

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

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

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

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

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

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

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

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

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

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

4. Audio digital 4.1. Anlogo versus digital . . . . . . . . . . . a 4.1.1. Muestreo . . . . . . . . . . . . . . 4.1.2. Cuantizacin . . . . . . . . . . . . o 4.2. Sistema binario . . . . . . . . . . . . . . . 4.3. El computador . . . . . . . . . . . . . . . 4.4. Programacin de computadores . . . . . . o 4.5. Sistema operativo y sistema de archivos . 4.6. Uso del computador en sistemas de audio 4.7. Software para msica computacional . . . u 4.8. MIDI . . . . . . . . . . . . . . . . . . . . . CADIZ, R.

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

INTRODUCCION A LA MUSICA COMPUTACIONAL

INDICE GENERAL 5. S ntesis digital de sonidos 5.1. Clasicacin . . . . . . . . . . . . . . . o 5.2. Evaluacin . . . . . . . . . . . . . . . o 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. Modulacin . . . . . . . . . . . . . . . o 5.6.1. Modulacin Ring . . . . . . . . o 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 dinmica no lineal a 5.12. S ntesis basada en complejidad . . . . 6. Procesamiento digital de audio 6.1. Filtros digitales . . . . . . . . . . . 6.1.1. Ecuacin de diferencias . . o 6.1.2. Funcin de transferencia . . o 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. Diseo de ltros FIR . . . . n 6.3. Filtros IIR . . . . . . . . . . . . . . 6.3.1. Diseo de ltros IIR . . . . n 6.3.2. Transformada Z bilinear . . 6.4. Filtros bi-cuadrticos . . . . . . . . a 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 . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

INTRODUCCION A LA MUSICA COMPUTACIONAL

viii 6.7. Compresin . . . . . . . . . . . o 6.8. Reverberacin . . . . . . . . . . o 6.8.1. Reverberacin articial o 6.9. Otros efectos . . . . . . . . . . 6.9.1. Chorus . . . . . . . . . 6.9.2. Wah wah . . . . . . . . 6.9.3. Delay . . . . . . . . . . 6.10. Procesador de efectos genrico e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

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

7. La m sica electroac stica u u 7.1. Caracter sticas de la msica electroacstica . . . . . . . u u 7.1.1. Material sonoro . . . . . . . . . . . . . . . . . . . 7.1.2. Ausencia de notacin y representacin abstracta o o 7.1.3. Composicin y anlisis . . . . . . . . . . . . . . . o a 7.1.4. Composicin e improvisacin . . . . . . . . . . . o o 7.1.5. Msica electroacstica y su signicado . . . . . . u u 7.2. Estrategias auditivas . . . . . . . . . . . . . . . . . . . . 7.2.1. Audicin musical . . . . . . . . . . . . . . . . . . o 7.2.2. Modos Schaeerianos de audicin . . . . . . . . . o 7.2.3. Audicin de fondo . . . . . . . . . . . . . . . . . o 7.2.4. Audicin reducida . . . . . . . . . . . . . . . . . o 7.2.5. Modos auditivos de Smalley . . . . . . . . . . . . 7.2.6. Conductas auditivas de Delalande . . . . . . . . 7.3. Percepcin de la msica electroacstica . . . . . . . . . o u u 7.3.1. Enfoque ecolgico . . . . . . . . . . . . . . . . . o 7.3.2. Paisajes sonoros . . . . . . . . . . . . . . . . . . 7.3.3. Autocentricidad y alocentricidad . . . . . . . . . 7.3.4. Sustitucin . . . . . . . . . . . . . . . . . . . . . o 7.4. Estrategias anal ticas . . . . . . . . . . . . . . . . . . . . 7.4.1. Objetos sonoros . . . . . . . . . . . . . . . . . . . 7.4.2. Espectromorfolog . . . . . . . . . . . . . . . . . a 7.4.3. Arquetipos morfolgicos, modelos y cadenas . . . o 7.4.4. Anlisis basado en conductas auditivas . . . . . . a 7.4.5. El sonograma . . . . . . . . . . . . . . . . . . . . 7.4.6. Anlisis narrativo . . . . . . . . . . . . . . . . . . a 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

INTRODUCCION A LA MUSICA COMPUTACIONAL

INDICE GENERAL A. Ejemplos en SuperCollider A.1. SuperCollider: introduccin . . . . . . . . . . o A.2. SuperCollider: el lenguaje . . . . . . . . . . . A.3. SuperCollider: Unidades generadoras . . . . . A.4. SuperCollider: Envolventes . . . . . . . . . . A.5. SuperCollider: SynthDefs . . . . . . . . . . . A.6. SuperCollider: Modulacin . . . . . . . . . . . o A.7. SuperCollider: S ntesis granular . . . . . . . . A.8. SuperCollider: Patrones . . . . . . . . . . . . A.9. SuperCollider: Filtros bi-cuadrticos . . . . . a A.10.SuperCollider: Compresin . . . . . . . . . . o A.11.SuperCollider: Reverberacin . . . . . . . . . o A.12.SuperCollider: Procesador de efectos genrico e

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

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

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

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

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

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

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

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

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

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

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

INDICE GENERAL

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Indice de guras

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

Ejemplo grco de una seal . . . . . . . . . . a n Ejemplos de seales continuas y discretas . . . n Ejemplos de ondas peridica y aperidica . . . o o Funciones seno y coseno . . . . . . . . . . . . . Funcin exponencial . . . . . . . . . . . . . . . o El plano complejo . . . . . . . . . . . . . . . . Suma de seales armnicas . . . . . . . . . . . n o La serie armnica . . . . . . . . . . . . . . . . . o Representacin en el tiempo y en la frecuencia o seales . . . . . . . . . . . . . . . . . . . . . . . n 1.10. Otras seales importantes . . . . . . . . . . . . n 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. Rarefaccin y compresin en una onda sonora . . . . . . . . . o o 2.2. Intensidad vs distancia . . . . . . . . . . . . . . . . . . . . . . 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. El o humano . . . . . . . . . . . . . . . . . . . . . do Respuesta de frecuencia del canal auditivo . . . . . . Seccin del o interno . . . . . . . . . . . . . . . . o do Seccin perpendicular de la cclea . . . . . . . . . . o o La membrana basilar desenrrollada . . . . . . . . . . Patrones de vibracin en la membrana basilar . . . . o Esquema del rgano de corti, que contiene las clulas o e 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. Medicin de la banda cr o tica . . . . . . . . . . . . . . . . . . . 3.12. Enmascaramiento simultneo . . . . . . . . . . . . . . . . . . a 3.13. Enmascaramiento hacia atrs . . . . . . . . . . . . . . . . . . a 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. Demostracin de la existencia del tono virtual . . . . . . . . . o 3.20. Altura e intensidad . . . . . . . . . . . . . . . . . . . . . . . . 3.21. Altura y duracin . . . . . . . . . . . . . . . . . . . . . . . . . o 3.22. Altura y duracin . . . . . . . . . . . . . . . . . . . . . . . . . o 3.23. Trayectoria de armnicos en la trompeta . . . . . . . . . . . . o 3.24. Esquema de un codicador perceptual de audio . . . . . . . . 4.1. Seal anloga versus digital . . . . . . . . . . . . . . . . n a 4.2. Digitalizacin de una seal anloga . . . . . . . . . . . . o n a 4.3. Algunas funciones de ventanas . . . . . . . . . . . . . . 4.4. Muestreo de una seal digital . . . . . . . . . . . . . . . n 4.5. Aliasin en el dominio de la frecuencia . . . . . . . . . . o 4.6. Aliasin en el dominio del tiempo . . . . . . . . . . . . . o 4.7. Proceso de cuantizacin . . . . . . . . . . . . . . . . . . o 4.8. Cuantizacin de una seal analgica . . . . . . . . . . . o n o 4.9. Error de cuantizacin . . . . . . . . . . . . . . . . . . . o 4.10. Dithering . . . . . . . . . . . . . . . . . . . . . . . . . . 4.11. Estructura bsica de un computador . . . . . . . . . . . a 4.12. Sistemas Operativos ms utilizados . . . . . . . . . . . . a 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 msica ms utilizados en los aos noventa u a n 5.1. 5.2. 5.3. 5.4. 5.5. Oscilador . . . . . . . . . . . . . . . . . . . . . . . . Seales bsicas comnmente utilizadas en osciladores n a u 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.

INTRODUCCION A LA MUSICA COMPUTACIONAL

INDICE DE FIGURAS 5.6. Envolventes para distintas dinmicas . . . . . . . . . a 5.7. Envolvente ADSR . . . . . . . . . . . . . . . . . . . 5.8. Proceso de generacin de envolventes . . . . . . . . . o 5.9. Suma de seales simples para generar una compleja . n 5.10. S ntesis aditiva . . . . . . . . . . . . . . . . . . . . . 5.11. S ntesis substractiva . . . . . . . . . . . . . . . . . . 5.12. Conguracin de ltros en la s o ntesis substractiva . . 5.13. Modulacin ring o anillo . . . . . . . . . . . . . . . . o 5.14. Espectro de la modulacin ring . . . . . . . . . . . . o 5.15. S ntesis AM . . . . . . . . . . . . . . . . . . . . . . . 5.16. Espectro de la modulacin AM . . . . . . . . . . . . o 5.17. S ntesis FM . . . . . . . . . . . . . . . . . . . . . . . 5.18. Espectro de la modulacin FM . . . . . . . . . . . . o 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estimacin de la respuesta de amplitud mediante un diagrao ma de polo y ceros . . . . . . . . . . . . . . . . . . . . . . . . 6.10. Estimacin de la respuesta de fase mediante un diagrama de o 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 implementacin de un ltro FIR . . . . . . . . . o 6.15. Esquema de implementacin de un ltro IIR . . . . . . . . . . o 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 ecualizacin . . . . . . . . . . . . . . . . . . . . o 6.20. Funciones de compresin a distintas tasas . . . . . . . . . . . o 6.21. Correccin automtica de ganancia . . . . . . . . . . . . . . . o a

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

xiv

INDICE DE FIGURAS

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Indice de cuadros

2.1. Tabla de intensidades sonoras . . . . . . . . . . . . . . . . . . 3.1. Escala de Barks, para estimacin de las bandas cr o ticas del sistema auditivo . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. Razones entre intervalos musicales . . . . . . . . . . . . . . . 4.1. Representacin numrica en distintos sistemas . . . . . . . . . o e 5.1. Taxonom de las tcnicas de s a e ntesis digital de sonidos . . . .

26

42 58 72 88

xv

xvi

INDICE DE CUADROS

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 1

Se ales y sistemas n

El sonido es fundamentalmente una seal, que conlleva informacin de n o tipo acstica. Todos los tipos de seales, sean stas naturales o articiales, u n e tienen caracter sticas comunes que hacen posible su estudio en forma independiente de su naturaleza. Por lo general, las seales son procesadas o n modicadas por sistemas. En el caso de la msica computacional, el compuu tador genera o modica una seal acstica digitalizada, por lo tanto se comn u porta como un sistema. En este cap tulo se presentan los conceptos bsicos a de la teor de seales y sistemas, los cuales resultan fundamentales para a n entender y estudiar como una seal de audio puede ser modicada o crean da en el computador de las ms diversas maneras, con el objetivo nal de a generar msica. u

1.1.

Se ales n

Una seal, en forma simplicada, se puede entender como cualquier men canismo que es empleado para transmitir informacin [15]. Algunos ejemo plos de seales son: un faro, ondas electromagnticas enviadas por un radar, n e seales de humo, una onda de sonido viajando por el aire o las ondas de la n actividad del cerebro captadas por un electrocardiograma. Desde un punto de vista matemtico, una seal es una variable de una a n o ms dimensiones que toma valores de acuerdo a otra variable, como por a ejemplo el tiempo en el caso del sonido o el espacio en el caso de imgenes. a Matemticamente, da exactamente lo mismo si la dependencia es temporal a o espacial, ya que en ambos casos las seales de tratan de igual manera y n slo importa la funcin que modela su comportamiento. o o 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 grco de una seal a n En el caso de las seales acsticas, es comn utilizar la letra t para den u u signar a la variable independiente, que corresponde al tiempo, y la letra y para designar a la seal, o variable dependiente. La relacin que dene el n o comportamiento de la seal con respecto a la variable independiente corresn ponde a una funcin que usualmente se denomina por la letra f. Por lo tanto o la ecuacin: o y = f (t) (1.1)

simplemente signica que y depende del tiempo de acuerdo a la funcin f. o La gura 1.1 muestra una representacin grca de una seal en funcin de o a n o dos variables, y y t. La forma o morfolog de la funcin f es lo que determina a o la informacin contenida en la seal. o n

1.1.1.

Naturaleza de las se ales n

Las seales son de distinta naturaleza. Una seal puede ser, por ejemplo, n n una onda de presin viajando por el aire producida por la voz de un cantante o en algn escenario cercano. En este caso claramente la seal es de tipo f u n sico, es decir involucra tomos, molculas y otras part a e culas f sicas. Sin embargo, CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

1.1. SENALES

una seal puede no tener relacin con algn fenmeno f n o u o sico. Un ejemplo de esto es el valor del ndice de acciones de la bolsa de comercio, que cambia todos los d pero slo corresponde a un valor numrico, sin relacin con as, o e o el mundo f sico. Si una seal toma valores en forma continua, es decir, si para todos los n valores de la variable independiente existe un valor para la variable independiente, se habla de que la seal es continua. Un ejemplo de esto es la seal n n de temperatura que entrega un termmetro en el tiempo. El termmetro o o siempre est marcando alguna temperatura y cualquier persona puede leer a la posicin de la barra de mercurio ahora, o en una milsima de segundo deso e pus o en un ao ms y el termmetro siempre entregar un valor a menos e n a o a que est roto. e Por el contrario, si una seal toma valores slo para algunos valores de n o la variable independiente, se habla de una seal discreta. Por ejemplo, la luz n roja de un semforo slo se enciende durante algunos instantes de tiempo a o 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) Seal continua n

(b) Seal discreta n

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

CAP ITULO 1. SENALES Y SISTEMAS

la calidad de la seal discreta depende de la frecuencia a la cual se muestrea n la seal original. n La gura 1.2 muestra dos seales: una continua y otra discreta. Se puede n observar all que ambas tienen la misma forma, en el sentido que tienen la misma envolvente. En efecto, la seal de la derecha corresponde a la seal n n de la izquierda discretizada. La unica informacin que esta seal contiene es o n el valor de la amplitud para cada una de las muestrasen esos instantes de tiempo. En una primera observacin da la impresin que la seal muestreada o o n pierde informacin respecto de la seal original ya que no almacena ningn o n u tipo de informacin entre las muestras. Sin embargo, esto no ocurre si es que o la frecuencia de muestreo es lo sucientemente alta para asegurar la calidad del proceso de digitalizacin. Esto se explica en detalle en la seccin 4.1.1. o o Tambin las seales pueden variar de acuerdo a su periodicidad. En la e n gura 1.3 se aprecian dos formas de onda distintas. En la primera de ellas, se aprecia que la onda est compuesta de patrones repetitivos, mientras que a 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 peridica, es decir, que se repite cada cierto tiempo. En el caso de la o segunda, se habla de una forma de onda aperidica , pues no sigue un patrn o o determinado de repeticin. o Una seal peridica f (x) es una que cumple la siguiente relacin: n o o f (x) = f (x + T ) (1.2)

donde T se conoce como el per odo de la seal. n En cambio, para una seal aperidica, no existe ninguna variable T que n o cumpla la relacin anterior. o En el caso de un onda peridica, el patrn que se repite corresponde o o a un ciclo . La duracin de cada uno de los ciclos de una onda se conoce o como per odo y corresponde a la variable T de la ecuacin 1.2. La tasa a la o cual los ciclos de una onda peridica se repiten se conoce como frecuencia o y por lo general se mide en ciclos por segundo o Hertz (Hz) si la variable independiente corresponde al tiempo. Matemticamente, la frecuencia es el a inverso del per odo, por lo tanto un per odo de 1 ms (milisegundos) tiene una frecuencia de 1000 Hz. En las seales aperidicas no se presentan patrones de repeticin, dado n o o que nada se repite en forma peridica. La ausencia de una o ms frecuencias o a predominantes hace que este tipo de ondas sean muy complejas y dif ciles de modelar. Generalmente, este tipo de seales corresponden a patrones n CADIZ, R. INTRODUCCION A LA MUSICA 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 peridica o

(b) Onda aperidica o

Figura 1.3: Ejemplos de ondas peridica y aperidica o o aleatorios o simplemente a ruido.

1.1.2.

Sinusoides

La sinusoide es una de las seales ms simples e importantes que existen. n a Las dos funciones matemticas sinusoidales bsicas son las funciones seno y a a coseno, las cuales estn derivadas de las funciones trigonomtricas del mismo a e nombre. Matemticamente una funcin de este tipo se puede escribir como: a o f (x) = A sin(wx + ) o como f (x) = A cos(wx + ) (1.4) (1.3)

La amplitud A corresponde a la desviacin mxima de la seal respecto o a n del origen (posicin de equilibrio). La frecuencia w corresponde a la cantidad o de ciclos que existen en un determinado rango de la variable x. La fase, denotada por la letra , corresponde a la desviacin o corrimiento de la o seal respecto del eje Y. n Una seal simple, de tipo sinusoidal, est completamente determinada n a por estos tres parmetros: amplitud, frecuencia y fase. a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

CAP ITULO 1. SENALES Y SISTEMAS

Ambas funciones, seno y coseno, son c clicas o peridicas, es decir, vuelo ven a tomar los mismos valores despus de un cierto rango de valores de la e variable independiente. Por ejemplo, la funcin seno es una funcin que vale 0 cuando la variable o o independiente vale 0, 1 cuando sta vale /2, 0 cuando pasa por , -1 cuando e 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) Funcin seno o

(b) Funcin coseno o

Figura 1.4: Funciones seno y coseno La funcin coseno es muy similar a la funcin seno, slo que est desfasada.en o o o a relacin al eje Y. En relacin al desfase, Las siguientes relaciones matemtio o a cas se cumplen entre estas funciones: cos(x) = sin( sin(x) = cos( x) 2 x) 2 (1.5) (1.6)

La funcin seno es un funcin impar, es decir, no es simtrica respecto o o e al eje Y. Matemticamente esto es: a sin(x) = sin(x) (1.7)

En cambio el coseno es una funcin par, porque es simtrica respecto al o e eje Y. Matemticamente, esto equivale a: a cos(x) = cos(x) CADIZ, R. (1.8)

INTRODUCCION A LA MUSICA COMPUTACIONAL

1.1. SENALES

Las sinusoides son fundamentales para la f sica en general y la acstica u en particular. Cualquier cosa que resuene u oscile produce un movimiento de tipo sinusoidal. Un ejemplo de esto es la oscilacin de un pndulo, conocida o e como movimiento armnico simple. o Otra razn de la importancia de las sinusoides es que constituyen funo ciones bsicas de los sistemas lineales. Esto signica que cualquier sistema a lineal puede ser estudiado a travs de su respuesta a funciones sinusoidales. e En el campo del audio, las sinusoides son importantes para el anlisis de a ltros tales como reverberadores, equalizadores y otros tipos de efectos. Desde un punto de vista matemtico, las sinusoides constituyen bloques a fundamentales que al ser combinados de cierta forma permiten la creacin o o s ntesis de cualquier tipo de seal, por muy compleja que sea. n Pero quizs la razn ms importante es que el sistema auditivo humano a o a funciona como un analizador de espectro, tal como se detalla en el cap tulo 3. Esto es, el o humano f do sicamente separa un sonido en sus componentes de frecuencia sinusoidales. Por lo tanto, el o humano funciona en forma do muy similar a un analizador de Fourier (ver seccin 1.2) y la representacin o o de un sonido en el dominio de la frecuencia (ver seccin 1.2.4) es mucho ms o a cercana a lo que nuestro cerebro recibe que la representacin temporal. o

1.1.3.

Exponenciales

Existe otra funcin matemtica muy importante, conocida como expoo a nencial. La forma cannica de una funcin exponencial es la siguiente: o o f (t) = Aet/ , t 0 (1.9)

A corresponde a la amplitud mxima de la exponencial y se conoce a 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 grco de una funcin exponencial para A = a o 1 y = 1. En la ecuacin 1.9 e es el nmero de Euler, el cual tiene el o u valor irracional 2.718... y constituye la base de los logaritmos naturales. Este nmero es uno de los ms importantes y fascinantes de la matemtica u a a y puede calcularse como:

e=
k=0

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

(1.11)

CADIZ, R.

INTRODUCCION A LA MUSICA 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: Funcin exponencial o El decaimiento exponencial ocurre naturalmente cuando una cantidad est decayendo a una tasa proporcional a lo que an queda por caer. En a u 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 excitacin momentnea. La energ o a a reverberante en una sala de conciertos decae exponencialmente una vez nalizada la emisin de sonido. Esencialmente todas las oscilaciones libres o (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 vibracin de un diapasn, cuerdas pulsadas o pellizcadas o o y barras de marimba o xilfonos. o 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 ecuacin 1.9, una constante de tiempo poo sitiva 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 pequeo n para aplicaciones prcticas, como por ejemplo, para el diseo acstico de a n u salas de concierto. Por lo general, se utiliza una cantidad tal que asegure que la seal ha ca 60 decibelios (dB). Esta cantidad, denotada por t60 , se n do CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

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

(1.12)

Usando la denicin de exponencial de la ecuacin 1.9, se tiene entonces o o que: t60 = ln(1000) 6,91 (1.13)

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

1.1.4.

Relacin entre sinusoides y exponenciales o

Existen dos relaciones muy importantes para el anlisis de seales y para a n 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 ecuacin nos dice que las exponenciales y las sinusoides estn o a ntimamente relacionadas. En la ecuacin 1.14, el nmero i representa al nmero o u u imaginario y que est denido por la relacin: a o i= 1 (1.16)

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

10

CAP ITULO 1. SENALES Y SISTEMAS

imaginario x+iy y r x real

Figura 1.6: El plano complejo mdulo o magnitud del nmero complejo y que tambin suele representarse o u e como |Z|. Ambas representaciones estn relacionadas por las siguientes ecuaciones: a 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 ecuacin 1.14 por una amplitud A 0 y utilizando o 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 ecuacin describe una sinusoide compleja. Por lo tanto, una sinuo soide compleja contiene una parte real coseno y una parte imaginaria seno. CADIZ, R. INTRODUCCION A LA MUSICA 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 (ecuacin 1.21), se tiene entonces que toda sinusoide o real est compuesta por una contribucin equitativa de frecuencias positivas a o 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 funcin peridica compuesta por sinusoides es simtrico o o e respecto del origen y contiene tanto frecuencias negativas como positivas. Este hecho es de suma importancia para el anlisis de seales y para a n lo que posteriormente se ver como teorema del muestreo, detallado en la a seccin 4.1.1. o

1.2.
1.2.1.

Series y transformada de Fourier


Series de Fourier

En 1811, el matemtico Jean Baptiste Fourier demostr que cualquier a o seal peridica razonable puede expresarse como la suma de una o ms n o a sinusoides de distinta frecuencia, fase y amplitud. Se entiende por una seal n razonable, una que posee valores mximos menores que innito y un nmero a u nito de saltos en un per odo. Estas sinusoides estn armnicamente relacionadas entre s es decir, sus a o , frecuencias son mltiplos enteros de una frecuencia fundamental. Esta suma u ponderada de seales sinusoidales se conoce como Serie de Fourier. La serie n de Fourier de una seal peridica f (x) de per n o 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 nmeros asociados un u vocamente con la funcin f(x). Esta forma de escribir la serie de Fourier se conoce como o forma trigonomtrica. e Utilizando las ecuaciones de Euler 1.14 y 1.15, se puede escribir la serie de Fourier en forma ms compacta como: a

f (x) =
k=

Ck eikw0 x

(1.23)

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

12

CAP ITULO 1. SENALES Y SISTEMAS

Esta forma de escribir la ecuacin se conoce como forma compleja. o La ecuacin 1.22 nos dice que para cualquier seal peridica f (x) pueden o n o encontrarse coecientes a0 , a1 , b1 , a2 , b2 , ... tales que multiplicados por sinusoides de frecuencias w0 , 2w0 , 3w0 , ... den como resultado la funcin f (x) o cuando estas sinusoides se suman. En palabras ms simples, toda funcin peridica de frecuencia a o o w, cualquiera sea su naturaleza, est compuesta por la suma de a varias sinusoides de frecuencias mayores o iguales a w, cada una de las cuales tiene distinta amplitud, frecuencia y fase. Las frecuencias involucradas estn armnicamente relacionadas entre s a o . Lo anterior implica dos cosas: 1. Si se toman varias sinusoides de distintas frecuencias, fases y amplitudes y se suman, se obtendr una seal peridica. a n o 2. Dada una seal peridica f (x) cualquiera, sta siempre podr descomn o e a ponerse en sus componentes de frecuencia, mediante la determinacin o de las sinusoides que la conforman. Si se gracan las frecuencias de estas sinusoides versus la amplitud de cada una de ellas, dicho grco a se conoce como espectro de frecuencias (ver seccin 1.2.4). o 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 seales armnicas n o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

1.2. SERIES Y TRANSFORMADA DE FOURIER

13

La serie de Fourier se presenta en forma natural en la mayor de los a instrumentos musicales. Esto se conoce como la serie armnica y constituye o el principio bsico de ejecucin de algunos instrumentos como la trompeta a o o tuba. En la gura 1.8 se muestra la serie armnica en notacin musical. o o 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 armnica o

1.2.2.

Transformada de Fourier

Ahora cabe preguntarse qu pasa con las funciones que no son peridie o cas? Una forma de extender las series de Fourier a funciones no peridicas, o es truncar las seales en un cierto punto y suponer que la zona truncada n se repite hasta el innito desde ah hacia adelante. Otra forma es suponer que stas poseen un per e odo innito y expandir un tanto las ecuaciones para poder trabajar con este tipo de seales. Esto da pie a la transformada de n Fourier. La Transformada de Fourier es una generalizacin de las Series de Fouo rier. En rigor, esta transformada se aplica a funciones continuas y aperidio cas, pero tambin es posible aplicarla a funciones discretas mediante la utie lizacin de funciones impulso (ver seccin 1.2.3). o o Adems, la transformada de Fourier es un subconjunto de la transfora mada de Laplace, de la cual provee una interpretacin ms simple. Estas o a relaciones hacen de la transformada de Fourier una herramienta clave para traducir seales desde los dominios del tiempo a la frecuencia y viceversa. n Matemticamente, la transformada de Fourier se escribe: a

F (w) =

f (x)eiwx dx

(1.24)

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

14

CAP ITULO 1. SENALES Y SISTEMAS

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

f (x) =

F (w)eiwx dw

(1.25)

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

La transformada de Fourier nos permite conocer el espectro de frecuencias de cualquier se al f (x), sea sta peridica o apen e o ridica y cualquiera sea su naturaleza. Es decir, dada una funcin o o f (x) cualquiera, mediante esta transformada podemos saber que frecuencias estn presentes en ella. a

1.2.3.

DFT y FFT

La transformada de Fourier, tal como se present en las ecuaciones 1.24 y o 1.25 permite encontrar transformadas para seales continuas. Sin embargo, n esto no es aplicable directamente a seales discretas o digitales, que son las n 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 seales que n son discretas. Esto implica que en el dominio de la frecuencia estas seales n tambin sern peridicas y discretas. El desarrollo de la DFT histricamente e a o o se dio en forma paralela al de la transformada de Fourier continua. A pesar de su existencia, la DFT prcticamente no se utiliza dado que el clculo de la a a transformada discreta es un proceso complejo y lento computacionalmente. Lo que se utiliza en la mayor de los casos para calcular espectros de a seales discretas se llama Transformada Rpida de Fourier, o bien FFT (en n a ingls Fast Fourier Transform), la cual es un algoritmo desarrollado para e obtener la DFT de una forma ms rpida y eciente computacionalmente. a a El tiempo de procesamiento de la FFT es considerablemente ms rpido que a a calcular la DFT directamente.

1.2.4.

Diagramas en la frecuencia

Dado que una seal comnmente posee varias frecuencias aparte de la n u fundamental, tambin esta puede representarse completamente mediante un e diagrama de frecuencias, comnmente llamado espectro de frecuencias. En u CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

1.3. OTRAS SENALES IMPORTANTES

15

la gura 1.9 puede apreciarse tanto la representacin temporal como el eso pectro de las seales. Todos estos espectros fueron calculados utilizando la n transformada rpida de Fourier o FFT. a Como es de esperarse, el espectro de la sinusoide simple, posee un slo o componente de 50 Hz. Es necesario notar que el espectro es simtrico rese pecto al origen y que contiene frecuencias negativas y positivas. El espectro de la suma de tres sinusoides, est caracterizado solamente por tres frea cuencias distintas, que corresponden a las frecuencias de las tres sinusoides constituyentes de la seal. n En cambio, el espectro de la seal aleatoria es ms bien plano y tiene n a componentes en prcticamente todas las frecuencias. Esto nos indica que a mientras ms componentes de frecuencia estn presentes en una seal, su a a n representacin en el tiempo es ms compleja, no en el sentido de los nmeo a u ros complejos sino en su contenido de informacin. Dicho de otro modo, para o reproducir una seal de este tipo, de necesita sumar un nmero muy elevado n u de sinusoides.

1.3.

Otras se ales importantes n

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

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

(1.28)

INTRODUCCION A LA MUSICA 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) Seal aleatoria en el tiem- (f) Espectro de una seal n n po aleatoria

Figura 1.9: Representacin en el tiempo y en la frecuencia de distintas seales o n

y la funcin sinc como: o CADIZ, R. INTRODUCCION A LA MUSICA 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 seales importantes n La funcin Gaussiana tambin es de importancia, y es muy utilizada o e para construir ventanas. Su importancia radica en que es la funcin de diso tribucin de probabilidades normal. Se dene de la siguiente manera: o f (x) = Aex
2 /(2 2 )

(1.30)

donde se conoce como la desviacin estndar de la distribucin. o a o

1.4.

Sistemas

Un sistema puede ser denido en forma general como una coleccin de o objetos u operaciones para los cuales existen relaciones denidas de causaefecto. Las causas o datos de entrada tambin son llamados excitaciones o e simplemente, entradas. Los efectos o salidas del sistema tambin se conocen e 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. INTRODUCCION A LA MUSICA 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 nmeros (entrada) en otra secuencia de u nmeros con propiedades distintas (salida). u

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 tambin son sistemas y se modelan como tales. e La teor e implementacin de estos y otros tipos de efectos, se aborda en a o el cap tulo 6.

1.4.1.

Clasicacin o

Existen sistemas dinmicos y estticos. Un sistema esttico es uno en el a a a cual los valores de las salidas dependen solamente de los valores actuales de las entradas. En cambio, en un sistema dinmico los valores de las salidas a dependen de los valores presentes y pasados de las entradas. Un sistema de este tipo posee memoria. Un sistema esttico, por ende, no posee memoria. a Tambin los sistemas pueden clasicarse en lineales y no lineales. Cuane do un sistema es lineal, se puede utilizar el principio de superposicin , es o 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 anlisis es bastante ms complejo. a a Los sistemas tambin pueden ser variantes o invariantes en el tiempo. e Un sistema variante en el tiempo es uno en el cual las reglas del sistema dependen del tiempo. Es decir, stas van cambiando a medida que el tiempo e cambia. En cambio, los sistemas invariantes en el tiempo mantienen sus reglas indenidamente. Tambin los sistemas pueden ser continuos o discretos, dependiendo si e las variables de entrada y salida son continuas o discretas. CADIZ, R. INTRODUCCION A LA MUSICA 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 seales ms elementales y por lo tann a to la respuesta total del sistema puede calcularse mediante el principio de superposicin, si es que se conoce su respuesta a cada una de estas seales o n 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 ecuacin 1.27 es una funcin matemtica abstracta que tiene o o a una amplitud innita y una duracin casi cero. Por una propiedad matemtio a ca llamada propiedad del cedazo, se puede demostrar que cualquier funcin o puede descomponerse en una suma de impulsos. Dado que la transformada de Fourier de un impulso de una funcin constante en la frecuencia, esta o seal es ideal para estudiar sistemas, ya que permite estimar la respuesta de n un sistema cualquiera a seales con un contenido de frecuencias previamente n determinado. Otra respuesta muy utilizada para disear sistemas es la respuesta de n 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 seales de tipo sinusoidal. Dado que cualquier n seal puede descomponerse, de acuerdo a la serie o transformada de Foun rier, en muchas sinusoides individuales, la respuesta total del sistema puede CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

20

CAP ITULO 1. SENALES Y SISTEMAS

calcularse mediante el principio de superposicin. o En el mbito de los sistemas digitales, dado que un impulso es una absa traccin matemtica no posible de representar en un computador, un imo a pulso se implementa como una secuencia de nmeros con valor cero salvo u 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 grca la relacin entre la respuesta al impulso y la respuesta de a o frecuencia de un sistema digital o ltro. El estudio de la respuesta de frecuencia de un sistema, es clave en la teor y diseo de los ltros digitales, la cual se detalla en el cap a n tulo 6. Si se conoce la respuesta al impulso, basta realizar una operacin matemtica o a denominada convolucin (ver ecuacin 6.5) entre una seal de entrada cualo o n quiera y la respuesta al impulso para obtener la respuesta del sistema a esa entrada.

CADIZ, R.

INTRODUCCION A LA MUSICA 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 perturbacin en o algn medio y otra psicoacstica, que se reere al sonido como la sensacin u u o que produce una onda sonora en nuestro sistema auditivo. El sonido en su dimensin perceptual se abordar en el cap o a tulo 3. A continuacin se describe el sonido en su dimensin f o o sica.

2.1.

Ondas de sonido

El sonido es una seal producida por una fuente en vibracin. Esta vin o bracin perturba las molculas de aire adyacentes a la fuente en sincronismo o e con la vibracin, creando zonas donde la presin del aire es menor a la preo o sin atmosfrica (rarefaccin o enrarecimiento) y zonas donde la presin del o e o o aire es mayor a la presin atmosfrica (compresin). o e o Estas zonas de rarefaccin y compresin, representadas en la gura 2.1 o o generan una onda de sonido la cual viaja a travs del aire. Las ondas en e general poseen ciertas propiedades comunes. Las ondas transportan informacin de un lugar a otro y tambin transportan energ Las ondas son o e a. parametrizables, lo que quiere decir que pueden describirse de acuerdo a algunos pocos parmetros. Los cuatro parmetros ms comunes son: amplia a a tud, per odo, fase y forma de onda. Existen algunos otros parmetros tales a como frecuencia, espectro o intensidad que pueden derivarse de los parmea 21

22

CAP ITULO 2. EL SONIDO

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

Figura 2.1: Rarefaccin y compresin en una onda sonora o o

Existen distintos tipos de ondas que dieren en su naturaleza, por ejemplo ondas de radio, ondas de luz, ondas de agua, ondas electromagnticas e ondas de sonido o rayos X. Tambin dieren en su forma de propagacin, e o la que puede ser longitudinal o transversal. En una onda longitudinal, el desplazamiento de las part culas es paralelo a la direccin de propagacin o o de la onda. En una onda transversal, el desplazamiento de las part culas es perpendicular a la direccin de propagacin de la onda. o o Las ondas de sonido son longitudinales. Cuando esta onda alcanza alguna supercie (como el t mpano del o humano o la membrana de un do micrfono), produce una vibracin en dicha supercie por simpat o resoo o a nancia. De esta forma, la energ acstica es transferida desde la fuente al a u receptor manteniendo las caracter sticas de la vibracin original. o El sonido necesita de un medio para propagarse. El sonido puede viajar a travs de objetos slidos, l e o 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. INTRODUCCION A LA MUSICA 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 vibracin. Un ejemplo de este tipo de fuentes es un diao pasn, el cual al ponerse en vibracin genera un cierto tipo de onda o o sonora. Al estar la fuente vibrando, causa un desplazamiento en el aire cercano, lo que produce cambios locales en la presin de aire. Estas o uctuaciones de presin viajan en forma de una onda. Los cuerpos en o vibracin son las fuentes sonoras ms comunes. o a 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 travs de una placa rotatoria bloquea en forma alternada el ujo e proveniente de un compresor de aire. 3. Fuentes de calor. Una chispa elctrica produce un sonido, tal como lo e produce un trueno. En estos casos, el sonido se produce por un brusco cambio en la temperatura, el cual produce una veloz expansin del aire o circundante. 4. Flujo supersnico. En el caso de un avin supersnico se producen ono o o das de choque que fuerzan al aire a viajar ms rpido que la velocidad a a del sonido.

2.3.

Medicin del sonido o

El sonido en su dimensin f o sica es medible o cuanticable. Existen parmetros que pueden ser medidos en forma precisa como su intensidad a y otros pueden ser estimados con mayor o menor precisin como la frecueno cia o su forma de onda. El sonido fundamentalmente es una onda de presin, y la presin P o o puede medirse de la siguiente forma: P = F/a CADIZ, R. (2.1)

INTRODUCCION A LA MUSICA COMPUTACIONAL

24

CAP ITULO 2. EL SONIDO

lo que equivale a una fuerza F ejercida en una unidad de rea a determinada. a La presin corresponde a la fuerza ejercida en forma perpendicular a una o supercie dividida por el rea de sta supercie. a e Las ondas de sonido transportan energ La energ es una medida absa. a tracta de mucha utilidad en la f sica, dado que se dene de tal forma que en un sistema cerrado la energ siempre es constante, principio que se conoce a como la conservacin de la energ La energ se mide en unidades de masa o a. a por velocidad al cuadrado y usualmente se mide en [Joules]. Otras unidades de medida de la energ son [Btu], [Calor y el [kW/h]. Una importante a a] medida del sonido es su potencia , la cual corresponde a la energ total a por unidad de tiempo y se mide en [Joules/sec]. A continuacin se describen en detalle los parmetros f o a 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 presin atmosfrica causado por la compresin o e o y rarefaccin de las ondas acsticas. Esta cantidad es un indicador de la o u magnitud de energ acstica de un sonido y es el factor que determina a u 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 razn a la cual la energ es eno a tregada en la sensacin audible asociada con la amplitud. Suponiendo una o fuente puntual que irradia energ uniforme en todas las direcciones, entona ces la presin sonora var en forma inversamente proporcional a la distancia o a 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 prdida de intensidad al incremene tarse la distancia es de dB = 20log10 (r1 /r2 ). Al doblarse la distancia, se experimenta una prdida en intensidad de 6 dB. e La presin e intensidad se relacionan a travs de la siguiente ecuacin: o e o P = CADIZ, R. Ic (2.3)

INTRODUCCION A LA MUSICA 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 trminos de presin, el rango e o detectable va desde 2 105 [Pa] a 2 [Pa], lo que equivale a una razn o de 10.000.000:1. En trminos prcticos, medir la intensidad de sonido en e a [W/m2 ] resulta inmanejable debido a su enorme rango, por lo que una escala logar tmica de medicin de intensidad resulta mucho ms apropiada. o a La intensidad (sound level) del sonido se mide en decibeles. Un bel indica una razn de 10:1, por lo tanto o 1bel = log10 (I1 /I0 ) (2.4)

Pero los beles resultan muy grandes para efectos prcticos y por eso se a 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 presin o 1dB = 20log10 (P1 /P0 ) CADIZ, R. (2.6)

INTRODUCCION A LA MUSICA 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 audicin o Respiracin normal o Susurro Conversacin suave o Trco a Disparo Exposicin prolongada (causa prdida auditiva) o e Avin a propulsin despegando o o Jet despegando Perforacin instantnea del t o a 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 audicin, el sonido ms tenue que puede ser detectado. o a En los equipos de audio suele usarse el dBV U (volume unit), donde 0 dB corresponde al mximo nivel de audio posible sin tener distorsin (clipping). a o El rea sobre los 0 dB en este caso se conoce como headroom. a

2.5.

Frecuencia

En el caso de un onda peridica, el patrn que se repite corresponde a o o un ciclo. La duracin de cada uno de los ciclos de una onda se conoce como o perodo. La tasa a la cual los ciclos de una onda peridica se repiten se conoce o como frecuencia y por lo general se mide en ciclos por segundo o Hertz (Hz). Matemticamente, la frecuencia es el inverso del per a 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 trminos de su contenido de frecuencia, un sonido puede poseer lo e que se denomina una frecuencia fundamental, comnmente denotada por u f 0, que usualmente corresponde a la frecuencia ms baja y de mayor ama plitud 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 seccin 3.5. Las seales aperidicas no o n o poseen una frecuencia fundamental fcilmente determinable, dado que nada a se repite en forma peridica. La estimacin de f 0 para seales complejas es o o n CADIZ, R. INTRODUCCION A LA MUSICA 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 seal respecto n 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 percepcin. La fase o adquiere importancia cuando dos o ms sonidos se mezclan entre s Dos soa . nidos pueden ser idnticos, pero estar desfasados entre s lo que implica que e , un sonido comenz antes que el otro. Al interactuar, el resultado percibido o 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 rarefaccin y compresin de ambos sonidos coinciden, como resultado se o o obtiene el mismo sonido pero amplicado. Si el desfase es de o 180 grados, signica que las zonas de rarefaccin de un sonido coinciden con las zonas de o compresin del otro, y al mezclarse, los sonidos se anulan completamente. o El resultado es que no se percibe nada. Esto no es un problema perceptual, es un fenmeno puramente f o sico. La fase es una variable comnmente ignorada y poco tomada en cuenta, u pero es sumamente importante en el anlisis de Fourier, abordado en el a cap tulo 4 y algunas tcnicas de s e ntesis, como las descritas en el cap tulo 5, entre otras cosas.

2.7.

Forma de onda

El patrn de variaciones de presin producido por una fuente de acuerdo o o 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 peridicas y aperidicas. Ellas se muestran o o en la gura 1.3. En la primera de ellas, se aprecia que est compuesta de a patrones repetitivos, mientras que la segunda posee una forma aleatoria, sin un comportamiento denido. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

28

CAP ITULO 2. EL SONIDO

La forma de onda de un sonido determina y est determinada por su a contenido de frecuencias o espectro. La forma de onda se asocia comnmene u con lo que se denomina timbre, detallado en la seccin 3.6, cualidad percepo tual 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 seal real, como n el sonido, no es real, si no complejo o imaginario. Esto signica que las amplitudes no son nmeros reales, sino nmeros complejos y en realidad u u consisten en un par de nmeros y no en uno slo. En la seccin 1.1.4 se u o o describen las dos formas bsicas de representar nmeros complejos: como a u un par ordenado, lo que se denomina forma cartesiana, o bien mediante una magnitud y un ngulo o fase, lo que se llama forma polar. Usualmente, en a el mundo del audio profesional se utiliza el espectro como sinnimo de la o magnitud solamente. Si bien la informacin que entrega la magnitud de un o espectro es util, no lo es todo. Por lo tanto, una representacin que slo o o 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 seccin 1.2. Sin embargo, existen limitacioo nes en cuanto a la resolucin de sta estimacin tanto de tipo tericas como o e o o prcticas. a

2.8.

Representacin grca o a

Existen diversas formas de representar el sonido en forma grca. La a forma de representacin ms utilizada se basa en un diagrama de amplitud o a versus tiempo, tal como se observa en la gura 2.1, donde se pueden apreciar las zonas de compresin y rarefaccin, adems de indicaciones algunos o o a parmetros como amplitud y per a odo, que tienen que ver con la forma de onda. Un sonido tambin puede ser representado por su espectro, mediante un e grco amplitud versus frecuencia. Este grco muestra las amplitudes de a a cada componente de frecuencia contenido en el sonido. Por lo general, siempre es posible pasar de una representacin en el o tiempo a una representacin en la frecuencia y viceversa, mediante la transo formada de Fourier. No obstante, es importante destacar que el diagrama de tiempo no contiene informacin alguna sobre el contenido de frecuencias del o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

2.8. REPRESENTACION GRAFICA

29

sonido y el espectro no contiene informacin de tipo temporal. Por lo tanto, o si bien cada una de estas representaciones basta por s sola para determinar un vocamente un sonido, son en cierto sentido complementarias. Una representacin intermedia es lo que se llama el sonograma. Un soo nograma consiste bsicamente en un eje tridimensional donde se graca la a magnitud del espectro de un sonido versus el tiempo. Esto se logra mediante la subdivisin de la seal de audio en varias pequeas ventanas de tiempo, o n n usualmente traslapadas entre s En cada una de stas ventanas tempora. e les, se estima el espectro mediante lo que se denomina la transformada de Fourier de tiempo corto (o short time Fourier transform en ingls). De esta e forma es posible determinar como va cambiando el contenido de frecuencia del sonido en el tiempo. Si bien el sonograma es muy util, la informacin que o entrega es altamente dependiente de los parmetros que se utilicen para su a clculo, como el tipo de ventana, el tamao de cada ventana y el porcentaje a n de traslape, entre otros.

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

30

CAP ITULO 2. EL SONIDO

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 3

Psicoac stica u

La psicoacstica es la ciencia que estudia la percepcin de los sonidos. u o Tal como veremos en este cap tulo, la percepcin sonora est basada en o a fenmenos bastante complejos. Una vez que una onda sonora proveniente o del mundo f sico ingresa al sistema auditivo humano, se suceden una serie de reacciones en forma casi instantnea que producen como resultado una a representacin mental de lo escuchado, que no corresponde exactamente a o lo que sucede en el mundo f sico. Las variables f sicas del sonido estudiadas en el cap tulo anterior no constituyen una representacin dedigna de o lo que ocurre en el mundo perceptual. Por ejemplo, en ciertas situaciones hay sonidos que bloquean a otros sonidos, incluso si stos ocurren en fore ma asincrnica. Este fenmeno se conoce como enmascaramiento. En estos o o 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 bsicos a
M nima diferencia notoria

La psicoacstica intenta medir o cuanticar la percepcin de los sonidos. u o Una forma de estudiar la percepcin es medir el m o nimo cambio de alguna variable que produzca efectivamente un cambio notorio en la percepcin de o algn est u mulo. Esto se conoce como la m nima diferencia notoria y usualmente se abrevia como JND (del ingls just noticeable dierence). Tambin e e se conoce como umbral diferencial o limen diferencial. 31

32

CAP ITULO 3. PSICOACUSTICA

Usualmente, la m nima diferencia notoria var de persona a persona y a de acuerdo al mtodo de medicin. Incluso, puede cambiar para la misma e o persona, si las condiciones externas son modicadas.

3.1.2.

Ley de Weber

La Ley de Weber es una ley obtenida experimentalmente a travs de e experimentos perceptuales. Cuando se est midiendo la percepcin de algn a o u est mulo, esta ley arma que la m nima diferencia notoria es proporcional a la magnitud del est mulo original. Matemticamente, si tenemos un est a mulo I y nos interesa entonces medir la m nima diferencia I que producir un a cambio efectivo en la percepcin de I, entonces se cumple que: o 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 percepcin de ese est o mulo.

3.1.3.

Modos de percepcin o

Existen dos modos principales de percepcin: lineal y logar o 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 razn entre ellos. o Tal como se ver a continuacin, la percepcin de sonidos por parte del a o o 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 supongamos que estamos frente a un lago, del a: cual salen dos surcos largos y angostos hacia la orilla. En cada surco se coloca una hoja de rbol, la cual se mover a medida que el agua del lago uya a a hacia los surcos. Slo analizando el movimiento de ambas hojas, sin mirar o nada ms que las hojas, la idea es poder responder preguntas como: a 1. Cuntos barcos hay en el lago y donde estn? a a 2. Qu barco esta ms cerca? e a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO 3. Cual es ms potente? a 4. Hay viento? 5. Ha caido algn objeto grande sobre el lago? u 6. Hay algn nadador y qu tan rapido nada? u e

33

Esto puede parecer una misin imposible. Pero la verdad es que el sistema o auditivo humano hace este tipo de anlisis todo el tiempo y a una velocidad a extremadamente alta. Nuestros t mpanos equivalen a las hojas depositadas en los surcos. Nuestro sistema auditivo, basndose unicamente en el anlisis a a del patrn de variaciones en ambos t o 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 ingls como el e cocktail party problem, donde hay muchas fuentes sonoras de todo tipo interactuando al mismo tiempo, no necesitamos realizar ningn esfuerzo para u responder acertadamente preguntas cmo Cunta gente est hablando? o o a a Quin suena ms fuerte o est ms cerca? o Hay algn mquina haciene a a a u a do 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 continuacin, se o detallan los principales componentes de nuestro sistema auditivo.

3.2.1.

El o do

Sin duda el uno de los componentes ms importantes del sistema audia tivo humano es el o do. El o se encarga de convertir las ondas de presin do o acstica en impulsos nerviosos que le permiten al cerebro crear una repreu sentacin mental de la sensacin auditiva. La gura 3.1 muestra las partes y o o componentes ms importantes del o humano. Tal como se puede observar a do en la gura, el o humano est dividido en tres partes principales: o do a do externo, o medio e o interno. Cada una de stas partes cumplen roles do do e espec cos en el proceso general de la audicin. o El funcionamiento general del o es el siguiente: cuando una onda sodo nora llega al o viaja desde el pabelln auricular o pinna hasta el t do o mpano, a travs del canal auditivo. El sonido es modicado en trminos de su contee e nido de frecuencias por el o externo. El t do mpano se encarga de traspasar el patrn de vibraciones de presin hacia el o medio al hacer contacto o o do con tres diminutos huesecillos, que a su vez traspasan la vibracin hacia la o ventana oval, lo que causa una onda de propagacin del l o quido contenido CADIZ, R. INTRODUCCION A LA MUSICA 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 humano do al interior de la cclea, estimulando las clulas ciliares de la membrana bao e silar, la que est conectada a un gran nmero de terminales nerviosos que a u env a su vez seales elctricas al cerebro. De esta manera, el cerebro puean n e de recibir la informacin proveniente de la onda sonora para su posterior o procesamiento. A continuacin se detalla el funcionamiento de cada una de las partes o del o do. O externo do El o externo est constituido por el pabelln auricular o pinna , el do a o 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 localizacin de sonidos. El canal auditivo mide alrededor de 2,5 cm y acta como o u CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO

35

un resonador para el rango de frecuencias entre 1000 y 4000 Hz, siendo el mximo alrededor de 3000 Hz. El t a mpano vibra en respuesta al sonido y transmite esta vibracin de presin en forma de vibracin mecnica hacia el o o o a o medio. do

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 seal acstica n u del tal forma de resaltar la voz humana. O medio do El o medio acta como un transductor de vibracin. Su rol es amdo u o plicar la vibracin de presin mediante un sistema mecnico. Esto se hace o o a mediante tres huesitos llamados martillo, yunque y estribo. La vibracin o de estos huesitos puede ser amortiguada por un msculo anexado a ellos u llamado stapedius, lo cual otorga proteccin contra sonidos muy intensos, o los cuales hacen contraer este msculo, pero no protege contra sonidos muy u intensos y sbitos, como un disparo. u O interno do El o interno consiste bsicamente de la cclea, ya que los canales semido a o circulares, si bien se encuentran all no tienen rol alguno en la audicin. Pero , o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

36

CAP ITULO 3. PSICOACUSTICA

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

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

3.2.2.

Membrana basilar

El rgano de corti es el lugar donde ocurre la produccin de impulsos o o 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 vibracin en algunas de las 3500 clulas o e ciliares, conectadas a la membrana tectorial encima de ellas. Esta vibracin o 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO

37

Figura 3.4: Seccin perpendicular de la cclea o o

Figura 3.5: La membrana basilar desenrrollada

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

38

CAP ITULO 3. PSICOACUSTICA

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

50 Hz

100 Hz

200 Hz

400 Hz

800 Hz

1600 Hz

10

20

30

Figura 3.6: Patrones de vibracin en la membrana basilar o El punto de mximo desplazamiento de la membrana basilar est cerca a a 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 estn connadas a la zona basal. Este hecho explica a fenmenos como el enmascaramiento y la razn por la cual la teor de la o o a posicin (ver seccin 3.5) para la percepcin de alturas no funciona para las o o o 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 mximo a distintas frecuencias, es posible estudiar la respuesta de la mema brana en forma global de acuerdo a la frecuencia. La gura 3.6 muestra los patrones de vibracin de la membrana basilar para tonos de distintas o frecuencias fundamentales. Es fcil de observar que el punto de mxima a a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.2. EL SISTEMA AUDITIVO HUMANO excitacin de la membrana var con la frecuencia de entrada. o a

39

3.2.3.

Clulas auditivas e

En la gura 3.7 se muestra un esquema del rgano de corti, el cual se o encuentra entre la membrana basilar y la membrana tectorial. Contiene en su interior las clulas ciliares o auditivas, que son las encargadas de transmitir e la informacin proveniente de la membrana basilar en forma de impulsos o elctricos hacia el nervio auditivo y la corteza auditiva. Hay dos tipos de e clulas auditivas: internas y externas. Las clulas internas estn compuestas e e a por bras que env pulsos hacia el cerebro. Las clulas externas estn an e a compuestas por bras que reciben pulsos nerviosos provenientes de las reas a superiores del sistema auditivo.

Figura 3.7: Esquema del rgano de corti, que contiene las clulas auditivas o e 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 estn debajo de esta supercie y las distintas regiones del cerebro se a interconectan por esta causa. La corteza auditiva esta organizada tonotpio camente, es decir existen reas del cerebro organizadas espacialmente en a torno a distintos rangos de frecuencia. Es como si ciertas reas del cerebro a fueran sensibles a slo un grupo reducido de frecuencias. Esto indica que o hay algo fundamental en torno a la frecuencia en la respuesta del cerebro al sonido, incluso al ms alto nivel, como es la corteza auditiva. a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

40

CAP ITULO 3. PSICOACUSTICA

3.3.

Bandas cr ticas y enmascaramiento

Una caracter stica fundamental del sistema auditivo humano es su capacidad resolucin de frecuencia e intensidad. Al momento de estudiar ste o e aspecto de nuestra audicin es fundamental el concepto de banda cr o 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 funcin o aumentar la resolucin de frecuencia de la cclea y as incrementar la habio o lidad de discriminar entre distintos sonidos. Este banco de ltros no sigue una conguracin lineal, y el ancho de banda y morfolog de cada ltro o a 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 percepcin o de otro sonido. Las bandas cr ticas conceptualmente estn ligadas a lo que a sucede en la membrana basilar, ya que una onda que estimula la membrana basilar perturba la membrana dentro de una pequea rea ms all del n a a a punto de primer contacto, excitando a los nervios de toda el rea vecina. a Por lo tanto, las frecuencias cercanas a la frecuencia original tienen mucho efecto sobre la sensacin de intensidad del sonido. La intensidad percibida o 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.3. BANDAS CR ITICAS Y ENMASCARAMIENTO construccin terica y no algo f o o 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 medicin de las bandas cr o 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 relacin con la escala mel, abordada en la seccin o o 3.5.1 pero no es tan utilizada. La relacin entre un Bark y un Hz est dada por: o a 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 ingls.Esta medida e muestra la relacin entre el conducto o canal auditivo y el ancho de banda o de un ltro auditivo. La idea de esta medida es reemplazar una banda cr tica por un rectngulo equivalente cuya rea sea la misma, de manera de permitir a a en su interior la misma cantidad de energ a. La ERB se calcula mediante la siguiente ecuacin: o ERB = 24,7(4,37f + 1) (3.3)

La gura 3.22 muestra la escala de Barks, la ERB y la escala mel en funcin de la frecuencia. Ambas tienen curvas parecidas, pero dieren en o algunos detalles. La gura 3.9 muestra una aproximacin computacional a los ltros auo ditivos, basado en la escala ERB.

3.3.2.

Enmascaramiento

El enmascaramiento ocurre cuando la presencia de un sonido, llamado mscara, hace inaudible otro sonido que ser perfectamente audible en la a a ausencia de la mscara. Esto ocurre si es que ambos sonidos se encuentran a 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 al interior de una a banda cr tica para que sta se active y el sistema auditivo perciba activie dad en esa banda. Si existe ms de un sonido o se incrementa la energ a a CADIZ, R. INTRODUCCION A LA MUSICA 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 estimacin de las bandas cr o ticas del sistema auditivo

al interior del ltro, esto no cambia la informacin desde el punto de vista o 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 fenmeno denominado enmascaramiento. La codio cacin perceptual de audio, detallada en la seccin 3.8, se basa fuertemente o o en ste fenmeno para reducir la cantidad de informacin necesaria para e o o almacenar y reproducir una seal sonora. n CADIZ, R. INTRODUCCION A LA MUSICA 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 funcin del enmascaramiento que o producen de acuerdo al procedimiento descrito en la gura 3.11. El ancho de banda de una mscara constitu por ruido blanco se ensancha cont a da nuamente y se mide el nivel de enmascaramiento que produce respecto a una seal de prueba. Una vez que se alcanza el punto sobre el cual el enmascan ramiento no cambia signicativamente al agrandarse el ancho de banda, se est en la presencia de los l a mites de la banda cr tica en medicin. o

3.3.3.

Midiendo la banda cr tica

El tipo de enmascaramiento ms comn es el que se denomina simultneo, a u a es decir cuando la mscara y el sonido enmascarado coinciden en el tiempo, a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

44

CAP ITULO 3. PSICOACUSTICA


seal mscara

tiempo seal mscara

tiempo seal mscara

tiempo seal mscara

tiempo

Figura 3.11: Medicin de la banda cr o tica

tal como lo muestra la gura 3.12.


seal mscara

tiempo

Figura 3.12: Enmascaramiento simultneo a

Pero existe tambin enmascaramiento de tipo temporal, que ocurre cuane do la mscara se encuentra antes o despus del sonido enmascarado en el a e tiempo. La gura 3.13 muestra lo que se denomina enmascaramiento hacia atrs (backward masking en ingls) y la gura 3.14 muestra lo que se a e denomina enmascaramiento hacia adelante (forward masking en ingls) e CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.4. INTENSIDAD PERCEPTUAL (LOUDNESS)


seal tm tiempo mscara

45

Figura 3.13: Enmascaramiento hacia atrs a


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 funcin de la frecuencia. En la l o nea mas gruesa se muestran los l mites de la audicin humana, en la parte baja el umbral de audibilidad, que o corresponde a la m nima intensidad necesaria para percibir un sonido y en la parte superior el umbral del dolor, correspondiente a la mxima intensidad a que nuestro sisema auditivo es capaz de tolerar. Tal como se puede apreciar, la percepcin de intensidad no es uniforme para todas las frecuencias. Para o 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 slo basta con una intensidad o de unos 5 dB SPL. Claramente, el rango entre 1 a 5 kHz es el ms fcil de a a percibir. La percepcin de la intensidad de un sonido no corresponde exactamente o a su intensidad f sica. En el idioma ingls existe el trmino loudness para e e referirse a la intensidad perceptual de un sonido y diferenciar sta medida de e la intensidad f sica. En el idioma castellano no existe un trmino equivalente e y en el presente texto se utilizar la expresin intensidad perceptual para a o referirse a la medida perceptual de la intensidad de un sonido. Usando una expresin coloquial, la idea es determinar que tan fuerte suena algo. o La sensacin de intensidad perceptual depende principalmente de la cano tidad de energ acstica recibida por el o Tal como sucede con la percepa u do. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

46

CAP ITULO 3. PSICOACUSTICA

Figura 3.15: Umbrales de audibilidad cin de altura, la intensidad de un sonido es percibida en forma logar o tmica, siguiendo en forma casi exacta la ley de Weber. En relacin con las bandas cr o ticas, si las frecuencias de dos sonidos caen dentro de una cierta banda cr tica, su intensidad perceptual ser la suma de a sus intensidades individuales. Sin embargo, si las frecuencias de dos sonidos estn fuera de esta banda cr a tica, su intensidad perceptual ser mayor a la a 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 ingls) se dene como el nivel de e un tono de 1000 Hz medido en dB SPL que iguala la intensidad percibida de un sonido de referencia. Por ejemplo, si un motor elctrico es igual en e 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 ingls equal loudness e contours). Por ejemplo, de acuerdo a dichos contornos, un tono de 9 kHz a CADIZ, R. INTRODUCCION A LA MUSICA 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. Basndose en informacin proveniente de experimentos psicoacsticos, es a o u posible determinar una relacin matemtica entre la intensidad perceptual o a (L) y la intensidad f sica (I), dada por la siguiente ecuacin: o L = kI 0,3 (3.4)

donde k es una constante. Esta ecuacin nos indica que para sonidos sobre o 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 despus e de un cierto punto cr tico. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

48

CAP ITULO 3. PSICOACUSTICA

3.5.

Altura (pitch)

Tal como sucede con la intensidad perceptual, en el idioma ingls existe e un trmino especial para referirse a la percepcin de la periodicidad de un e o sonido, llamado pitch. En el idioma castellano podr traducirse como tono o a altura. Ambas palabras tienen inconvenientes. Usualmente, la palabra tono se reere indistintamente a un tipo especial de sonido, de carcter sinusoidal a o bien a la percepcin de la frecuencia o periodicidad. Por otra parte, la o palabra altura proviene del espacio, es una medida de distancia y no aparece como muy apropiada para referirse a un fenmeno exclusivamente temporal. o Adems, tal como se ver ms adelante, la percepcin de periodicidad sonora a a a o es un fenmeno bi-dimensional, y se divide en lo que se llama en ingls pitch o e height (que podr traducirse como altura) y pitch chroma (color). Por lo a tanto, en realidad la palabra altura se reere a slo una de las dimensiones o de esta medida. A pesar de estas limitaciones, en el presente texto se utilizar la palabra a altura para referirse a la medida perceptual de la periodicidad de un sonido, siempre teniendo en cuenta la otra dimensin de color, y la palabra tono se o referir a un sonido sinusoidal, comnmente referido como tono puro. a u La altura, que es un fenmeno puramente perceptual, est muy correo a lacionada con la frecuencia f sica, pero no existe una relacin exacta uno a o uno entre ellas. La altura no debe confundirse con lo que se conoce como brillo, el cual depende de la distribucin de energ entre las altas y bajas o a 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 comnmente aceptado, existe controversia sobre el l u 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 prdida aue ditiva asociada a la edad, pero hay investigadores que arman que el rango de audicin humana va ms all de los 20 kHz. o a a 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 duracin, como tambin de cambios sbitos en la o e u frecuencia. La resolucin de frecuencia auditiva es muy superior a la resoluo cin de frecuencia visual o la percepcin de color. La visin humana abarca o o o 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 percepcin de altura funcionan en forma distinta o para las altas y bajas frecuencias. No existe una teor que explique coma CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.5. ALTURA (PITCH)

49

pletamente el funcionamiento de la percepcin de alturas por s sola y es o necesario, entonces, recurrir a dos teor distintas pero complementarias as para explicar nuestra percepcin de alturas. o La teor de la posicin (o frecuencia) argumenta que la percepcin de a o o alturas est determinada por el lugar de mxima vibracin en la membrana a a o basilar, tal como se muestra en la gura 3.6. Esta teor funciona muy bien a 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 posible a discriminar alturas usando solamente esta informacin. o La teor temporal (o de periodicidad) considera que la altura percibida a est determinada por la distribucin de los impulsos elctricos en las neuroa o e nas auditivas. Sucede que stos impulsos elctricos producidos por las neuroe e nas se sincronizan con la frecuencia fundamental del est mulo que est siendo a percibido. Este fenmeno se conoce como sincronizacin de fase (en ingls o o e phase locking). Esta teor funciona para bajas frecuencias, hasta unos 5 a kHz, porque hay un l mite f sico que impide a las neuronas disparar impulsos elctricos a tasas mayores. e 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 representacin fue propuesta por Roger Shepard en 1982. o De acuerdo a esta idea, la altura posee realmente dos atributos, denominados en ingls pitch height y pitch chroma. El primero efectivamente mide e la altura de un sonido en una escala ascendente y el segundo mide algo que se podr denominar como color o croma, que se reere a la nota musical ms a a prxima a una determinada frecuencia f o sica y que se representa en forma circular. Esta es la razn por la cual los seres humanos son capaces de recoo nocer las notas musicales independiente de la octava en que se encuentren. En algunas situaciones es ms fcil determinar el croma de un sonido que a a su altura efectiva. La relacin entre frecuencia, medida en Hz, y la altura percibida no es o lineal. Esto se debe a que la estimulacin en la membrana basilar ocurre o en puntos espaciados de acuerdo a una funcin logar o tmica de la frecuencia. Cuando la frecuencia de un est mulo sonoro se duplica, la distancia entre los puntos de estimulacin de la membrana basilar se encuentran aproxio madamente 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 razn entre ellas, lo que musicalmente se conoce como o un intervalo musical. Un ejemplo claro de aquello es justamente la octava, intervalo que implica una razn 2:1, cuando la frecuencia se duplica. Percepo CADIZ, R. INTRODUCCION A LA MUSICA 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 razn 2:1 esta distancia se juzga como la misma, o una octava, independiente del rango de frecuencias donde ocurra. Por lo general, la altura est altamente correlacionada con la frecuencia a fundamental de un sonido. Sin embargo, existe evidencia que muestra que la percepcin de altura no est relacionada unicamente con la fundameno a tal. Ejemplo de esto son algunas ilusiones auditivas tales como los tonos de Shepard o de Risset, diseadas especialmente para engaar al sistema n n 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. INTRODUCCION A LA MUSICA 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 relacin armnica y los parciales estn o o a separados por un poco ms de una octava. Si se doblan las frecuencias de a los parciales, se percibe un descenso en la altura. Esto se debe a que el sistema auditivo explica este fenmeno mediante el reemplazo del tono por o parciales de frecuencias un poco menores que las existentes, de otra manera, la situacin no le hace ningn sentido. o u Estas ilusiones demuestran que la percepcin de altura depende del o patrn de armnicos del sonido y no slo de la frecuencia fundamental. Cono o o trariamente 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 fenmeno se conoce como altura virtual y se muestra en la gura 3.19. En o 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 armnicos f 0, f 1 y f 2. En ambos casos se o percibe la misma altura, correspondiente a la frecuencia fundamental. Esto sucede por que el sistema auditivo al encontrar los primeros armnicos auo tomticamente trata de encontrar algn patrn que tenga sentido y concluye a u o que lo ms evidente es que se trate de un tono con frecuencia fundamental a f 0, aunque no est presente f e sicamente. Para probar sta hiptesis, en la e o 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. INTRODUCCION A LA MUSICA 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 armnicos que permit su percepcin. o an o
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: Demostracin de la existencia del tono virtual o

El fenmeno de la altura virtual por lo general slo se presenta para o o frecuencias bajo 1000 Hz. Para frecuencias sobre ste valor, la altura slo e o se percibe cuando la fundamental correspondiente a esa altura est efectia vamente presente. La sensacin de altura tambin depende de otros factores, tales como la o e intensidad y la duracin. En trminos de la intensidad, la percepcin de una o e o 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 pequeos cambios en la altura percibida. n La altura tambin est condicionada por la duracin de los est e a o mulos. Para sonidos de bajas frecuencias la duracin m o nima necesaria para percibir esa altura es considerablemente mayor que para tonos de frecuencias ms a altas. Dependiendo de la frecuencia fundamental, si la duracin del est o mulo es muy corta el sistema auditivo no es capaz de generar la percepcin de una o altura determinada. Esto se ejemplica en la gura 3.21, donde se muestra la percepcin de la altura en funcin de la duracin. o o o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.5. ALTURA (PITCH)

53

Figura 3.20: Altura e intensidad

Figura 3.21: Altura y duracin o

3.5.1.

Escala de mels

Al igual como sucede con la intensidad perceptual y la escala de fonos y sonos, es util el contar con una escala perceptual de alturas, que pueda representar de manera ms dedigna nuestra percepcin de la periodicidad a o 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 como una forma de explicitar que se trata de una escala basada en a, comparaciones entre alturas. Esta escala se construye equiparando un tono de 1000 Hz y a 40 dBs por encima del umbral de audicin del oyente, con un tono de 1000 mels. o CADIZ, R. INTRODUCCION A LA MUSICA 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 duracin o La gura 3.22 muestra la escala mel en comparacin con la escala de o Barks y la escala ERB, discutidas en la seccin 3.3.1. Claramente se aprecia o su no linearidad respecto a la frecuencia. La relacin entre mels (m) y Hz (f) es la siguiente: o 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 es el timbre? Cmo podemos denirlo? Cmo se caracteriza? e o o Cmo se mide? Cmo se representa o anota musicalmente?. El timbre, o o 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 denicin. De hecho, el timbre o CADIZ, R. INTRODUCCION A LA MUSICA 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 duracin. o En 1885, Helmholtz propone una denicin de timbre limitada al estado o de reposo de un sonido. De acuerdo a su interpretacin, el timbre est basado o a principalmente en la estructura armnica de sus componentes de frecueno cia. En 1934, Fletcher lo dene como esa caracter stica de la sensacin que o permite al oyente escuchar el tipo de instrumento que emite el sonido. En 1938, Seashore lo liga al trmino Sonoridad, que es la calidad del tono e cuando el la altura y la intensidad percibida var an. Ms an, el comit de a u e estndares ANSI dene el timbre como el atributo de la sensacin auditiva a o en trminos de la cual un auditor puede juzgar dos sonidos que presentados e en forma similar, teniendo la misma altura e intensidad percpetual, como no similares. Segn Donnadieu, la ausencia de una denicin satisfactoria del timbre u o 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 duracin (corta o larga), o la intensidad (suave o fuerte). El vocabulao rio 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 trminos frecuentemente e utilizados para describir los sonidos musicales. El segundo problema est rea lacionado con el hecho de que el timbre es un concepto que hace referencia a diferentes niveles de anlisis. Schaeer seal que se puede hablar de .el tima n o bre de un sonido sin atribuirlo directamente a un determinado instrumento, sino ms bien como una caracter a stica intr nseca del sonido, percibida per se. Habr an, por lo tanto, dos conceptos de timbre: uno relacionado con el instrumento, la indicacin de la fuente que nos es dada por la simple escuo cha, y la otra en relacin con cada uno de los objetos proporcionados por o el instrumento y el reconocimiento de los efectos musicales en ellos. El concepto de timbre, es entonces, mucho ms general, que la simple habilidad de a reconocer instrumentos. Donnadieu enfatiza que el gran problema es que un slo trmino se reo e ere a muchas nociones diferentes. El timbre puede describirse entonces en distintos trminos: e 1. Un conjunto de sonidos de un instrumento y tambin de la especicie dad de cada sonido del timbre de un instrumento en particular 2. Un sonido aislado CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

56

CAP ITULO 3. PSICOACUSTICA 3. Una combinacin de diferentes instrumentos o 4. La composicin de una compleja estructura sonora o 5. En el caso de timbres producidos por el anlisis/res a 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 muy ligado al problema de la fuente, tan a comn en la msica electroacstica y tratado en detalle en la seccin 7.1.1, u u u o 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 informacin o pertinente para la identicacin de fuentes de ruido o eventos, incluso en un o contexto musical. Hay dos enfoques o teor prinicipales sobre el timbre. El primer moas delo es el procesamiento de la informacin, que describe las dimensiones de o percepcin de timbre resumen, en trminos de los atributos de los sonidos. o e En otras palabras, los parmetros acsticos (espectrales, temporales, y esa u pectrotemporal) de la seal sonora son procesadas por el sistema sensorial, n perceptivo y el resultado es el timbre de los sonidos complejos. El escalamiento multidimensional o MDS ha sido fruct fero en la determinacin de o estas diferentes dimensiones de percepcin de timbre. o El segundo enfoque, basado en la teor ecolgica propuesta por Gibson, a o slo recientemente ha dado lugar a la experimentacin sistemtica en la o o a percepcin auditiva. Segn este punto de vista, el timbre de la percepcin es o u o una funcin directa de las propiedades f o sicas del objeto sonoro. El objetivo de estos estudios es describir los parmetros f a sicos que son perceptualmente de inters para el objeto que vibra. e Es importante destacar que el timbre no es un fenmeno esttico. Por o a el contrario, el espectro de un sonido cambia cont nuamente en el tiempo. Al momento de crear sonidos a travs de la s e ntesis aditiva, detallada en la seccin 5.4, es muy importante generar trayectorias dinmicas en el tiempo o a para cada parcial. Al momento de analizar sonidos en trminos de su timbre e es importante estudiar qu tan rpido decae la energ en los armnicos e a a o superiores, el nmero de armnicos presentes en la seal y que frecuencias u o n 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 esttico y dependiende a unicamente de la conguracin o patrn de armnicos, sino que est muy o o o a ligado a la evolucin temporal de la informacin que conlleva. o o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.7. CONSONANCIA Y DISONANCIA

57

Amplitud Frecuencia

Tiempo

Figura 3.23: Trayectoria de armnicos en la trompeta o

3.7.

Consonancia y disonancia

Los fenmenos de la consonancia y disonancia han despertado el inters o e de cient cos y estudiosos hace mucho tiempo. Galileo Galilei formulo una teor que arma que las consonancias son pares de tonos que llegan al a o con una cierta regularidad; esta regularidad consiste en el hecho de que do pulsos entregados por los dos tonos, en el mismo intervalo de tiempo, deben ser conmensurables en nmero, de manera de no mantener el o en un u do tormento perceptual. En 1877 Helmholtz explic la consonancia mediante o la ley acstica de Ohm al armar que la altura que corresponde a cierta u frecuencia slo se puede escuchar si la onda acustica contiene energ en esa o a frecuencia, algo que sabemos hoy que no es cierto (ver seccin 3.5). Helmo holtz propuso que la disonancia aparece dado los abatimientos (beatings en ingls) que se producen entre tonos adyacentes en tonos complejos y cale cul que la disonancia mxima aparecer entre dos tonos puros cuando la o a a razn de abatimiento es de unos 35 Hz. o 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. Segn esta idea, la consou nancia se forma simplemente de acuerdo a razones entre frecuencias. Las CADIZ, R. INTRODUCCION A LA MUSICA 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 acsticas explican el fenmeno basadas en las propiedades f as u o sicas de la seal acstica, una de las cuales es la razn de frecuencias. Otras teor n u o as de carcter psicoacstico se basan en principios perceptuales del sistema aua u ditivo humano, tal como la inuencia de la membrana basilar. Las teor as cognitivas se fundamentan en fenmenos cognitivos de nivel superior, tal o como la categorizacin de intervalos musicales mediante entrenamiento. Por o ultimo, las teor culturales dan cuenta de normas sociales, culturales o as estil sticas que son internalizadas por los auditores. Estudios bastante ms recientes han permitido una mayor comprensin a o del fenmeno y relacionarlo con el concepto de banda cr o tica. En 1965, Plomp y Levelt llegaron a la conclusin que la consonancia o disonancia depende o ms de la diferencia entre frecuencias que de sus razones. Si la diferencia a de frecuencia entre dos tonos es mayor que una banda cr tica, suenan consonantes, si es menor, suenan disonantes. Esto se conoce como disonancia tonotpica. Kameoka y Kuriyagowa tambin en 1965 encontraron que la o e mxima disonancia ocurre cuando la diferencia de frecuencia es aproximaa damente un cuarto de la banda cr tica. Segn Boomsliter y Creel (1961) la consonancia aparece cuando los disu paros neuronales del sistema auditivo estn sincronizados, lo que se denomia na teor de sincron de las descargas neuronales. Segn Irvine (1946), la a a u consonancia y disonancia estn relacionadas con el largo del per a odo de un ciclo. Por ejemplo, cuando dos tonos estn relacionados por razones de frea cuencia simples, el ciclo de repeticin de la seal combinada es relativamente o n corto. Cuando la razn de frecuencia entre los tonos no estn relacionados o a por razones sencillas, el ciclo de repeticin es largo. o Stumpf (1890) argumenta que la fusin tonal es la base para la cono sonancia, entendindose por fusin a la propensin de dos o ms tonos de e o o a fusionarse perceptualmente y sonar como un slo tono complejo. Las mao yores consoancias se producen cuando los tonos tienden a sonar como uno CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.8. CODIFICACION PERCEPTUAL DE AUDIO

59

slo. o Se han determinado distintos tipos de disonancia de acuerdo al contexto donde sta se inserta. Por ejemplo, la disonancia de resolucin de altura e o aparece cuando el tiempo que toma resolver alturas de una seal completa n es relativamente largo. Resnick (1981). En la disonancia de categor de ina tervalo, la disonancia aparece cuando dos pitches forman un intervalo que es categricamente ambiguo para un auditor. Esto es, cuando el intervalo o est cerca de una categor intervlica aprendida. La disonancia de pitch a a a absoluto es el componente de la disonancia que aparece cuando un pitch es ambiguo para un auditor que posee o absoluto. En el caso de la disonancia do de ujo incoherente, la disonancia aparece debido a la confusin que pueden o causar distintos ujos de eventos musicales. (Wright and Bregman, 1987). La disonancia temporal es el componente de la disonancia que aparece por la rpida uctuacin de amplitud o abatimientos. La disonancia de altua o ra virtual aparece por la compentencia entre alturas virtuales no resueltas (Terhardt, 1974). Hay un ultimo tipo de disonancia que es importante destactar denomi nada disonancia de expectacin. Consiste en el componente de la disonancia o 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 armnico tiene una o tendencia de resolver dentro del marco de un acorde o armon subyacente. a En un segundo nivel, un momento disonante de acorde es cuando un acorde puede ser disonante hasta el extremo de generar una expectativa de resolucin hacia otro acorde o progresin armnica. Por ultimo, la disonancia o o o de centro tonal se maniesta cuando un pasaje musical retiene un cierto centro tonal dominante, y la disonancia aparece cuando al rea dominante a nalmente se mueve hacia el rea original. a

3.8.

Codicacin perceptual de audio o

La codicacin perceptual de audio consiste, de modo general, en un o mtodo para reducir la cantidad requerida de datos para representar una e seal de audio digital. Este mtodo inevitablemente genera prdidas en n e e trminos de calidad, introduciendo una cierta cantidad de ruido que podr e a perfectamente caer dentro del rango de la audicin humana si se analiza en o forma aislada. Sin embargo, la codicacin perceptual est diseada de tal o a n manera que el ruido generado por el codicador cae fuera de los l mites de audicin humana en presencia de la seal original. Esta distincin es muy o n o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

60

CAP ITULO 3. PSICOACUSTICA

importante, ya que los algoritmos de compresin basados en percepcin, a o o diferencia de los esquemas puramente numricos o algor e tmicos, tales como -law o ADPCM, se aprovechan de las limitaciones del sistema auditivo humano. La idea fundamental de la codicacin perceptual de audio es que la o presencia de ciertos est mulos auditivos pueden inuenciar la habilidad del cerebro humano para percibir otros est mulos. En palabras ms simples, a este tipo de algoritmos se basa fuertementente en le fenmeno de enmascao ramiento, descrito en detalle en la seccin 3.3.2. Un codicador perceptual o por lo tanto, no codica aquellos componentes de la seal de audio que se n vern enmascarados por otros, ahorrando de esta manera una considerable a cantidad de datos perceptualmente redundantes e innecesarios. Hoy d existen numerosos esquemas de compresin basados en esta prea o misa, siendo el ms conocido el MPEG-1, capa 3, comnmene conocido como a u 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 codicacin perceptual. En el codicador, la seal de entrada se descomo n pone en mltiples bandas de frecuencia. De esta forma, los datos de cada u banda se pueden procesar de manera independiente y cada banda puede ser representada con un grado variable de resolucin. o La idea es asignar una menor resolucin en aquellas bandas de frecueno cia que pueden ser representadas con una menor cantidad de informacin, o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

3.8. CODIFICACION PERCEPTUAL DE AUDIO

61

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

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

62

CAP ITULO 3. PSICOACUSTICA

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 4

Audio digital

La msica computacional, tal como su nombre lo indica, usualmente se u hace mediante un computador, ya sea mediante la s ntesis o el procesamiento de una seal de audio digital, que consiste bsicamente en una secuencia n a discreta de nmeros. Una seal digital tiene caracter u n sticas especiales que la hacen muy diferente de una seal analgica, como por ejemplo una onda de n o presin acstica en el mundo f o u sico. En consecuencia es importante estudiar los principios bsicos de operacin de un computador y la naturaleza de las a o seales digitales. n

4.1.

Anlogo versus digital a

Una seal continua o analgica es una que posee valores en cada instante n o de tiempo. En contraste, una seal discreta o digital slo posee valores en n o ciertos instantes de tiempo, distanciados a intervalos regulares. Una seal n discreta no est denida para valores intermedios de tiempo. Esto se visuaa liza claramente en la gura 4.1. Una seal continua es convertida en una seal digital mediante un pron n ceso denominado digitalizacin , el cual a su vez es un proceso que depende o de dos operaciones: muestreo (sampling en ingls), que corresponde a tomar e muestras de la seal en el tiempo y cuantizacin, que consiste en aproximar n o valores continuos de la amplitud a un grupo de valores manejables en el computador. Este proceso se visualiza en la gura 4.2. Una seal continua n (a) es primero muestreada en el tiempo para producir una versin de tiempo o 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 seal original, la n 63

64

CAP ITULO 4. AUDIO DIGITAL


Seal anloga

y(t)

Seal digital

y(n)

Figura 4.1: Seal anloga versus digital n a que se muestra en (d). Una seal digital consiste en una secuencia de numeros, n ...xn2 , xn1 , xn , xn+1 , xn+2 ... (4.1)

donde n corresponde al nmero de muestra y slo toma valores enteros. u o Una seal sinusoidal digital se escribe como: n 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 nmero de muestra, las seales u n 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 seal digital de una secuencia de nmeros, por lo general n u para analizar cualquier caracter stica de ella es necesario escoger una ventana f= CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

4.1. ANALOGO VERSUS DIGITAL

65

Figura 4.2: Digitalizacin de una seal anloga o n a de anlisis. Esto es una ventana que comienza en una muestra M arbitraria a 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 ms angosto y atenuado posible. La ventana ms simple es una de tipo a a rectangular, en la cual la secuencia digital se multiplica por una funcin o rectangular pero presenta problemas sobre todo en los bordes, dado que introduce un cambio muy brusco en la seal, lo que provoca que la seal n n se desparrame en la frecuencia. Hay muchas otras formas de ventanas que CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

66

CAP ITULO 4. AUDIO DIGITAL

pueden resultar ms apropiadas para ciertas operaciones, y tratan de suaa vizar el efecto en los bordes, en la gura 4.3 se muestran tres de las ms a 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 seal continua cada cierto n tiempo a intervalos constantes. La frecuencia a la cual se toman dichas muestra se conoce como tasa de muestreo. En una forma ms precisa, el a muestreo consiste en multiplicar una seal anloga por un tren de impulsos n a unitarios discretos, tal como se muestra en la gura 4.4. La separacin del o los impulsos en el dominio del tiempo se conoce como per odo de muestreo y la separacin en el dominio de la frecuencia la tasa de muestreo. o CADIZ, R. INTRODUCCION A LA MUSICA 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 seal digital n Tal como se aprecia en la gura, la seal muestreada consiste slo en n o muestras de la seal original. A primera impresin, en el dominio del tiempo, n o da la sensacin de que se ha perdido informacin, pero en realidad no es as o o . Esto es bastante ms fcil de entender en el dominio de la frecuencia. a a 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 seal por un n tren de impulsos. En la frecuencia lo que sucede es que se convoluciona el espectro de la seal original con otro tren de impulsos, cuya separacin entre n o impulsos sucesivos es inversamente proporcional al per odo de muestreo. Esta operacin genera innitas rplicas del espectro original, separadas entre o e s de acuerdo a la tasa de muestreo. Para reconstruir la seal original desde la seal muestreada, en el dominio n n CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

68

CAP ITULO 4. AUDIO DIGITAL

de la frecuencia basta con ltrar la seal por un ltro pasa bajos con una n frecuencia de corte tal que permita slo aislar el espectro original. Dado que o al ltrar el espectro original se obtiene en forma intacta, no hay prdida e de informacin alguna. En el dominio del tiempo, este ltraje equivale a o convolucionar con la transformada de Fourier de una funcin rectangular, es o decir una funcin sinc, ambas funciones denidas en la seccin 1.3. Es por o o esto que para reconstruir una seal muestreada en su forma analgica, es n o necesario realizar una interpolacin sinc. o Es por lo tanto, clave tener una separacin suciente entre las rplicas o e de manera que no intereran unas con otras y pueda recuperarse el espectro original de la seal muestreada. Por simple inspeccin es claro que la tasa n o m nima de muestreo debe ser al menos el doble de la mxima frecuencia a presente en el espectro original. Esta condicin se conoce como el teorema o del muestreo. Al muestrear una seal, la mxima frecuencia permitida en el n a espectro de la seal original se conoce como frecuencia de Nyquist. n Aliasin o Si la tasa de muestreo no es suciente, las rplicas del espectro se trase laparn entre s y no ser posible reconstruir el espectro original al ltrar a a con el pasa bajos. Este fenmeno se conoce como aliasin, tal como se puede o o observar en la gura 4.5. En trminos sonoros, el fenmeno de la aliasin es claramente audible ya e o o que se introducen frecuencias en el espectro correspondientes a la diferencia entre la frecuencia de muestreo y la mxima frecuencia de la seal original. a n Esto es claro de observar en el dominio del tiempo, como lo muestra la gura 4.6. Al reconstruir la seal mediante la interpolacin sinc, se obtiene n o otra con una frecuencia bastante menor. La gura 4.6 muestra el caso de una seal submuestreada (con aliasin) versus una seal sobremuestreada, n o n donde la tasa de muestreo es mayor a la mxima frecuencia de la seal origia n nal. Claramente la seal reconstruida en el caso submuestrado se encuentra n distorsionada respecto a la original.

4.1.2.

Cuantizacin o

Una seal digital no solamente es discretizada en el tiempo, sino tambin n e en su amplitud. Esto se debe a que el computador, por su naturaleza discreta, no es capaz de representar ni manipular una funcin continua de amplitud. El o proceso por el cual se discretiza la amplitud de una sonido en el computador se denomina cuantizacin. o CADIZ, R. INTRODUCCION A LA MUSICA 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: Aliasin en el dominio de la frecuencia o


a) Seal sobremuestreada
Seal original

b) Seal submuestreada
Seal original

Pulso de muestreo

Pulso de muestreo

Seal reconstruida

Seal reconstruida

Figura 4.6: Aliasin en el dominio del tiempo o La cuantizacin es un proceso claramente no lineal, como se muestra o en la gura 4.7. Esto implica que genera distorsiones o errores no lineales. La gura 4.8 muestra el proceso de la cuantizacin de una seal analgica. o n o CADIZ, R. INTRODUCCION A LA MUSICA 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 cuantizacin o La cuantizacin se encarga de otorgarle a un rango de la seal una unica o n salida. La diferencia que resulta de restar la seal de entrada a la de salida n es el error de cuantizacin, esto es, la medida en la que ha sido necesario o cambiar el valor de una muestra para igualarlo a su nivel de cuantizacin o ms prximo. a o

Figura 4.8: Cuantizacin de una seal analgica o n o Los valores continuos de la seal son aproximados a 2n niveles de amplin tud cuantizados donde n corresponde al nmero de bits disponible, tal como u se explica en la seccin 4.2. Esto depende de cada sistema. La resolucin de o o la seal por ende tendr relacin con el numero de niveles que se tenga n a o 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 seal n CADIZ, R. INTRODUCCION A LA MUSICA 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 cuantizacin o cuantizada, a diferencia de lo que sucede con el muestreo, donde es posible reconstruir la seal original si se muestra a una tasa adecuada. n
+2 +1 0 -1 -2

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

72

CAP ITULO 4. AUDIO DIGITAL

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

4.2.

Sistema binario

La unidad bsica de informacin que un computador puede reconocer a o es un bit. Un bit representa el estado o posicin de un switch dentro del o hardware del computador y solamente puede asumir dos estados: encendido o apagado (electrnicamente esto es equivalente a decir que por un cierto o punto de un circuito pasa o no pasa corriente elctrica). Normalmente el e estado de encendido se representa por un 1 y el apagado por un 0. Un sistema de informacin de este tipo, en el cual slo hay dos estados posibles, o o se conoce como sistema binario. . La cantidad de informacin que puede ser representada por un sistema o binario depende del nmero de bits disponible. Por ejemplo, si slo se cuenta u o con 2 bits, las unicas posibilidades distintas de informacin son: 00, 01, 10 o 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: Representacin numrica en distintos sistemas o e CADIZ, R. INTRODUCCION A LA MUSICA 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 nmeros u 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 bsicamente una mquina que realiza dos funciones a a bsicas: ejecuta en forma muy rpida una secuencia de instrucciones (un a a programa) y almacena y recupera grandes cantidades de informacin (datos). o De acuerdo a esto, un computador puede caracterizarse por su velocidad de operacin (medida en Hertz o ciclos por segundo), el tipo de instrucciones o que puede ejecutar (esto determina el tipo de computador) y la capacidad de su memoria (medida en bytes). El trmino hardware se reere a la circuiter electrnica que posee un e a o determinado computador y software a los programas que dicho computador puede ejecutar. Dentro del hardware estn, entre otras cosas, el procesador, a 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 estn el sistema operativo a y programas tales como procesadores de texto, planillas de clculo, agendas a 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 ms espec a cos.

Figura 4.11: Estructura bsica de un computador a En la gura numero 4.11 se puede apreciar la estructura bsica de un a computador. En ella se aprecian cuatro unidades fundamentales: memoria CADIZ, R. INTRODUCCION A LA MUSICA 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 ingls), es el sistema central e del computador. Controla la operacin del sistema leyendo e interpretano do instrucciones para el ujo de la informacin. Estas instrucciones pueo den tambin tomar decisiones basadas en los datos que son almacenados e 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 dia vidida en distintas particiones en las cuales la informacin es almacenada. o Cada particin de memoria est un o a vocamente asociada a un nmero de diu reccin. La CPU utiliza este nmero tanto para almacenar como para leer o u la informacin contenida en una particin determinada. o o Cuando el computador es encendido, el harware interno le da a la CPU la direccin de memoria que contiene la primera instruccin de programa. o o La ejecucin del programa comienza en este momento. Las instrucciones o 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 direccin de memoria distinta. o Mientras la CPU est ejecutando algo, el programa puede hacer referena cias 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 fcilmente cambiando slo las direcciones de memoria. a o Esto no siempre fue as Antiguamente los programas y los datos no com. part la misma memoria, por lo tanto los cambios en los programas eran an dicultosos porque muchas veces implicaban tambin cambio en el harde ware. Pero a nes de 1940, John von Neumann llev a cabo la idea de o utilizar la misma memoria tanto para los datos como para los programas. Este nueva concepcin fue todo un hito en la historia de la computacin, o o pues permiti que los programas fueran tratados como datos. De esta mao nera, 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 bsicos de memoria: ROM y RAM. La memoria ROM a (Read Only Memory) es una memoria que no puede alterada durante el proceso normal de ejecucin de la CPU. Por lo general, las instrucciones de o inicializacin de un computador estn contenidas en memoria de este tipo, o a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

4.4. PROGRAMACION DE COMPUTADORES

75

de manera de garantizar que el computador siempre se reinicie de la misma manera. La memoria RAM (Random Access Memory) es una memoria voltil, en el sentido de que puede ser le y escrita por la CPU y una a da vez que el computador se apaga, su contenido es borrado. La cantidad de memoria RAM que un posee un computador determina el tamao de los n programas que ste puede ejecutar. e Una instruccin de CPU puede utilizar uno o ms bytes. La mayor de o a a los computadores utiliza instrucciones de largo variable: de esta manera se optimiza el uso de la memoria, dado que instrucciones ms simples necesitan a menos memoria que las que son ms complejas. a Para que el trabajo de la CPU sea util, es necesario que sta tenga acceso e a informacin externa y tenga los mecanismos necesarios para reportar el o resultado de sus clculos. El sistema en Entrada/Salida (Input/Output en a ingls, o simplemente I/O), permite a la CPU interactuar con una gran e 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 estn siendo utilizados por la CPU en un determinado momento y a 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 informacin en un disco o 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 ms Gigabytes (mil millones de bytes). a Todas las instrucciones que ejecuta la CPU estn sincronizadas por un a reloj interno que oscila con una frecuencia del orden de los 1000 MHz en el caso de los computadores ms modernos. Este sincronismo es necesario a para que, por ejemplo, la CPU no trate de leer y escribir en una misma direccin de memoria al mismo tiempo. La velocidad de oscilacin de este o o reloj se conoce como la velocidad de operacin del computador y determina o el nmero de instrucciones por segundo que la CPU puede ejecutar aunque u no necesariamente en una relacin uno a uno. o

4.4.

Programacin de computadores o

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. INTRODUCCION A LA MUSICA 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 ambigedau des y debe haber un camino (trazo) claro para que el algoritmo pueda ser completado. Un algoritmo puede describir, por ejemplo, el proceso de ejecucin de o una obra musical por parte de un pianista. El algoritmo debe describir claramente cada paso que el msico debe seguir al ejecutar cada una de las u 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 duracin de la nota y soltar la tecla. o 7. Era esta la ultima 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 algn grupo u de programas que se encarguen de la operacin bsica del computador y o a permitan la correcta operacin de otros programas. Esto es lo que se conoce o como sistema operativo. Un sistema operativo no es ms que una coleccin a o de programas que prestan servicios utiles para la operacin del computador. o Por ejemplo, un sistema operativo contiene el software necesario para la comunicacin de la CPU con los dispositivos de Entrada/Salida. Tambin o e provee el orden necesario para que la CPU pueda cambiar de un programa a otro en forma correcta. Por lo general, los sistemas operativos ms simples (como DOS o Wina dows 3.1) solamente pueden ejecutar un slo programa a la vez. Esto es o porque la CPU est exclusivamente dedicada a ejecutar un programa y no a CADIZ, R. INTRODUCCION A LA MUSICA 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 ms utilizados a

abandona la ejecucin hasta que el programa termine o hasta que reciba o una interrupcin de la ejecucin. Pero los sistemas operativos ms avanzao o a dos (como UNIX) son multitarea (multitasking, en ingls) y permiten que e varios programas se ejecuten en forma simultnea y adems que hayan varios a a usuarios conectados al sistema al mismo tiempo. En la tabla 4.5 se pueden apreciar los sistemas operativos ms utilizados a y alguna de sus caracter sticas. El dramtico aumento en la capacidad de almacenamiento de dispositivos a 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 ms pequeo. Por lo tanto, el sistema operativo a n debe disponer de un sistema de archivos adecuado. El elemento bsico de almacenamiento de informacin reconocido por a o los sistemas operativos modernos es el archivo. Un archivo (le en ingls), e puede contener programas o datos indistintamente. El largo de un archivo est determinado solamente por su contenido. Para ejecutar un programa a que est contenido en una memoria externa, la CPU carga en la memoria a principal el archivo apropiado y ejecuta la primera instruccin que ste cono e tenga. Los archivos de datos pueden contener cualquier tipo de informacin. o Para manejar las grandes cantidades de informacin de un sistema compuo tacional, los archivos se agrupan en directorios o carpetas (folder en ingls). e Estos directorios pueden contener archivos y tambin otros directorios, que e 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 expresin \Windows\Escritorio\Carpeta1, da cuenta de o CADIZ, R. INTRODUCCION A LA MUSICA 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 expresin ser Windows:Escritorio:Carpeta1 y en el caso de un sistema Unix o a Windows/Escritorio/Carpeta1. Lo unico que cambia es el caracter delimi tador.

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 informacin sonora. En otras palabras, un computador slo puede procesar audio o o digital. Esto no signica que el computador no pueda interactuar con audio anlogo. La diferencia entre audio anlogo y digital es abordada en forma a a detallada en la seccin 4.1. o La gura 4.13 muestra las tres formas ms usuales del uso del compua tador en sistemas de audio. El caso a) corresponde al proceso de grabacin o procesamiento digital. o El audio anlogo es captado por un transductor, por ejemplo un micrfono, a o que convierte las la variaciones de presin del aire (energ acstica) en una o a u seal elctrica, que consiste bsicamente en variaciones de voltaje. Esta seal n e a n es luego ltrada por un ltro pasabajos con el n de eliminar componentes de frecuencia no deseados y eliminar la posibilidad de aliasin, explicada en o la seccin 4.1.1. o Una vez ltrada la seal, sta es digitalizada (sampleada o muestreada) n e por un conversor anlogo/digital. La salida de este conversor contiene aua dio digital, que puede ser procesado o guardado en memoria externa por el computador. Un ejemplo de procesamiento de la seal podr ser aplicar ren a verberacin al sonido original o mezclarlo con otro previamente almacenado o en memoria externa. Una vez realizado el proceso, el audio es introducido esta vez en un conversor digital/anlogo y pasado por un ltro pasabajos. La salida de este a ltro produce audio anlogo que podr ser amplicado y lanzado nuevaa a mente al aire mediante parlantes. La grabacin digital tiene varias ventajas por sobre su similar anloga. o a Dado que la informacin digitalizada contiene slo nmeros y no una seal o o u n anloga, tiene una calidad superior ya que no se deteriora con el tiempo a CADIZ, R. INTRODUCCION A LA MUSICA 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, presin atmosfrio e ca, viscosidad del aire o el ruido ambiental. Adems, una copia digital del a original digital es exactamente idntica y el. e El caso b) corresponde al anlisis de seales. Cuando el computador a n opera como un analizador de seales, el computador toma una seal digital n n y matemticamente determina sus caracter a sticas. Por ejemplo, un anlisis a computacional puede revelar informacin importante sobre las propiedades o acsticas de un determinado sonido. u El computador tambin puede sintetizar sonido mediante el clculo de e a secuencias de nmeros que corresponden a la forma de onda del sonido deseau do como salida. El proceso de utilizar hardware digital para generar sonidos mediante el clculo de su forma de onda se conoce como s a ntesis digital directa. Este proceso tiene varias ventajas respecto a la s ntesis anloga de a sonidos, dado que las seales digitales dentro de un computador son extren madamente precisas, por lo tanto se pueden representar numricamente en e forma exacta y reproducir en el tiempo con gran exactitud. Otra ventaja es la repetibilidad. Un sistema digital siempre va a producir CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

80

CAP ITULO 4. AUDIO DIGITAL

exactamente la misma salida para los mismos datos de entrada, cosa que no sucede en los sistemas anlogos. a Pero la ventaja ms importante es la generalidad. Dado que cualquier a sonido puede ser convertido en una seal digital, consecuentemente cualn quier sonido puede ser sintetizado utilizando algoritmos apropiados para calcular su representacin digital. En teor los sonidos sintetizados digio a, talmente pueden ser arbitrariamente complejos y tener cualquier carcter. a Uno de los desaf ms importantes de la s os a 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

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

81

4.7.

Software para m sica computacional u

La mayor de los software de msica computacional caen en una de las a u siguientes categor algoritmos para s as: ntesis de sonidos, algoritmos para modicacin de sonidos sintetizados o sampleados, programas que asisten al o msico en la composicin ya sea con sonidos sintetizados o sonidos acsticos u o u de instrumentos tradicionales y programas que permiten una interpretacin o composicional de una obra. Esta divisin es slo un modelo que responde o o 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 aos n sesenta. Su sucesor, Music 4, fue distribuido entre distintas universidades, donde la actividad musical era ms intensa. a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

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

CAP ITULO 4. AUDIO DIGITAL


Modicacin digital de sonidos o 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 msica ms utilizados en los aos noventa u a n 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 versin de Music 4 y ms tarde en el Massachusetts Institute of Technology o a (MIT) se llevaron a cabo las versiones Music 360 y Music 11 por Barry Vercoe, quien aos ms tarde dar luz a la primera versin de CSound. Por n a a o otra parte, en Stanford University se programaron las variaciones Music 6 y Music 10 y mucho tiempo despus se cre Common Music Lisp, un lene o guaje de s ntesis basado en inteligencia articial con una ra absolutamente z distinta. Si bien la familia de lenguajes Music-N se encuentra actualmente obsoleta debido al avance de la tecnolog la mayor de los programas de s a, a ntesis utilizados actualmente (CSound, Cmusic, Cmix) estn basados en ella. a La gura 4.7 muestra algunos de los softwares de msica ms utilizau a dos en los ultimos aos. Tal como se mencion anteriormente, stos pueden n o e 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

4.8. MIDI

83

En la misma forma en que dos computadores se comunican, dos sintetizadores pueden intercambiar informacin v MIDI. Esta informacin es o a o musical por naturaleza. La informacin MIDI le dice a un sintetizador, por o ejemplo, cuando empezar a tocar una nota y cuando terminar. Tambin e puede indicar con que volumen se toca esa nota, o cuando cambiar sonidos o incluso puede contener informacin de hardware espec o 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 funcin ejecutar. o Inclu en este byte de status va el canal MIDI. MIDI opera con 16 canales do de audio diferentes en forma simultnea, denominador por los nmeros del a u 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 nmero determinado de bytes seguirn al byte u a de status hasta que se reciba un nuevo byte de status. Los fabricantes de computadores pronto se dieron cuenta que el computador podr ser una fantstica herramienta para MIDI, dado que los disa a positivos MIDI y los computadores hablan en el mismo lenguaje. Dado que la tasa de transmisin de los datos MIDI (31.5 kbps) no es la misma que o utilizan los computadores, los fabricantes tuvieron que disear una intern faz especial que permitiera a los computadores comunicarse con cualquier sintetizador. Virtualmente cualquier cosa que puede ser hecha v MIDI posee softa ware especializado en el mercado. En primer lugar, estn los secuenciadores a (Cakewalk, Encore) que simplemente ordenan eventos MIDI en listas y los env en los tiempos apropiados a las distintos dispositivos externos o interan nos. Estos secuenciadores permiten grabar, almacenar, tocar y editar datos MIDI. Tambin existe una gran variedad de editores de sonido y librer de e as sonidos que permiten exibilizar los sonidos de un determinado sintetizador. Las librer ms avanzadas permiten editar y grabar bancos enteros de as a sonidos en las memorias de los sintetizadores.

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

84

CAP ITULO 4. AUDIO DIGITAL

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 5

S ntesis digital de sonidos

Una de las grandes ventajas que ofrece la tecnolog digital es la posia bilidad de disear sonidos con un alto nivel de precisin y exibilidad. El n o computador permite crear sonidos directamente mediante algoritmos o manipulacin numrica, sin la mediacin del mundo acstico y sin la necesidad o e o u de partir sobre la base sonidos previamente grabados. Este proceso de diseo n o creacin nmerica se denomina s o u ntesis. Desde los primeros experimentos de s ntesis sonora a travs de compue tadores, numerosas tcnicas y algoritmos han sido propuestos en la literatue ra los cuales se basan en principios muy diversos e incluso en algunos casos bastante opuestos. Por lo tanto, es importante contar con criterios de clasicacin que nos permitan agrupar las diferentes tcnicas de acuerdo a sus o e caracer sticas comunes.

5.1.

Clasicacin o

Un primer esquema bsico de clasicacin divide las distintas tcnicas a o e entre las que intentan reproducir un sonido existente y las que no. El primer grupo puede ser llamado concreto (no el sentido de la msica concreta, u sino en el de reproducir algn sonido ya existente) y el segundo abstracto. u Esta clasicacin puede parecer confusa ya que hay tcnicas de s o e ntesis que no estn basadas en ninguno de estos criterios y al mismo tiempo satisfacen a ambos, como es el caso de la s ntesis FM, la cual puede ser utilizada para simular bronces o campanas como tambin para producir sonidos electrnie o cos abstractos que responden a criterios matemticos no necesariamente a musicales. No obstante, esta primera clasicacin resulta adecuada para diso cutir el problema concerniente a la fuente sonora, o el objeto sonoro segn u 85

86

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

Schaeer, y nos provee de un claro acercamiento a estas tcnicas (ver seccin e o 7.2.4). Otro criterio de clasicacin muy utilizado divide las tcnicas en tres o e areas principales: abstracta, modelos f sicos y modelos espectrales. En el primer grupo se pueden incluir las tcnicas de s e ntesis ms clasicas que prea tenden simplemente explorar algoritmos matemticos para generar sonidos. a Es as como en 1977, Moorer [38] ya propone que la forma natural de clasi cacin debiera considerar tcnicas de s o e ntesis aditiva, subtractiva y modulacin (tambin llamada s o e ntesis no lineal o de distorsin), y que en general o son usadas en combinacin. Esta clasicacin es raticada por Moore en su o o libro Elements of Computer Music [19]. Es importante aclarar que hoy en d la s a ntesis no lineal no se reere exclusivamene a la modulacin, sino que o agrupa un gran numero de tcnicas basadas en ecuaciones matemticas con e a comportamiento no lineal [32]. En el segundo grupo se incluyen todas las tcnicas que se basan en el e estudio de las propiedades f sicas de los instrumentos musicales u otras fuentes sonoras y su posterior implementacin y simulacin en el computador. o o Existen autores que slo toman en cuenta estos dos primeros grupos para o clasicacin. Por ejemplo, Borin et al. sugiere que la s o ntesis algor tmica de sonidos se puede dividir en dos clases: S ntesis algor tmica directa clsica, la a que incluye transformaciones de s ntesis aditiva, granular, subtractiva y no lineal y las tcnicas de modelos f e sicos, en la cual se encuentran la familia de mtodos que modelan la acstica de los instrumentos [26]. e u El tercer grupo consiste en tcnicas que pretenden modelar el compore tamiento del sonido directamente en su espectro de frecuencias. Este tipo de tcnicas de s e 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 seccin o 1.2). Es por esto que este tipo de tcnicas son ms apropiadas para sintetizar e a sonidos naturales que instrumentales y usualmente requieren de una etapa previa de anlisis, antes de la s a ntesis. Existen otros esquemas de clasicacin bastante divergentes de este moo delo tripartito. En 1983, De Poli [22] sugiri la siguiente clasicacin para las o o s ntesis algor tmicas: tcnicas de generacin, las cuales producen una seal e o n de datos entregados, y tcnicas de transformacin que pueden ser dividie o das en dos sub-clasicaciones, la generacin de una o mas seales simples y o n sus modicaciones. De Poli tambin sugiere que habitualmente se utilizan e combinaciones de estas tcnicas. e En el ultimo tiempo, se han propuesto clasicaciones ms detalladas a CADIZ, R. INTRODUCCION A LA MUSICA 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 clasicacin para la s o 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 modulacin : Ring, AM, FM, distorsin de fase y forma o o de onda. S ntesis mediante modelos f sicos. S ntesis por segmento de ondas, s ntesis grca y estocstica. a a En cambio, Dodge and Jerse [11] usan el siguiente esquema de clasicacin: o S ntesis utilizando tcnicas no perturbativas: aditiva, AM, modulacin e o de anillo. S ntesis utilizando tcnicas pertubativas: FM, waveshaping, s e ntesis usando formulas aditivas discretas. S ntesis subtractiva. S ntesis para el anlisis de datos : voz, STFT, phase vocoder, wavelets. a S ntesis granular. Modelos f sicos. En 1991, Smith propone una clasicacin mas detallada dividiendo los o mtodos de s e ntesis en cuatro grupos: algoritmos abstractos, grabacin proo cesada, modelos espectrales y modelos f sicos. Propone adems la siguiente a taxonom para las tcnicas de s a e ntesis digital [36]: De acuerdo con Serra, una forma de entender la clasicacin de Smith es o hablar de los mtodos de s e ntesis como tcnicas digitales que nos permiten e obtener una sonoridad continua que va desde la reproduccin de sonidos o pre-existentes (grabados) hasta la generacin de sonidos mediante una abso traccin (sonidos imaginados), pasando por todos los pasos intermedios. En o este contexto, tcnicas basadas en el procesamiento de grabaciones tienen e como fundamento la pre-existencia de sonidos e intentan crear sonidos nuevos o imaginarios. En el otro extremo de la clasicacin estn los algoritmos o a CADIZ, R. INTRODUCCION A LA MUSICA 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 de las tcnicas de s a e 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 retroalimentacin o Formateo de onda Distorsin de o fase KarplusStrong

abstractos, que de ecuaciones matemticas generan sonidos que distan de a los sonidos naturales, pero que manipulndolos se obtienen sonidos que nos a permiten una comunicacin musical especica, como por ejemplo, los sinteo tizadores basados en tcnicas de FM. Los modelos espectrales y f e sicos estn a 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 exploracin de la conexin entre el sonido real y el sonido virtual o o [32]. En 2004, Bank et al. [2] dividen las tcnicas de s e ntesis de audio en tres grupos, unicando dos grupos de la clasicacin propuesta por Smith. El o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

5.2. EVALUACION

89

primer grupo es la familia de mtodos abstractos. Estos son diferentes algoe ritmos que generan fcilmente sonidos sintticos. Mtodos tales como FM y a e e waveshaping pertenecen a esta categor El modelar instrumentos reales con a. este mtodo es en extremo complejo si la relacin entre los parmetros de e o a la tcnica y aquellos de los instrumentos reales no pueden ser determinados e con facilidad. El segundo grupo, denominado modelo de seales, es el que modela los n 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 mtodos de s e ntesis tales como sampling y SMS (spectral modeling synthesis) pertenecen a esta categor Este grupo a. corresponde al procesamiento de sonidos pre-grabados en la taxonom de a 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 ecuacin de o onda. Dada una excitacin inicial (tal como tocar la cuerda o golpear el o 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 mtodo conocido en esta categor es la s e a ntesis digital con ondas gu o as waveguides, que modela ecientemente ondas unidimensionales.

5.2.

Evaluacin o

Dado el gran nmero de tcnicas de s u e 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 tcnicas de e 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 tcnica e 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 tcnica de s e ntesis especica. Estas son: 1. Calidad del sonido. Con esto queremos expresar la riqueza del sonido. Un sonido de gran calidad ser uno que se asemeje a un sonido natua ral, en cambio uno de baja calidad ser un sonido simple, sintetizado a electrnicamente sin micro-variaciones durante su duracin. o o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

90

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS 2. Flexibilidad. Este trmino describe la habilidad que tiene una tcnica e e de s ntesis especica para modicar el sonido desde el control de un conjunto reducido de parmetros. Bajo este criterio, un sampler no es a considerado como exible, en cambio que la s ntesis FM si lo es. 3. Generalidad. Por generalidad se entiende la posibilidad de una tcnica e de s ntesis de crear una gran variedad de timbres. As la s , ntesis aditiva sera una tcnica general, en tanto que el sampler sera una tcnica e e mucho ms espec a ca. 4. Tiempo de cmputo. Esto se reere al nmero de instrucciones compuo u tacionales que se necesitan para sintetizar un sonido. En este contexto, la s ntesis FM es muy econmica en comparacin con la s o o ntesis aditiva, la cual resulta muy costosa.

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

5.3. FUNDAMENTOS

91

5.3.
5.3.1.

Fundamentos
Osciladores

Una oscilacin de la variacin peridica en el tiempo de alguna medio o o da en torno a un valor central o de equilibrio o entre dos o ms estados. a Ejemplos de oscilaciones en el mundo f sico son un pndulo o un resorte. En e un computador, un oscilador puede implementarse en forma algor tmica, el requisito indispensable es que la seal se repita despus de un cierto tiempo. n e

Figura 5.1: Oscilador Para sintetizar sonidos en un computador es necesario disponer de seales n bsicas mediante las cuales se puedan constriur sonidos ms complejos. Esto a a se hace a travs de un oscilador. Un oscilador consiste bsicamente en un e a algoritmo o dispositivo que es capaz generar seales peridicas o aleatorias. n o El oscilador ms comn es un oscilador sinusoidal, el cual genera seales a u n sinusoidales con una amplitud, frecuencia y fase determinada. Un oscilador puede tambin generar distintos tipos de seales estocsticas o ruidos, tales e n a como ruido blanco, ruido cafe o ruido rosa. Por lo general, los osciladores generan funciones bsicas, como las desa critas 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 seal generada por n el oscilador contiene componentes de frecuencia muy elevados, es probable que al generar el audio se produzca aliasin. Para evitar esto, es comn imo u plementar osciladores de ancho de banda limitada, los cuales evitan generar componentes de frecuencia ms all de un cierto l a a mite. En el apndice A.3 se describen los principales osciladores existentes en e SuperCollider, denominados UGens, abreviacin de unidades generadoras. o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

92

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

Seno

Cuadrada

Tringular

Sierra

Figura 5.2: Seales bsicas comnmente utilizadas en osciladores n a u

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 ingls) consiste bsicamente en un e a pedazo de memoria donde se puede almacenar una seal de audio. La tabla n puede contener audio generado en forma sinttica o una seal proveniente e n del mundo real muestreada. Es comn almacenar en una tabla de onda un u 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 bsico de funcionamiento de un oscilaa CADIZ, R. INTRODUCCION A LA MUSICA 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 posicin en la tabla o de ondas desde la cual se est leyendo, denominado contador de fase, y otro a llamado incremento, que contiene la cantidad de muestras que deben saltarse para leer desde la siguiente posicin de fase. La cantidad de incremento o determina la frecuencia del sonido generado por el oscilador. Mientras mayor sea el incremento, la tabla de onda se completa ms rpido y mayor es la a a frecuencia de la seal generada. n Dado que usualmente se especica la frecuencia deseada y no directamente el valor del incremento, es necesario realizar algn tipo de interpolacin u o

5.3.3.

Envolventes

El sonido no es un fenmeno esttico. Muy por el contrario, usualmente o a 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 evolucin temporal. En el dominio del tiempo, el sonido o como un todo tambin tiene un comportamiento denido por una envolvente e 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 dinmicas. Claramente, la evolucin temporal del sonido es distinta a o dependiendo del nivel de energ denido por su contenido de frecuencias, a, presente en la seal acstica. n u CADIZ, R. INTRODUCCION A LA MUSICA 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 dinmicas a

Existen muchas formas de envolvente, pero por lo general siguen un patrn o evolucin comn. La forma ms genrica de envolvente se denomina o o u a e ADSR (ataque, decaimiento, sostenimiento, relajo) por su abreviatura y mostrada en la gura 5.7. A continuacin se describe cada seccin de esta o o envolvente.
Envolvente ADSR

Amplitud

Sostenimiento

Tiempo Ataque Decaimiento Relajo

Figura 5.7: Envolvente ADSR

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

5.4. S INTESIS ADITIVA

95

Ataque. El ataque es el tiempo que toma la seal en alcanzar su mxin a mo Decaimiento. El decamiento es el tiempo que toma la seal para estan bilizarse Sostenimiento. Tiempo que dura la seal estable. n Relajo. El relajo es el tiempo que toma la seal en desvanecerse. n

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 generacin de envolventes o

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 seal sintetizada. En el apndice A.4 se desn e criben las principales funciones de envolventes existentes en SuperCollider y su forma de utilizacin. o

5.4.

S ntesis aditiva

La s nteis aditiva consiste bsicamente en la superposicin o mezcla de a o ondas sinusoidales con el objetivo de generar ondas ms complejas. En el a mundo acstico, este es el principio de funcionamiento de un rgano de tuu o bos. El concepto tras la s ntesis aditiva es simplemente la aplicacin directa o de la serie de Fourier con un nmero nito de componentes. Si bien esta u CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

96

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

tcnica se basa en Fourier, no todo es necesario seguirlo al pie de la letra, ya e que perfectamente en un computador se pueden sumar sinusoides no armnio cas, es decir, seales cuyas frecuencias no estn relacionadas por mltiplos n e u enteros. En este caso, los armnicos se denominan parciales. La gura 5.9 o muestra la suma de 5 sinusoides de distinta amplitud, frecuencia y fase, con relaciones no armnicas entre si. o
s1

s2

s3

s4

s5

s1+s2+s3+s4+s5

Figura 5.9: Suma de seales simples para generar una compleja n

Un sonido generado mediante s ntesis aditiva est formado entonces por a una cantidad variable de armnicos o parciales que evolucionan a lo largo o del tiempo con respecto a un tono o frecuencia fundamental. El nmero de u 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 esttico y cada parcial sigue una curva particular de evolucin tema o poral, tal como se describe en la seccin 3.6. Es por esto que en la s o ntesis aditiva es muy importante la utilizacin de diferentes envolventes que se o 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, adems de a su propia envolvente de amplitud, crendose un sonido dinmico y realista, a a tal como lo muestra la gura 5.10

5.5.

S ntesis substractiva

En la s ntesis substractiva se sintetiza el sonido mediante la ltracin o o simplicacin de una onda compleja. La seal pasa a travs de uno o o n e ms ltros que modican su contenido armnico, atenuando o reforzando a o determinadas reas del espectro de la seal, tal como se describe en la gura a n CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

5.5. S INTESIS SUBSTRACTIVA

97

Figura 5.10: S ntesis aditiva

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

Figura 5.11: S ntesis substractiva

Los resultados de la s ntesis substractiva dependen en gran medida de la calidad y diseo de los ltros utilizados, de manera de poder producir n en forma efectiva los cambios requeridos en la seal de entrada. Las caracn ter sticas de los ltros se determinan por su funcin de transferencia y su o orden. La primera determina la forma en que la seal aplicada cambia en n trminos de su amplitud y fase al pasar por el ltro y la segunda describe e el grado de precisin en la aceptacin o rechazo de frecuencias por encima o o o por debajo de la respectiva frecuencia de corte. Si se desea obtener ms precisin en las frecuencias de corte o bien proa o cesar la seal de distintas maneras, se pueden combinar ltros de primer n 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 conguracin podr ser un sonido que primero es pasado o a por un ltro pasa bajos y luego reverberado mediante otro proceso. En el CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

98

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS


Entrada

Filtro

Filtro

Salida

Filtro
Entrada

+
Filtro

Salida

Figura 5.12: Conguracin de ltros en la s o ntesis substractiva

caso de ltros en paralelo, la seal se ve modicada por uno o ms ltros al n a mismo tiempo y las salidas de estos se suman para generar la seal modin cada. Un ejemplo t pico de esta conguracin es un ecualizador multibanda, o descrito en la seccin 6.6. o

5.6.

Modulacin o

El concepto modulacin se basa en la idea de alterar algn parmetro o u a de una onda sonora en razn de otra onda. Las formas ms comunes de o a modulacin son modulacin de amplitud o AM, que consiste en alterar la o o amplitud de una seal portadora en funcin de la amplitud de otra seal n o n llamada moduladora y la modulacin de frecuencia o FM, que consiste bsio a camente en variar la frecuencia de una portadora en funcin de otra seal o n moduladora. La s ntesis aditiva y las substractiva descritas anteriormente pueden ser consideradas como lineales en cuanto no afectan el contenido armnico de o la seal. Simplemente se basan en operaciones lineales sobre la seal en n n entrada. En contraste, las tcnicas de modulacin suelen tambin llamarse e o e de distorsin o no lineales, dado que generan componentes armnicos no o o posibles de obtener mediante operaciones lineales. Modular una seal consiste en modicar alguna de las caracter n sticas de esa seal, llamada portadora, de acuerdo con las caracter n sticas de otra seal n llamada modulador. Sea, xp (n) = Ap sin(p n) la seal portadora o modulada y n xm (n) = Am sin(m n) la seal modulante o moduladora. n CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL (5.2) (5.1)

5.6. MODULACION

99

5.6.1.

Modulacin Ring o

En la modulacin ring o anillo, ambas seales simplemente de multiplio n can, como lo muestran la gura 5.13 y la ecuacin 5.3. o
Frecuencia Transportadora Frecuencia Moduladora

OSC

OSC

*
Figura 5.13: Modulacin ring o anillo o

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 modulacin es un caso especial de la o ms general s a ntesis AM, que se detalla a continuacin. o

Figura 5.14: Espectro de la modulacin ring o

5.6.2.

S ntesis AM

En la s ntesis AM la seal modulada tendr una amplitud igual al valor n a mximo de la seal portadora ms el valor instantneo de la seal modulada: a n a a n CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

100

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

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

(5.4)

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

(5.5)

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

De acuerdo a los principios de la trigonometr la seal puede ser reescrita a n 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.

INTRODUCCION A LA MUSICA COMPUTACIONAL

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

101

Figura 5.16: Espectro de la modulacin AM o

La ecuacin 5.8 nos permite deducir que al modular la amplitud se geo neran dos armnicos laterales, tal como se muestra en la gura 5.16. o Cuando la seal moduladora sea una onda compleja y no sinusoidal como n resultado de la modulacin AM se obtendra un conjunto de bandas laterales o dados por los armnicos que sta contenga. o e

5.6.3.

S ntesis FM

Otra forma de modular la seal es variar peridicamente la frecuencia n o mediante otra seal. Esto se denomina s n ntesis FM o de frecuencia modulada.
Frecuencia Moduladora

OSC
Frecuencia Transportadora

OSC ENV

*
Figura 5.17: S ntesis FM

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

102

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

Esta expresin puede ser reescrita como una serie de potencia que expresa o 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 seal FM, observamos innitas frecuencias laterales, espaciadas n en fm , alrededor de la frecuencia de la seal portadora fp , tal como se obsern va en la gura 5.6.3. Sin embargo la mayor parte de las frecuencias laterales tienen poca amplitud, lo cual depende del ndice de modulacin. o

Fp-2Fm Fp-Fm

Fp

Fp+Fm Fp+2Fm

Figura 5.18: Espectro de la modulacin FM o En el apndice A.6 se aborda la modulacin SuperCollider, a travs de e o e ejemplos tanto de modulacin de amplitud como de frecuencia. o

5.7.

S ntesis granular

La s ntesis de sonido basada en granos o s ntesis granular es una tcnie ca de produccin de sonidos que se basa en una concepcin del sonido en o o trminos de part e culas o cuantos, pequeas unidades de energ encapsun a ladas en una envolvente y agrupados en conjuntos mayores, cuya organizacin ser determinada por dos mtodos principales de distribucin temporal: o a e o sincrnico y asincrnico. En el mtodo sincrnico, los granos son disparados o o e o a frecuencias ms o menos regulares para producir sonidos con una altura a denida. En contraste, el mtodo asincrnico genera secuencias aleatorias e o de separacin entre los granos con el objetivo de producir una nube sonora o (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. INTRODUCCION A LA MUSICA 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 informacin espectral en el grano. o

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

5.8.

Modelos f sicos

La s ntesis basada en modelos f sicos se hace a partir de la simulacin en o una computadora de un objeto f sico y sus caracter sticas. Estos mtodos de e s ntesis generan sonidos describiendo el comportamiento de los elementos, tal como lo son las cuerdas, caas, labios, tubos, membranas y cavidades n que conforman el instrumento. Todos estos elementos, estimulados mecnia CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

104

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

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

5.9.

Modelos espectrales

Los modelos espectrales estn basados en la descripcin de las caraca o ter sticas del sonido que el auditor percibe. Por lo tanto, se basa n la percepcin y no en el mundo f o 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 de esos enfoques involucra, por lo a tanto, una etapa de anlisis previa a la s a ntesis.

5.9.1.

Phase vocoder

Un vocoder (nombre derivado del ingls voice coder), o codicador de e voz, es un analizador y sintetizador de voz. Fue desarrollado en la dcada de e 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 nmero de canales, cada uno en una u frecuencia. Los diversos valores de esos ltros no son almacenados como nmeros, que estn basados en la frecuencia original, sino por una serie de u a modicaciones que el fundamental necesita para ser modicado en la seal n vista en el ltro. Durante la reproduccin esos nmeros son enviados de o u vuelta a los ltros y entonces se modican con el conocimiento de que el habla var t a picamente entre esas frecuencias. El resultado es habla inteligible, aunque algo mecnica. Los vocoders a menudo incluyen tambin un sistema a e 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 bsica, que es la frea cuencia fundamental, y midiendo cmo cambian las caracter o sticas espectrales con el tiempo grabando el habla. Esto da como resultado una serie de nmeros representando esas frecuencias modicadas en un tiempo paru ticular a medida que el usuario habla. Al hacer esto, el vocoder reduce en gran medida la cantidad de informacin necesaria para almacenar el habla. o Para recrear el habla, el vocoder simplemente revierte el proceso, creando la CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

5.9. MODELOS ESPECTRALES

105

frecuencia fundamental en un oscilador electrnico y pasando su resultado o por una serie de ltros basado en la secuencia original de s mbolos. El vocoder est relacionado con el algoritmo denominado phase vocoder, a o vocoder de fase, aunque esencialmente es diferente de ste. Una phase voe coder es un tipo de vocoder que permite escalar una seal de audio tanto en n el dominio de la frecuencia como en el dominio del tiempo usando informacin de fase. El algoritmo permite la modicacin del espectro de un seal o o n de audio, mediante lo cual es posible realizar efectos tales como compresin o o expansin temporal y desfase de alturas (pitch shifting). o El phase vocoder se basa en la Transformada de Fourier de tiempo corto, o STFT. La STFT genera un representacin combinada de tiempo y o frecuencia del sonido, o lo que se denomina un sonograma, a travs de sue cesivas FFT en intervalos de tiempo relativamente cortos. En cada frame es posible modicar la informacin de amplitud o fase de la FFT, para luego o 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 peridica por lo o general rica en contenido de frecuencia. Este sonido bsico es modicado a por el tracto vocal, generando zonas de concentracin de le energ espectral, o a denominados formantes. Un formante consiste en una alta concentracin de o energ que se da en una determinada banda de frecuencias. a 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 slo los dos primeros son necesarios para caracterizar una vocal, si o bien la pueden caracterizar hasta seis formantes. Los formantes posteriores determinan propiedades acsticas como el timbre. Los dos primeros formanu tes se determinan principalmente por la posicin de la lengua. F1 tiene una o frecuencia ms alta cuanto ms baja est la lengua, es decir, cuanta mayor a a a abertura tenga una vocal, mayor es la frecuencia en que aparece el F1. F2 tiene mayor frecuencia cuanto ms hacia delante est posicionada la lengua, a a es decir, cuanto ms anterior es una vocal, mayor es el F2. a La s ntesis basada en formantes se basa en este fenmeno de la voz o humana. La idea es crear zonas de concentracin de energ en el espectro o a del sonido sintetizado, lo que imita el sonido de la voz. CADIZ, R. INTRODUCCION A LA MUSICA 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 tcnicas grcas, formantes y de la f e a sica. Castagne y Cadoz destacan que los esquemas de masa-interaccin son o usualmente citados como tcnicas de modelo f e sico, pero que muchas de las posibilidades musicales no han sido exploradas [8]. Ellos propusieron un entorno grco llamado GENESIS, el cual esta basado en el paradigma a CORDIS-ANIMA mass-interaction y diseado para msicos. El principal n u objetivo de este acercamiento es el de proveer de un pensamiento f sico. En otras palabras, descubrir y experimentar nuevas formas de crear msica. u Los modelos basados en part culas estn basados comnmente en modea u los f sicos [37], los cuales usan una descripcin matemtica del instrumento o a f sico que se desea sintetizar. Un interesante enfoque presenta lo que Cook llamo modelamiento estocstico f a sicamene informado (PhISEM) [9]. Este algoritmo se basa en el traslape pseudo-aleatorio y a la suma de pequeos n granos de sonido. Esta tcnica considera modelos puntuales caracterizados e por las ecuaciones de Newton. Este algoritmo ha sido exitoso en el modelaje de pequeos instrumentos de percusin tal como las maracas y otros n o instrumentos anes. Sturm [39] [40] [41] ha trabajado en la sonicacin de part o culas basado en la hipotesis de de Broglie. Como el sonido es una superposicin dinmica o a de frecuencias, existe la posibilidad de establecer una metfora que relacione a la f sica de part culas y la s ntesis de sonidos. De acuerdo con Sturm, pensar en el sonido en trminos de la evolucin de un sistema de part e o culas nos otorga una nueva interpretacin y una contra parte sonora a los eventos o f sicos. Bajo este criterio Sturm, deriva sus ecuaciones de transformacin o snica. o

5.11.

Modelos basados en dinmica no lineal y caos a

Se han propuesto variadas tcnicas de s e ntesis basadas en dinmica no a lineal y sistemas caticos. Uno de los mas importantes trabajos ha sido el o de Rbel [30], quien propuso una nuevo modelo para la s o ntesis de sonido basada en atractores y un mtodo llamado modelo dinmico. e a Originalmente, este mtodo fue desarrollado para modelar sistemas catie o cos dado solo un series de muestras obtenidos de la salida del sistema. El CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

5.12. S INTESIS BASADA EN COMPLEJIDAD

107

modelo para la dinmica de los atractores no solo se limita al caso catico a o sino que tambin para modelar sistemas con parmetros jos. Adems, se e a a propuso el mtodo como un modelo de redes neuronales para el habla y la e msica mediante la aplicacin de series de tiempo [29]. u o Polotti et al. propusieron un mtodo llamado s e ntesis aditiva fractal, el cual permite separar las componentes estocsticas de la voz para luego poder a 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 combinacin de elementos simples. En los o ultimos aos se no han hecho evidente las dicultades para producir sonidos n complejos de inters musical y que estos puedan competir con los instrue mentos reales en trminos de complejidad y expresin. Ya en 1997, Serra e o evidenci la necesidad de un nuevo foco para la s o ntesis digital [32]. Una forma natural de abarcar esta problemtica es sintetizar sonidos a directamente a travs de sistemas complejos, esto es sistemas compuestos e por muchos agentes individuales, con un comporamiento complejo e incluso en muchos casos catico, y no recurrir al modelo de la simplicacin. Un eso o quema de este tipo debiera ser muy util para sintetizar sonidos provenientes de la naturaleza o que presenten una alta complejidad tanto espectral como temporal.

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

108

CAP ITULO 5. S INTESIS DIGITAL DE SONIDOS

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 6

Procesamiento digital de audio

6.1.

Filtros digitales

Un ltro es bsicamente una caja negra con una entrada y una salida. a Si la salida es diferente a la entrada, signica que la seal original ha sido n ltrada. Cualquier medio por el cual una seal de audio pasa, cualquiera sea n 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 anlogos, como el caso de un ltro solar de un a 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 distorsin o y bloquea o atena otros. Se trata simplemente de un ltro que opera sobre u seales digitales, tales como las que operan dentro de un computador. Un n ltro digital es una computacin que recibe una secuencia de nmeros (la o u seal de entrada) y produce una nueva (la seal de salida). n n 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 seal de entrada. El segundo caso claramente muestra una modicacin n o en el contenido de frecuencias de la seal original. n Los ltros anlogos pueden ser usados para cualquier tarea, sin embargo, a los ltros digitales pueden alcanzar resultados muy superiores. Un ltro digital puede hacer todo lo que un ltro anlogo es capaz de realizar. a

6.1.1.

Ecuacin de diferencias o

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

y(n) =
i=0

bi x(n i)
k=1

ak y(n k)

(6.1)

De esta ecuacin se concluye que lo unico que se necesita para implemeno tar 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 nmero u entero que representa unidades discretas y los nmeros ak y bi se denominan u 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 slo depende de valores pasados o 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.1. FILTROS DIGITALES

111

6.1.2.

Funcin de transferencia o

En el dominio de la frecuencia compleja discreta (Z), cualquier tro digital puede ser representado por una funcin de transferencia de la siguiente o 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 funcin de transferencia y o corresponde a la respuesta de frecuencia del ltro. El teorema fundamental del algebra nos permite reescribir la ecuacin 6.2 de la siguiente forma: o 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 funcin de transferencia es cero y los polos a valores donde la o funcin de transferencia tiende a innito (ver seccin 6.1.5). o o Dado que la multiplicacin en el dominio del tiempo corresponde a una o convolucin en el dominio de la frecuencia, tomando la transformada Z o inversa de la ecuacin 6.2 se obtiene: o
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 seccin 1.4.2. Por simple inspeccin, es fcil comprobar o o a que la ecuacin 6.5 se corresponde con la ecuacin 6.1. En el caso de ltros o o 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 informacin completa sobre el ltro, pero o codicada de una manera diferente. Si una de stas respuestas es conocida, e la otra puede ser obtenida en forma directa a travs de la transformada de e Fourier. La manera ms directa de implementar un ltro digital es mediante a la convolucin de la seal de entrada con la respuesta al impulso del ltro. o n Todas los ltros lineales pueden ser implementados de esta manera. CADIZ, R. INTRODUCCION A LA MUSICA 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 trminos de su contenido de frecuencias. e Utilizando el principio de superposicin, es posible estudiar la respuesta gloo bal de un ltro a seales de distinta frecuencia mediante una combinacin n o lineal de seales sinusoidales aisladas. Es as que en el dominio de la fren cuencia, la respuesta de un sistema LTI a una combinacin lineal de seales o n 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 de sus a 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 comnmente se conou ce como respuesta de frecuencia o respuesta de ampliud, mientras que su a ngulo se conoce como respuesta de fase. CADIZ, R. INTRODUCCION A LA MUSICA 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 ngulo a jt ). La gura 6.4 muestra una complejo) de la respuesta de frecuencia H(e 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 cometido cada a componente de frecuencia de la seal de entrada. n
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 seccin 6.2, como para ltros IIR, abordados en o la seccin 6.3. o Retraso de fase (phase delay) Dado que la respuesta de fase () otorga informacin sobre el desfase o en radianes o grados, no es muy util en trminos prcticos, por lo que ree a sulta ms intuitivo disponer de alguna forma de conocer el retraso de cada a componente medido en segundos. Esto se conoce como retraso de fase (en ingls phase delay), el cual se dene como: e CADIZ, R. () (6.6)

INTRODUCCION A LA MUSICA 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.1. FILTROS DIGITALES Retraso de grupo (Group delay)

115

Otra forma comn de presentar la informacin de fase de un ltro se u o denomina retraso de grupo (en ingls group delay), denido como: e 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 idnticos, y e 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 ste especica el retraso que experimenta e una banda de frecuencias con un intervalo de frecuencias pequeo en torno n a . Desenrollado de fase (phase unwrapping) Muchas veces es necesario desenrollar la respuesta de fase, (), dado que, comnmente, sta contiene saltos o discontinuidades, como el caso de u e 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

116

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

Al desenrrollar la fase, se asegura que todos lo mltiplos de 2 hayan u 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 mltiplos de 2, tal como se hace en la denicin de un u o a ngulo complejo, el retraso de fase se modica de acuerdo a mltiplos enteros u del per odo sinusoidal. Dado que el anlisis de los ltros LTI se basa en a sinusoides peridicas, sin principio ni n, no es posible en principio distinguir o entre retraso de fase verdadero y un retraso de fase con peridos descartados o si se observa a una salida sinusoidal de una frecuencia determinada. Sin embargo, frecuentemente es util denir la respuesta de fase de un ltro como una funcin continua de la frecuencia con la propiedad (0) = 0 (para ltros o 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 ecuacin 6.4 muestra la funcin de transferencia H(z) de un ltro o o escrita en trminos de ceros y polos. El trmino cero se reere al nmee e u ro mientras la palabra polo es una traduccin del ingls pole, que podr o e a traducirse como palo. Estos trminos adquieren sentido cuando se graca e la magnitud de H(z) como una funcin de la frecuencia compleja z. Esto o se realiza en lo que se denomina el plano-z, que es simplemente un plano donde el eje de ordenadas representa los nmeros reales y el eje de abscisas u nmeros puramente imaginarios. Dado que z es una variable compleja, sta u e puede gracarse como un vector que parte desde el origen y cuya distancia al origen representa su magnitud mientras su ngulo respecto al eje de los a nmeros reales representa la fase. u La magnitud de H(Z) es real y puede interpretarse como la distancia sobre el plano-z, mostrado en la gura 6.8. El grco de H(Z) aparece a 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 sta supercie e alcanza una gran altitud y se hacen cada vez ms angostos a medida que se a alejan del plano. Este tipo de diagrama resulta util porque muestra una representacin o grca tanto de la respuesta de amplitud como de fase de un ltro digital. a Todo lo que se necesita conocer son los valores de los polos y ceros para poder estimar en forma grca la respuesta de fase y magnitud. a La magnitud de la respuesa de frecuencia, o respuesta de amplitud para CADIZ, R. INTRODUCCION A LA MUSICA 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: Estimacin de la respuesta de amplitud mediante un diagrama o de polo y ceros

cada frecuencia est dada por el producto de las magnitudes de los vectores a 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

118

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

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

6.1.6.

Filtros de primer orden

Los ltros digitales se clasican segun el nmero de retrasos involucrados u en su implementacin y esto determina su orden. Un ltro de primer orden o slo involucra un retraso y por ende slo puede estar constituido por un cero o o 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. INTRODUCCION A LA MUSICA 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-cuadrtico, se detalla en la seccin 6.4. a o CADIZ, R. INTRODUCCION A LA MUSICA 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 slamente de la o entrada y no de valores pasados de la salida. Este tipo de ltros tiene una respuesta nita ya que no exhiben recursin. o La gura 6.14 muestra la implementacin de un ltro FIR. Una de las o propiedades ms interesantes de este tipo de ltros es la simetr de sus a a coecientes y el hecho que pueden ser diseados de tal forma de exhibir una n respuesta de fase lineal.

Figura 6.14: Esquema de implementacin de un ltro FIR o La funcin de transferencia de un ltro FIR est dada por: o a
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 disean adecuadamente) n Estabilidad con coecientes cuantizados En general, requieren de un mayor orden que los ltros IIR El diseo de ltros FIR se basa usualmente en una aproximacin directa n o de la magnitud de la respuesta deseada a la cual se le agrega la condicin o de una respuesa de fase lineal. Este requerimiento es: h(N 1 n) = h(n) CADIZ, R. (6.9)

INTRODUCCION A LA MUSICA COMPUTACIONAL

6.3. FILTROS IIR

121

6.2.1.

Dise o de ltros FIR n

Un ltro FIR puede ser diseado utilizando distintas tcnicas tanto en n e el dominio del tiempo como de la frecuencia. Existe un mtodo ptimo llae o mado algoritmo de Parks McClellan que produce coecientes ptimos y fase o lineal. Este mtodo es muy popular dado su facilidad de usar, exibilidad y e excelentes resultados. Las tcnicas de ventaneo (en ingls windowing), bsicamente toman la e e a respuesta al impulso de un ltro ideal con duracin innita y aplican una o ventana para truncar y limitar los coecientes a un nmero espec u co, para luego desplazar la secuencia de manera de garantizar causalidad. Esta tcnie ca es simple y produce resultados razonables, pero con distorsin respecto a o la respuesta ideal. Otras tcnicas se basan en muestreo en la frecuencia. La idea es muestrear e la respuesta de amplitud deseada a intervalos regulares y luego utilizar la DFT inversa para general una respuesa al impulso de duracin nita. El o nmero de muestras determina el nivel de precisin del ltro respuesto a la u o respuesa ideal. Esta tcnica es bastante sosticada y requiere una tasa de e muestreo alta. Por ultimo, hay una tcnica ad-hoc denominada posicionamiento de ce e ros. La idea es colocar ceros en el plano-z de forma estratgica con el n de e aproximarse a la respuesta deseada y realizar el clculo de los coecientes a en forma grca. Mientras ms cercano est el cero al c a a e rculo unitario, mayor efecto tendr en la respuesta de frecuencia del ltro para ese rango de a frecuencias. Esta tcnica sin dudas es rpida y no muy precisa, pero puede e a funcionar para aplicaciones simples.

6.3.

Filtros IIR

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

(6.10)

Los ltros IIR tienen las siguientes caracter sticas: Mejor atenuacin que los ltros FIR o Frmulas cerradas de aproximacin o o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

122

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

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

6.3.1.

Dise o de ltros IIR n

Los ltros IIR pueden tener polos (debido a la retroalimentacin) y ceros, o y las tcnicas de diseo dieren enteramente de las tcnicas para diseo de e n e n ltros FIR. Los mtodos directos de diseo se llevan a cabo en el plano e n complejo discreto Z, y los mtodos indirectos empiezan en el plano anlogo e a o continuo S, para ser transformados despus al plano-Z. Las tcnicas son e e indirectas son las ms utilizadas y por lo general entregan mejores resultados. a Entre las tcnicas directas se encuentran el posicionamiento ad-hoc de e polos y zeros con el subsiguiente anlisis de frecuencia, anlisis en el dominio a a 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 cuadrtico medio. En el dominio de la frecuencia, le a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.3. FILTROS IIR

123

objetivo es mapear una respuesta de frecuencia ideal hacia una estructura IIR. Las tcnicas indirectas implican el diseo de un ltro analgico apropiado e n o en el plano S y luego mapear desde ste al plano discreto Z, usando las e 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 solucin muy utilizada es expandir ln(Z) como o una serie y truncar el primer elemento. Una vez hecho esto, hay dos tcnie cas que permiten generar la transformada Z: la transformada bilinear y la diferencia hacia atrs (backward dierence), de la cual la ms utilizada es a a la transformada bilinear.

6.3.2.

Transformada Z bilinear

Este es usualmente el mtodo que se utiliza para el diseo de ltros IIR. e n El enfoque ms utilizado es empezar de las especicaciones del ltro y luego a escoger la funcin apropiada para obtener un ltro anlogo equivalente y su o a funcin de transferencia H(s). Luego, se transforma o mapea este ltro al o plano Z. Esto se realiza mediante la siguiente ecuacin: o 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 monotnica. o Filtros Chebyschev. Poseen una zona de corte ms pronunciada que a un ltro Butterworth. Filtos el pticos. Poseen la mejor respuesta de amplitud y el orden ptio mo para diseos IIR, pero la peor respuesta de fase en trminos de n e linearidad. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

124

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.4.

Filtros bi-cuadrticos a

Los ltros bi-cuadrticos o simplemente biquad en ingls , son ltros que a e constan de dos polos y dos ceros y cuya funcin de transferencia est dada o a 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-cuadrtica en z. Existen diferentes maneras de implea mentar un ltro bi-cuadrtico. Una de las ms conocidas es a travs de a a e las frmulas obtenidas por Robert Bristow-Johnson. Estas formulas pueden o utilizarse para calcular los coecientes de los tipos ms comunes de ltros a digitales: pasa-bajos, pasa-altos, pasa-bandas, notch, peakingEQ, lowShelf y highShelf. El apndice A.9 contiene cdigo SuperCollider que implementa ltros e o bi-cuadrticos utilizando las ecuaciones de Bristow-Johnson. a

6.5.

Filtros comb

Un tipo de ltro muy comn en aplicaciones de audio es el llamado ltro u comb (peineta en ingls), el cual es implementado mediante una l e nea de retraso. La idea de este ltro es combinar la seal de entrada con una versin n o 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 ingls. e

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. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.5. FILTROS COMB

125

b0 y(n) x(n)

-M

-aM

Figura 6.17: Filtro comb recursivo La ecuacin de diferencias de un ltro comb no recursivo es: o 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.

INTRODUCCION A LA MUSICA COMPUTACIONAL

126

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

6.5.1.

Phasing y anging

Un phaser, que podr traducirse como faseador, genera zonas de peaks a y depresiones en el espectro. La posicin de stos var en el tiempo, creando o e a un efecto de glissando. Para estos efectos, se utiliza usualmente un oscilador de baja frecuencia. Este efecto se logra al mezclar la seal de entrada con una versin mon o dicada de s misma, a travs uno o varios ltros pasa-todo, que mantienen e 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 depresin caracter o sticas de este efecto, las cuales usualmente no ocurren en forma armnica. Al cambiar la o mezcla se logra modicar la profundidad de las depresiones, alcanzandose los mximos valores cuando la mezcla es de 50 %. a El anging es un tipo espec co de phaser, donde la seccin pasa-todo o se implenta como una secuencia de l neas de retraso. La seal de entrada se n agrega a una copia retrasada de la misma, lo que resulta en una seal de n salida con peaks y depresiones en relacin armnica. o o 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 mximo de desfase de la onda duplicada respecto a a la original, se suele expresar en milisegundos. Frecuencia: Es la frecuencia de oscilacin del desfase de la onda duplio cada. 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 seal de entran da. Consiste bsicamente en un banco de ltros pasa-banda, cada uno cena trado en una banda de frecuencias espec cas. Comnmente se utilizan para u reforzar ciertas bandas de frecuencias, ya sea para compensar la respuesta del equipo de audio (amplicador + altavoces) o equilibrar en trminos e espectrales el sonido. Existen ecualizadores analgicos y digitales, activos o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.7. COMPRESION

127

o pasivos, paramtricos, grcos y paragrcos. Los ecualizadores suelen e a a poseer control sobre diez bandas de frecuencia o ms. a
+12

+6

-6

-12 20

100

1k

10k

20k

Figura 6.19: Dos curvas de ecualizacin o La gura 6.19 muestra dos curvas de ecualizacin posibles, una que enfao tiza la zona alrededor de los 1000 Hz y otra que atena frecuencias cercanas u a 100 Hz.

6.7.

Compresin o

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 ms dbil murmullo hasta el sonido a e ensordecedor de un avin a propulsin. Al tratar de grabar o reproducir este o o vasto espectro de amplitudes sonoras, es imposible evitar limitaciones f sicas, tanto electrnicas como acsticas, de la tecnolog de almacenamiento o u a y reproduccin de sonido. Cuando el rango dinmico de la seal acstica o a n u excede las capacidades de un sistema de reproduccin o grabacin de soo o nido, inevitablemente los puntos mximos de la seal sern distorsionados a n a por truncamiento (en ingls clipping), los altavoces pueden sufrir dao al e n verse sometidos a niveles muy altos de intensidad, o pasajes muy suaves en trminos de amplitud pueden pasar desapercibidos en la presencia de ruido e elctrico o de fondo (en ingls noise oor). Por lo tanto, se hace necesario e e mantener el nivel operativo de la seal lo ms alto posible de manera de n a minimizar la distorsin que se produce por el ruido de fondo, y al mismo o tiempo limitar los picos de la seal para no causar truncamiento o sobrecarn ga del sistema. Esto se realiza a travs de un compresor. Es importante no e confundir a este tipo de compresores de amplitud de audio con la compresin o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

128

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

de informacin digital o perceptual. o


Umbral 1:1

2:1 Nivel de Salida (dB)

4:1 :1

Nivel de entrada (dB)

Figura 6.20: Funciones de compresin a distintas tasas o Los compresores usualmente tienen un sistema automtico de control de a ganancia que constante monitorea la seal y ajusta la ganancia para maxin mizar la razn seal a ruido sin producir distorsin. Este tipo se dispositivos o n o se conocen como procesadores dinmicos, compresores y limitadores. La utia lizar procesadores dinmicos, los niveles peaks de la seal se pueden reducir, a n lo que a su vez permite incrementar el nivel global o promedio de la seal n de audio. Los principales parmetros de un compresor son: a Umbral (usualmente desde -40 a +20 dBu). Este parmetro ja el nivel a sobre el cual las seales sern comprimidas o limitadas. Al incremenn a tarse el umbral, la seal se ve truncada a niveles mayores y por lo n tanto se reduce la cantidad de compresin o limitacin. o o Razn (1:1 a :1). Este parmetro determina la pendiente de la como a presin, lo que incide en como la seal de salida cambia en relacin o n o a la seal de entrada una vez que excede el umbral. El primer d n gito indica cuando cambio de la seal de entrada medido en dB causar un n a cambio de 1 dB en la salida. Mientras ms alta la razn, mayor es la a o compresin y ms achatado se vuelve el sonido. o a La gura 6.21 muestra como normalmente se implementa la correcin o de ganancia automtica. Primero, la amplitud estimada se compara con el a umbral, se toma el valor mximo entre los dos y se sustrae esa cantidad al a umbral. Esto determina el rango de amplitud que es necesario comprimir. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.8. REVERBERACION

129

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

+
Umbral

x
1 - (1/R)

+
Sesgo

db->lin

correccin de ganancia

Umbral

Figura 6.21: Correccin automtica de ganancia o a En el apndice A.10 se puede encontrar cdigo SuperCollider que implee o menta un compresor de audio completo, con correccin de ganancia como la o recin descrita. e

6.8.

Reverberacin o

Si un sonido no es absorbido o transmitido cuando impacta una supercie, simplemente se reeja. La ley de reexin en este caso funciona o exactamente como para el caso de la luz, y el ngulo de incidencia de una a onda de sonido es equivalente al ngulo de reexin, tal como si sta hubiea o e ra sido producida por una imagen espejo del est mulo en el lado opuesto de la supercie. Sin embargo, esta ley de reexin slo es aplicable cuando la o o longitud de onda del sonido es pequea en comparacin con las dimensiones n o de la supercie reectante. La reexin del sonido da paso a la difusin, reverberacin y el eco. Para o o o supercies distintas, el grado de reexin, medido a travs de su coeciente o e de absorcin o reexin, es distinto. Por lo general, las supercies cncavas o o o concentran las ondas de sonido en reas espec a cas, mientras las formas convexas diseminan las ondas sonoras, promoviendo una buena difusin del o sonido. Retrasos muy cortos provocan un desplazamiento en la imagen sonora hacia ambos lados y una coloracin del sonido debido al efecto phasing. o Retrasos ms prolongados contribuyen a la impresin espacial de la reverbea o racin, mientras que retrasos mayores a 50 ms perturban la imagen sonora o y son percibidos como ecos. La reverberacin es el resultado de un gran nmero de reexiones sonoras o u 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. INTRODUCCION A LA MUSICA COMPUTACIONAL

130

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

unica forma en que un sonido llega a quienes lo escuchan. Las ondas de sonido pueden tomar caminos ms largos mediante rebotes o reejos en a 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 Onda onda sonora que ya ha a. rebotado en alguna supercie puede seguir experimentando rebotes sucesivos antes de llegar a los oyentes. Esta sucesin de sonidos atenuados y retrasados o es lo que se conoce como reverberacin y es lo que causa nuestra sensacin o o de espacio dentro de una sala de conciertos. La reverberacin es, en efecto, o una multiplicidad de ecos cuya frecuencia de repeticin es demasiado rpida o a como para ser percibidos como sonidos separados entre uno y otro. Otra caracter stica importante de la reverberacin es la correlacin de o o las seales que llegan a nuestros o n dos. Para obtener una sensacin realista o de la espacialidad de una sala es necesario que los sonidos en cada o estn do e 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 las provenientes del cielo y alcanzar ambos an an o dos al mismo tiempo. Si se dispone de un cielo ms elevado, las reexiones a tempranas provendr en su mayor de las paredes, y dado que stas se an a e encuentran comnmente a diferentes distancias del auditor, el sonido que u llega a cada o es diferente. do Una unidad de medida que t picamente se utiliza en la reverberacin de o salas es lo que se denomina el tiempo de reverberacin, el cual es la cantidad o de tiempo que toma la intensidad de la seal en decar 60 dB respecto a su n valor original. Tiempos de reverberacin largos signican que la energ del o a sonido permanece en la sala una cantidad de tiempo considerable antes de ser absorbidos. El tiempo de reverberacin se asocia con el tamao de una o n sala. Las salas se conciertos t picamente tienen tiempos de reverberacin del o orden de 1,5 a 2 segundos. El tiempo de reverberacin es controlado primordialmente mediante dos o factores: las supercies de la sala y su tamao. El tipo de supercie determina n cuanta energ se pierde en cada reexin. Los materiales altamente reectia o vos, como el concreto, cermicas, ladrillo o vidrio, incrementan el tiempo de a reverberacin debido a su rigidez. Los materiales absorbentes, como cortinas, o alfombras y la gente, reduce el tiempo de reverberacin. Adems es necesao a rio considerar que los coecientes de absorcin de cada material usualmente o var con la frecuencia. an La gente tiende a absorber una gran cantidad de energ acstica, redua u ciendo el tiempo de reverberacin. Las salas grandes tienden a tener tiempo o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

6.8. REVERBERACION

131

de reverberacin ms largos, dado que, en promedio, las ondas de sonido o a viajan una distancia ms larga entre reexiones. El aire en la sala tambin a e atena las ondas sonoras, reduciendo el tiempo de reverberacin. Esta ateu o nuacin var con la humedad y la temperatura, y las altas frecuencias son o a las ms afectadas en estos casos. Debido a esto, muchos reverberadores ara ticiales incorporan una etapa de ltros pasa bajo para lograr un mayor realismo en el efecto.

6.8.1.

Reverberacin articial o

La reverberacin articial es necesaria para asegurar un grado convino cente 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 tcnicas de reverberacin articial incluyen la e o produccin de msica grabada o en vivo, multimedia o realidad virtual o o u evaluacin de acstica de arquitecturas. o u La reverberacin de una sala se puede simular mediante la convolucin o o de una seal de entrada con la respuesta al impulso de la sala, sea esta men dida en forma f sica o simulada en el computador. Mediante los algoritmos disponible hoy en d es posible implementar convolucin de respuestas al a, o impulso de larga duracin en tiempo real, sin experimentar retrasos signicao tivos y sin exceder la capacidad computacional de los procesadores digitales de seales. n El enfoque de la convolucin resulta adecuado para la auralizacin preo o dictiva o comparativa de salas de conciertos, auditorios o sistemas de sonidos, cuando un ambiente de escucha controlado, o a travs de aud e fonos se pueda experimentar todas las ventajas de la tcnica. e La aproximacin tradicional a la reverberacin sinttica en tiempo real o o e se basa en redes de retraso basadas en algoritmos de feedforward para generar las reexiones tempranas y algoritmos de feedback para la reverberacin o tard Este enfoque no puede garantizar el mismo grado de precisin que a. o la convolucin con la respuesta al impulso de la sala, pero permite una pao rametrizacin ms eciente del control dinmico del efecto de reverberacin o a a o sinttico. e El apndice A.11 contiene cdigo SuperCollider que implementa un ree o verberador articial completo. CADIZ, R. INTRODUCCION A LA MUSICA 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 seal de entrada n con vibrato junto con la seal sin procesar. Para producir el efecto, ya sea n 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 slo sonido proveniente de una misma fuente. El o 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 elctrico. Bsicamente, se trata de un ltro pasa e a 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 tambin es posible de producir mediante el modelamiento e de un sonido instrumental utilizando un vocoder y el sonido wah-wah hablado como seal moduladora. De esta forma, se transeren los formantes n del sonido hablado al sonido musical.

6.9.3.

Delay

Un efecto de delay o retraso consiste en la multiplicacin y retraso moduo lado de una seal de entrada, que se mezcla con la seal original, obtenienn n dose un efecto de eco sonoro. Los parmetros ms comunes de un delay son a a el tiempo de retraso, que corresponde al tiempo que tarda en producirse un eco, la cantidad de feedback o retroalimentacin, denida como la cantidad o de veces que se repite la seal sonora y la proporcin de mezcla, que es la n o cantidad de sonido retrasado que se mezcla con el original.

6.10.

Procesador de efectos genrico e

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

6.10. PROCESADOR DE EFECTOS GENERICO

133

Usualmente, el retraso es modulado de manera de obtener efectos ms a interesantes tales como el anging. Esta arquitectura es bsicamente un a ltro comb con la variacin de poseer un ltro pasa bajos en vez de un o multiplicador simple para la linea de retroalimentacin. o Los parmetros usuales de un procesador genrico son: a e Ganancia de entrada en dB (no mostrada en la gura) Tiempo de retreaso en ms Fase de retroalimentacin o Cantidad de retroalimentacin o Mezcla de salida Oscilador de frecuencia de retraso variable Desviacin de retraso o En el apndice A.12 se detalla la implementacin de un procesador de e o efecto genrico en SuperCollider, basado en sta descripcin. e e o

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

134

CAP ITULO 6. PROCESAMIENTO DIGITAL DE AUDIO

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Cap tulo 7

La m sica electroac stica u u

La msica electroacstica constituye un gnero bastante particular en la u u e historia de la msica y en mi opinin, uno que no es muy bien entendido u o incluso por algunos msicos profesionales, tericos y musiclogos. Son los u o o compositores quienes parecen ser ms conscientes de las caracter a sticas y particularidades de este tipo de msica. Una muestra de esto es que la u mayor de los escasos anlisis publicados sobre msica electroacstica estn a a u u a hechos por compositores, ya sea el propio autor u otro compositor. Al hablar de msica electroacstica es importante determinar claramenu u te qu se entiende por el trmino. Hay dos posibles deniciones. La primera e e considera formas de msica que pueden utilizar cualquier tipo de fuente u sonora que pase a travs de un circuito elctrico y que resuene a travs e e e de un altoparlante. Cualquier tipo de msica grabada electrnicamente y u o reproducida mediante altoparlantes cae en esta categor La segunda dea. nicin contempla la msica que es generada mediante aparatos electrnicos o u o o mediante una combinacin de stos con instrumentos acsticos [4]. En el o e u presente texto, se considerar la segunda denicin. a o Esta msica maniesta grandes diferencias con respecto a la msica insu u trumental [25]. Tanto es as que algunos compositores de msica electrou acstica han llegado a cuestionar si lo que hacen puede ser considerado u msica en el sentido en que normalmente entendemos el trmino. Otros u e preeren la denicin arte auditivo (audio art) o arte sonoro (sonic art) y o muchos rechazan la idea de ser compositores en el sentido tradicional. Por lo general, comprenden a la msica como un subconjunto del ms amplio u a arte auditivo [20]. Estas diferencias afectan tambin a los roles de compositor e intrprete. e e Claramente separados y denidos en la tradicin musical de occidente, ahora o 135

136

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

se han vuelto difusos y muchas veces no es posible separarlos. La posibilidad de ser compositor/intrprete abre nuevas interrogantes y nuevos espacios en e la prctica de este arte [25]. a A pesar de que el campo de la msica electroacstica, y en especial de u u la msica computacional, es muy rico en publicaciones e investigacin, su u o anlisis est todav en paales. De hecho, las publicaciones sobre anlisis a a a n a de obras electroacsticas son muy escasas en comparacin con la cantidad u o de anlisis publicados sobre msica instrumental o incluso contempornea. a u a Al comparar la msica electroacstica con la msica instrumental o vou u u cal tradicional, naturalmente surgen algunas interrogantes. Por qu es tan e diferente la msica electroacstica respecto a formas ms tradicionales de u u a msica? Cmo escuchamos este tipo de msica? Cmo la percibimos? u o u o Cmo podemos aproximarnos su anlisis? o a

7.1.
7.1.1.

Caracter sticas de la m sica electroac stica u u


Material sonoro

Smalley identica tres tipos diferentes de sonidos [34]: 1. Sonidos naturales o ambientales capturados mediante micrfonos, soo nidos que antes de su captura no posean propsito musical alguno. o 2. Sonidos especialmente creados con un propsito musical, tales como o sonidos vocales o instrumentales. 3. Sonidos electroacsticos, creados mediante s u ntesis o transformaciones de otros sonidos y totalmente separados de las otras dos categor as. Una inmediata observacin sobre esta categorizacin es que estos diso o tintos tipos de sonidos dieren en sus fuentes sonoras. En el ultimo caso es dif identicar la fuente, mientras que en los dos primeros usualmente no cil necesitamos de ninguna pista visual para reconocerlas. Esto sugiere que la percepcin de estos tipos de sonidos diere en cada caso. o Desde otro punto de vista, tambin es importante clasicar los sonidos e de acuerdo a su capacidad de referencia y signicacin. o Sonidos abstractos El concepto de sonido abstracto est directamente relacionado con el a concepto de audicin reducida (ver seccin 3.4) y con el trmino acusmtico. o o e a Un sonido abstracto puede privilegiar perceptualmente alguna cualidad o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.1. CARACTER ISTICAS DE LA MUSICA ELECTROACUSTICA 137 parmetro en el cual el compositor ha puesto su atencin en dentro del a o estudio. Esto puede relacionarse con las tcnicas empleadas en su creacin o e o manipulacin y/o en la contribucin de ese sonido en particular al discurso o o musical de una obra. La percepcin de un sonido abstracto, por lo tanto, o est frecuentemente determinada por su contexto. a Un sonido puede ser denominado abstracto o acusmtico simplemente a por la incapacidad del auditor de asignarle una fuente sonora real o imaginaria y por la negacin de una fuente visual [46]. Esto nos permite organizar o y clasicar el material sonoro en base a sus caracter sticas morfolgicas y no o en base a una referencia a la posible fuente de emisin sonora. o Muchos compositores de msica electroacstica aprovechan este fenmeno u u o 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 msica [6]. u 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 direccin opuesta o 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 ms bien su poder de evocar situaciones extr a nsecas. Un sonido referencial incluso puede tener un origen sinttico [6]. e 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 clasicacin en un comienzo, algunos aos ms tarde opt por los trminos o n a o e 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 por ejemplo, puede n, ser muy abstracto en trminos musicales pero el auditor siempre tiene la e opcin de hacer referencia al instrumento que emite el sonido. Un sonido o creado articialmente tiende a ser abstracto, dada la imposibilidad de asignarle una fuente real. No obstante, Smalley arma que la mayor de los a sonidos tienen fuentes reconocibles e incluso, cuando dichas fuentes estn a ocultas, pueden ser percibidas fuentes sustitutas (ver seccin 4.4) [33]. o Usualmente, cuando uno considera el material sonoro de la msica elecu troacstica, se trata de material que tradicionalmente no es considerado u como musical [44]. Las tcnicas electroacsticas han llevado a la inclusin e u o de todos los tipos de sonidos anteriormente excluidos del discurso musical: CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

138

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

ruidos, sonidos no instrumentales, no vocales, obtenidos del medio ambiente o a travs de la manipulacin de otros sonidos previamente grabados, o pue o ramente mediante s ntesis. La msica electroacstica usualmente presenta u u sonidos en una forma directa, inmediata, en contraposicin con el mundo o estructurado y altamente mediado de la msica tradicional. A este respecu to, Barry Truax nota, por ejemplo, que las l neas divisorias entre lenguaje, msica y paisaje sonoro son cada vez ms difusas cuando stos son usados u a e como material sonoro en el estudio [43]. Desde un punto de vista de la composicin, los sonidos dejan de ser slo o o soportes para las alturas o estructuras r tmicas. Su compleja multidimensionalidad se torna en el factor formal preponderante y gran parte de la composicin electroacstica se basa en el valor del sonido por s mismo y no o u solamente en relaciones entre sonidos [18].

7.1.2.

Ausencia de notacin y representacin abstracta o o

El anlisis musical, tal como lo conocemos, es un producto del siglo XIX a y la representacin abstracta de la msica (partituras o equivalentes) es un o u pre-requisito anal tico incluso ms antiguo. Bennett y Camilleri sugieren que a no existen herramientas anal ticas o un vocabulario anal tico para la msica u electroacstica, dado que sta en general ni siquiera posee una representacin u e o de este tipo [3] [7]. La dicultad para pensar en trminos abstractos acerca de la msica e u electroacstica y la falta de un vocabulario adecuado hacen muy dif la u cil concepcin de modelos anal o ticos que tengan una validez ms all de las a a experiencias personales del compositor o auditor. La msica electroacstica u u existe slo como sonido, existe slo en el presente y al no tener una represeno o tacin grca, no tiene un pasado. Desde un punto de vista anal o a tico, una partitura o una representacin grca de otro tipo nos permite detener el o a tiempo y formarnos una idea del discurso temporal de la msica sin tener u que lidiar con la urgencia del tiempo mismo. Una partitura no es la msica u en s sino slo una intermediaria, una representacin, cuyas caracter , o o sticas nos permiten pensar acerca de la msica que representa. u La notacin tiene dos grandes propsitos en la msica de arte occidental o o u [44]. Puede prescribir las acciones de los ejecutantes, actuando como un conjunto de restricciones sobre las variables interpretativas. En este sentido, la notacin provee un medio mediante el cual un compositor puede tratar o de determinar qu es lo que debe ser tocado, cundo y cmo. Una partitura e o puede ser considerada como un mensaje, con una fuente (el compositor) y un receptor (el o los intrpretes). e CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.1. CARACTER ISTICAS DE LA MUSICA ELECTROACUSTICA 139 Sin embargo, una partitura tambin funciona como un ente descriptor e en un sentido bastante ms estricto. Es posible analizar una pieza musical a tal como si fuera una representacin de la pieza en s misma. La notacin o o musical provee al analista de una representacin dedigna y lista sobre lo o que puede ser escuchado en una pieza musical cuando sta es interpretada e correctamente. Frente a esta lectura estricta de la notacin, es importante tener en cueno ta que una partitura es slo una de las fuentes de informacin sobre una pieza o o de msica. Otros factores, tales como anlisis acsticos, datos psicolgicos u a u o o perceptuales, documentos histricos, impresiones de los intrpretes, como e positores o auditores tambin proveen al analista de distintas e importantes e descripciones de una pieza. En consecuencia, dado que la msica electroacstica no posee ningn tipo u u u de partitura, que no hay en ella ninguna correlacin entre una representao cin grca y sonido, el enfoque anal o a tico no puede ser otro que de orden esttico/perceptivo/cognitivo. Lo unico que puede analizarse, entonces, es e 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 anlisis basado en un solo aspecto (como, por a ejemplo, la relacin entre alturas), un proceder que comnmente no tiene en o u cuenta lo que los auditores realmente escuchan.

7.1.3.

Composicin y anlisis o a

De acuerdo con Camilleri, un aspecto interesante de la msica electrou acstica es que su anlisis por lo general no coincide con un examen del u a proceso compositivo, como usualmente sucede con la msica instrumental u [7]. El proceso de composicin en este caso slo sirve para enfatizar y correo o lacionar 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 anlisis es descubrir o explicitar las a intenciones del compositor y su metodolog Generalmente esto no es poa. sible en el caso de la msica electroacstica. Lo que se inere al escuchar u u una pieza de msica puede tener muy poco que ver con la metodolog del u a compositor, dadas las mltiples transformaciones y or u genes que el material sonoro puede tener. En consecuencia, el anlisis de la msica electroacstica debe centrarse a u u en otros aspectos y el divorcio entre compositor y la obra de arte una vez terminada es ms pronunciado en este caso que en formas de msica ms a u a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

140

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

tradicionales. Tal como ya se mencion, es habitual que los compositores de o msica electroacstica no consideren que el resultado de su arte sea msica. u u u Morthenson es bastante drstico en este sentido y preere directamente el a trmino arte electrosnico [20]. e o

7.1.4.

Composicin e improvisacin o o

Stephen Pope sostiene que muchos compositores de msica electroacstiu u ca que utilizan computadores realizan improvisaciones estructuradas en tiempo real, o en otras palabras, composiciones interactivas [25]. El debate acerca de donde termina la improvisacin y donde empieza la composicin es algo o o que toma extraordinaria fuerza en el caso de la msica electroacstica. Sin u u duda, el concepto tradicional de composicin aqu se ve amenazado. o

7.1.5.

M sica electroac stica y su signicado u u

Jan Morthenson sugiere que la msica electroacstica no puede ser psiu u colgicamente catalogada como msica bajo las condiciones culturales actuao u les, porque no conlleva el signicado esperado que usualmente le asignamos a la msica [20]. Bajo su punto de vista, hay dos tipos de signicado. Uno es u el representado por un signo y el otro es el signicado de colocar ese signo en particular en algn contexto o lugar espec u co. El primer signicado es mecnico y automtico y est basado en signos aprendidos, mientras el sea a a gundo 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 estticos. e De acuerdo a estas ideas, los eventos musicales representan fundamentalmente un signicado interno, porque se reeren a otros eventos musicales que estn por suceder o que han ocurrido recientemente. Para rearmar esta a 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 msica en un estilo con el cual no estemos familiarizados no nos signica u nada Este punto constituye la esencia del argumento de Morthenson: incluso la msica contempornea ms extraa involucra a intrpretes haciendo cosas u a a n e CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.2. ESTRATEGIAS AUDITIVAS

141

con sus instrumentos, pero ese simple hecho le permite al auditor asignarle un signicado hipottico porque aquello se relaciona con ocurrencias pasadas e en la historia de la msica. Se le puede asignar el segundo tipo de signicado, u como una variante de la msica con todas sus implicaciones histricas. u o En cambio, la msica electroacstica por lo general no precisa de artistas u u en el escenario para inuenciar las evaluaciones de los auditores. Ms an, a u la mayor parte del tiempo estn ausentes las acciones otrora reconocibles de a los compositores. En este tipo de msica, usualmente no existe una discrimiu nacin evidente entre creatividad art o stica y slo operaciones matemticas o a o tcnicas. Algunas veces el compositor se convierte en un supervisor, dado e 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 msica u electroacstica esto no sucede, porque los sonidos electroacsticos se relau u cionan ms con el medio ambiente que con la msica. Por lo tanto, los a u auditores no poseen referencias sucientes con las cuales comparar lo que estn escuchando. a En resumen, cada pieza de msica electroacstica es nueva y, de acuerdo u u con la denicin de Meyer, musicalmente no posee signicado. En conseo cuencia, la msica electroacstica no puede ser considerada como msica. u u u 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 msica electrou acstica con referentes histricos sucientes como para poder comparar cada u o nueva pieza que se crea. Al respecto, Adkins introduce el concepto de cadena acstica, que consiste bsicamente en v u a nculos que se establecen cuando un compositor se reere al trabajo de otro en la propia msica, no por una u mencin directa, sino porque utiliza los mismos objetos sonoros [1]. Una cao dena acusmtica de este tipo claramente establece una nueva categor de a a signicacin para la msica electroacstica. o u u

7.2.

Estrategias auditivas

Investigaciones recientes en msica electroacstica sugieren que no escuu u chamos en una forma ja, uniforme u objetiva, sino que percibimos la msica u de maneras diversas y adoptamos distintas aproximaciones en nuestra audicin. Ms an, es bastante frecuente que adoptemos estrategias auditivas o a u diferentes durante el transcurso de una misma pieza. Los aspectos ms sobresalientes de las estructuras y supercies musicales a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

142

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

(espectromorfolog llevan a los auditores a adoptar estrategias diversas a) en la audicin. Por ejemplo, una rpida secuencia monofnica de eventos o a o sonoros autnomos no se escucha de la misma manera que una densa textura o 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.

Audicin musical o

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

7.2.2.

Modos Schaeerianos de audicin o

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

7.2. ESTRATEGIAS AUDITIVAS

143

4. Comprendre. Un paso ms all del modo tercero. Implica la intencin a a o de aprehender un signicado o unos valores, tratando al sonido como un signo que se reere a este signicado como una funcin de un o lenguaje o de algn cdigo (audicin semntica). u o o a

7.2.3.

Audicin de fondo o

Barry Truax propone el trmino audicin de fondo (background listee o ning) para diferenciar un nivel distinto de audicin que ocurre cuando exiso ten sonidos que permanecen en el fondo de nuestra atencin [43]. Esto suceo de cuando un auditor no escucha un sonido en particular que sin embargo est presente, debido a que ese sonido no tiene alguna signicacin inmediata a o o relevante. Sin embargo, el auditor es consciente de l y si se le pregunta si e ha escuchado el sonido en cuestin probablemente responder de forma aro mativa. Los sonidos que son escuchados en el fondo ocurren frecuentemente y por lo tanto son esperados y predecibles. Se les presta atencin solamente o si es necesario; de lo contrario, no son siquiera notados.

7.2.4.

Audicin reducida o

En la teor de Schaeer, la audicin reducida corresponde a la actitud a o 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 sta. En la audicin reducida, el foco es el objeto sonoro en s mismo (no a e o lo que se reere) y con los valores que conlleva (y no los que sugiere). El nombre audicin reducida se reere a la nocin de una reduccin o o o fenomenolgica, porque consiste en descartar de la percepcin auditiva todo o o lo que no le es propio, de manera que se llegue a escuchar solamente el sonido puro, en toda su materialidad, sustancia y dimensin. La audicin reducida o o y el objeto sonoro se correlacionan directamente y se denen mutuamente como la actividad y el objeto de la percepcin. o Dado que en la audicin ordinaria el sonido siempre es tratado como o un veh culo, entonces la audicin reducida se convierte en un proceso antio natural, 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 seccin 4.3). o Como resultado, propone los siguientes modos [34]: CADIZ, R. INTRODUCCION A LA MUSICA 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 seal o un signo de algo que no es sonoro por n naturaleza, algo necesario, por ejemplo, para la supervivencia. 2. Reexivo. Este modo est centrado en el sujeto, es claramente aua tocntrico y se basa en respuestas emocionales al objeto percibido. El e objeto y la emocin no son separables en este caso. o 3. Interactivo. Corresponde a los modos tres y cuatro de Schaeer y es claramente alocntrico. Involucra una relacin activa de parte del sujee o to para explorar continuamente las cualidades y estructuras del objeto. Esta modo abarca la audicin estructural, actitudes estticas hacia los o e sonidos y la msica y el concepto de audicin reducida de Schaeer u o (ver seccin 3.4). o Los modos indicativos y reexivos son los dominantes. En cambio, el embarcarse en una relacin interactiva requiere de esfuerzo y voluntad. A o pesar de esto, en mi opinin, una relacin de este tipo es la necesaria para o o apreciar realmente la msica y constituye un requisito bsico para el anlisis. u a a

7.2.6.

Conductas auditivas de Delalande

La teor anal a tica de Francois Delalande, basada en el anlisis de coma portamientos 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 anlisis en una amplia muestra de experiencias auditivas, con a el objetivo de extraer los elementos estructurales y narrativos comunes a ellas. Este tipo de anlisis es llamado por Delalande anlisis de conductas a a auditivas (ver seccin 5.3). o Delalande propone tres diferentes conductas auditivas: taxonmica, enftio a ca y gurativa. 1. La audicin taxonmica se maniesta a travs de la tendencia a distino o e guir grandes unidades morfolgicas tales como secciones y hacer una o lista mental de ellas. Tambin se maniesta en la habilidad para notar e cmo estas unidades se relacionan e interconectan entre ellas. o 2. La conducta enftica presta atencin a las sensaciones, las cuales son a o comnmente descritas como el producto psicolgico del sonido. Esto u o est claramente relacionado con el modo reexivo de Smalley. a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.3. PERCEPCION DE LA MUSICA ELECTROACUSTICA

145

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

7.3.

Percepcin de la m sica electroac stica o u u

A pesar de que el campo de la percepcin musical es bastante amplio, o la percepcin de la msica electroacstica es un tema que an no ha sido o u u estudiado en profundidad. En los ultimos aos ha habido un gran avance en n la investigacin sobre percepcin de msica instrumental o vocal, pero los o o u estudios publicados sobre percepcin de msica electroacstica son todav o u u a escasos. A continuacin se presentan los enfoques perceptuales ms importantes o a que han sido propuestos hasta ahora

7.3.1.

Enfoque ecolgico o

Luke Windsor propone que los sonidos sean entendidos con relacin a o los ambientes dinmicos en los cuales stos son producidos, ya sean sonidos a e creados naturalmente o mediante alguna mediacin cultural [45]. En conseo cuencia, las dicultades tericas y anal o ticas que la msica electroacstica u u posee requerir soluciones basadas en una conciencia dual del auditor sobre an los aspectos naturales y culturales del sonido. En otras palabras, esto sugiere que la msica electroacstica posee una u u naturaleza dual. Por una parte, los sonidos son percibidos y por la otra signican. Son percibidos porque proveen informacin que permite a un o organismo reaccionar adecuadamente a su ambiente de una manera directa. Y tambin signican porque son interpretados como artefactos culturales e con un contenido expl cito. Esta idea puede ser directamente relacionada con los modos tercero y cuarto de los modos de audicin de Schaeer (ver seccin 3.2). El tercer o o 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 acstica ecolgica, los sonidos no son concebidos u o 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 estn basadas en el trabajo de Gisbon, creador del enfoa que ecolgico para la percepcin visual, quien arma que la percepcin no o o o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

146

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

requiere de la mediacin de representaciones mentales del mundo externo. o Este argumento es contrario al punto de vista dominante de la percepcin o y cognicin musical, en el cual el procesamiento, el almacenamiento y la o manipulacin de la informacin en la mente son lo principal. o o De acuerdo con Windsor, el enfoque ecolgico asume que el ambiente o est altamente estructurado y que los organismos son sensibles a dicha esa tructura. Sin embargo, esto no signica que la memoria, el lenguaje y otros sistemas simblicos no tengan un rol importante en nuestra experiencia del o mundo, sino que la percepcin, por un lado; y los sistemas simblicos que o o facilitan la mediacin, el almacenamiento y la comunicacin de las percepo o ciones, por el otro, son cosas distintas. Esta perspectiva ecolgica se basa en la percepcin de eventos. Este tio o po de percepcin trata de identicar las propiedades invariantes de eventos o que especican las caracter sticas permanentes y cambiantes del ambiente que son importantes para un organismo. Este enfoque es distinto de la psicoacstica tradicional en el sentido de que sta ultima se ocupa de identicar u e cambios en alturas, estructuras espectrales o duraciones, mientras que la primera trata de identicar las transformaciones en las estructuras acsticas u 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 seccin 7.2.4) o que ellos no puedan signicar. Lo que o s implica es que los sonidos no necesitan de tal mediacin para informarnos o acerca de nuestro ambiente y que las fuentes sonoras pueden dif ciles de ignorar, debido principalmente a la naturaleza no musical de los sonidos electroacsticos. u En conclusin, esta visin es fundamentalmente opuesta al concepto o o acusmtico de Schaeer en el sentido de que la msica electroacstica, ms a u u a que proveer un mtodo de lidiar con fuentes sonoras, es ms bien una fuente e a informativa de est mulos acsticos estructurados. La percepcin de msica u o u electroacstica puede ser radicalmente distinta a la percepcin de eventos u o reales, pero esto no es slo audicin acusmtica o reducida. El auditor que o o a habita en un ambiente rico en estimulacin y estructura percibir eventos no o slo a travs de la informacin presente en una pieza de msica sino del o e o u ambiente como un todo, sea ste acstico o no. e u

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. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.3. PERCEPCION DE LA MUSICA ELECTROACUSTICA

147

una sala de conciertos est constituido por msicos tocando instrumentos. El a u paisaje sonoro de la misma msica tocada a travs de altoparlantes tambin u e e corresponde a msicos tocando instrumentos. u Cul es el paisaje sonoro de una pieza de msica electroacstica? La a u u respuesta a esta pregunta no es fcil y depende de cada pieza en particua lar. La mayor de la gente acostumbrada a escuchar conciertos de msica a u tradicional en vivo se desorienta al escuchar un concierto de msica electrou acstica presentado mediante altoparlantes. Esta desorientacin se debe a u o 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 msica electroacstica ha provocado una revolucin en el u u o contenido sonoro, ante lo cual se observa una variada gama de respuestas auditivas [34]. Wishart propone que nuestra percepcin de un paisaje sonoro o puede ser descompuesta en tres partes: naturaleza del espacio acstico peru cibido, la disposicin de los objetos sonoros en tal espacio y la identicacin o o 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 diferenciacin, o propone dos modos perceptuales [34]. El modo autocntrico es el basado en el sujeto y en respuestas bsicas y e a sentimientos de satisfaccin o insatisfaccin. Este enfoque est relacionado o o a con las reacciones subjetivas a los est mulos. Esta idea de percepcin es o primitiva, basada en necesidades y se asocia con las primeras relaciones del nio con el mundo. Cabe destacar aqu la similitud con la percepcin n o ecolgica propuesta por Windsor. o Por el contrario, el modo alocntrico es el centrado en el objeto en el e sentido de que no involucra las necesidades del individuo. La satisfaccin o o insatisfaccin no son relevantes en este caso. Este modo implica un proceso o activo y selectivo de focalizacin en un objeto para posteriormente discernir o sus propiedades. Las actitudes musicales autocntricas se relacionan con respuestas emoe cionales al sonido. En cambio, las actitudes alocntricas involucran la aprehene sin de las estructuras musicales y la apreciacin de sonidos fuera de un o o contexto musical. Este modo constituye un encuentro directo con el sonido y est directamente relacionado con el modo cuarto de Schaeer (ver seccin a o 3.2) y con el modo interactivo de Smalley (ver seccin 3.5). o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

148

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

La autocentricidad y alocentricidad pueden existir en forma paralela y tambin var de acuerdo con cada auditor. Hay algunos que en la presencia e an de un sonido inmediatamente utilizarn un enfoque autocntrico mientras a e otros seguirn una estrategia alocntrica. Esta idea complementa la natua e raleza sonora dual que propone Windsor, en el sentido de que los sonidos son percibidos (en el sentido autocntrico) pero tambin signican (de una e e manera alocntrica). Tambin esta idea puede vincularse directamente con e e las conductas auditivas de Delalande (ver seccin 3.6). o

7.3.4.

Sustitucin o

Denis Smalley introduce el trmino sustitucin (surrogacy) como una e o 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 acusmtico. A medida que el nivel de sustitucin se a o hace ms fuerte, los auditores pueden asignar causas imaginarias a distintos a sonidos y a su evolucin espectromorfolgica, o etiquetar el sonido como abso o tracto. Smalley denomina a estos varios niveles como rdenes de sustitucin o o [33].

7.4.

Estrategias anal ticas

El anlisis de la msica, como teor y praxis, ha pasado ultimamente a u a por un per odo de autocuestionamiento, sin duda como resultado de la incapacidad de las tcnicas tradicionales de abordar msica de la avant-garde e u de la post-guerra [21]. Incluso hoy, mucha msica contempornea parece u a inescrutable. Este es el contexto en el cual se encuentra la msica electrou acstica. u Tal como Delalande seala, el objeto del anlisis es el sonido. Y los objen a tos sonoros (ver seccin 5.1) existen slo en las mentes de los auditores [10]. o o Camilleri arma que la introduccin de la tecnolog en sus varias fases de o a desarrollo desde 1940 hasta hoy ha provocado no solo un enriquecimiento de la gama sonora, sino que tambin ha generado una gran cantidad de ree exiones tericas acerca de cmo clasicar los sonidos de las nuevas obras y o o como analizarlas [7]. Para algunos autores, entre ellos Nicola Sani, el rol del anlisis debe ser no slo el proveer anlisis individuales sobre obras espec a o a cas, sino ms bien identicar la especicidad de este gnero en el contexto a e de la produccin art o stica de nuestro tiempo [31]. La msica electroacstica se basa fuertemente en el uso de la tecnolog u u a, la cual avanza a una velocidad vertiginosa. En el momento de analizar, CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.4. ESTRATEGIAS ANAL ITICAS

149

esto se convierte en un problema, dado que existe una fuerte tendencia a basar el anlisis en los aspectos tcnicos [31]. La msica computacional a e u y electroacstica se presenta y legitima como una parte del conocimiento u (know-how) tecnolgico, lo cual no puede estar ms lejos de la verdad. El o a conocimiento tecnolgico hace posible la creacin de ciertas composiciones, o o pero no puede ser la justicacin esttica de las mismas. En este sentido, o e el anlisis de una pieza de msica electroacstica no debe convertirse en un a u u manual de instrucciones o una gua de uso de la tecnolog a. Hay dos cosas que hay que considerar al momento de analizar msiu ca electroacstica. En primer lugar, el punto de partida del anlisis es la u a audicin de la obra. Segundo, la actitud receptiva del auditor inuye en o el anlisis porque sus propiedades no son meramente asociativas, sino una a parte estructural de la potencialidad del medio electroacstico [7]. u Camilleri sugiere que las estrategias anal ticas para la msica electrou acstica deben considerar tres aspectos: u 1. Reexin del lenguaje musical, sus potencialidades y sus ligazones al o mundo sonoro natural 2. Relacin entre las propiedades psicoacsticas del fenmeno sonoro y o u o su descripcin o 3. Creacin de un lxico anal o e tico Estos tres aspectos son esenciales e igualmente importantes, porque permiten crear un marco apropiado al proceso de anlisis. Una de las caraca ter sticas de la msica electroacstica es que puede fusionar fcilmente sou u a nidos 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 msica es crucial. El anlisis musical no es una mera descripcin, y esto u a o tambin es vlido para la msica electroacstica. Adems, dado que an no e a u u a u existen mtodos y estrategias generales para este tipo de anlisis, tampoco e a existe un lxico anal e tico, por lo que un objetivo importante de cualquier nueva estrategia debe ser el proveer un marco de referencia (lxico) consise tente y exhaustivo. A continuacin se presentan las principales metodolog anal o as ticas propuestas hasta ahora. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

150

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

7.4.1.

Objetos sonoros

La teor tipomorfolgica de Pierre Schaeer, a pesar de que no constitua o ye realmente una metodolog anal a tica sino ms bien compositiva y terica, a o ha sido utilizada por muchos como un punto de partida para el anlisis a de msica electroacstica. En su propuesta, Schaeer identica tres tipos u u de objetos sonoros, presentes en el discurso musical, de acuerdo a criterios topolgicos y morfolgicos; los cuales indican los tipos generales de estos o o 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 clasicacin claramente se basa en las caracter o sticas morfolgicas de los sonidos, y ser extendida ms adelante por Smalley, tal o a como se describe en la seccin 7.4.2. o Schaeer tambin considera tres planes de referencia a travs de los e e cuales los objetos sonoros son descritos y clasicados: Plan meldico o de textura: la evolucin de las alturas en el tiempo o o Plan dinmico o formal: los parmetros de la intensidad en el tiempo a a Plan armnico o t o mbrico: las relaciones entre los parmetros anteriores a y sus componentes espectrales Cada plan de referencia presenta diversos sistemas de clasicacin de o acuerdo a los tipos de movimientos meldicos, dinmicos y t o a mbricos. Adems, a Schaeer establece cuatro clases de criterios de clasicacin: material, mano tenimiento, forma y variacin, los cuales se correlacionan con las caracter o sticas morfolgicas de los objetos sonoros. o

7.4.2.

Espectromorfolog a

Denis Smalley desarroll el concepto de espectromorfolog como una o a herramienta para describir y analizar experiencias auditivas [33] [35]. Las dos partes del trmino se reeren al sonido (espectro) y la evolucin de su e o molde o forma de onda (morfolog a travs del tiempo. El espectro no a) e puede existir sin la morfolog algo tiene que ser moldeado y debe poseer a: tambin contenido sonoro. e Desde un punto de vista anal tico, la propuesta de Smalley es extremadamente importante, dado que en los primeros treinta y cinco aos de n actividad electroacstica no fue propuesta ninguna metodolog comprehenu a siva para el anlisis. La teor de Pierre Schaeer sobre tipos morfolgicos a a o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.4. ESTRATEGIAS ANAL ITICAS

151

o tipomorfolog (objetos sonoros, ver seccin 5.1) fue el intento ms sea o a rio. La espectromorfolog es ms exhaustiva, puede ser aplicada a distintos a a contextos musicales y extiende las ideas de Schaeer al incluir estructuras jerrquicas y otras propiedades como movimiento y espacio [7]. a Es importante destacar, no obstante, que la espectromorfolog es una a herramienta descriptiva basada en la percepcin auditiva. Un enfoque eso pectromorfolgico considera modelos y procesos espectrales y morfolgicos o o y provee un marco de referencia para entender relaciones estructurales y comportamientos sonoros experimentados en el ujo temporal de la msica u [35]. El marco terico de la espectromorfolog se articula en cuatro partes o a principales: los arquetipos espectrales, morfolog movimiento y procesos a, estructurales. A continuacin se detallan las primeras dos partes, dado que o son las ms relevantes para efectos del presente texto. a Arquetipos espectrales Smalley identica tres tipos bsicos de espectros: nota, nodo y ruido. La a nota corresponde a un tono musical normal, con una frecuencia fundamental y armnicos. Un nodo corresponde a una densidad de sonido ms compleo a ja, donde la identicacin de un croma o altura determinada es dif o cil. Un ruido es una densidad sonora extremadamente comprimida donde no hay identicacin de una altura o croma posible. o Cada uno de estos arquetipos espectrales puede tener un comportamiento temporal distinto, que Smalley clasica en arquetipos morfolgicos. o

7.4.3.

Arquetipos morfolgicos, modelos y cadenas o

Smalley va mucho ms all de las deniciones de Schaeer al designar a a diversos arquetipos morfolgicos y crear una serie de modelos obtenidos a o travs de diversas transformaciones tales como la retrogradacin. Pueden e o discernirse tres arquetipos bsicos en las fuentes de sonidos: ataque impula sivo, ataque resonante y continuo graduado. El ataque impulsivo corresponde a un rpido impulso que es inmediataa mente terminado. En este caso el inicio del sonido es tambin su nal. La e atencin se enfoca por completo en el ataque sbito. El ataque resonante es o u modelado en sonidos cuyo ataque impulsivo es extendido a travs de una ree sonancia (como por ejemplo una cuerda pulsada o una campana) para luego decaer ya sea en forma rpida o graduada dependiendo del caso. La atencin a o se enfoca en la sorpresiva aparicin y en la forma en que sta se convierte o e en un sonido sostenido. El tercer arquetipo es un continuo graduado el cual CADIZ, R. INTRODUCCION A LA MUSICA 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 tambin graduada. En e este caso el ataque es percibido como una inuencia mucho ms dbil que a e en el caso de los otros dos arquetipos. La atencin se enfoca principalmeno te 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 morfolgicos. Estos modelos permiten lo que Smalley denomina modulao cin morfolgica, dado que proveen un marco de referencia ms completo y o o a verstil para la clasicacin de unidades morfolgicas estructurales. No obsa o o tante, estas morfolog no son solamente objetos aislados sino que pueden as enlazarse y mezclarse formando cadenas, creando as objetos h bridos.

7.4.4.

Anlisis basado en conductas auditivas a

Delalande [10] hace una cr tica expl cita de la espectromorfolog de Smaa lley. De acuerdo con sus propuestas, hay un tipo de anlisis simplemente a inaceptable: uno que apunte a demostrar lo que la msica es, o cual sea la u forma o la estructura. En consecuencia, uno debe descartar la ilusin de un o anlisis unico y denitivo. Delalande enfatiza que al analizar msica eleca u troacstica (o incluso un sonido medianamente complejo) es siempre posible u revelar una innidad de caracter sticas morfolgicas y distintas congurao ciones de morfolog Esto no slo se aplica a todas las piezas de msica as. o u sino tambin a todos los objetos sonoros. Un anlisis siempre implica una e a reduccin. Slo algunas caracter o o sticas y conguraciones son seleccionadas de entre todas las posibles. La pregunta del objetivo del anlisis y la pertia nencia de las caracter sticas en relacin con este objetivo es, por lo tanto, o evadida. Como solucin a esto, Delalande propone el curso de accin opuesto. El o o objetivo del anlisis, segn sus ideas, es revelar las elecciones (impl a u citas o expl citas) y acciones del compositor, o explicar los comportamientos auditivos de los receptores (ver seccin 3.6), o ambos al mismo tiempo. Solamente o despus que un objetivo anal e tico ha sido elegido es posible denir un criterio de pertenencia. En un nivel general y terico no hay razn alguna para o o que las unidades pertinentes coincidan con unidades espectromorfolgicas. o En sus anlisis, Delalande realiza en forma separada anlisis taxonmia a o cos, enfticos y gurativos de la misma pieza. Los resultados son totalmente a distintos, pero complementarios. Cada comportamiento da su propia forma a los objetos sonoros. CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.4. ESTRATEGIAS ANAL ITICAS

153

7.4.5.

El sonograma

La msica electroacstica frecuentemente contiene cambios espectrales u u y otros aspectos t mbricos que hacen inadecuada la notacin musical. En eso tos casos, representaciones visuales de la msica pueden ayudar a entender u y apreciar las caracter sticas que pueden haberse ignorado sin este soporte [14]. Al respecto, Mara Helmut propone el sonograma como una representacin util del espectro de frecuencias de una pieza y de su evolucin en el o o tiempo. En adicin a esto, propone la utilizacin de capas adicionales de o o informacin relevante tales como relaciones de alturas, fraseo, dinmicas loo a cales y globales y tcnicas empleadas. El sonograma se propone como una e interesante herramienta de anlisis y que ha sido utilizada para entender el a diseo sonoro de obras electroacsticas. n u Un sonograma consiste bsicamente en un grco bi-dimensional en dona a de 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 msica. A pesar de que la inforu macin visual que un sonograma proporciona no corresponde directamente o al sonido, puede proveer informacin util de la msica y servir como un o u complemento a otras formas de anlisis. a

7.4.6.

Anlisis narrativo a

Cada proceso creativo desarrolla su propia narrativa, incluso en forma independiente de los propsitos del creador [13]. En su trabajo, Giomi y o Ligabue proponen un anlisis narrativo de msica electroacstica utilizana u u do un proceso anal tico basado en aspectos perceptuales y una metodolog a esttica-cognitiva, desarrollada por los propios autores. Este anlisis pretene a de operar en forma anloga al anlisis de una obra literaria, donde existen a a protagonistas y antagonistas, y una trayectoria narrativa claramente establecida. Este tipo de anlisis permite el examen de los objetos anal a ticos desde distintos puntos de vista, empezando por unidades pequeas como los obn jetos o eventos sonoros para seguir con cadenas sintagmticas, estrategias a compositivas y la segmentacin de la estructura formal de la pieza. Esta dio visin estructural se basa en criterios tales como material, comportamiento o r tmico- dinmico, coherencia, morfolog t a a mbrica, densidad, movimiento y tensin. Este anlisis tambin considera estrategias de comienzo y nal, el o a e uso de la analepsia (repeticin narrativa) y la prolepsia (anticipacin narratio o va), asociaciones semnticas tanto musicales como metafricas y asociaciones a o CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

154

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

psicolgicas extra musicales. o

7.5.

Conclusiones

La msica electroacstica es, sin dudas, un gnero particular y distinto a u u e la msica instrumental. El slo hecho de utilizar cualquier fuente sonora en u o un contexto musical establece una gran diferencia. La utilizacin de sonidos o 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 audicin reducida de Schaeer intentan enfocar la atencin auditio o va slo en aspectos morfolgicos, obviando toda referencia externa. Por el o o contrario, autores como Windsor y Wishart argumentan que los sonidos no pueden dejar de signicar y que una audicin reducida no es posible. Tal o como Smalley propone, an cuando no seamos capaces de asignar una fuenu te real o virtual a un sonido electroacstico, podemos asignarles una fuente u sustituta. Autores como Morthenson cuestionan la msica electroacstica como u u msica y ofrecen diversos argumentos por los cuales sta no debiera ser u e considerada msica. Algunos compositores tambin cuestionan el rol de la u e composicin en este contexto. Desde mi punto de vista, creo que la msica o u electroacstica puede perfectamente ser considerada como un gnero ms u e a dentro de la msica, a pesar de sus diferencias, y an sigo pensando que es u u posible componerla, toda vez que se trata de posicionar sonidos en el tiempo. Sin lugar a dudas, la msica electroacstica genera serios cuestionamientos u u perceptuales y tericos, debido en gran parte a su naturaleza, pero tambin o e debido a su poco tiempo de vida. Este gnero est naciendo, y posee, segn e a u 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 msica. La espectromorfolog de Smalley se basa en las propiedades f u a sicas (acsticas) del sonido, mientras Delalande considera las caracter u sticas psicoacsticas. El sonograma permite observar la estructura espectral y en u enfoque narrativo busca estructuras y estrategias narrativas identicables en la msica. Cada uno de estas ideas tiene fortalezas y debilidades. u Personalmente, creo que la mejor forma de analizar msica electroacstiu u ca es usar la mayor cantidad de estrategias como sea posible y tratar de abordar todos los aspectos de la obra. Estoy convencido que la msica electroacstica ha cambiado las bases u u tericas del anlisis musical. El anlisis ya no se basa exclusivamente en una o a a CADIZ, R. INTRODUCCION A LA MUSICA COMPUTACIONAL

7.5. CONCLUSIONES

155

partitura escrita y las intenciones del compositor ya no son el principal foco del anlisis. Lo que ahora importa es el resultado sonoro. a Camilleri sugiere que la falta de una partitura en este caso no es una debilidad sino una fortaleza. Un modelo terico y anal o tico basado solo en el texto sonoro representa un punto de contacto real entre la teor musical a y el modelamiento de estrategias musicales perceptuales y cognitivas. A mi modo de ver, la msica electroacstica no slo ha cambiado sino u u o ampliado el campo del anlisis. Bajo este punto de vista, es posible armar a que el anlisis tradicional es un subconjunto de un tipo ms general de a a anlisis como el descrito en ste texto. El lector habr notado que cada una a e a de las estrategias descritas aqu podrn perfectamente ser aplicadas a msica a u tradicional e incluso msica popular. u Para nalizar, me gustara enfatizar que desde 1940 se ha generado una intensa actividad en este campo y no hay seales de que esto se haya acabado n en ningn sentido. La investigacin en msica electroacstica sigue su curso y u o u u nuevas ideas y enfoques son propuestos constantemente. Tal como Camilleri desea, quizs en un futuro cercano podamos disponer de un lxico anal a e tico comn y slidamente establecido. u o

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

156

CAP ITULO 7. LA MUSICA ELECTROACUSTICA

CADIZ, R.

INTRODUCCION A LA MUSICA COMPUTACIONAL

Apendice A

Ejemplos en SuperCollider

El siguiente apndice contiene una introduccin al lenguaje de s e o 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: introduccin o

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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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 e4

CADIZ, R.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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 bb 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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 ; ( ( nj ) /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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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: Modulacin o

CADIZ, R.

INTRODUCCION A LA MUSICA 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 / DoubleSidebandSuppressed 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.

INTRODUCCION A LA MUSICA 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/ DoubleSideband 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 nonl 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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 vowell 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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
INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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-cuadrticos a


// 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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 ; = (2a ( ( 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: Compresin o
// Compresi n de a m p l i t u d o 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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: Reverberacin o
// R e v e r b e r a c i n o 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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 genrie co

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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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.

INTRODUCCION A LA MUSICA 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] Balzs Bank, Jnos Mrkus, Attila Nagy, and Lszl Sujbert. Signal a a a a o 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] Franois Delalande. Music analysis and reception behaviors: Sommeil c 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 Irarrzaval. Anlisis de seales. McGraw-Hill Interamericana, a a n 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 Krp. An approach to the analysis of electroacoustic muo sic. 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. INTRODUCCION A LA MUSICA 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 Rbel. Neural network modeling of speech and music signals. In o Neural Network Information Processing Systems 9, NIPS 96, Denver, 1996. [30] Axel Rbel. Synthesizing natural sounds using dynamic models of sound o 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. INTRODUCCION A LA MUSICA 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 Vlimki, and Matti Karjalainen. Evaluation of a a 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.

INTRODUCCION A LA MUSICA COMPUTACIONAL

You might also like