Está en la página 1de 75
i Oscar Pablo Di Liscia Generacién y procesamiento de sonido y mtisica a través del programa Csound UNIVERSIDAD NACIONAL DE QU || MES Rector Mario Ermécora Vicerrector Rogue Dabat fade los recursos esenciales en la mésica por para la produccién musical mediante uno de sical y Ciencias de la amiento, sino que smario de los rudi- ‘muestreo de sonido, parémetros basicos de la sefial ica y Psicoacistica y Teorfa Musical. De acuerdo con fentacion de su formacién previa (e.g. ciencias exactas, psicologia, misi- lector debera hacer tal vez un esfuerzo extra para profundizar determi- los temas. La mayoria de las referencias bibliogrficas presentes ticnclen a -omienza desde cero en su. Respecto de la prctica, se ha adoptado el modo més usado por los tegracién de muestro repertorio de recursos productivos: la realimenta- os y técnicas especificas de un entomo de produccién) y evaluacién ible de los resultados. El entorno de produccién seleccionado es el programa Csound (Barry ‘Aun cuando en sentido estricto Csound no puede ser definido como un 9 Coleccitn Miisica y Ciencia Diigida por Oscar Pablo Di Lisca i Lissa, Oscar Pablo CGenerain yprocesamiento de soni de misica» programe Csound. ~1¥ ed. ~ Bernal ~ Universidad No ee Qu 248 pp. x 15cm Ist: 987-558-035. 1. Composisién por eompurnctin— 1. Titulo COD 78134 ISBN: 987-558-095. (Queda hecho el depésito que mara la ley 11723 Indice Referencias bibliogréficas “lenguaje”, el aprendizaje de su uso puede concebitse como una ex a la programacién et ios nivel se trata del nivel mas especializado y consiste en “am- sos de Csound a través de la creacién de nuevas Unidades de co bloques basicos de trabajo del programa), que rea- Tizan nuevas tareas (nuevos métodos de andlisis, sintesis, etcétera). Si bien los ejemplos utilzados fueron originalmente concebidos y proba- dos con la versién de Csound para PC bajo MS Windows (Csound_con V.0.03, realizada por Gabriel Maldonado), deber‘an funcionar sin mayores problemas, con modificaciones muy minimas, en cualquier versién de Csound sincroni- zada o posterior a la versién off Los archivos de sonido y de anilisis, asf como el cédigo de los ejemplos (orquestas y partituras) utilizados, pueden encontrarse en: <. La versiGn 4.19 de Csound tiene cerca de mil trescientas Unidades de Gene- racién. Este libro usa escasamente unas cincuenta de ellas. Aunque la concisién, ‘era necesaria para brindar un panorama general, la seleccign no fue sen Un especial reconocimiento merece el programador y midsico Gabriel Maldonado por sus significativas contribuciones a Csound. YY también el agradecimiento a los misicos y académicos Juan Pampin, Gustavo Basso, al ENS (Ensamble Nacional del Sur) y a su director, Oscar Cetta, Mariano Cura, Emanuel Bonnier, Luis Jure, Ricardo ichard Karpen por muchas sugerencias y contribuciones a CCsound y a otzos entornos similares, que resultaron de invalorable ayuda a la hhora de planificar este Oscar Pablo Di Liscia Buenos Aires, abril de 2003, 10 Capitulo 1 1, GENERALIDADES SOBRE EL PROGRAMA CSOUND Cound es uno de los programas de audio digital més difundidos en todo el mundo. Fue creado inicialmente por Barry Vercoe en el Experimental Music Studio, Media Laboratory, Mir, Cambridge, Massachusetts, USA, pero actual- ‘mente existen muchisimos programadores que siguen amplidindolo, Algunas caracteristicas generales de Csound: + Es Freeware, lo que significa que es gratuito. + Es Open Source, lo que significa que su cédigo fuente (escrito en el len guaje de programacién C, de alli su nombre) es piblico. + Esde libre modificacién, lo que resulta una consecuencia del punto an- terior, dado que quien sepa programar en el lenguaje C puede realizar, a partit del cédigo fuente original, una versin de Csound personalizada,o ligeramen- te diferente. Por supuesto, esto s6lo es permitido si se realiza sin propésitos de comercializacién. ataforma, lo que significa que hay versiones para la gran mayo- coperativos y entornas: Unix, Linux (véase Pl ceual permite que los ejerci on los trabajos de est ealizada para PC bajo Microsoft Windows y su autor es el programad Maldonado, a quien también se le deben notables desat ite de Maldonado, , se es versiones de Csound para Windows, adems de Por otra parte si 2, FUNCIONAMIENTO BASICO De CSOUND En su odalidad mas Cound genera un archi vyés de los datos que el usuario le entrega en su linea de Ghivos de texto lamados orquesta (orchestra) y part mente (véase Figura 1). Entrada Proceso Salida 2.1. Lalinea de comando de Csound La magera més antigua de ejecutar un programa es escribir directamente el nombre de su ejecutable. A veces, el nombre del programa precede a una se- iplejos (como Unix o Linux), a pesar de su aparente tosquedad, la linea -omando constituye un recurso muy poderoso al combinarse con procesos de ajo en lotes y conexiones (pipes). Por el hecho de haber sido desarrollado inicialmente en sistemas Unix, ound es un ejecutable que funciona por linea de comando. La linea de co- indo de Csound puede ser muy compleja (iremos incorporando diferentes mentos poco a poco) pero su expresién més simple serfa: [csounp] [-w] [-o] [salida.wav] [orquesta.ore] [partitura.sco] mos incluido corchetes con la sola intencién de separar los elementos de la distribucién que se inc tye en este libro, esto serd: indica a Csound que a la salida debe generar un archivo con, ‘sound puede generar una gran variedad de formatos de archi- audio, pero generalmente bajo Windows éste es el formato més usual. lo que sigue (“salida.wav”) es el proceso, También se Ipartitura.sco} Es el nombre de un archivo de texto en el que est la “partitura” para Cound. mn archivo de texto con una sintaxis especial. La extensién *.sco no es oria, pero se recomienda. ormato unificado” de orquesta y partitura en un solo archivo, libro debido a que no esté completamente di- 1, Seleccione la siguiente linea de comando y cépiela en el Clipboard (Cul-c): ‘C:\CSOUND\ CSOUNDAV \CSOUNDAV_CON.EXE -W 0 c:\csouND\ cap! \si \\CSOUND \capl \ sim 2. Despliegue el Mer ” en “Inicio” y pegue la do (Crrl-V). Cuando haga click sobre “Aceptar", aparecers Csound pro- cesando. 3. Cuando finalice, cierre la ventana y abra el archivo C:\OUTWAV con algiin editor de audio. Esa es la sefial generada por Csound (una sinusoi- de estacionaria a 440 Hz y amplitud maxima que dura 5 segundos... no ry bonito, pero era lo que querfamos en este ejemplo.). Si esta todo bien, felicitaciones, ha realizado con éxito su primera sesidn con Csoumd. 4, Si aparece algtn error, lo mas probable es que se haya copiado mal la inea de comando, o que los directorioslarchivos que figuran en ella no san los correctos. 2.2. La orquesta de Csound etizadores por software ms poderosos y flexibles que por lo tanto, si se generan con un editor como Microsoft Word, eben guardarse como sélo texto (otro formato agregaré caracteres e instruc~ cciones que serdn considerados erréneos por Csound). Todo lo que eseribamos en este archivo y en la partitura seré revisado por (Cysotmnd de acuerdo con sus normas de sintaxis, r2a6n por la cual debemos tener cuidado con escribir instrucciones que pueda desconocer, porque generaré un. lo que deseemos sin tener que 10 y podemos escribir aqui lo ue se nos bir agut to que se mes antoje definen dos cuestiones muy importantes: teristicas generales de la sefial a generar: frecuencia de mt yy niimero de canales (nchnis). Estos datos se encuentran en lo qué Jina encabezamiento (header) de la orquesta. Un header tfpico seria: 10 (44100 / 4410 = 10), y una cantidad de canales (nchnls) sera monofénica). Ya hablaremos de la frecuencia de control (k) + Uno o més blogques de texto se rrumentos (instr). Estos pue- den considerarse como programas de un sintetizador, que son las unidades que el usuario define para generar sonido. Mucho de nuestro trabajo estara centra- do en c6mo disefiarinstrumentos. La definicién de un instrumento en Csound, comienza con la palabra “inst” seguida del nero de instrument y termina con la palabra “endin”, Nétese que la sintaxis que usa Csound diferencia en- tre mayisculas y minisculas (case sensitive), por lo cual lo correcto es “endin”, yy “ENDIN” o “Endin” no funcionardn. Una definiciGn de instrumento muy sim- pile en una orquesta podria ser: jn de insteumento iciba de instrument trumentos en una orquesta de Csound. No se simplet.ore [HEADER fr = 44100 kr = agro Kemps =10 nchn :DEFINICION DE INSTRUMENTO Jn de instrumento 32767, 440, 1 icin de instram 2.3. La partitura de Csound La partitura de Csound define, de manera anéloga a una partitura tradicional, Jas acciones a tomar con los instrumentos que se definieron en la orquesta. Si bien existen muchas instrucciones para la parcicura, las tres mas importantes son las instrucciones i, fy . Instruccién ‘i: se asemeja mucho a una Ifnea de un secuenciador MIDI. Indica la activacién de un instrumento en un determinado tiempo y por una dduracién determinada, es decir, la creacién de una “nota’. El instrumento de- bic haber sido definido en la orquesta. La instruccisn “@” va seguida de, por lo menos, tres expresiones obligato- rias que pueden o no ir seguidas de otras. A estas expresiones se las denomina “campos p” (fields), y se las referencia con una p,seguida de su nimero de or- den. Salvo en el caso del pl, deben estar separadas por, al menos, un espacio. La siguiente es una tipica instruccién de tipo i: conta comienzo (p2=0) y por 5 do, 10s, puede haber mas de 3 pfields, y su ntimero y sign van a depender del disefio de los rmaneras de “conectae” los instrumentos con una forma de “tocarlos” inada. + 2. La instruccién “f" genera funciones (a través de rutinas de software de- jinadas GEN) que se usan para determinadas tareas y se almacenan en RAM. ‘muchas maneras de generar estas funciones, y su compl saul de Csoun tiemen pfields. Los cuatro primeros son ‘ngimero que se le dar 5) en el que se genera, el p3 indica la longicud de la tabla dard los valores de la funcién en RAM, y el p# indica el nimero de la 12 GEN (de generaci6n) que se va a usar. Los dems pfields dependen del ti- le rutina GEN que se use. Salvo excepciones que veremos luego, el p | de tabla) debe ser una potencia de 2 0 una potencia de 2 més ;plo 2048 0 2049). Las funciones permanecen ubicadas en RAM hasta que 1voea otra con su mismo niimero (pl), o hasta que Csound termina el pro- Un ejemplo de instruceisn f pt piesa ps ass, re ross 100 1 crea la funcién 1 2048), con el GEN en tiempo 0 (p2=0), con 2048 valores [que se le pasa un valor de 1. Conereca- lo de una funcién seno en una tabla de valores (véase GENO). Podré el lector imaginar que existen muchas ru- NN para generar las mis diversas (y complejas) funciones. instrucci6n “e” es muy senci dacio que si Csound no encuentra ms instruccio- roceso igual. wuaci6n, un ejemplo de partitura muy simple, con comentarios: NSTRUCCION INSTRUCCION “ Ejercicio 2 ‘Con un editor de texto simple (por ejemplo el ms notepad), abra los ar chivos \esound\eap!\simplel.ore y \esound ap! \simplel sco. Lea y repase todo lo que figura a 3. SHELLS PARA USAR CSOUND La vida puede ser mucho ms simple..I!! Para facilitar el uso de Csound, mu- cchos programadores han realizado programas que se denominan Shells (“capa- y.que “esconden” la Iinea de comando y ayudan con la gestidn de ae- chivos. Conviene, sin embargo, tener presente que la linea de comando existe siempre. Entre los Shells més conocidos se encuentran Csounder (para Win- dows) y Cecilia (para Mac 0S y Linux), to y correr su linea de comando, En la Figura 2 se observa una imagen de las dos pantallas de UNQCSSH, para designar cada uno de sus objetos de panta- tén de la derecha permice selec- el segundo lo edita con el editor de texto que se haya seleccionado en 2) Los objetos de esta an con la gestién de los archivos de partitura (*.sco) de Csound. El primer botén de la derecha permite selec- 18 =e Met Bes ell para Csound UNQcssit cara 2. mnar un archivo de partitura, el segundo lo edita con el editor de texto que 8 de esta inca se relacionsn con la gestién de los archivos de decir, el archivo sobre el que Csound escri cde ayuda de Csound (Csound hl sctorio que UNQCSSH. 5) Peemite seleccionar un editor de texto para editar los archivos ".sco y que debe estar ins- 6) Permite seleccionar un editor de audio para editar el archivo de salida 7) Permite seleccionar el ejecutable de Csound que se utilizaré para procesar. 8) Hace aparecer el cuadro de didlogo que esta abajo, y que produce la ejecucién de la linea de comando. 9) Para ver los eréditos. 10) Esta caja de texto contiene la linea de comando estindar que se eje- in esta otra caja de texto se pueden agregar otros argumentos que mente quieran usarse. Estos argumentos son conservados y agregados a la linea de comando. Para una explicacién de los argumentos, véase en Csound.hlp el item “The Csound Command Line”. Ahora realizaremos nuevamente el ejercicio 1, pero usando UNQCSSH: 1. Vaya a la carpeta \csound shell 2. Haga doble click en el icono de Ungcssi, leccione: \csound \capl \simplel.ore leccione \csound \capl \simplel sco Salida” seleccione \out.wav 6.Con el botén *Csound Exe” seleecione: IND\CSOUNDAV \CSOUNDAV_CON.EXE scione el ejecutable de su editor de ‘editor Texto” seleccione el ejecutable de su e (por ejemplo Notepad, WondPad, eteétera ‘ura y generalidades de Csound (habré, por supuesto, muchos mis datos...) 13. Cierre UNQCSSH, y luego vuelva a abrirlo, Debe aparecer correcta ‘mente configurado, ya no habrd necesidad de seleccionar archi gue dda (a menos que se desee cambiat ceseribe un archivo (ungessh.ini en el directorio \Windows) pa tener esos datos al final de cada sesién, A SALIDA DE PANTALLA DE CSOUND odo salié bien en la sesién anterior, Csound debe haber mostrado lo si- en su pantalla: ion to cour waY (way) servir para averiguar la razén de alguna les sobre el proceso. A continuacién se cor anterior. \ineas Csound indica que encontr6 y va a usar la partitura y la or- crumento (el instrumento 1). corchaame: c:esouxolenrl ‘sual orc ng score ‘oreh compiler: 161 tines read En lo que sigue Csound indica la versin del ejecutable. Luego Csound indica que escribe usando bloques de ochocientas muestras. Pa- ra hacer su lectura-escritura de archivos mis eficiente, Csoumd no escribe muestra por muestra, sino en bloques (buffers). Esto se puede modificar, pero no tiene gran importancia si no estamos usando Csound en tiempo teal. Tam- bién se indica que se estd escribiendo sobre el archivo de salida que le entre sgamos en la Ifnea de comando (por suert Aguf se indica que se ha ubicado en memoria el instrumento 1, la tabla fl, y que se ha iniciado una nota, cuya amplitud m 32767. En esta nota no hay muestras fuera de rango. 8B 0,000 . 5.000 T 5,000 TT 5.000 m 2767.0 167, y no hay muestras El momento en el que relacién de 10 2 ‘end of score, overall amps: 32767.0 samples out of range: 0 0 errors in performance peak CH 1: 32767.000000 (written: 0.999969) at 76149 276 1600-byte soundblks of shorts written to c:\our.way (WAV) ‘Total processing time: 0,500 seconds ‘Algunas observaciones sobre la amplitud de la salida. Csound informé la am- plicud méxima en valores “erudos” (raw). Dado que en este caso esté escri- 10s de 16 bits con signo (denominados corrientemen- ximo y minimo de la seftal son: 230 de que hubiera desbordes de amplitud, Csound informaria cusntas ‘muestra fuera de rango existen. Es bueno encontrar un “overall samples out of range: 0” 5. MAS SOBRE LAS ORQUESTAS Y LAS PARTITURAS EN CSOUND lizar la tarea de sintesis de audio digital, Csound se vale de los siguien- ementos: + Simbolos reservados + Constantes + Variables + Operadores de comparacién + Operadores de asignacién + Operadores aritméticos y l6gicos + Funciones| + Conversores de valores + Unidades de Generacién Los comentaremos brevemente: * Los simbolos reservados son expresiones que tienen un significado fijo sable) para Csound. Son ejemplos de simbolos reservados: st, kr, endin, toétera, + Las constantes pueden ser numéricas o de caracteres. Ejemplo de cons 415. Ejemplo de constante de caracteres: “esto es un ejem- (notese que las constantes de caracteres deben ir SIEMPRE entre comillas) + Las variables son valores que se guardan en celdas de memoria y se de- signan con un nombre. Su valor (0 contenido) puede, justamente, vatiar s0- bre la marcha del proceso. El valor puede ser eambiado por una asignacién, 0 por el uso de una unidad de generacisn. Las variables de Csound se clasifican cde dos maneras: por su forma de acuelizacién y pot su visibilidad. Por su forma de actualizacién: se distinguen tres tipos de variables: cializacién), k (control) y a (audio). Todas se definen anteponiéndoles tracorrespondiente (i, koa) y un nombre cleceién (que NO debe ser un si bolo reservado). 1) Las variables a pueden actu: se al intervalo de muestreo (1s ase generan por cada mu tra de tipo k. Esta es una forma de “optimizar” el proceso, dado qi rio hace falta que una sefial sea definia con pr fen una envolvent eso se vera mas adelane los de variables de tipo a: asig, amisenal, aqualquiera los de variables de tipo k: ken, ksg, kran lloquesea. Por su wisibildad: ef concepto de “visibilidad’ cin y bésicamente define que a dererminados. scope) proviene de la programa ratiables locales sélo son visibles (se puede cambiar o consultar su valor) dentro del instrumento al que pertenecen. Esto quiere decir que defini- dos los dos instrumentos de la siguiente forma: ipiea.141s9 ste 2 19orad= tpi / 2. ” es local, sélo es ude se cred) y en el instrumento 2 no existe. Las variables globales son visibles er todos los instrumentos y sirven para transmitir datos desde un instrumento a otro. Toda vatiable salvo que su nombre Ileve una “g” antepuesta. La forma correcta en mmplo anterior seria: Worad= gipl / 2. bes globales pueden ser definidas fuera de un instrumento, y esto se la instrucei6n init: nipt init 3.14159 se crea la variable global gipi’, y se le asigna el valor de 3.14159 sacign de variables en Csound: g-nombre sk-nombre Local a-nombre sa-nombee Ejercicio 4 Defina silos siguientes sfmbolos son constantes o variables y, en el ‘mo caso, si son globales o locales y si son de ti abalan sgkenvelope “cifesound|wavesivox.wav"” 41421 giromsize ma anval + Los operadores de comparacién sirven para comparar dos valores sobre la base de una condicién, el resultado de la comparacién se retorna en términos de VERDADERO 0 FALSO, y se puede usar para tomar alguna decisién (véase el punto siguiente). Son: == igual que > mayor que < menor que >= mayor o igual que <= menor o igual que + Los operadores de asignacién pueden ser fijas 0 condicionales. Los operadores fijos son el signo “=", o la instruccién init. Bjemplos de asignacisn fija: Spt = 3.14159. i9orad = tpt 2 gipt init (4 © taniny( La asignacién condicional elie entre dos valores oexpresiones que se asignan. de acuerdo con la verdad o falsedad de una condicién. Ejemplo: cs siempre de derecha a izquierda, es decir, se carga el var expresién a la derecha del "=" en el de la izquierda. + Operadores aritméticas ligicos: + Las funciones permiten realizar muchas operaciones mateméticas. En su 1 general, coman un argumento entre paréntesis y retoman un valor mi- ‘como resultado. Por ejemplo: retorna el seno det éngulo x (x en radianes). Bjemple de wso: de tareas de proce. ltrs, Reverberado- 27 iy tes, Generadores de Envolvente, Generadores de funciones pseucdo-aleatorias, Mientras estoy escribiendo este trabajo, seguramente hay programade- UG nueva a Csound. Esto es posible porque Csound es re modificacién. I, que se van guardando en una o més (de acuerdo con el caso) locales o globales. Lao las entradas de las UG constituyen los datos que necesitan para hacer su tarea, y pueden ser constantes, u otras variables provenientes de otras UOs 0 asignaciones. Tomemos como ejemplo la UG oscili que usamos en nuestra primera oF- questa (simplel.orc). oscil es, basicamente, un oscilador digital que funciona Jeyendo una funcién almacenada en una tabla de manera ciclica y multiplica su salida por un escalar de amplitud. La tabla con la funcién a leer por oscili se genera en la partitura, usando las rutinas GEN. El siguiente esquema muestra lo antedicho: variables de salida ~&-~--~ nombre de la unidad ~<----— argumentos de entrada asig oscil amp, xeps, itable “También se puede observargréficamente tal esquem: xamp xeps itab SS asig Figura 3. Represencacién grfica del esquema sobre la UC oscil 28 a se puede entender que en nuestra orguesta sip oseilt 32767, 640, 1 fe hacer otra cosa que tocar una nota siempre con la y forma de onda. Veremos cémo lo mejoramos en la siguiente seccién, (0, CONEXION DE LA ORQUESTA Y LA PARTITURA A TRAVES DE LOS PFIELDS ‘generan sefiales digitales de audio. Cuando se trabaja con sefiales de 1n Csound, es importante: + El ipo de seal (i, k o a), dado que hay UGs que permiten el ingreso de determinado tipo de sefial + Elvango de la sefal. Probablemente no nos interesa saber uno a uno los wes de una seal, pero sf cul es su rango, es decir, su valor maximo y su 1 minimo. Veremas luego que esto es de gran utilidad. También, para fun- ar eorrectamente determinadas (Xs exigen que las sefales que se les in- resen estén dentro de determinado rango. + Las wnidades en las que se interpreta la seal. Por ejemplo, la unidad osci- eta su entrada de frecuencia en cps (ciclos por segundo, o Hz), 0 al- unidad que realiza retardos puede requerir el tiempo de retardo en segun- , milisegundos, o en muestras. Alguna confusién en tomo de este punto le provocar errores o funcionamiento incorrecto de la UG. leer cuidadosamente la documenta manual de Csound. Tomemos como enel rango del (no podemos re- El argumento que indica el ndimero de tabla debe ‘maximo niimero de tablas permitido (200) y 29 ferimos a la tabla N? .00356, por ejemplo), pos algunas excepciones). El argumento que i enel rango de—s/2.ase/2(sx/2.es inte tendrfa componentes “alias”. En i, su rango depende de eémo vaya salida y estamos trabajando con una resolucién de 16 bits, entonces tendria que estar en el rango de ~32768 a 32767. Pero no siempre usaremos la sefial ladores para generar audio de salida, a veces nos puede convenir que la salida esté en el rango de (-1 dependiendo del caso. cen Tas que los argumentos de tabla dar que el argumento de frecuencia ser interpretado como cps (ciclos por segundo, o Hert) Es necesario recordar que las anteriores consideraciones se refierens6lo ala Us ascii ‘Consideremos zhora la orquesta y la parttura llamada stork ysimpe2 co Imple2-ore sHEADER :DEFINICION DE INSTRUMENTO Instr I sinicio de la definicién de instrumento 30 INSTRUCCIONES “I" (crear dos tablas) moo 2048 100 1 Habla N*l (sinusoide) me 2oas 100 se earssseers 2 abla N'2 (diente de sierra con los primeros 5 arménicos) INSTRUCCIONES “i (disparar dos notas con el instrumento 1) Pl pa es pare esters 8 5 1 440 4 yesta nota seré igual a ejemplo anterior tiene la mitad de amplited, esté una octava abajo, y tiene distin ma de onda p2 pS ps pS 5 5 +5 22002 esta nota seré igual a lo a nuestro instrumento la capacidad de dispa- i cud, frecuencia y forma de onda. Y 10s iamp=p4 en la partitura, el valor de iamp debe estar en cuarto lugar, y -esivamente. La asignacién: lamp = p4 * 32767 rye un pequefio "t la amplitud en rango “normaliza- implemente, r tad de la amplitud maxima es mas recordar que 16384 es la mitad de 32768 (ni qué hablar del ter- ei Por eso hacemos que el usuario entre la amplitud en el p4 en el ran- go de Oa 1, y luego lo escalamos en la orquesta, al an lo por 32767. En la particura se disparan dos notas diferentes. Ya hemos comentado las cuestiones de amplitud y frecuencia. Sélo nos falta analizar el tema de la ta- bla. La tabla N° 1 es igual al ejemplo anterior. Vearos la N® 2: ro aoa 104 5 333 itabla N2 (diente de sierra con is primeres § arménl EL.GaN10 (véase GENIO en el manual de Csound) crea una tabla por suma de sinusoides en relacién arménica, con las amplitudes respectivas de cada pield ‘que se le entrega. Los pfields subrayados en el ejemplo anterior indican: Frecuencia Arménico JAnménico 2 JArménico 3 Arménico 4 JArménico 5 fundamental") Con el GeN10 no hay manera de cambiar la frecuencia de los arménicos; ella dependeré del nuimero de orden. Puede verse N° 2es una onda “diente de sierra” de banda ada (s6lo tiene cinco com- jemplo més, obsérvese la declaracién siguiente, en la que se realiza una forma de onda cuadrada de banda limitada (s6lo los arménicos impares estardn presentes, dado que los pares tienen amplitud ceto...): ro 2oss 104 ° 3330 2 0.1428 0 ma 32 ino, nétese que la segunda nota que se dispara en simple2.sco comienza 1 beat 5 (5 segundos més tarde, es decir, justo cuanda la primera termina) Ejercicio 5 Seleccione la orquesta \csound\capl \simple2.ore y la partitura \csound \eapI \simple2.sco y procésela con UNQCSSH ‘Abra el archivo de salida resultante con un editor de audio y escu- che el resultado (ya sabemos que no es muy lindo... por ahora). Abr ira con un editor de texto y agregue y/o cambie no- con diferentes formas de onda y dispare mas notas uséndolas. Repita los puntos 3 y 4 varias veces. 7. CONEXION DE UGS abré notado que los sonidos que resultan tienen clicks al comienzo y al fi- amente normal, dado que la sefal aleanza am- ima (en el comienzo Hay muchas maneras de realizar una envolvente con Csound y, ademés, envolvente no siempre debe ser aplicada a la amplicud. Pero, en pri ina UG muy sencilla para realizar envolventes es linseg Ke Hinseg ivy Ht, 192, H2yeccectv seg genera (por interpolacién lineal) los valores intermedios entre una se- le valores (iv) que se le entregan, con la duracién (en segundos) de cada cransicién (it). Por ejemplo, la instruccién: kemy Himseg 0, .25, 1, -5, 1, .25, 0 genera una envolvente de forma “trapezoidal”, la cual se puede ver en la Figu- ra 4. Se define asi una envolvente de tres segmentos, de os cuales el primero va de 0 a 1 (eje Y) en .25 de segundo (eje X), se mantiene en 1 por .5 de se- gundo, y cae a 0 en .25 de segundo. La sefial generada se guarda en la varia- bile de control keav (podrfamos haber usado una variable de audio, pero en es- te caso no vale la pena). e 2 e tiempo Figura 4. Envolvente trapezoidal generada con a 00 linseg Examinemos ahora simple3.ore y simple3.sco: tamp = pd * 32767 samptiue senvolvente de ampl 34 stiones deben ser comentadas en esta orquesta. Primero, la definici segmentos temporales de la envolvente: ransiciones en segundos, debemos ase- las las transiciones sea igual a la duracién de la 13). Esto es un poco tedioso y no siempre préctico. En licacién de tiempo pro- no en segundos. Si pensamos que 1 equivale a la duracién total de <écimo del valor del p3). Es sencllo saber que la sum de los segmen lebe pasar de 1. La duracién del sustain se calcula autométicamente al le a la duracién total de la nota la duracién del ataque y la extincisn: fous = p3- Chat ¢ iret) ndo lugar, la forma de conexién de las UGs. Esto es muy sencillo yen nd se usa constantemente. En este caso, ° variable es la que se “co- on la entrada de amplitud del oscilador que realiza a seftal de audio. ‘manera, hacemos que la amplitud de la sefal generada por os nel tempo de acuerdo con Ia envolvente de linseg. ‘Csound, las UGs generan sefales de salida, Si una sefal de salida es del tipo y ngo adecuado, puede ingresarse como pardmetro de entrada en otra UG. 35 gréficamente en la Figura 5: 0 at iamp isus iamp iret 0 Figura 5. Grifico de conexisn de vcs Lo tinico nuevo en la partitura es que para cada nota tenemos que agregar el 7 (duracién del ataque de manera proporcional, siendo 1 la duracién total de la nota) y el p8 (duracién de la extineién, ‘dem anterior). Debemos recordar que el sustain se calcula autométicamente a partir de lo que queda al restarle el atague y la INSTRUCCIONES “1 p4pS ppp moos s Ors saa0e2] Dor o.9s el ejercicio anterior, pero usando la orquesta de \esound\capl \ le3.ore y la parcitura\csound\capl \simple3.sco. SOBRE OSCILADORES Y TABLAS imos en el Capitulo 1, un oscilador digital es una UG que produce una vyendo ciclicamente una funcién almacenada en una tabla. Pongamos le queremos generar una sefial sinusoidal de frecuencia f y amplitud tla que producied esto es: =A seno(2 * PI *£* (n/t) + ph) indice entero que indica el nimero de muestra el valor de la n~ésima muestra digital de salida mn escalar de amplitud. frecuencia, en He. sees la frecuencia de mucstreo, en He pes un éinguto inical de fase, en radianes. esta tarea, los ingenieros de audio disefiaron un procedimiento oscilador de acceso a tablas (table lookup oscilaor), En vez de re l ge- tuna tabla y usar un oscilador con Csound. Es un procedimiento muy ico y eficiente, porque permite generar muchas seiales con un solo ciclo ia funcién, Vimos que, por ejemplo, en Csound una tabla con la funcidn seno se ge- nena usando ef GENIO: pip? p30 pps te tel ey ronan La instruccisn anterior produciré una tabla de 16 valores con un perfodo com- to de la funcidn seno. El “10” del p4 indica que usamos el GEN’ la funcién se guarda en los valores “crudos” que resulten. En el ejemplo ante- tor esto no producirfa ningtin cambio, pero en otros casos sf. Por ejemplo, la siguiente instruceidn: Pee eee poten em tetes a ee 16-10 1000 produciré la misma tabla con la funcién seno, pero los valores estar en el rango de 1000 a ~1000. De acuerdo con el uso que le demos a una tabla, puede convenimos, 0 no, mantener valores normalizados. La Figura 1 muestra un esquema de los valores en la tabla. Los puntos ‘muestran los valores, y ls niimertosclebajo de ellos indican el nimero de mmues- tra. La linea negra silo sirve para marcar la siluera de la funcién seno, pero no existe en la sefial (existira ala sada del conversos, gracias al del DAC...). Por supuesto, una tabla de 16 valores no nos servi sélo lo hacemos como ejemplo. Figura 1, Tabla de 16 valores con la ncn seo Vinculemos ahora la tabla con el oscilador. Si una seal digital es periédica, su frecuencia fundamental, fu, se determina de acuerdo con la siguiente fér- mul fu =sr/mp donde: st esa frecuencia de muestreo. ‘mp es la cantidad de muestras por period de la sefal digital. -amente un perioxo de la funcién almacena- ras por periodo de la sefial resul- en este caso). De manera tal que sultante de un oscilador tiene una frecuencia fundamental de: = (sr/ mp) #1 sel incremento. vver que con un incremento de I el oscilador leera los valores de la ta- » a uno, es decir, obtendrs el valor de la posicidn 1, luego el valor de la in 2, luego el valor de la posici6n 3, y asf sucesivamente hasta el luego recomenzar. Ahora podemos advertir que el ejemplo anterior: (44100 / 16) #1 = 2756.25 He " incremento igual a 1. Qué pasa cuando el incremento es igual a 2... ELoseilador obtendea los valores en la posicién 1, 3, 5, 7 y asf sucesiva- leeré la tabla al doble de v (44100 / 16) *2 = 5512.5 He Esto se ilustea en la Figura 2. 41 Fgura 2, Resultado de un incremento de 2 en la velocidad de lectura del osclador El grfico superior es la seial resultante de la Lectura de la tabla con un inere- ‘mento igual a 1, el grafico inferior ‘ma tabla con un ineremento igual tiene un perfodo igual a la mitad de la superior (es decir, el doble de la frecuen- cia fundamental. Pero el incremento puede no ser un niimero entero. Si lo pensamos como ‘ejemplo anterior obtenemos una sefial cuya frecuencia funda- mental estd wna octava arriba de la que obtendlrfamos con un incremento igual a 1. (Qué ineremen famos que usar para obtener una sefial cuya fre- cuencia fundamental estuviera S semitonos arriba 0 abajo..? Esto se ve en la siguiente ecuacién: donde: S es la cantidad de semitonos a subir o bajar. Si queremos, por ejemplo, obtener un incremento que nos dé como resultado ‘una sefial cuya frecuencia fundamental esté una tercera mayor (cuatro semi- tonos) arriba: = 1.26 (aprox.) a lores que estdn en las posiciones 1, 2.26, 3.52, { estéel problema: la tabla es un vector con valores a los cede a través de un indice de entrada, y este indice es entero. Un vec- cde comparar con un mueble con una serie de cajones, en el que ca- podemos obtener el valor del cajén 1, el valor del Pero no existe un cajén 2.26... existe el cajén 2 y n el medio”... cémo se hace..? se lo calcula a partir de los datos que se tie- as maneras de obtenerlo son tres, en este caso: + Pruncamiento + Truncamiento: consiste, simplemente, en ignorar el valor decimal del in- ices de acceso 1, 2.26 , 3.52, 4.78, , Gn. etc. Por supuesto es de imagi- Redondeo: consiste en aproximar el valor decimal :a manera, nuestros indices de acceso 1, 2.26 dlstorsién es bastante buena. Sigue una explicacién del procedimiento rpolacién lineal. valence a 2.26, la explicacién gréfica de la interpolacién lineal se muestra ra 8 s alae posiciones 1 Figura 3. Explicacion gafcn de la interpolackin Esto se demuestra en la ecuacién que sigue: ie v1 + 2— vi) + (int significa “la parte entera Ahora también es posible comprender a qué nos referfamos en el Capitulo t ‘cuando explicabamos que la UG linseg “..] genera ( lacion lineal) 'os valores intermedios entre una serie arbitraria de valores [..] que se le en tregan, c: Se puede de- ducir muy fécilmente que un tamatio de tabla mis grande minimiza los efec- tos de distorsién de la interpolacién lineal. En Moore (1990, p. 166) se encuentra un euado comparativo de la SQNR (Signal 0 Quantization Noise Ra- tio) para los distintos procedimientos (truncamiento, redondeo ¢ interpola- cign lineal) y tamafos de tabla Para sefiales de audio digital, tro procedimiento usado es la intrpolacién ceibica, Este tipo de interpolacién produce un grado minimo de distorsién. Sin embargo, la interpolacién lineal con un buen tamatio de tabla (16384 muestras, ‘o mis) es pricticamente equivalente. El procedimiento no seri explicado aq Revisaremos nuevamente la UG oseili yagregaremos dos nuev: ‘oscil y oscil3. Las tres son osciladores, evan el mismo tipo y n sgumentos y la diferencia enere una y otra es que lap linealmente (menos distorsin, funciona més lento terpola (mas distorsin, funciona més répido) Polacién cibica (que tiene menos dis. funciona con mayor le que las dos anteriores). La velocidad de los procesadores actuales hace diferencia de velocidad de proceso no sea significativa (sobre todo e ‘mentos muy simples) si no se trabaja en tiempo real. Ahora transcribim: informacién de la UG -omo se encuentra en el manual de 44 en el ejemplo), esto indica que es un argument fica que el usuario puede © no indicarlo. Sino se indica, vie~ valor por defect ue debe estar documentado. Por ejemplo, ura de la tabla, en un (0 es 0 (la tabla se lee desde el comienzo). Si, por ejemplo, indicamos un le 0.25 para iphs, la tabla se comenzaré a leer desde un cuarto de su lat- en adelante (en la tabla de la Figura 1, comenzaria por el valor 5). En una la con la funcidn seno, este valor producira una funcién coseno, que pue- lad cuando se usan sefiles de control (lo comprobaremos, adelante). Finalmente, destacaremos el hecho de que oscil y oscili toman su valor frecuencia en Hertz, y obtienen internamente el incremento correspon- nice al despejar i en la ecuacisn: fu = (se/ mp) #1 la manera siguiente: i= emp sr) * fu 5 2. MODULACIGN EN AMPLITUD 2.1. Consideraciones generales La amplitud de una sefial actistiea en un momento dado es mé 1a de onda es aly, hasta cierto punto, es la seftal. Esto es ast por- que la forma de onda de una sefial acistica no es otra cosa que un grafico de in de su amplicud en el tiempo. temporal en el que ocurren estas eval Hasta dliscingamos ipos de categorfas, cada una ligada con un campo temporal diferente: aproxima- 20 Hz) hasta I/LHz (donde LHz es el La evolucién en amplitud no se relaciona con nido, sino con su espectio. A esto se alude en la prictica musical mo timbre, + Cualiad de superficie: en disefios de amplitud cuya duraci va en la Figura 4, 46 tres evoluciones de sta imagen siguente) icard los valores de la tabla que esté usando el oscilador. > ese argumento también puede ser una sefial generada por otra unidad en el caso de linseg), es decir, una funcién que cambia en el + La cualidad de superficie de la seal resultante. + La cualidad especcral de la sefial resultante. 47 + Envolventes En verde usar una unidad linseg para generar la envolvente de amy remos un oscilador. La forma de onda de la tabla que lea el osci “silueta” de la envolvente de amplitud. Pongamos por caso que usamos el “s- gundo cuarto” de una Figura 5. Cuando se controla la amplitud de una seftal de audio con la seal generada, su “envolvente de amplitud” adquirré esa silueta. Que frecuencia debers te- la envolvente para “encajar” exactamente en el tiempo de la nota! Como la frecuencia es la inversa del pertodo, y el per‘odo de la frecuencia que necesitamnos es igual a cuatro veces el p3 (la duracién de la not), ta asignacién: ifenv= 1 / (p3%4) 0, lo que es equivalente: ifenv= 25/93 cumple la funcién de calcular en Hertz la frecuencia del oscilador que haré la envolvente sin que tengamos que preocuparnos por la duracién de la nota. A la ves, también ingresamos (a través del p9) la fase oscilador que hard la envolvente. Asi poxiemos comensar a eet lata into que sea apropiado en cada nota y, al usar diferentes commiensos, podemos obtener dife- rentes envolventes. 48 (Cus es la ventaja de usar un oscilador, en ver de una uni ar una envolvente? y, al menos, dos. Una es la eficiencia. Linseg genera los valores para la jor lee una tabla de valores y los in- jo un ntimero limitado de envol e generar tablas y guardarlas en memoria, en ver de generar la envol- cad no La segura ventaja es que, como veemoe ms adelante procedimiento se puede usar para realizar mémolo y modulacién en anillo, ue la orquesta correspondiente: revencia del orcladar que hace Ia singresamos el punto de lecture de fat angie ees) ny ifeny—iphany Ha 7 1 44002 1 vata e 3 49 dor iamp iphewy s o oats as |-envsco" (en la car- nombee diferente y expe- rimente con dist os de tabla diferentes envolventes dindimicas Los GEN 05, 06 y 07 (véase Manual de Csound) prodlucen tablas con en- volventes a través de segmentos lineales, exponenciales y spline. Véase ‘c6mo usarios para generar tablas con envolventes. 2.2, Teémolo En la préctica musical, se denomina trémolo a una serie de fluctuaciones pe- riédicas 0 semi-periédicas en amplitud de una sefial actstica. Este efecto pue- de producirse usando dos sefiales, denominadas portadora y moduladora,respec- tivamente. La portadora es la seftal de audio que determina el espectro de la sefal, y la moduladora es una sefial de control que determina tres caracteris ticas del trémolo: Caracteristica| Pardmetro de la moduladora a controlar Velocidad Frecuencia de la moduladora Profundided ‘Amplitud de la modul Silueta Forma de onda de la modulacora Si usamos la misma orquesta y la rémolo y operar sobre la velocidad y 50 recordemos que el p8 (ifenv) es el inverso de la frecuencia del sna de la “profundidad” del trémolo es un poco mas complicado. En ura 6 vemos dos sefiales con modiulacién en amplitud. En la primera de ls modulacién es més profunda que en la segunda. ‘ales producidas por modulacién en amplicud de la misma poradora con dad en la moduladora inet este comportamiento, no nos hasta simplemente con cambiar la dela moduladora. i reducimos o aumentamos la amplitud de la conseguiremos, al m por la portadora, que la modulacién cofunda”, pero también la amplicud maxima de la seal resultante La solucin surge a partir de pensar que, en realidad, no mul rtadora y la moduladora, sino que usamos una funcién modu- SL ventana rectangular la onda de la moduladora (escalada por k lora (escalada por la profundidad ‘que deseamos), y de esta manera obtenemos la profundidad que deseamos sin * aoa a amplitud méxima de la sefial resultante, Esto se muestra en la Figu- ‘Figura 7. Obeencién de una fancién ‘moduladora a la funcién rectangular ‘movilaiora para AM a partir dela resta de la onda ‘Veamos eémo obrenemos esto con Csound. Kempe nehnis = inser famp = pd + 32768 sampti ocedimiento que usamos aquf es: generar la sefial mc avés de un oscilador. Esta sefal esté en el rango de ampl ‘ofundidad” de la modulacién normalizada, de 0 a1). Pero tiene valores po- 8 y negativos, por lo tanto, lo primero que hacemos es pasarla a valores sumamos su valor de rango maximo y la dividimos por amos por 0.5, que es lo mismo). Esto ocurre en esta amsig = ((amsig + iamdep) © -5) sls tansformamos a positiva ‘Algo que puede llamar la atencién es el uso del valor de amsig a la izquierda ya laderecha de la asignacién. Esto es perfectamente normal y posible, y equi- vale a decir “el nuevo valor de amsig es igual a su valor anterior sumado al de iam- dep y mutipicado por 0.5". (Otra cosa a actarar es la variable iscalfac. Como nuestra funciGn rectan- rrular debe estar en el rango de amplitud méxima normalizada (0 a 1) y le va- sumar otra seial de rango O a iamdep, debemos obtener el valor de la ferencia entre 1 y iamdep, para no superar el valor de 1. Hacemos esto con: iscalface I~ lamdep ‘Como ejemplo, supongamos que el valor de iamdep es de 0.25, ta funcién rec ar (iscalfac) serd igual a 0.75 (1~ 0.25). Ast podremos luego sumarle amsig en el rango de 0 a 0.25 sin pasar del valor de 1: Finalmente, multiplicamos la sefial moduladora por la entrada de amplitud maxima del oscilador de la portadora. Ahi es donde realizamos la modulacién. ausig oscil amsig * Lamp, ifree, Ita 53 2eas 100 1 5 Baste set ata profundidad de trémoto Famp free jtaud —iaméep Jamtrec iamtab 1 44002 1 5 1 amp free laméep jamtree iamab 1 4402 soos 1 lamp free itaud — iaméep iamfrec iamtab 1 4402 28s 1 Kjerciciog Tome la orquesta “trémolo.orc” y la partitura “tremolo.sco” (en la earpe- ta \esound\cap2\), cépielas con cualquier nombre distinto y experi- mente sobre trémolo disparando notas distintas y/o declarando y usando dlistintas tablas y/o usando diferentes profundidades de modulacién, 2.3. Modulacisn en anillo Cuando se realiza el procedimiento de Modulacién en Amplitad, pero usan- do una moduladora en rango de audio, se lo denomina cominmente modia- in en anillo, Esta expresién proviene de la forma del circuito electrénico en- ccargado para esa tarea en los antiguos dispositives controlados por voltaje, y no tiene nada que ver con el procedimiento en sf mismo. /papersfaudig-re2.hem>, Una explicacién sencilla que usamos los misicos es que si tenemos una sefial con un solo componente de frecuencia f1, y la multiplicamos por otra con un solo componente de frecuencia £2, el resultado es otra sefial que tiene dos componentes y cuya frecuencia es: 54 a-2 +2 Podemos comprobar que esto funciona perfectamente también para modula doras en baja frecuencia (es siempre modulacién en amplitud). Por ejemplo, tomemas el caso en que tengamos: fl = 440 He 2=05 He La resultante tendra dos componentes a iédica de amplitud (tréme tado de sumar dos seftales sinusoida- He respectivamente. Lo que obtenemos es la frecuencia promedio (440 Hz) con un batido a la velocidad de la diferencia entre las dos (440.5 ~ 439.5 = 1), cosa que concuerda con nuestros edleulos des- de el punto de vista ico. f= 440 He {2 = 100 He la resultante tendré dos componentes a: (440 - 100) = 340 Hz (440 + 100) = 540 Hz En esta seftal ya no escucharemos un cambio en su cualidad de superficie, si no en su espectro (ya no ser una sinusoide). {Qué ocurte si modulamos una seftal que es una “diente de sierra” con otra que es una sinusoide? La diente de sierra tiene componentes en relacién arménica, cada uno de ellos con una amplitud que es igual al inverso de su né- mero de orden. Por lo tanto, la sefial resultance tended componentes iguales a: 55 fi, 2 donde’al, a2...an indican el niimero de arménico correspondiente, y n es fa cantidad de arménicos de la onda portadora. Es facil advertir que este procedimiento puede dar como resultado com- ponentes més altos que st/2 (frecuencia de Nyquist); por lo canto, la presen- cia de componentes alias en la sefial resultante. Por esto, en las aplicaciones les deben usarse ondas de “banda limitada” y caleularse cuidadosamente Jas frecuencias fundamentales involucradas. Para realizar esto con Csound podemos usar la misma orquesta anterior, sélo que los rangos que utilizaremos en la partitura sern diferentes. Por ejem- plo, un disparo de nota seria: stat dur jamp free Mies 1 1 440 Notese que la onda dienve de sierra que estamos modulando tes a 440, 880, 1320, 1760 y 2200 Hz. Al modularla en amp nusoide a 100 Hz, obtendremos: ne componen- 440 + 100 = 540 440 - 100 = 340 880 + 100 = 980 880 - 100 = 780 1320 + 100 = 1420 1320 - 100 = 1220 1760 + 100 = 1860 1760 = 100 = 1660 2200 + 100 = 2300 2200 - 100 = 2100 56 Ejercicio 5 Tame la orquesta “tremolo.ore" y la par ta \esound \eap2\), copielas con cualqui mente sobre Modulaci6n en Anillo disparando notas. rando y usando distintas tablas, Use un analizador de espectro para visualizar los cambios espectrales. 1 que se trabaje sobre envolvente y prucbelos realizando las partituras corres- rmolo y modulacién en anil pondientes. acién en estéreo por panorimico de intensidad 2.4. Espac ‘Trataremos, finalmente, otra aplicacién del control de amplitud: la espaciali- ‘Uno de los métodos més simples de control para ubicacién angular del so- sido por medio de parlantes consiste en el escalamiento de la energia emitida por éstos. El procedimiento més comtinmente involucrado es muy conocido, Y se denomina panorémico de intensidad (intensity panning) (véase Moore, 1990, iar la fuente de un sonido localizada en cualquier éngulo usan- snsidad, la energfa entregada por la fuente del sonido de- pares de parlantes,y la suma de las sefiales emitidas por ier valor angular. Para realizar es- to, se usa la siguiente identidad trigonométrica: Cos(A)? + Sen(A)2=1 suiera{entze 0 y 90°) expresado en radianes. tamos saber c6mo usar dicha ecuaci6 tuacién préetica. Ya que la energta equi funciones seno y coseno se produciré el resultado correcto en términos de si asumimos que tenemos dos parlantes en éngulos ganancia para cada canal deberd ser: Ch1=Cos(A) (Ch2=Sen(A) donde A es el Angulo entre la posicién del oyente y la posicién de la fuente, 57 Cht=Cos(A) / (distancia + offet (Ch2-Sen(A) (distancia + offset) (cl término offset es necesario para prevenit los casos en que la distancia es idad ~especialmente cuando es cero..). Investigaciones psicoa- as han mostrado que los indicios de distancia son més efectivos percep amente si se usa un escalamiento diferente. Si éste es el caso, un exponente de escalamiento puede ser wsado par leva el fetor de distancia a epee cia mayor que uno, produciendo asf una curva de ganancia més pronunciada (exagerada”) en la medida en que la fuente se mueve hacia el oyente: factor de distancia = ((distancia * exponente) + offset) Por lo tanto, la ganancia para cada parlance sera Ch1=Cox(A) / factor de Cho-Sen(A) / factor de ‘Veamos emo trabajar sobre esto con Csound. Supongamos que queremos di- sear un insuumento en el que haimos un panorémico continuo dee un parlance al otro y viceversa, y que deseemos controlar la velocidad con que ha- 15 7 pS: epapen( ps9) Agu, si el p5 es mayor que 15, se interpretaré la frec Ha, y si es menor se la interpretard en peh, y se la conver asignaciones condicionales en el Capftulo 1. lirectamente en, a Hz. Véanse Bjercicio 1 Tome las orquestas y las partituras usad versores de nota. 2. CONTROL DE FRECUENCIA ando ‘Como ya hemos explicado, un generador de envol tiene que ser usado para controlar la amplitud. Ei \csound \cap3) quedaria 64 cn frecuencia de audio, para evitar dis controlan la amplitud, sino la frecuenci dda (afrec) se ingresa en el control de frecuencia del oscilador: syle orctt3 tamp, afrec, itab La particura: 6 de paso, cuén buena es la placa de audio istema. Dado que la nota hace un glissan- ta 22050 He (la frecuenci in...) En una placa de mala sremos, a partit aproximada- serie de distorsiones que se denominan " - y aplique los conversores de no- ol de glissandos. Piense en alguna aplicacién “musical”. Use dor de espectto para visu ‘cambios en frecuencia cuencia de control (hasta aprox. 15 Hz) produce el efecto que se conoce mit- sicalmente como vibrato La ecuacién para descrbir el proceso en términos de audio digital es la siguiente: sin QPL * fe * n° T+ (DF * sio(2PI + fm * a *T)) (eq, 1:1) donde f, = frecuencia de la portadora fj frecuencia de la moduladora ‘n= nximero de muestra digital T= intervalo de muestreo=1/SR Df = desviacisn en frecuencia de la portadora. En el caso del eibrato, se suele pensar, a los efectos pricticos, en el control de tres parse + La velocidad de la modulacién (f,y frecuencia de la moduladora). + La silueta de la modulacién (forma de onda de la moduladora). + La profundidad de la modulacién (Df, desviacién en frecuencia de la pportadora hacia arriba y hacia abajo de la frecuencia de la portador Por ejemplo, si deseamos que la frecuencia de la portadora se desvie 50 He hacia ariba y hacia abajo, el valor de Dé seri 50. Este procedimiento, sin em- bargo, es poco préctico, dado que el manejo de Df en términos independien- tes de la frecuencia portadora puede producir resultados perceptivos diferen- tes en distintasfrecuencias portadoras. Dicho de otra manera: SOF: de de ci6m para 440Hz de portadora son mucho més que 50Hz de desv 5000Hz de portadora, dado que nuestra percepcidn de la queremos calcular Df en Hz, proporcionando el result pecto de la frecuencia de la portadora, tendremos: Dr (eq, donde: s = la desviacin de la portadora en semitonos (“profuundidad del 2%(5/12))~f, ato”). Reemplazando Df por la ecuacién (1.2) en la ecuacién (1.1): sin(2PL * f,% * T+ (Uf, * 2/1 in(2PI* 4, * a © T)) rofiandidad del vibrato en, la velocidad del vibrato (fm). rent, es muy simple, Todo lo que tenemos que hacer es ge- nerar dos sefales (por ahora, para no complicar las eosas, dos sinusoides). Una de ella ser la portadora, la otra ser la moduladora, Establezcamos que la am- ud de la moduladora sea de 50, ésta se moveri en el rango que va de 50 a ~50. Si sumamos la sefal moduladora a la frecuencia de la portadora, consegui- remos que la frecuencia de la portadora “suba 50 He y “baje” SOF a la velo- cidad de la frecuencia de la moduladora. Todo lo que tenemos que hacer es calcular qué monto en Hz (qué “profundidad” de vibrato) queremos desviar hacia arriba y hacia abajo a la portadora, y este monto seré la amplitud de la ‘moduladora. Siguen und orquesta y una particura de Csound para hacerlo: 6 Si procesamos el ejemplo anterior, veremos que estuvo bien. Pero no estuvo completamente bien. La portadora se desvié medio semitono (un cuarto de to- no) hacia arriba, y apoximadamente un euarto de tono hacia abajo. Y no to ad- vertimos slo porque Ia diferencia es muy pequefia. Revisemos nuestros célculos: la portadora se desviaba: = 452.892 -440 = 12.892 Hs Esto es, un semitono arriba de 440 Hz, pero NO es un semitono debajo de 440. ‘Un semitono debajo de 440 He serta: sole para vibrato) 4096 100 1 er tap fp itp dep itm itabm npeve 2 1 4401 Pees 1 427.474 ~ 440 12.525 He En la Figura 1 se puede ver un diagrama de flujo del instrumento 1 de la or- questa anterior. Hay una diferencia de: 12,892 ~ 12.525 = 0.367 He jen la escucharia.. En términos de vibrato, nadie, o casi nadie. Sin em- in fa medida en que la profundidad del vibrato se hace mayor, la dife- lograremos que sus valores wenores. Esto se muestra en la Figura 2, Dingrama de flujo del fnstrumento que implementa vibrato Figura 68 0 Sh ‘Fguea 2. Corres de la portadora Esto es lo que se hace en la orquesta y en las partituras que siguen, que serfa un vibrato de “Q constant (24 Wdepnst2) ) ) = itree = Ure * (24( ~ideph/12) )) te Ge amplivud ‘Dos comentarios sobre la partir + Para la forma de onda de la maduladora no usamos una sinusoide, sino ‘una onda cuadrada de banda no-limitada. Esto quiere decir que tiene, tedrica- ‘mente, un ndmero infinito de arménicos. Pero esto no produciré “aliasing”, porque no la usamos para audio. La forma en que la generamos es usando el GENO]. El GENO? produce segmentos de linea ma forma igual a la UG linseg). Hay que entregarle los valores de tercalados. Los va- lores de “Y" no se entregan en tiempo, como en linseg, sino en cantidad de puntos de la tabla. La instruccién: noo crea una tabla de 128 p ai cree lorde-I (en ) y se mantiene en ese valor por la otra tad del bla (64 puree). Lasilcta produce e una onda curd a a Usaremos esa forma de onda para la moduladora, porque nos deja escu- las frecuencias de las desvi central (440Hz). En cada nota, la profundidad del semitono. En la nota final, al haber un tritono haci cucha claramente una octava entre la nota superior que el de un lo como demostracién. rnunca se escucha (es sélo te6rico”), y si hubiera que jemplo a notacién musical, seria como se ve en la Figura 3. = ase Sh Figura 3, Transeripcion » notacin tradicional del ejemplo anterior Ejercicio 3 eee eS ae “Tome la orquesta y Ia partitura anterior y ralice varias secuencias cam biando todos los parémetros. Piense en alguna aplicacién “mu posible, por ejemplo, “superponer” varias de estas secuencias con distin- tas n0t85..2). ntesis de sonido por FM. Esta técnica se basa en el control perisdico de la desviackin de frecuencia de moduladoras). John Chowni (véanse Chowning, 1973, y Chowning y Bristow, 1986). Se la suel cluir dentro de las técnicas de sintesis nodneales, dado a de frecuencia que no se e an en las sefales originales. ‘Cuando la frecuencia de a moduladora esta en rango de audio, Chow- ring observé que la modulacién ya no se percibe como vibrato, y que lo que Imente ocurre es que la energfa de la portadora es redistribuida en una se- ) de componentes a ambos lados de ésta, Estos componentes apa- recen a las frecuencias expresadas por: Esto implica que la técnica de FM produce -} ‘embargo, cuanto mas pequesia es la amp! nuye concencrsindose en las bandas modulacisn es igual a: 1=DE/f,, donde: Df es la desviacién de frecuencia de la portadora fy ¢$ la frecuencia de la moduladora Como ya dijimos, en teoria la cantidad de bandas laterales es infinita. Pero da- do que su amplitud disminuye en funcién del niimero de banda, en la prc ca se considera que el ntimero de pares de bandas laterales con amplitud sig- nificativa es igual a I+2 (para I distinto de cero). Na =1+2 (eq. 2.2) La amplitud de cada una de las bandas laterales se calcula sobre la base de Jk(I), que es una funcién de Bessel de primera clase, orden k, evaluada en (I). La mayoria de la bibliografia sobre el tema presenta tablas de dicha funcién, 0 su ecuacién, pata calcularla con la precisi6n deseada (véase Moore, 1990, p. 320), Esto sig- ica que siendo I el indice de modulacién, podemos calcula una aproxima- te de un par de FM simple de la siguiente manera: siguientes: cin al espectro re * Los datos sor f= 400 He = 800 Hz =2 + El némero de pares de bandas laterales a caleular es: Ta2= 4 (véase €9.2.2) B + Las fre de los pares de bandas laterales se calculan de acuerdo con la ecuaci6n (2.1) k=O 400 + (0*800) =400 (portadora) +400 — (0*800) =400, kel 4400 + (1*800) =1200 (primer par) +400 ~ (1*800) =-400 ke? 400 + (2800) =2000 (segundo par) +400 — (2*800) =-1200 k=3 400 + (3800) =2800 (tercer par) 400 ~ (3800) =~2000 ket 4400 + (4*800) =3600 {cuarto par) -400— (4"800) =-2800 + Las amplitudes de los componentes de cada par de frecuencias de orden k se calculan sobre la base de la funcién de Bessel de orden k evaluada en 1 + Se cambia el signo de las amplitudes correspondientes a los pares de bandas laterales de orden impar (para una explicacin de las causas véase 90, p. 319). Se transforman en positivas todas las frecuencias negativas cambiando el signo de sus amplitudes. En el caso de que coincidieran con otros compo- nentes, se realiza una suma de sus amplitudes. En el caso de Fm simple, se puede obtener una serie de conclusiones pricticas nica 0 inarménica. Relaciones mas simples determinan espectros arménicos. + Algunas relaciones entre portadora y moduladora producen espectros arménicos en los que faltan algunos componentes (eg. 1/2 produce un espec- tro arménico sin parciales pares). + Para igual fadice de modulacién, cuanto menor es f,, mayor es la densi- dad de banda y menor el ancko de banda del espectro resultante. m4 + Elancho de banda (8W) espectro se puede estimar de la siguiente manera (Chowning y Bristow, 1986): si hay bandas negativas: sino hay bandas negativas: BW (aprox) 2f,¥ La técnica de FM es muy préetica, dado que sélo con des sefiales sinusoidales se puede lograr una gran variedad de sefiales con espectros muy diferentes. Har bitualmente se usan generadores de envolvente diferentes para la portadara y la moduladora. Bl de la portadora no afecta el espectto, s6lo a la envolvente cde amplitud general. El de la moduladora no afecta la amplitud general, sino cl espectro. De esta manera se pueden lograr en el espectro comportamientos similares a los instrumentos actisticos (como por ejemplo mayor ancho de banda en el ataque). Ademas de ello, el cambio del {ndice de modulacién en cl tiempo no produce una variaci6n lineal de las amplitudes de los componen- tes que resultan (sino sobre la base de la funcién de Bessel mencionada), y es- to contribuye a darle un mayor dinamismo al espectro. Hasta ahora expli aque serfa un “par de FM si ‘rar conexiones mis complejas si se usan var da"), oen paral is por FM con Csound. Afortunada- 1a esto, ni siquiera tenemos que “conectar” dos ida en. PM que lo hace inter xamp es la amplitud de td de la portadora).. kkeps es la frecuencia de la portadora (en Herts, eps). Nétese que puede variar s6lo a velocidad de co xear es un factor que mi Ja frecuencia de la portadora. La fre- ‘cuencia efectiva de la portadora seré entonces igual a: keps * xcar. xmod es un factor que multiplica la frecuencia de la portadora para pro- i} ducir la frecuencia de la moduladora. La frecuencia efectiva de la moduladora © xmod. ifn es Ta tabla de forma de onda que usarsn ambas, la moduladora y la portadora. Adviérease que es un argumento de {iphs] es un argumento opcional (esta entre corche de lectura de la tabla, Su valor por defecto es “0”. Bs la fase inicial Puede llamar la atencién el manejo de la frecuenc portadora y la mo- duladora que hace foseili lo cual slo tiene que ver con la manera “préctica’ cen la que conviene pensar Ia sintesis por FM. Cuando teresa controlar la “velocidad” del vibrato a través de la frecuencia de la mo- duladora. En el caso de sintesis por Fa, ¢s mas interesante pensar en términos de relacién de frecuencia entre portadora y moduladora, antes que en términos absolutos de frecuencia. Por que es esto ast? Porque en Fv la telacn de frecuencia entte portadora y modulador ‘y xmod) es la que determina la cualidad del espectro res 2 entee portadora y moduladora, lo que hard que el es- sea arménico, 1 s6lo eon parciales impares. El valor de keps s6- ccueneia fundamental. i6n (kndx) controlaré el “ancho de ban- dla" del espectro (cantidad de pat Lo interesante es controlarlo a travé de una envolvente, para cambiar el espectro durante el La amplitud de la portadora (xamp) dara la envolvente dinémica, y se la pue- de controlar con una envolvente diferente. Esta es la estrategia que seguire- mos para realizarlo con Csound. Siguen una orquesta y una partitura. ke = 4410 kamps = 10 nehals = 1 fap = p4232767 campl itp = ps itap = 96 La Figura 4 muestra un diagrama de la orquesta: 1 LEE Sey ep itap n En la partitura se disparan cuatro notas. Las tres primer volvente dinémica, pero diferente cualidad y evolucisn es ota se parece aun sonido de trompeta, el indice de modulacién aumenta des- de el comienzo hasta el pico maximo de amplitud y decac a partir d Bue a la envolvente de amplicud). El espectro tiene todos los arménieos ‘in entre portadora y moduladora de 1/1). La segunda nota tiene el mismo expeetto y envolvente, pero inversa ala nota anterior (v tercera nota tiene un espectra diferente (s6lo atménicos pares, Portadora y moduladara de 1/2), pero Primera, La siltima nota tiene un espectro dora y moduladora de breve, y el principio, Hay una gran variedad de sonidos posibles, y slo hemos realizado una pe- uefia introduecién al problema. Se recomienda a los interesados en profun- dizar las 8 obras: ‘erece en conjuncién con la ampl 18 Ejercicio fome la orquesta y la partitura anteriores y varias secuencias See pardmetros. Trate de producir diferentes cualidades ‘imbricas y envolventes. Use un analizador de espectro para visualizar los cambios espectrales. 79 Capitulo IV 1. AMPLIACION DE LOS RECURSOS PARA EL CONTROL DE LA FRECUENCIA! ‘TABLAS Y FASORES En Csound existen muchas formas de generar seftales tiles para controlar di- ferentes pardimetros. Una posibi que implementa este procedimiento en Csound se denomina phasor. Fl funcionamiento de phasor es muy sencillo: produce una seftal que va des- de el valor 0 hasta el valor 1, con un periodo de (I/keps) segundos. Repite es- to.ciclicamente, de manera tal que la sefial generada es una onda “diente de rma” de banda no-limitada, y con valores positivos. Se muestra en la Figura 1 cops}segs. Figura 1. Representacign gréfica dl funcionamiento de la Uc phasor (Como argumento opcional se le puede entregar la fase dda en una fraccién de ciclo normalizada (igual que en ‘Como la sefial que produce phasor es de band: ‘mos usarla para audio sin producir aliasing. Pero es mi 81 ar (ablel ands, fmt, inmede tablei accede a los valores guardados en la posicién xndx de una tabla que debe ser creada usando alguna rutina GEN). No tratatemos a terpolacién smente el indice de acceso a snemos el mismo comporta- dor. Veamos esto con un ejemplo que es equivalente a la imple.ore” de nuestra primera clase la tabla ‘obtenemos ol largo de Is tabla +1 sgeneramos ta sett de audio El funcionamiento es el siguiente: la unidad phasor va ciclicamente desde 0 a 1a 440 cps. Al multiplicar la seftal del fasor (andx) por el largo de la tabla (4096), logramos que vaya desde O hasta 4096 pasando por todos los valores intermedios. Esto es lo que controla que obtenga los valores de cada posi tener el largo (cantidad de valores) que in(ifn). El resultado es comple Por qué hacer las cos primera clase, ‘an complicadas si ya obtuvimas lo mismo con un i cma simple oscilador? Este era slo un ejemplo para demostrar el uso de estas UGs. Ahora veremos qué otras cosas es posible hacer con ellas Para tener todo lo que necesitamos en el siguiente ejemplo, veremos el 2NO2 es una funcién que genera una tabla a partir de los valores que se le escriban directamente. Su sintaxis es fH time size 2 vive ova Es decir, podemos guardar cualquier serie de valores numéricos que se nos acu: ra Por ejemplo: s Bes sar a aque se guardan las notas (en notacién de in acorde de séptima mayor a partir del DO central idad de valores a guardar no puede superar el largo de 128, Se pueden ingresar menos valores que los del largo de la tabla (Ias posiciones sobrantes tendén valor cero). Es muy importance advertir que, dado que el p (2) es negatvo, a tabla no std normalizada. Esto debe ser ast, en este caso, porque queremos obtener los va lores crudos que estamos ingresando. Si leemos esta tabla ciclicamente por me~ dio de un fasor y una unidad tablei, podemos controlar de manera dindmica la frecuencia de un oscilador. Es lo que haremos en el ejemplo siguiente: Samp = pa * 32767 jamplitud maxims 8B tna eavolvente de amplited muy keny Unseg 0, .05, tamp Kady phasor itpha kndx #1, teva ktree o 142 7 : Allguncs comentarios: Lo que queremos hacer es que en el tiempo de la nota la frecuencia cambie de acuerdo con los cuatro valores que se encuentran en la tabla (algo asi como un “acorde arpegiado”). Para esto, tenemos que obtener el valor correcto en eps (Hz) para entregarlo al fa 1) que indicaré cudntas veces se leerd la tabla en el transcurso de la nota. Adviértase que esto influi- iden a “elocidad de leet” y que taser una fncion del y dl p3.Con la asignacién: \cia en Hz que tiene que tener la unidad phasor para “ci sen la duracién del p3. i Lo que sigue es igual a lo que ya hicimos. Primer ‘enemas los valores de frecucncia de la tabla, mediante table (es igual a tablet, slo que NO inter- pola los valores, lo que esté bien para nosotros, porque queremos obtener los valores “justos” de frecuencia): ktrec table nda ¢ 441, eva Los valores que obtuvimos estén en pe, y deben ser transformados a Hs, pa- ra que pueda usarlos el oscilador. Ademds, agregamos un “factor de transposi- cin” que se ingresa en el p8. Este factor indica cusintos semitones ~hacia aba- jo, o hacia arriba~es preciso transportar la serie de frecuencias, y multiplica el valor en He que se obtiene. Kfrec = epspen(kfrec) * itfac la sefial kfrec se ingresa en el control de frecuencia de una uni- En la partitura declaramos dos tablas. Una para los valores de frecuencia 'yla otra para audio (onda cuadrada, 5 arménicos). que la amplitud de cada una es i hubiera que transcribir el re Figura 2, Resultado en notacién musical de ejemplo a Ejercicio 1 “Tomando "\csound \cap4 \phasor2.ore” y *\esound \cap4 \phasorZ.sco”, defina mediante el GENO2 diferentes tablas con diferentes valores de fre- ccuencias en peh (acordes, pitch-class sets, micromodos, series dodecafé- nicas,fragmentos melGdicos, etc.) y dselas en notas y secuencias super- puestas y sucesivas. 85 2. AMPLIACION EN LOS RECURSOS DE SINTAXIS: MACROS EN CSOUND En la medida en que las partituras y las onquestas de Csound se van haciendo adas, esulta mas incémodo y dificil eseribirls, Para faciltar esta ‘Cound puede usarse un recurso que se denomina macro. En términos ma macro es una cadena de caracteres que reemplaza a otra cade ra de caracteres. Las macros tienen, por lo menos, dos utilidades + Reemplazar lagas cadenas de caracteres que se epiten por otra cadena Pensemos, por ejemplo, que en “Universidad Nacional de Quilmes" cito para nuestro propésito y haga mds legible la partitura o la orquesta, En Csound, las macros pueden ser simples, o complejas. Macros simples. Las macros simples se declaran de la siguiente manera: fdetine -6an o 16384 4 Lo que se define aqui es que la cadena "-6dB” seré reemplazada por “16384 Lo que “reemplaca” debe estar encerrado entre dos numerales (el c Es mas fécil recordar ~6

También podría gustarte