0% encontró este documento útil (0 votos)
4 vistas51 páginas

CSOUND

CSound es un lenguaje de síntesis sonora que permite la creación de sonido en tiempo real a partir de archivos de texto. Utiliza una estructura basada en etiquetas y permite la definición de instrumentos y partituras para generar sonidos. La guía también aborda la instalación de CSound y el editor Cabbage, así como ejemplos de síntesis aditiva y sustractiva.

Cargado por

valladaresgoya
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
4 vistas51 páginas

CSOUND

CSound es un lenguaje de síntesis sonora que permite la creación de sonido en tiempo real a partir de archivos de texto. Utiliza una estructura basada en etiquetas y permite la definición de instrumentos y partituras para generar sonidos. La guía también aborda la instalación de CSound y el editor Cabbage, así como ejemplos de síntesis aditiva y sustractiva.

Cargado por

valladaresgoya
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

SINTESIS DE SONIDO

Guía complementaria para incorporar a los pdf de Temas (existentes en plataforma).

Prof. Ing. Daniel Lodi

INTRODUCCION A CSOUND ([Link]


Qué es CSOUND
•CSound es un lenguaje especializado de síntesis sonora.

No es un lenguaje de propósito general y por tanto no es adecuado para otras tareas.

•CSound compila ficheros de tipo texto que contienen programas escritos en lenguaje CSound y produce sonido en tiempo real o un fichero de audio para
su reproducción posterior.

•Cada fichero en lenguaje CSound contiene las instrucciones necesarias para la generación del sonido resultante y puede ser creado con cualquier editor de
textos.

•Normalmente, un fichero CSound contiene instrucciones para la definición de “instrumentos de la orquesta” y una lista o “partitura” de “notas” o eventos
sonoros con los datos que interpretará la “orquesta”.

•CSound es multi-plataforma y está disponible para todos los sistemas operativos, como Linux y Mac OS X, e incluso para Windows. •Un fichero en lenguaje
CSound puede ser compilado en cualquier plataforma y producirá el mismo resultado sonoro.

EDITORES

Como la mayoría de los programas de compilación, es recomendable escribir todos los comandos de su programación en un programa externo para que
después CSOUND lea ese archivo, lo transforme a un conjunto de unos y ceros y pueda ser procesado por la computadora para generar los sonidos que
hemos indicado se ejecuten.

Existen muchos editores como por ejemplo:

• CsoundQt

• Blue
• Cabbage

• WinXound

• RunloopSound

• Csound for Atom

• Csound-Mode for Emacs

• Csound for Emacs

En nuestro caso vamos a utilizar el editor llamado Cabbage.

Primeros pasos: Descarga de CSOUND

Desde la opción DOWNLOAD de la página anterior, podremos descargar e instalar siguiendo en forma muy sencilla los pasos del asistente, de
acuerdo al sistema operativo que estemos utilizando
Luego y de la misma manera, será conveniente instalar el editor Cabbage desde: [Link]
Estructura de un programa en CSOUND

La estructura de los programas de CSOUND se basan en TAGS o etiquetas. Estas etiquetas son distintas partes del programa y como si fuese un
paréntesis, si existe una etiqueta abierta llamada <juan> debe de existir una etiqueta cerrada que agrupe todas las instrucciones de esa sección
que se llame </juan>. Por otra parte CSOUND es case sensitive, significa que la palabra JUAN es totalmente distinta a Juan y también distinta a
juan. Todos los comentarios que uno desee escribir en el programa pueden escribirse a continuación de un punto y coma, que la máquina la
ignorará. Esto permitirá que nos sirva de ayuda para interpretar lo escrito, pero se reitera, a la máquina, no le importará lo allí escrito.

<CsoundSynthesizer>

<CsOptions>

; Aquí se colocan las opciones propias del programa

</CsOptions>

<CsInstruments>

; Aquí se colocan cada uno de los instrumentos que como si fuese una orquesta, ejecutarán nuestra obra.

</CsInstruments>

<CsScore>

; Aquí se colocarán las notas (no como una partitura) pero aquí se deberá indicar qué sonido debe ejecutar cada
instrumento.

</CsScore>

</CsoundSynthesizer>
Un primer ejemplo:

<CsOptions >

; Ejemplo Nro.1”

</CsOptions >

<CsoundSynthesizer>

<CsInstruments>

sr = 44100 ; este es el simple rate o tasa de muestro digital que en este caso lo definimos a 44100 Hz.

nchnls = 2 ; vamos a utilizar los dos canales estéreo

0dbfs = 1 ; esta instrucción particular de los miles que existen se llaman opscodes y define el nivel de la señal en dB (ej: -1 a 1) Dado que 20.log1 =0dB

instr 1 ; vamos a definir la característica del instrumento número 1, este comendo se cierra con la orden endin y no con tags.

aOut vco2 p3, p4 ; variable genera un oscilador controlado por tensión (VCO) Diente de Sierra con una frecuencia p3 y volumen en la variable p4

out aOut ; provocar la salida de audio de la variable aOut en un canal

endin ; cierro la configuración del instrumento 1

instr 2 ; defino las características del instrumento 2

aOut vco2 p3, p4 ; Defino la salida de un oscilador con los valores de frecuencia (asignado a p3) y amplitud (asignado a p4)

out aOut, aOut ; produce la salida estéreo de ese sonido configurado en la variable aOut

endin; cierro la configuración del instrumento 2


</CsInstruments>

<CsScore>

i1 0 1 100 1 ; instrumento 1, suena en el instante 0 seg. con 1 segundo de duración, a una frecuencia de 100Hz y una amplitud en dB 1 (-1;1)

i1 1 1 200 .2 ; instrumento 1, suena en el instante 1 seg. con 1 segundo de duración, a una frecuencia de 200Hz y una amplitud en dB 0.2 (-1;1)

i1 2 1 440 .7 ; instrumento 1, suena en el instante 2 seg. con 1 segundo de duración, a una frecuencia de 200Hz y una amplitud en dB 0.2 (-1;1)

i2 4 3 100 1; instrumento 2, suena en el instante 4 seg. con 3 segundo de duración, a una frecuencia de 100Hz y una amplitud en dB 1 (-1;1)

i2 7 2 200 .2; instrumento 2, suena en el instante 7 seg. con 2 segundos de duración, a una frecuencia de 200Hz y una amplitud en dB .2 (-1;1)

i2 9 1 440 .7; instrumento 2, suena en el instante 4 seg. con 1 segundo de duración, a una frecuencia de 400Hz y una amplitud en dB .7 (-1;1)

</CsScore>

</CsoundSynthesizer>

Cómo escuchar el sonido resultado de esta compilación?

Existen varias maneras, pero para comenzar con resultados simples mientras se aguarda a que puedan instalar los anteriores programas
podríamos ingresar a:

[Link]

Borrar todo el código que aparece a la izquierda y pegar el anterior código para luego presionar el botón CORRER
Otra posibilidad es usar el editor Cabbage

Lo abrimos y seleccionamos de la barra de menú FILE – NEW CSOUND FILE y por ejemplo, seleccionamos la opción de auriculares para crear un
nuevo efecto. Nos va a pedir el nombre del archivo (por ejemplo csound1) que va a tener la extensión csd.
Veremos lo siguiente: Teniendo todo listo para comenzar a escribir
Pero como ya lo habíamos escrito, la idea será borrar y reemplazar el código desde <CsoundSybthesizer> hasta </CsoundSybthesizer> por
nuestro código arriba ya escrito. Ahora, solo debemos presionar PLAY y por el momento no verificar el código que borramos para modificar
gráficamente la ganancia.
Recordemos el efecto de la envolvente de una onda, la cual asigna básicamente uno de los factores que afecta al timbre de un instrumento

Csound, permite que el oscilador genere la envolvente que nosotros designemos.

Veamos el siguiente código:


<CsoundSynthesizer>
<CsInstruments>
sr = 44100
nchnls = 2
0dbfs = 1
instr 1 ; asignemos las características del instrumento 1
iFreq = p4 ; asignemos a esta variable p4 la frecuencia
iAmp = p5 ; a p5 la amplitud
iAtt = 0.6 ; tiempo de ataque
iDec = 0.7 ; tiempo de decaimiento
iSus = 0.2 ; tiempo de sostenimiento
iRel = 0.1 ; tiempo de relajación
kEnv madsr iAtt, iDec, iSus, iRel ; Asignemos a la variable KEnv la envolvente que crea csound con el opcode madsr
aOut vco2 iAmp, iFreq ; generemos la salida del oscilador con la amplitud y frecuencia deseada, previamente asignada en iAmp e iFreq
out aOut*kEnv ; Multiplicar la salida por la envolvente para generar el resultado de incorporar esta onda dentro de esta envolvente.
endin
</CsInstruments>
<CsScore>
i1 0 1 100 1 ; instrumento 1 sonará en el tiempo 0 seg. durante 1 segundo con una frecuencia de 100Hz dentro de la envolvente con un volumen 1
i1 1 2 200 .2 ; instrumento 1 sonará en el tiempo 1 seg. durante 2 segundos con una frecuencia de 100Hz dentro de la envolvente con un volumen 0.2
i1 4 1 440 .7 ; instrumento 1 sonará en el tiempo 4 seg. durante 1 segundo con una frecuencia de 440Hz dentro de la envolvente con un volumen 0.7

</CsScore>
</CsoundSynthesizer>

Ahora podríamos oir el sonido generado como antes, en el propio navegador o en Cabbage
Podemos también crear un nuevo instrumento, haciendo en Cabbage click en Nuevo Csound File y seleccionando el teclado.

Ahora nos pedirá el nombre del archivo y luego de grabarlo vamos a poder comenzar a editarlo
Si ahora presionamos PLAY, podremos oir cada tecla que seleccionemos dentro del teclado MIDI
Si ahora le agregamos la orden que imprima la frecuencia p4 de cada nota podremos observar su resultado en la parte inferior de la pantalla
Algunas consideraciones sobre el nombre de las variables y constantes que utilizamos en CSOUND
instr 1
iAmp = 1
kFreq = 440
aSignal = 0
endin
Las variables que nombramos con a, se actualizan cada vez que el programa lee el código, las k, menos frecuentemente y las i solamente
cuando se las asigna. Todo esto permite optimizar los recursos del microprocesador de la computadora y mejorar la perfomance del programa.

SINTESIS ADITIVA

A manera de introducción ingresemos al siguiente sitio:

[Link]

Menú (arriba a la derecha) - Síntesis Aditiva - Capítulo 1 - 1.4 Síntesis Aditiva


En toda esta explicación se pudo comprender que la suma de los distintos armónicos permite reconstruir o generar una
onda pero para ello ya no podremos usar un oscilador tipo diente de sierra, sino que necesitamos una señal senoidal.

Para ello, el comando o también llamado opcode oscils logra este propósito en CSOUND.

Este opcode tiene algunos parámetros como ser


ares oscils iamp, icps, iphs

Inicialización
iamp – Amplitud de salida.

icps -- frequency in Hz (may be zero or negative, however the absolute value must be less than sr/2).

iphs -- start phase between 0 and 1.

iflg -- sum of the following values:

Esto es lo que vamos a utilizar como ejemplo, utilizando como generadores de armónicos y de distintas envolventes para
lograr distintos timbres con CSOUND. Aquí incorporamos una nueva variable reservada para el sistema que es ksmps que
identifica la cantidad de ciclos de control que revisa cada muestra. Ver: [Link]
language/initialization-and-performance-pass
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
sr = 44100 ;sample rate
ksmps = 1 ;control rate o cantidad de muestras por ciclo
nchnls = 2 ; salida de dos canales, estéreo
instr 1 ; definición del instrumento 1
iamplitude = p4
ifrequency = p5
iphase = 0
;primer parcial o fundamental
apartial1 oscils iamplitude, ifrequency, iphase
;segundo parcial, frecuencia doble, amplitud 0.8 del parcial 1 y añadimos pequeñas desafinaciones
apartial2 oscils iamplitude * 0.8, ifrequency * 2 + 0.2, iphase
apartial3 oscils iamplitude * 0.5, ifrequency * 4 - 0.3, iphase
apartial4 oscils iamplitude * 0.7, ifrequency * 8 + 0.4, iphase
apartial5 oscils iamplitude * 0.4, ifrequency * 16 - 0.5 , iphase
atotal = apartial1 + apartial2 + apartial3 + apartial4 + apartial5
iatt = 0.005 ; tiempo de ataque
idec = 0.015 ; decaimiento
islev = 0.75 ; nivel de sostenimiento
irel = 0.99 ; release
;Crea una envolvente de amplitud durante la duración de la nota (p3)
kenv adsr iatt, idec, islev, irel
; multiplicamos la envolvente por la onda.
aenv = atotal * kenv
;enviamos aenv a las salidas izquierda y derecha
outs aenv, aenv
;fin de la definición del instrumento
endin
</CsInstruments>
;y ahora la partitura:
<CsScore>
;p1 p2 p3 p4 p5 que representa el instrumento, el segundo de inicio, la duración en seg., su amplitud, su frecuencia
i1 0 5 10000 200
</CsScore>
</CsoundSynthesizer>
SINTESIS SUSTRACTIVA

La síntesis substractiva basa la creación de nuevos sonidos en el filtrado de una fuente rica en componentes puras, dejando sólo las que interesen.
Para realizar este proceso necesitaremos una fuente que contenga gran cantidad de componentes.
Muchos tipos de onda son apropiados para este propósito. En este caso usaremos una fuente de ruido blanco.
El opcode rand nos permitirá contar con una fuente de números aleatorios distribuidos uniformemente en el rango -iamplitud..+iamplitud

ej. anoise rand iamplitud


Vamos a utilizar valores aleatorios de iamplitud
El filtrado digital puede realizarse de múltiples maneras y el lenguaje CSound ofrece varias de ellas. En concreto usaremos los filtros Butterworth
implementados. Su uso es muy sencillo, sólo tendremos que especificar las frecuencias donde trabajan (frecuencia de corte) y el ancho de banda en el caso
del filtro pasa-banda.
Los opcodes son butterbp (pasa-banda), butterlp (pasa-bajo) y butterhp (pasa-alto)
También podríamos quitar amplitud de una onda en diferentes partes, modificando su envolvente ADSR.

<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
sr = 44100 ;sample rate
ksmps = 1 ;control rate
nchnls = 2 ; salida de dos canales, estéreo!
instr 1 ;definición del instrumento 1
idur = p3 ; leer de CsScore el valor de p3, en este caso 10segundos que es lo que más adalente durará line, para el cambio de frec.
iamplitude = p4
ifreqInicial = p5 ; originalmente la [Link] =5000 luego vale 20
ifreqFinal = p6 ; primero va de 5000Hz a [Link] 100Hz y luego de 20Hz a 10000Hz
ibandwidth = p7
; line hará que la variable kfreq varíe durante idur seg. desde un valor inicial a uno final
kfreq line ifreqInicial, idur, ifreqFinal ; genera en un tiempo idur valores de frecuencia desde la inicial a la final para generar ruido blanco
anoise rand iamplitude ; generamos ruido blanco con valores aleatorios de rand con +- iamplitud
;filtramos
afiltered butterbp anoise, kfreq, ibandwidth ; vamos a filtrar la señal anoise variando la frecuencia de corte kfreq y el ancho de banda
;de 0 a 1 en idur segundos para la posición estéreo
kpan line 0, idur, 1
;envolvente simple de 0 a 1 y otra vez a cero en idur=p3 segundos
kenv linseg 0, idur / 2, 1, idur / 2, 0 ; kenv vale primero 0 y dura idur/2 luego vale 1 y dura lo mismo, finalmente vuelve a 0
;aplicamos una función de 1 a 0 en el canal izquierdo
; y de 0 a 1 en el canal derecho
aleft = afiltered * (1 - kpan)
aright = afiltered * kpan
;salidas izquierda y derecha
;no olvidar que multiplicamos por la envolvente
outs kenv * aleft, kenv * aright
endin
</CsInstruments>
;y ahora la partitura:
<CsScore>
;p1 p2 p3 p4 p5 p6 p7
;instrumento, tiempo de inicio, duración en seg., iamplitud, ifreqInicial, ifreqFinal, ibandwidth
i1 0 10 20000 5000 100 150
i1 8 10 20000 20 10000 250

</CsScore>
</CsoundSynthesizer>

Veamos otro ejemplo utilizando otro opcode que está asociado al histórico filtro escalera Moog Lader

<CsoundSynthesizer>
<CsOptions>
-n -d -+rtmidi=NULL -M0 -m0d --midi-key-cps=4 --midi-velocity-amp=5
</CsOptions>
<CsInstruments>
; Initialize the global variables.
ksmps = 32
nchnls = 2
0dbfs = 1

;instrument will be triggered by keyboard widget


instr 1
p5=1
kEnv madsr .1, .2, .6, .4 ; genero los tiempos ADSR de la envolvente
aOsc vco2 p5*kEnv, p4 ; creo una variable donde se guardará el sonido generado por el vco, multiplico la amplitud por la envolvente
print p4,p5 ; imprimo la frecuencia y su amplitud
aLp moogladder aOsc, 500, 0 ; creo un filtro llamado aLp (pasabajo) del tipo Moog con una frecuencia de 500 Hz y sin resonancia (0).
outs aLp, aLp ; provoco la salida estéreo de ese sonido generado y filtrado.
endin

</CsInstruments>
<CsScore>
</CsScore>
</CsoundSynthesizer>

SINTESIS POR FRECUENCIA

Consiste en una onda portadora o carrier que tiene una frecuencia fija y es modulada por otra señal variable llamada moduladora, el resultado
eses el siguiente
Esto genera por ejemplo el efecto de vibrato que oscila en una determinada frecuencia principal. Veamos un ejemplo en CSOUND
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
sr = 48000
ksmps = 32
nchnls = 2
0dbfs = 1
instr 1
aMod poscil 100, 5 , 1 ;Moduladora: el oscilador senoidal=1 poscil produce frecuencia: 5Hz y Amplitud 100
aCar poscil 0.2, 440+aMod, 1 ;Portadora: senoidal (1) de amplitud:0.2 y de frec. 440Hz, le sumo señal modulada que produce un vibrato
outs aCar, aCar
endin
</CsInstruments>
<CsScore>
f 1 0 4096 10 1 ;Define lo que se llaman tablas, en este caso la tabla f1 son los parámetros para una onda senoidal.
i 1 0 2 ; El instrumento 1, comenzará a sonar en el instante 0 durante 2 segundos.
</CsScore>
</CsoundSynthesizer>
ANALISIS Y RESINTESIS

El siguiente apunte tiene como objetivo ayudar a comprender en forma práctica la guía del tema 10 que puede descargarse
de la plataforma de manera de ser un complemento para su estudio y profundización y no un reemplazo de la misma.

Prof. Ing. Daniel Lodi

Análisis por reorganización espectral


Este proceso consiste en tomar una muestra de los distintos parámetros existentes en un archivo de sonido para re-utilizarlas para que genere con el mismo
“timbre” o bien con la posibilidad de modificarlo, otro sonido como si lo hubiese generado la misma fuente sonora.

No siempre el objetivo es lograr emular al sonido de un determinado instrumento (como los distintos plugins VST) sino que muchas veces se pretende como
fin, lograr nuevos sonidos a partir de otros tomados como muestra.

Descargo un sonido de un piano desde

[Link]
Renombro ese archivo como [Link] pero me aseguro que dicho archivo sea monofónico, ya que el procesamiento que estamos estudiando en
Csound vale para este tipo de archivos.

Una forma de evaluar ello es descargar un editor de sonidos como AUDACITY de

[Link]

Y una vez instalado abrir dicho archivo


Comprobamos que posee dos canales.

Para convertirlo a monofónico puedo ir a la opción PISTAS –MEZCLA – ESTEREO a MONO


Ahora vamos a Archivo –Exportar y lo llevamos a la siguiente carpeta para que lo pueda reconocer Csound

Y lo copio por ejemplo a C:\Program Files\Csound6_x64\bin>

Voy a transformar ese sonido en un conjunto de suma de ondas senoidales de distinta fase y amplitud, basado en la Transformación por Series de Fourier
en Tiempos Cortos (STFT :Short Time Fourier Transform).

Abro CSOUND y le pido que me recuerde en la ayuda, el uso del comando pvanal que permite crear esta estructura de Fourier en un archivo de extensión
pvx
C:\Program Files\Csound6_x64\bin>pvanal –help

Puedo observar que Csound me indica que debo colocar el nombre del archivo original (wav) y el nombre del archivo destino (pvx).

Por lo tanto, vamos a escribir lo siguiente dentro de Csound

C:\Program Files\Csound6_x64\bin>pvanal [Link] [Link]

Ahora puedo re-utilizar ese sonido para poderlo oir a otra frecuencia, amplitud, etc.

Para ello voy a copiar en Cabbage el siguiente código donde voy a utilizar el opcode pvoc.

Este comando reconstruye la señal a través del método de Phase Vocoder, ver más datos en [Link]
<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
0dbfs = 1
nchnls = 2

instr 1
; analizar "[Link]" primeramente con PVANAL
ispec = p4
ktime line 0, p3, 1.55 ; la variable ktime valdrá desde 0 hasta 1.55 durante p3 segundos.(en CsScore p3=6)
asig pvoc ktime, p5, "[Link]", ispec ; reconstruye la señal a partir del instante inicial ktime y p5 indica nivel de transposición
outs asig, asig
print ispec,p1,p2,p3,p4
endin
</CsInstruments>
<CsScore>

i1 0 5 0 1 ; debe sonar el instrumento 1 al inicio de 0seg durante 5seg la señal muestreada


; notar que si cambio 0 por otro valor no cambia
; el 1 indica que no voy a cambiar la frecuencia original
; pero si coloco 2, irá a una octava superior y si coloco 1.5 o múltiplo de 0,083 subiré o bajaré semitonos
i1 6 6 0 1.5
; En resumen, pude hacer sonar otra nota con el mismo sonido re sintetizado de la muestra original.
</CsScore>
</CsoundSynthesizer>

Al ejecutarlo puede aparecer un error que indica error que Cabbage no encuentra ese archivo que como se puede ver en la parte superior de la siguiente
figura en mi caso lo está buscando en

C:\users\PC-001

Pues entonces lo copio allí

Por ello voy a copiar el archivo [Link] que se encuentra en

C:\Program Files\Csound6_x64\bin

A C:\users\PC-001 que es la carpeta que me pide Cabbage.

Nota: Se debe observar en qué carpeta se está solicitando Cabbage, o mejor dicho, cuando se indicó grabar el nombre del archivo, se deberá consultar en qué
carpeta ha sido guardado.
Otro método de síntesis basada en la posibilidad de representar un sonido (especialmente armónico) en una suma de senoides es la
RESINTESIS ADITIVA
Csound cuenta con un opcode que permite el análisis de las distintas amplitudes y armónicos de una onda. Dicho comando es hetro.

En un nivel conceptual básico, la síntesis aditiva y la síntesis espectral (modelado) se parecen en que ambas técnicas pueden recrear sonidos complejos mediante la
adición de un gran número de señales más sencillas. Sin embargo, en la práctica son dos métodos muy diferentes. La resíntesis aditiva intenta comprender la
estructura armónica de un archivo de audio y, a continuación, recrea cada parcial armónico mediante una onda sinusoidal independiente. Por su parte, la
resintetización espectral analiza el espectro de la frecuencia cambiante de una señal e intenta recrear dichas características espectrales en la señal resinstetizada.
Un sistema de resíntesis aditiva genera una serie de ondas sinusoidales, con los tonos y los niveles apropiados a lo largo del tiempo, para cada armónico. Esto se
realiza calculando la frecuencia y la amplitud de cada armónico en el espectro de frecuencias general del sonido analizado. Una vez resintetizado el sonido de esta
forma, puedes ajustar la frecuencia y la amplitud de cualquier armónico (onda sinusoidal). En teoría, podrías incluso reestructurar un sonido armónico para hacerlo
inarmónico, por ejemplo.
En un sistema de síntesis espectral, el espectro audible se divide en un gran número de “líneas espectrales” y se analiza la distribución de la energía por esas líneas. El
sonido se recrea al rellenar cada línea espectral con el volumen de la señal necesario, ya sea mediante ondas sinusoidales o mediante ruido filtrado y, por último, se
suman los resultados.
La diferencia en el enfoque implica que las dos técnicas son adecuadas para diferentes tipos de sonido. La resíntesis aditiva es perfecta para crear notas individuales
con una estructura armónica clara. La resíntesis espectral es más adecuada para los sonidos inarmónicos complejos como la percusión o el material polifónico, que
contiene acordes en lugar de notas individuales.

Verifiquemos abriendo nuevamente Csound y aplicar el siguiente comando para el anterior archivo pianoLAwav que ahora guardará en uno nuevo, que
llamaremos [Link] el conjunto de este análisis

C:\Program Files\Csound6_x64\bin>hetro [Link] [Link]


Ahora llevemos como antes, a la carpeta de análisis de Cabbage al archivo [Link]
<CsoundSynthesizer>
<CsOptions>

</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

instr 1
; Analizar primero con hetro al archivo "[Link]"
kamod = 1 ; factor por el que multiplico la amplitud de cada sumando
kfmod = p4 ; factor de frecuencia, si es 1 es la original, si es 2 una octava superior si es 0.5 una inferior
ksmod = p5 ; factor de velocidad en milisegundos de tiempo de análisis

asig adsyn kamod, kfmod, ksmod, "[Link]"


outs asig, asig
endin

</CsInstruments>
<CsScore>

i1 0 4 1 .2 ; instrumento 1, suena a los 0 seg durante 4 seg. con factor de frec=1 (no se modifica) y factor de velocidad .2ms
i1 5 2 0.5 .2 ; instrumento 1, suena a los 5 seg durante 2 seg. con factor de frec=0.5 (baja una oct.) y factor de velocidad .2ms
</CsScore>
</CsoundSynthesizer>
NOTA: Exportar sonido .WAV

Recordemos que en todo momento, podemos exportar el sonido a un formato WAV con la orden fout

En el ejemplo siguiente, la salida estará a 16 bits porque se seleccionó el argumento 4.

Ver detalles en:

[Link]

<CsoundSynthesizer>
<CsOptions>
</CsOptions>
<CsInstruments>
instr 1
aSin poscil 0dbfs/4, 440
out aSin,aSin
fout "[Link]" ,4, aSin, aSin ; genera el archivo [Link] en la misma carpeta que muestra cabbage arriba.
endin
</CsInstruments>
<CsScore>
i1 0 3
</CsScore>
</CsoundSynthesizer>
RESINTESIS SUSTRACTIVA
En este tipo de síntesis, se diferencia en que considera en forma independiente la altura y el espectro en forma independiente y uno de sus ejemplos es la
llamada Codificación Predictiva Lineal (LPC) donde se reconstruye una señal en función de la suma de distintas amplitudes más un llamado error.

Se deja para poder probar, de la misma manera que lo antes realizado el análisis con el opcode lpanal
[Link]
mr5&sig=ACfU3U1Qh05Mz30c4dxgGO4eY7f3HFaVGg&hl=es-
419&sa=X&ved=2ahUKEwikrfe5t_31AhWBp5UCHc1zAGsQ6AF6BAgQEAM#v=onepage&q=ipanal%20csound&f=false

SINTESIS de FORMANTES
El término formante se refiere a los picos del espectro de armónicos de un sonido complejo. Están usualmente asociados pero no necesariamente, con algún
tipo de resonancia de la fuente. Debido a su origen resonante, cuando cambia la frecuencia de la fundamental tienden a permanecer esencialmente igual.
Los formantes del sonido de la voz humana son particularmente importantes porque son componentes esenciales en la inteligibilidad del habla. Por
ejemplo, la distinguibilidad de los sonidos vocales se puede atribuir a las diferencias en sus tres primeras frecuencias formantes. La producción de diferentes
sonidos de vocales, consiste en resintonizar estos formantes dentro de un rango general de frecuencias. Benade sugiere los siguientes rangos de frecuencias
de los formantes de una voz masculina:

Esta es una de las maneras en que podemos sintetizar la voz humana

[Link]

Podemos profundizar todo ello en Csound ingresando al siguiente ejemplo que aparece en:

[Link]
SINTESIS GRANULAR
La Síntesis de sonido basada en granos o Síntesis granular es una técnica de producción de sonidos que se basa en una concepción del sonido en términos
de partículas o cuantos, pequeñas explosiones de energía encapsuladas en una envolvente y agrupadas en conjuntos mayores, cuya organización será
determinada por dos métodos principales de distribución temporal: Sincrónico y asincrónico.

El método sincrónico es aquel en que los granos son disparados a frecuencias más o menos regulares para producir sonidos con un periodo de altura
particular. Por su parte, el método asincrónico genera aleatoriamente las distancias entre los granos para producir una nube sonora.

Un ejemplo de muchos sonidos que generan en su combinación un determinado efecto, lo podemos notar en la maraca.

Existen miles de plugins para diversos DAW que producen estos efectos con una muestra o sample de una onda.

Uno de ellos es el Fruity Granulizer

[Link]

Como vimos en anteriores clases, si descargamos la versión de prueba de FL Studio desde

[Link]

Podemos buscar por el nombre de este plugin en la lupa que aparece arriba a la izquierda de la imagen
Arrastramos hacia el rack de instrumentos el sintetizador Fruity Granulizer y seleccionamos la forma de onda que deseamos granular.
Podremos volver al toma eléctrico o plug y seleccionar los distintos parámetros para escuchar sus diferencias
En Csound se encuentran varios tipos de ejemplos que utilizan el modelo de partículas para lo cual se recomienda revisar sus opcodes.

Síntesis mediante modelos físicos


En síntesis de sonido, síntesis por modelado físico se refiere a métodos en los cuales la forma de onda del sonido a generar es calculada usando
un modelo matemático, por ejemplo un conjunto de ecuaciones y algoritmos para simular una fuente física de sonido, usualmente un instrumento musical.
Por lo tanto se enfoca al estudio del elemento que produce al sonido para tratar de simularlo en vez de analizar el resultado de la forma de onda de dicho
sonido.

En la mayoría de instrumentos de cuerda, viento, etc, las ondas estacionarias que son el resultado del traslado de la señal hacia un lado y luego volviendo
hacia el otro se puede modelar a través del proceso de Guías de Ondas (wave guides).

En Csound podemos encontrar el opcode wguide1 que reconstruye un retardo de la onda inicial que vuelve y se suma a la anterior sumado a un filtro pasa
bajo o el opcode pluck que emula una cuerda, con un ejemplo que podemos copiar y escuchar desde:

[Link]

También podría gustarte