Tutorial 3



Filtros resonantes con envolventes

En este tutorial refinaremos nuestro último instrumento, colocando un filtro pasabajos resonante, que varía en el tiempo.El filtro decrece desde el inicio de la nota y vuelve a subir una vez se levanta la nota.

También se usará otra tabla para el oscilador, esta vez una aproximación a una onda cuadrada que se ve así:






Comenzamos:



<CsoundSynthesizer>

<CsOptions>

-+P12 -+K0 -m0 -+O

;He agregado dos banderas nuevas que desabilitan los mensajes para
;mejor desempeño en tiempo real.

</CsOptions>

<CsInstruments>

sr=44100

kr=441

ksmps=100

nchnls=2

;Encabezados de siempre

massign 1,3

;Se asigna el canal MIDI 1 al instrumento 3

instr 3

icps cpsmidi

ivel veloc

;Las asignaciones de nota y velocity que vimos.



kenv linsegr 0,0.1,10000* (ivel/128), 0.5, 0

;He modificado el tiempo de ataque y liberación de la envolvente del instrumento
;Esta vez el ataque es más rápido (0.1 seg) así como el decaimiento (0.5 seg).

kfilt expsegr 1,0.7,0.001,0.5,0.5

;El opcode expsegr es otro generador de envolvente, pero esta vez controlará
;la frecuencia de corte del filtro. Expsegr genera una envolvente compuesta
;no de segmentos de lineas rectas sino de curvas exponenciales. Vea la imagen
;al final que muestra esta envolvente. En Csound los generadores de envolvente
;que terminan en 'r' dependen de un mensaje 'note-off' MIDI, para su sección final
;de decaimiento. En este caso el valor de 0.001 se mantiene hasta que se recibe
;un mensaje de note off, y luego sube hasta 0.5 en 0.5 segundos, el mismo tiempo usado
;más arriba para el decaimiento de la amplitud.

kcutoff = (kfilt*icps)

;La freucuencia de corte debe depender de la frecuencia de la nota para que tenga un efecto similar
; en cada nota. Por eso se mulitplica el coeficiente kfilt por la frecuencia icps de la nota.

asig oscil3 1, icps, 1

;El oscilador oscil3 funciona igual que oscil y oscili pero realiza interpolación
;cubica entre los puntos de una tabla. Es más precisa, pero de nuevo requiere
;más procesador.
;La tabla-f 1 ahora contiene una onda cuadrada.

aout lowres asig, kcutoff, 1.2

;El opcode lowres en un filtro pasabajos resonante (del tipo encontrado en sintetizadores
;analógicos). El primer parametro indica la señal a ser procesada, seguido de la frecuencia de
;corte, que en este caso está dictada por la variable kcutoff. La resonancia del filtro sigue, y en este
;caso es de 1.2. Este valor se escogió experimentando. Note como el filtro baja cuando se toca la nota
;se queda constante al llegar a cierto punto, y vuelve a subir cuando se suelta la nota.

outs aout*kenv , aout*kenv

;Envía la señal con su envolvente a las salidas



endin



</CsInstruments>



<CsScore>



f 1 0 4096 10 1 0 0.5 0 0.25 0 0.125 0 0.0625

;Genera una curva que aproxima una onda cuadrada



f 0 120

</CsScore>

</CsoundSynthesizer>



La curva de envolvente del filtro se ve así:




La parte plana del medio no tiene una duración definida, depende de cuanto se mantenga la nota oprimida en el teclado. Puede intentar usando otras tablas-f, o variando el valor de la resonancia. También intenta cambiar oscil3 por oscili u oscil, y note la diferencia.

Regresar a los tutoriales MIDI