DESCARGO

Revisión: 0
Fecha: 23 Ago 1997

La página de efectos


Delay, eco, reverberancia


El delay no es más que una línea de retardo; breve y conciso. La variedad de efectos y sonidos que pueden lograrse con él excede al tamaño de su descripción; según situemos este retardo entre 50 y 100 ms lograremos un efecto de "sonido sobre sonido" (sound on sound), aumentando la demora se logran efectos de "slapback". Realimentando este retardo se logra la repetición, cosa que suele definirse como eco, si el tiempo de demora es largo, o bien reverberancia si el tiempo de demora es corto (del orden de los 100ms), aunque deben hacerse aclaraciones al respecto. En mi caso, prefiero hacer la salvedad de que un eco real no repite el sonido tal cual es, sino que resulta filtrado en agudos, por lo que yo antepondría un filtro pasa-bajos a la salida de la línea de retardo antes de realimentar y sumar. Otro animalito de esta raza es el multi-tap delay, que no es otra cosa que una línea de retardo con varias salidas (taps), cada una, como es de esperar, con un retardo distinto. Si además se realimentan cada una de estas salidas, se logra una serie de patrones rítmicos interesantes; por supuesto que en retardos largos.

Delay block diagram

La reverberancia es otro asunto completamente distinto.
Si bien el esquema básico de demorar y realimentar produce una sensación de espacio similar a la reverberancia producida en un recinto, este modelo carece de una componente fundamental que caracteriza a ese recinto, y que son las "reflexiones tempranas" (early-reflections). El modelo descripto representa con bastante aproximación lo que se produce en un recinto al extinguirse el sonido. La línea de retardo realimentada se comporta como un filtro IIR (Infinite Impulse Response), en tanto que continúa emitiendo sonido por una largo rato una vez que ha cesado la excitación original; hagamos entonces la salvedad de considerar a ese "largo rato" como el infinito, la cual es válida si consideramos que unos 10 segundos representan dos órdenes de magnitud respecto de los 100 ms a los que se producen las early reflections. Estas reflexiones tempranas, son señales que nos llegan inmediatamente después de la emisión original del sonido, y desaparecen casi inmediatamente después que este; se producen por la existencia de obstáculos y caminos paralelos entre la fuente de señal y nuestros oídos. La intensidad de estas reflexiones es comparable a la del sonido original, mientras que la de las "reflexiones tardías (por llamarlas de alguna forma), que se originan en los rebotes en las paredes, piso y techo, y que siguen resonando "largo rato", es considerablemente menor. Estudiosos del tema, como Schroeder y Moorer, han modelado las early-reflections mediante filtros FIR (Finite Impulse Response), y las late-reflexions con filtros IIR en cascada, logrando una aproximación bastante precisa al sonido reverberado real.
Analog Implementation Digital Implementation DSP Implementation

Flanger


El flanger no es ni mas ni menos que una línea de retardo variable realimentada (mirá el diagrama). Se demora la señal entre 0 y 10 ms y se suma con la señal original. Parte de la señal demorada puede sumarse a la señal de entrada antes de dirigirse a la linea de retardo. El hecho de sumar las señales original y demorada, produce un filtro peine, el cual a su vez se va desplazando en el eje de frecuencias al variar el tiempo de demora, los dientes se alejan y acercan entre sí conforme se acorta o se alarga el tiempo de demora. Esto produce la clásica envolvente de "avión a chorro". A medida que aumentamos la realimentación, se acentúa este efecto, pudiendo el sistema llegar a oscilar. El barrido del tiempo de demora debe ser lo más lineal posible, para que se aprecie mejor el efecto, una onda triangular suele ser la mejor elección. Si bien el movimiento de los dientes del peine que produce un barrido lineal resulta notóreo y agradable, si se los desplaza con una función de tipo exponencial, que recorra distancias iguales (en octavas) en tiempos iguales, se aprecia mucho mejor el efecto.
Si nos excedemos de los 10 ms de demora, empezará poco a poco a hacerse notar el efecto de "coro" que se describe a continuación.
Analog Implementation Digital Implementation DSP Implementation

Chorus


El chorus usa un esquema similar al flanger: una línea de retardo variable y luego sumar la señal original con la demorada. Pero, al tratarse de retardos más grandes, de entre 10 y 50 ms, el efecto peine se hace menos perceptible (los dientes ya están muy encimados). El efecto se hace aquí por dos razones: el retardo variable ocasiona un desplazamiento de la frecuencia de la señal por analogía con el efecto Doppler, y la suma de esta señal con la original da la impresión de tener otro instrumento tocando a la par (afinado levemente distinto). Al hacerse este retardo continuamente variable, da por resultado un "coro" de instrumentos sonando a la par. El uso de una señal moduladora del retardo como la triangular, cuya derivada es una constante, genera dos alteraciones (una hacia arriba y otra hacia abajo), es decir, en la rampa ascendente el retardo disminuye y se corre la frecuencia un valor constante hacia arriba, mientras que en la rampa descendente se produce un corrimiento constante hacia abajo. Este corrimiento fijo, en profundidades elevadas de modulación del retardo, puede producir un efecto desagradable de desafinado. La clave es utilizar como moduladora del retardo una señal cuya derivada sea continuamente variable (ej. un seno), de modo que el desplazamiento de frecuencia obtenido varíe también en forma continua (un coseno); o bien (la más difícil), una señal de tipo exponencial que barra el ancho deseado en el tiempo deseado, recorriendo distancias iguales (en octavas) en tiempos iguales en el eje de frecuencias. La derivada de una función exponencial es otra función exponencial cambiada de escala, por lo que también recorrerá espacios iguales (en octavas) en tiempos iguales, logrando que el pitch shift sea progresivo. Como el coeficiente cambia (se invierte) en el regreso del barrido, el pitch shift observado será igual (en octavas) hacia abajo que hacia arriba, por lo que el efecto de chorusing generado será más real, profundo y agradable, especialmente a velocidades lentas; donde no se notará el clásico "oleaje" y se percibirá como un verdadero coro. No debe excederse con este tipo de modulación, ya que es muy fácil introducir un desagradable vibrato en lugar del chorus.
Analog Implementation Digital Implementation DSP Implementation

Pitch shift o Desplazamiento de frecuencia


Si pasamos una señal por una línea de retardo y hacemos que este retardo disminuya constantemente, tendremos, por analogía con el efecto Doppler, un aumento de la frecuencia proporcional a la velocidad de disminución del retardo. Si esta velocidad es constante, es decir, el retardo disminuye de manera constante, el aumento de frecuencia será constante. Tenemos entonces que, si alteramos constantemente el retardo de nuestra línea y graficamos esta variación en función del tiempo, tendremos una recta cuya pendiente nos da la variación de frecuencia a obtener. Tendremos entonces una señal de frecuencia f2 = f1 + a * f1, donde a es la pendiente de la recta anteriormente mencionada, y f1 es la frecuencia de la señal original. Sabemos que la escala temperada separa sus notas en intervalos de "raiz doceava de dos", es decir, doce de estos intervalos hacen una octava, en la cual la frecuencia base se multiplicó por dos. Si queremos producir un pitch shift de 1 semitono entonces f2= f1 * rdd , donde rdd es "raiz doceava de dos". Como f2 = f1 + a * f1 = (1+a) * f1, resulta a = rdd - 1. Y así sucesivamente podemos calcular todas las pendientes necesarias. Si queremos ir 'hacia abajo', una octava hacia abajo es la mitad de frecuencia, por lo que nos moveremos en intervalos de "raiz doceava de un medio".
Ahora bien, todo esto es muy bonito, pero cómo hacemos un retardo que aumente constantemente o disminuya constantemente sin caer en largas demoras o llegar a cero ? Bien, esa es la razón por la cual este método no es perfecto; una de las soluciones es usar dos líneas de retardo y conmutar de una a otra cuando estamos por exceder los límites de buen funcionamiento; pero esta conmutación ocasiona un brusco salto de fase de la señal generada, que puede resultar muy desagradable; se recurre entonces a "fundir" las señales de ambas líneas de retardo de modo de suavizar este salto de fase, ocasionando a lo sumo un trémolo y/o un vibrato no deseados, pero tolerables. Si el tiempo durante el cual se realiza el barrido del retardo fuera de una longitud tal que entrara en él un número entero de ciclos de la señal, al reiniciar el ciclo (o cambiar de línea de retardo) no se produciría ningún salto de fase. Empero, esto requiere determinar a priori el período de la señal y actuar en consecuencia sobre el barrido, lo cual limita su aplicación a sistemas con DSP. En estos sistemas, se puede jugar facilmente con los cruces por cero de la señal para tratar de minimizar el problema de los saltos de fase.
Existen, ademas de este, otros métodos, algunos mucho más científicos y con sólidas bases matemáticas, no obstante, aún no los he probado...
Analog Implementation Digital Implementation DSP Implementation

Compresión, expansión , compresión-expansión, compresores/limitadores, downward expanders y noise-gates.


La compresión es el proceso por el cual se hace caber un determinado rango dinámico en otro más pequeño. Por ejemplo, dada una compresión 2:1, se puede hacer caber un rango dinámico de 100dB en un medio de 50dB, es decir, un medio que por ejemplo tiene un ruido en reposo de -50 dBm y satura a 0dBm. La expansión es el proceso complementario de este, es decir, se le da un rango dinámico de 100 dB a una señal cuyo RD es de 50 dB, es decir, se realiza una expansión 1:2. Al proceso complementario de comprimir la señal antes de ingresar al medio de rango dinámico reducido y expandirla al salir de éste, se le llama compresión-expansión. Las ventajas obvias que presenta este esquema son:
1- Logramos "meter" todo el rango dinámico original en un "espacio reducido", se preserva la totalidad del rango dinámico original.
2- Si bajáramos el rango dinámico de la señal por otros medios (bajando el volumen), y lo limitáramos a 50dB para que quepa en este medio, tendríamos un ruido a -50 dBm en ausencia de señal, propio del medio del ejemplo. El realizar la expansión 1:2 a la salida reduce este ruido en reposo a -100dBm.
La clave para realizar cualquiera de estas operaciones consiste en fijar correctamente el umbral a partir del cual se realiza la tarea. En los compresores-expansores, este umbral suele ser 0 dBm, entonces, toda señal que supere 0dBm será atenuada y toda señal inferior a 0dBm será amplificada en el proceso de compresión, mientras que se realizará el proceso contrario en la expansión. La relación que una el nivel de entrada y el de salida dará las relaciones de compresión y de expansión. Ejemplo: una relación de compresión de 4:1 implica que si la señal de entrada es de 40 dBm, la de salida será de 10dBm; ídem en la expansión, esos 10dBm redundarán en 40dBm a la salida (para un umbral de 0dBm).
Existe una clase particular de compresor, que sólo comprime cuando el nivel de señal supera al umbral establecido. Se lo llama compresor/limitador, por el hecho de que limita el valor de la señal comprimiéndola. A la diferencia entre el nivel de entrada y el de salida de un compresor/limitador se lo llama "reducción de la ganancia" (gain reduction), y expresa la atenuación en dB que sufrió la señal al ser comprimida.

Compressor/limiter block diagram

La formula general para un compresor/limitador es:
Vout[dB] = Vt[dB] + (Vin[dB] - Vt[dB]) / CR si Vin[dB] > Vt[dB], donde CR es la relación de compresión
Vout[dB] = Vin[dB] si no se cumple la condición anterior.

Así, si mi umbral es de -10 dBm, tengo una señal de entrada de +30 dBm y una relación de compresión de 4:1, la señal de salida será (30 - (-10)) / 4 + (-10) = 0 dBm, y la reducción de la ganancia de 30dB, es decir, se atenuó 30 dB a la señal de entrada.
Un caso especial de compresor/limitador es el limitador, cuya relación de compresión es infinita, es decir, no importa cuánto supere la entrada al valor de umbral, la salida no superará a éste. Por ejemplo, en el caso anterior, la salida sería de -10 dBm.
Si aplicamos el mismo concepto de compresor/limitador a un expansor, tendremos un downward expander, o "expansor hacia abajo", es decir, un expansor que sólo expande señales que están por debajo del umbral (inclusive el ruido), y en el caso particular de que la expansión sea infinita, tendríamos una "compuerta" (gate) que se abre en presencia de una señal que supera el umbral y se cierra cuando se pasa debajo de éste, cancelando el ruido en reposo si ajustamos el umbral levemente por encima de éste; es decir, tendríamos una "compuerta de ruido" o noise-gate.
El tiempo que transcurre desde que se detecta el pasaje por el umbral de actuación hasta que el sistema actúa (la señal adopta el valor definido en la relación de compresión o de expansión en C/L o DE, la compuerta se abre en un NG) se denomina tiempo de ataque. El tiempo que transcurre desde que desaparece esta condición y el sistema se estabiliza en funcionamiento normal (ganancia unitaria en un C/L o compuerta cerrada en un NG), se denomina "tiempo de liberación" (release time).
Analog Implementation DSP Implementation

Phaser o phase shifter


El popular efecto de los 70's, el "desfasador"... El esquema de un phaser, es en cierto modo similar al de un flanger, y hasta podría decirse que su principio de funcionamiento también. Se trata de una línea de retardo pero de fase, no de tiempo, que también se realimenta. Es claro que el hecho de desfasar una señal y sumarla a la original produce un aumento o disminución de la amplitud, llegando a duplicarla si el desfasaje es un múltiplo de 360 grados o a anularla si es un múltiplo impar de 180 grados. Resulta así que nuestra red desfasadora se comporta como una cadena de filtros notch (eliminabanda) que se desplazan conforme aumenta o disminuye el desfasaje. Al ser ese desfasaje proporcional a la frecuencia pero no directamente, no se produce el efecto peine del flanger, y la envolvente resultante es menos intensa. Los notches, además, no se acercan y alejan como en el flanger sino que simplemente se desplazan, ya que la respuesta del sistema no cambia con la cantidad de desfasaje, simplemente se desplaza en el eje de frecuencias. La cantidad de notches que aparecen es la mitad de la cantidad de redes desfasadoras, ya que se necesitan dos de estas para desfasar 180 grados y sumar luego las señales en contrafase.
Matemáticamente hablando, sumar la señal directa más la salida de n redes desfasadoras resulta en una transferencia del tipo |T| = sqr( 1 + 2 cos(PH)), donde PH es el desfasaje introducido, que para una cadena de 4 etapas es PH = 8 * atan( 1/ wRC), y se ve como algo así:

Phase shifter transfer

El barrido del desfasaje debería ser tal que los notches recorrieran distancias iguales (en octavas) en tiempos iguales, lo que nos lleva a una función de tipo exponencial, dificilmente implementable por medios analógicos pero muy fácil de hacer con un DSP. Además, en la implementación analógica, deberán tenerse en cuenta detalles constructivos.
Analog Implementation DSP Implementation


Aclaraciones y explicaciones adicionales

Filtro peine o Comb Filter


El hecho de sumar las señales original y demorada, produce lo siguiente:
Supongamos tener una señal de 1KHz, y la demoramos 1ms; ambas componentes, original y demorada estarán en fase, pues 1ms coincide con el período de 1KHz. La suma nos da entonces 1+1=2. Luego de este profundo hallazgo matemático, reemplacemos la señal de 1KHz por una de 500 Hz: 1ms es ahora la mitad del período de la señal, y ésta resulta demorada 180 grados, y al sumar directa y demorada, 1-1=0. Más allá de las elevadas matemáticas, vemos claramente que hay un cero de transmisión en 500 Hz y un máximo en 1KHz. Si vamos más abajo de 500 Hz, vemos que el período se hace cada vez mayor que el retardo, hasta que en el límite es despreciable, por lo que en el orígen tendremos otro máximo. Si nos movemos hacia arriba en frecuencia, veremos que los múltiplos de 1KHz resultan tener un número entero de ciclos en 1ms, por lo que también tendremos máximos allí. Mientras tanto, los múltiplos impares de 500Hz (1,5 KHz; 2,5 KHz; etc.) resultan demorados un número entero de ciclos más un semiciclo, resultando en contrafase con la señal original y dando un cero a esa frecuencia. Como vemos, este filtro tiene la forma de muchos "dientes" hacia abajo, como un peine, razón por la cual se lo denomina filtro peine (comb filter). Matematicamente hablando, obtenemos Máximos en k/Td y Ceros en (2*k+1)/(2*Td), donde Td es el tiempo de demora; para todo k entero, de cero a infinito.
La función transferencia resulta como se ve en el gráfico a continuación.
Comb filter plot

Analogía con el efecto Doppler


Veamos primero el efecto Doppler en las ondas sonoras:
Cuando una fuente de sonido se mueve, un observador inmóvil percibirá una señal de frecuencia diferente a la generada por la fuente. La longitud de onda de la señal emitida se acortará en la dirección del movimiento en una cantidad proporcional a la velocidad de la fuente; de igual modo, se producirá un incremento de la longitud de onda si la fuente se aleja. Este es el famoso efecto que se produce al pasar una ambulancia cerca nuestro, de repente notamos un marcado descenso de la altura del sonido de la sirena.
Por ejemplo: Una fuente sonora, emite 1000 ondas por segundo (1 kHz), a la vez que se mueve en dirección a un observador a una velocidad de 100 m/seg. Al cabo de un segundo, el frente de onda, que se desplaza en el aire a la velocidad de propagación del sonido, habrá recorrido una distancia de 340 metros. Al mismo tiempo, la fuente en cuestión se movió 100 metros en dirección al observador, por lo que el mismo número de ondas que antes ocupaban 340 metros ocupan ahora 340 - 100 = 240 metros, dando una longitud de onda de 240 / 1000 = 0,24. La frecuencia de la señal percibida por el observador será el cociente entre la velocidad de propagación de las ondas y su longitud, 340 / 0.24 = 1416.7 Hz.
Si en cambio el que se mueve es el observador, no existe cambio en la longitud de onda, el observador percibirá el número de ondas emitido por segundo más el número que él atraviese en ese tiempo: 1000 + 100/0.34 = 1294.1 Hz.
Esta diferencia respecto de si se mueve la fuente o el observador es posible debido a que existe un medio, el aire, respecto al cual tiene lugar el movimiento; así puede distinguirse el movimiento de la fuente o del receptor respecto al aire en calma.
Veamos ahora el caso que nos interesa:
Tenemos una señal demorada cuyo retardo varía continuamente, se puede asemejar a tener una señal cuya fuente se aleja y se aproxima continuamente. Al disminuir el retardo, es como si la fuente de señal se acercara a nosotros, produciendo un incremento de la frecuencia percibida proporcional a la derivada de la variación de la posición con respecto al tiempo (es decir, a la velocidad). Al aumentar el retardo, la señal tarda más y más en llegar a nosotros, es como si la fuente se alejara, produciendo una disminución en la frecuencia percibida. Si la velocidad de acercamiento/alejamiento es constante, el aumento/disminución percibido será constante.
Aquí, no tenemos un medio en el cual las ondas puedan propagarse, en consecuencia no podemos discernir entre quién se mueve respecto de quién como en el caso de las ondas sonoras; sin embargo, resulta claro que el efecto de compresión del frente de onda tampoco se producirá, debido a que no existe propagación alguna en nuestro caso. Podemos decir entonces, que la fuente se acerca y se aleja del observador o que es el observador quien se acerca y se aleja de la fuente. Considerando este último caso, diremos que el observador percibirá tantos ciclos como emita la fuente más los que él cruce en su camino de acercamiento a la fuente, por analogía con el efecto Doppler.
Por ejemplo, tenemos una señal de 1KHz, pasando por un retardo que disminuye a razón de 10 ms/s, es decir, si ahora es de 50 ms, dentro de un segundo habrá disminuído constantemente hasta 40 ms y así sucesivamente; podemos decir que esto es equivalente a tener un observador que se acerca al origen de coordenadas a una velocidad de 10 ms/s (viajando sobre el eje de tiempos), desde donde una fuente de señal emite señales con un período de 1 ms, es decir, 1000 ciclos por segundo. Al cabo de un segundo, la fuente habrá emitido 1000 ciclos, y el observador habrá recorrido 10 ms, atravesado el equivalente en ciclos de lo que recorre, es decir 10 ms * 1000 ciclos/s = 10 ciclos, por lo que verá una señal de frecuencia 1000 + 10 = 1010 Hz.
Sea f1 la frecuencia de la señal, y a la velocidad de variación del retardo, tendremos un desplazamiento en frecuencia de a * f1, es decir, obtendremos una nueva señal de frecuencia f2 = f1 + a * f1 = (1+a) * f1.

Red desfasadora


Una red RC con un amplificador operacional como la siguiente, produce un adelanto de fase entre casi 0 y casi 180 grados.
Como vemos, el desfasaje depende de la frecuencia. Si se altera el valor de R, el punto de 90 grados (ubicado en wRC=1) se desplaza convenientemente. Para obtener 180 grados de desfasaje, se deben utilizar dos de estas redes, obteniéndose dicho desfasaje en wRC=1. El desfasaje para cualquier frecuencia se calcula: Ph = 2 * arc tg(1 / wRC).
Phase shifter network

Cálculo de las funciones de transferencia


Para calcular las funciones de transferencia de un phaser y un filtro comb, examinamos la respuesta del circuito a una función conocida, por ejemplo u = e ^jwt. En el comb filter esta será u' = e ^jw(t-Td) y en el phaser u' = e ^j(wt-PH).
Ambas señales se suman, por lo que la salida será u + u' y la función transferencia será (u + u') / u
Luego operamos y hallamos el módulo, conociendo algunas equivalencias trigonométricas básicas como e ^ja = cos(a) + j sen(a).


This page hosted by GeoCities Get your own Free Home Page