Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TEMA
Síntesis de Audio
ANALÓGICA DIGITAL
TEMA 9 – Esquema
Ruedas PD virtuales
Telharmonium
electromagnéticas Chuck OTROS plugins
Theremin
Válvulas Trautonium CSOUND
Modulares RCA Mak II
Transistores
Moog Modular Control Eventos
Portátiles Minimoog VCS3 tiempo real (partitura)
C.I. Polifónicos
2
CS80
Digitales (orquesta)
GUI
Elementos Funcionales MIDI INSTRUMENTOS
OSC
VCO
VCA Opcodes Variables
VCF
LFO Oscils LOCALES: Conector de Opcodes
ENV VCO2 a Audio
NOISE Mooglader k control Funciones
i Evento Y
Lineseg operadores
p Parámetro
Combinaciones: Modelos de síntesis expseg
(Conecta con el ev ento)
SUBSTRACTIVA
FM GLOBALES
ADITIVA ALGORITMOS
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
Ideas clave
Para estudiar este tema deberás leer las Ideas Clave expuestas en este
documento. Estas ideas se van a complementar con lecturas y otros documentos
para que puedas ampliar los conocimientos sobre el mismo.
La Síntesis de Sonido ocupa un lugar clave dentro de la Sonología. Desde los primeros
sintetizadores hasta las tecnologías actuales, la síntesis ha evolucionado enormemente
y ocupa actualmente líneas de investigación muy avanzadas. En este primer tema
dedicado a la síntesis de sonido introducimos los conceptos fundamentales y
algunas de las técnicas más utilizadas. Completamos el tema con la introducción al
lenguaje de Síntesis más versátiles Csound, que nos permitirá realizar alguna práctica
de síntesis.
interesante propuesta con en el sintetizador modular VCS3, que emplea una matriz de
entradas y salidas para el conexionado.
Como hemos visto, los primeros sintetizadores fueron analógicos, y constituyeron una
revolución en el mundo del sonido. Los digitales, aunque con mayor estabilidad y
muchas más prestaciones, intentan, en ocasiones emular a sus antecesores analógicos
tratando de conseguir aquellos sonidos originales.
Gracias al desarrollo tecnológico del los ordenadores de propósito general, que cada vez
cuentan con procesadores más rápidos y potentes, las limitaciones de la síntesis por
software están siendo superadas, y hoy día contamos con sistemas de síntesis con gran
potencia y baja latencia.
Existen varios entornos y lenguajes para la síntesis de sonido por software que
permiten la experimentación sonora mediante la programación. Los primeros lenguajes
de síntesis directa de sonido, la serie MUSIC-N, aparecieron a finales de los años
cincuenta. Un descendiente directo de ellos, Csound, es uno de los más ampliamente
empleados, con una evolución considerable hasta nuestros días. Otros lenguajes han
ido apareciendo entre los que destacamos CLM, Nyquist, SuperCollider y más
recientemente CHuck. A esta lista hay que añadir PureData o PD como exponente de
los sistemas de programación visual, entornos en los que se programa mediante la
interconexión (patch) gráfica de unidades funcionales más sencillas.
Como hemos visto en el repaso de la evolución de los sintetizadores, uno de los avances
más destacados han sido los sintetizadores modulares. En este tipo de
sintetizadores, se dispone de una colección de elementos funcionales primarios que
pueden interconectarse mediante cableado para configurar una estructura de proceso
de síntesis. A continuación presentamos los más habituales:
VCO
El Oscilador Controlado mediante Voltaje genera una señal periódica de una forma
de onda seleccionable. Las formas más habituales son: triangular, rectangular,
sinusoidal y en diente de sierra. El valor de la frecuencia se puede variar mediante
una tensión de entrada CV.
VCA
El Amplificador Controlado mediante Voltaje amplifica una señal en una proporción
determinada por el voltaje de control. Básicamente aporta un control de nivel de la
señal.
ENV (ADRS)
VCF
El Filtro Controlado mediante Voltaje permite filtrar el espectro de una señal con
una frecuencia de corte gobernada por el voltaje de control. Es un elemento
característico de síntesis substractiva en la cual se reduce el espectro de una señal de
entrada. Generalmente se conecta a la salida del oscilador, o bien tras el VCA.
NOISE
LFO
Orquesta.orc y Partitura.sco
<CsoundSynthesizer>; Comienzo del documento csd
<CsOptions> ; Configuración
‐odac
</CsOptions>
<CsInstruments> ; Definición de Instrumentos
; Ajusta la frecuencia de muestreo a 44100 Hz
sr = 44100
instr 1
; una forma de onda sinusoidal de 440 Hz
aSin oscils 0dbfs/4, 440, 0 ; generador
out aSin ; salida
endin
</CsInstruments> ; Final de definición de Instrumentos
<CsScore> ; Eventos de partitura
i 1 0 1 ; evento para el instrumento 1 en el tiempo 0 y duración de 1 segundo
</CsScore> ; Final de partitura
</CsoundSynthesizer> ; Final del documento Csd
Opcodes
Cada una de las unidades funcionales se llama opcode. Cada llamada a un opcode
sigue siempre la misma sintaxis, comienza con las salidas, sigue el nombre del opcode y
después la lista de argumentos o entradas separados por comas.
salida OPCODE entrada1,entrada2,...,entradaN
Por ejemplo el opcode oscils es un oscilador sinusoidal que admite tres entradas, la
amplitud, la frecuencia y la fase. Así la línea:
aSin oscils 0dbfs/4, 440, 0
Utiliza un oscilador sinusoidal con una amplitud de 1/4 del valor 0dbfs reconocido
como el valor máximo de muestra, una frecuencia de 440 Hz, y una fase de 0 . La salida
del oscilador es una variable que se etiqueta con el nombre aSin.
Nota: algunos argumentos son opcionales. Si no se indican se toma el valor por defecto.
Variables i k a
Como ejemplo de variable, la salida del oscilador anterior aSin es una señal de audio.
Aunque no es necesario, se recomienda usar la segunda letra en mayúscula para
facilitar la lectura.
Ejemplo
instr 1 ; empieza definición del instrumento 1
iDuracion = p3 ; lee duración del parámetro 3 del evento
iFrecuencia = p4 ; lee frecuencia del parámetro 4
kHarmonicos line 20, p3, 3 ; define el n de armónicos como
; una línea entre 20 a 3 en un
; tiempo de duración del evento
aSource buzz 0.8, iFrecuencia, kHarmonicos, 1
; genera una señal con el opcode buzz
; de frecuencia iFrecuencia
; y número de harmónicos kHarmonicos
aFiltered moogladder aSource, 400, 0.8
; se filtra con el opcode moogladder
; la entrada aSource
; y frecuencia de corte 400 Hz
; y resonancia de 0.8
out aFiltered
; conecta la señal aFiltered a la salida
endin ; fin de definición de instrumento
Header
sr frecuencia de muestreo.
kr frecuencia de control.
nchnls número de canales de salida (1 mono, 2 estéreo,etc.).
0dbfs valor máximo de muestra o nivel de fondo de escala.
Si se quieren declarar alguna otra variable de carácter global se debe emplear el prefijo
g delante del prefijo indicador del tipo. Por ejemplo gkMiVariable es una variable
global de control.
Osciladores
oscils que generan sencillamente una señal sinusoidal a partir de los argumentos de
entrada.
vco2 genera diferentes formas de onda en función del tercer y cuarto argumento. Es
un oscilador avanzado que incorpora limitación de espectro para evitar aliasing, lo
que permite despreocuparse de este tema.
iLimit = 0.49 ; frecuencia máxima en relación a la de muestreo
kFase = 0
aSinusoidal oscils kAmplitud, kFrecuencia, kFase
aCuadrada vco2 kAmplitud, kFrecuencia, 10, 0, kFase, iLimit
aTriangular vco2 kAmplitud, kFrecuencia, 12, 0, kFase, iLimit
aDienteSierra vco2 kAmplitud, kFrecuencia, 4, 0.01, kFase, iLimit
;; indicando el ciclo de trabajo:
aTriangularB vco2 kAmplitud, kFrecuencia, 4, 0.5, kFase, iLimit
aCuadradaB vco2 kAmplitud, kFrecuencia, 2, 0.5, kFase, iLimit
instr 1;oscilador simple
iAmplitud = p4
iFrecuencia = p5
iAttack = p3 * 0.1 ; toma como ataque la décima parte de su duración
aVCO oscils iAmplitud, iFrecuencia, 0
kENV expseg 0.1, iAttack, 1, p3 ‐ iAttack, 0.01
outs aVCO*kENV, aVCO*kENV
endin
Para facilitar la creación de las tablas, Csound dispone de funciones GENeradoras que
permiten definir fácilmente las tablas mediante parámetros.
El siguiente ejemplo hace uso del GEN10 para definir las tablas con diferentes formas
de onda, a partir de las amplitudes de 8 armónicos.
<CsoundSynthesizer>
<CsOptions>
‐odac ;;;realtime audio out
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
; definición de tablas de formas de onda como variables globales
; var n tamaño gen valores_de_armónicos.......
giSin ftgen 5, 0, 4096, 10, 1 ; Seno
giSaw ftgen 2, 0, 4096, 10, 1,1/2,1/3,1/4,1/5,1/6,1/7,1/8,1/9,1/10 ; Diente
de Sierra
giSqu ftgen 3, 0, 4096, 10, 1, 0, 1/3, 0, 1/5, 0, 1/7, 0, 1/9, 0 ;Cuadrada
giTri ftgen 4, 0, 4096, 10, 1, 0, ‐1/9, 0, 1/25, 0, ‐1/49, 0, 1/81, 0 ;
Triangular
giImp ftgen 5, 0, 4096, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ;
Impulso
instr 1
kAmplitud = .6
kFrecuencia = 440
iTabla = p4
aSig oscil kAmplitud, kFrecuencia, iTabla
outs aSig,aSig
endin
</CsInstruments>
<CsScore>
; cada tres segundos un sonido de 2 segundos con cada forma de onda
i 1 0 2 1 ; sonido sinusoidal
i 1 3 2 2 ; diente de sierra
i 1 6 2 3 ; cuadrada
i 1 9 2 4 ; triangular
i 1 12 2 5 ; Impulso
</CsScore>
</CsoundSynthesizer>
Las tablas de forma de onda permiten almacenar otros tipos de datos, e incluso
muestras de sonido real. Esta técnica conocida como sampling permite utilizar la
muestra para reproducirla a diferentes alturas y obtener un sonido muy realista. Es es
principio de funcionamiento de los sintetizadores-samplers.
Síntesis substractiva
<CsoundSynthesizer>
<CsOptions>
‐odac ;;;realtime audio out
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1;síntesis substractiva
kFrecuencia = p4
kAmplitud = p5
iShape = 2
iDuty = 0.3
iAttack = p3 * 0.1
iRelease = p3 – iAttack
aVCO vco2 kAmplitud, kFrecuencia, iShape, iDuty
kEnvFrec expseg p4*2, iAttack, p4*20, iRelease, p4
aVCF moogladder aVCO, kEnvFrec, .56
kEnv expseg 0.1, iAttack, 1, iRelease, 0.01
outs aVCF*kEnv, aVCF*kEnv
endin
</CsInstruments>
<CsScore>
i 1 0 5 440 0.2
i 1 5 2 550 0.2
i 1 7 5 55 0.3
i 1 7 5 330 0.1
</CsScore>
</CsoundSynthesizer>
Síntesis aditiva
Eventos sinusoidales
<CsoundSynthesizer>
<CsOptions>
‐odac ;;;realtime audio out
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1
iFrec = p4
iAmp = p5/20
aSin oscils iAmp, iFrec, 0 ; oscilador
kEnv linen 1, p3/4, p3, p3/4 ; envolvente
out aSin * kEnv ; salida
endin
</CsInstruments>
<CsScore>
;; parciales de una señal cuadrada
i 1 0 2 440 1 ; armonico 1
i 1 0 2 [440*3] 1/3 ; armonico 3
i 1 0 2 [440*5] 1/5 ; armonico 5
i 1 0 2 [440*7] 1/7 ; armonico 7
i 1 0 2 [440*9] 1/9 ; armonico 9
i 1 0 2 [440*11] 1/11 ; armonico 11
i 1 0 2 [440*13] 1/13 ; armonico 13
;; parciales de sonido acampanado (Risset)
i 1 5 2 [100*0.56] 1
i 1 5 2 [100*0.563] 2/3
i 1 5 2 [100*0.92] 1
i 1 5 2 [100*0.923] 1.8
i 1 5 2 [100*1.19] 8/3
i 1 5 2 [100*1.7] 1.67
i 1 5 2 [100*2] 1.46
i 1 5 2 [100*2.74] 4/3
i 1 5 2 [100*3] 4/3
i 1 5 2 [100*3.74] 1
i 1 5 2 [100*4.07] 4/3
</CsScore>
</CsoundSynthesizer>
Parciales en el instrumento
<CsoundSynthesizer>
<CsOptions>
‐odac ;;;realtime audio out
</CsOptions>
<CsInstruments>
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1;síntesis aditiva armónica
iFrec = p4
iAmp = p5
;8 parciales
aOsc1 oscils iAmp, iFrec, 0
aOsc2 oscils iAmp/2, iFrec*2, 0
aOsc3 oscils iAmp/3, iFrec*3, 0
aOsc4 oscils iAmp/4, iFrec*4, 0
aOsc5 oscils iAmp/5, iFrec*5, 0
aOsc6 oscils iAmp/6, iFrec*6, 0
aOsc7 oscils iAmp/7, iFrec*7, 0
aOsc8 oscils iAmp/8, iFrec*8, 0
kEnv linen 1, p3/16, p3, p3/1.2
aOut = aOsc1 + aOsc2 + aOsc3 + aOsc4 + aOsc5 + aOsc6 + aOsc7 + aOsc8
outs aOut*kEnv, aOut*kEnv
endin
instr 2 ;síntesis aditiva inarmónica
iFrec = p4
iAmp = p5
;8 parciales
aOsc1 oscils iAmp, iFrec*0.56, 0
aOsc2 oscils iAmp/2, iFrec*0.92, 0
aOsc3 oscils iAmp/3, iFrec*1.1, 0
aOsc4 oscils iAmp/4, iFrec*1.7, 0
aOsc5 oscils iAmp/5, iFrec*2.74, 0
aOsc6 oscils iAmp/6, iFrec*1.31, 0
aOsc7 oscils iAmp/7, iFrec*3.74, 0
aOsc8 oscils iAmp/8, iFrec*4.09, 0
kEnv linen 1, p3/64, p3, p3/1.2
Out = aOsc1 + aOsc2 + aOsc3 + aOsc4 + aOsc5 + aOsc6 + aOsc7 + aOsc8
outs aOut*kEnv, aOut*kEnv
endin
</CsInstruments><CsScore>
i 1 0 2 440 0.2 ; sonido armónico
i 2 3 3 200 0.2 ;sonido inarmónico
</CsScore>
</CsoundSynthesizer>
FM
En la síntesis por FM, la frecuencia de los osciladores es modulada por otros, es decir la
salida de un oscilador modulador es empleada en variar la frecuencia de otro
oscilador portador. Cuando la moduladora tiene una baja frecuencia y poca
intensidad se produce un efecto de vibrato. A medida que aumenta la frecuencia y la
modulación, se producen bandas laterales en el espectro. Los efectos de la síntesis FM
son entonces menos previsibles que en otros procedimientos, pero presentan
interesantes resultados.
En el caso de que existan relaciones enteras entre las frecuencias, las bandas laterales
se traducen en armónicos. En el ejemplo siguiente se implementa el algoritmo de John
Chowning, que produce un sonido de trompeta.
<CsoundSynthesizer>
<CsOptions>
‐o dac
</CsOptions>
<CsInstruments>
sr = 48000
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1 ; simple way to generate a trumpet‐like sound
kCarFreq = 440
kModFreq = 440
kIndex = 5
kIndexM = 0
kMaxDev = kIndex*kModFreq
kMinDev = kIndexM * kModFreq
kVarDev = kMaxDev‐kMinDev
aEnv expseg .001, 0.2, 1, p3‐0.3, 1, 0.2, 0.001
aModAmp = kMinDev+kVarDev*aEnv
aModulator poscil aModAmp, kModFreq, 1
aCarrier poscil 0.3*aEnv, kCarFreq+aModulator, 1
outs aCarrier, aCarrier
endin
</CsInstruments>
<CsScore>
f 1 0 1024 10 1 ;Sine wave for table 1
i 1 0 2
</CsScore>
</CsoundSynthesizer>
; written by Alex Hofmann (Mar. 2011)
Cuando utilizamos más de dos osciladores los resultados son menos predecibles y se
denomina síntesis FM compleja.
Lo + recomendado
No dejes de leer…
Serra, X. (2007). State of the Art and Future Directions in Musical Sound Synthesis.
Barcelona: Universidad Pompeu Fabra.
Accede al artículo a través del Aula Virtual o desde la siguiente dirección web:
http://mtg.upf.edu/files/publications/5fc537-MMSP-2007-xserra.pdf
Accede a la guía a través del Aula Virtual o desde la siguiente dirección web:
http://beausievers.com/synth/synthbasics/
TEMA 9 – Lo + recomendado
24
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
No dejes de ver…
Accede a los vídeos a través del Aula Virtual o desde las siguientes direcciones web:
https://www.youtube.com/watch?v=sr7-RyvKjUA
https://www.youtube.com/watch?v=vqX4-xjKZ3k
https://www.youtube.com/watch?v=0YeT9Gr-sJA
https://www.youtube.com/watch?v=DRYvdHUxpEE
TEMA 9 – Lo + recomendado
25
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
No dejes de escuchar…
Accede al audio a través del Aula Virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=8C7I8jjMutk .
TEMA 9 – Lo + recomendado
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
+ Información
A fondo
Miranda E. R. (2002). Computer Sound Synthesis for the Electronic Musician (2ª Ed.).
Oxford: Focal Press.
Accede al libro (parcialmente) a través del Aula Virtual o desde la siguiente dirección
web:
http://books.google.es/books?id=ajr4_nS3X0gC&pg=PP6&lpg=PP6&dq=Computer+So
und+Synthesis+for+the+Electronic+Musician+1998
Webgrafía
Csound
Accede a la página a través del Aula Virtual o desde la siguiente dirección web:
http://www.csounds.com/
TEMA 9 – + Información
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
Bibliografía
Aikin, J. (2012). Csound Power!: The Comprehensive Guide. Cengage Learning, INC.
Vercoe, B. The Canonical Csound Reference Manual (version 6.00.1). Recuperado de:
http://www.csounds.com/manual/html/
TEMA 9 – + Información
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
Actividades
Trabajo: Csound
Descripción de la actividad
TEMA 9 – Actividades
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
Objetivos
Al completar la práctica estarás en disposición de emplear Csound en sencillos
proyectos de síntesis y de utilizar la herramienta como laboratorio de experimentación.
Entregas
Documento CSound .CSD.
Audio en MP3 u OGG.
Comentarios de la práctica en .PDF.
TEMA 9 – Actividades
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
Test
TEMA 9 – Test
Acústica, Electroacústica, Electrónica Aplicadas a la Sonología y Musicología
7. ¿Cuál de los siguientes nombres lleva el prefijo correcto para una variable de control
de tipo global?
A. kSig
B. gkSig
C. aSig
D. iSig
10. ¿Qué señal de ruido posee la misma energía en cada octava del espectro?
A. Ruido Blanco.
B. Ruido Browniano.
C. Ruido Aleatorio.
D. Ruido Rosa.
TEMA 9 – Test