TARJETAS DE AUDIO - PRESENTACIÓN

 

 

MUESTRAS DE EFECTOS

En primer lugar vamos a hacer un repaso de algunos de los efectos que se pueden obtener gracias al procesado de una tarjeta de audio. Para ello, hemos incluido tres muestras de sonidos de guitarra, correspondientes a guitarras arpegiadas, punteadas y rítmicas (por obtener un panorama un poco más amplio de cómo actúan estos efectos) y una cuarta muestra referente al efecto producido sobre la voz humana al invertir la onda sonora que genera. Incluiremos primero los enlaces a los archivos sonoros y las explicaciones y después algunos comentarios adicionales.

 

Primera muestra.

- Original: se trata de un arpegio de guitarra eléctrica sin modificar.

- Delay: en el efecto de delay, se introducen copias retardadas del original.

- Reverb: la reverberación está bastante exagerada (casi se convierte en eco) para apreciarla más fácilmente.

- Flanger: al original se le añade el flanger (algo más sucio que el que veremos en la tercera muestra).

- Chorus: a la muestra original se le ha añadido un efecto de chorus.

- Compresor: se añade al original el efecto dado por el compresor, por lo que la amplitud se homogeiniza.

- Cambio de tono: lo que hacemos es subir dos tonos el sonido original, pero manteniendo la duración de cada nota (pese al cambio en frecuencia).

- Cambio de duración temporal: aquí el tono de cada nota se mantiene, pero variamos la duración de las mismas, acelerando la pieza a medida que se ejecuta.

Como comentarios adicionales digamos que en los gráficos de onda del sonido se pueden ver algunas características de los efectos reseñados. Por ejemplo, debajo se ve cómo el delay efectivamente realiza repeticiones de la original:

 

En cuanto al efecto del compresor, podríamos comparar gráficas aquí y veríamos como la amplitud en él es casi constante, pero hemos encontrado más interesante hacerlo en el siguiente caso, donde además tenemos una puerta de ruido y un aumento del tiempo de relajación.

Por último, en cuanto a los dos últimos efectos, se ha de decir que son efectos no convencionales que requieren una gran cantidad de procesado para ser implementados, pues por un lado una variación al alza de la frecuencia podría llevar a que disminuyese el tiempo en que se desarrolla la mezcla, pero el efecto de cambio del pitch se preocupa de evitar esa disminución y por otro, si disminuimos el tiempo en el que la mezcla se ejecuta, podría cambiar el tono, pero no es así en el efecto de cambio de duración temporal.

 

Segunda muestra.

- Original: ahora el sonido es más de tipo punteo (con notas sueltas separadas).

- Compresor: aplicamos un compresor.

- Puerta de ruido: al original le aplicamos una puerta de ruido y luego usamos el compresor (así eliminamos el ruido).

- Tiempo de relajación: ahora controlamos el tiempo de relajación del compresor (además de aplicar la anterior puerta de ruido).

Mostraremos en cuatro gráficas sucesivas cada una de estas muestras y después compararemos:

 

Para empezar, ya podemos ver como el compresor ha hecho prácticamente constante la amplitud de la señal de audio. Debemos fijarnos en como cambiarán las zonas en que está el ruido (las señaladas).

 

Con la puerta de ruido vemos como la señal original se hace cero automáticamente para valores que sean menores que un determinado umbral (se puede observar en las zonas en que hemos puesto "cero"). Cuando a partir de aquí usamos el compresor y además aumentamos la relajación por debajo del umbral, vemos como el ruido es mucho menor (véanse las mismas zonas que antes) que en el caso de aplicar el compresor únicamente. Además vemos que la relajación lleva mucho más tiempo, como se observa, por ejemplo, alrededor de la zona donde hacemos la anotación.

 

Tercera muestra.

- Original: la guitarra suena más rítmica en esta ocasión.

- 44KHz, 8 bits: notamos el ruido de cuantificación.

- 22KHz, 16 bits: aunque ya no sea calidad CD, la disminución de la frecuencia de muestreo es apenas inapreciable (nuestro oído llega a más de 10KHz con dificultades, por lo que podemos filtrar paso bajo hasta ese valor cualquier señal que nos llegue; como la frecuencia a la que muestreamos es más del doble, se cumple el teorema de Nyquist).

- 22KHz, 8 bits: se combinan los dos problemas anteriores.

- 8KHz, 16 bits: ahora sí que se aprecia la pobreza del sonido por la bajada de la frecuencia de muestreo.

- Flanger: este flanger suena más limpio que el del caso primero.

- Reverb: la reverberación cambia la textura del sonido.

- Distorsión: a partir de una reverb introducida previamente, se distorsiona el sonido subiéndolo por encima de su nivel de saturación.

Veremos aquí debajo, cuál es gráficamente el efecto de introducir esa distorsión y comprobaremos como la señal está verdaderamente saturada.

 

 Cuarta muestra.

- Palíndromo: se trata de la conocida frase "Dábale arroz a la zorra el abad", que, como todo el mundo sabe, se pronuncia de la misma forma leída de derecha a izquierda o de izquierda a derecha.

- Palíndromo invertido: vemos lo que sucede con la voz humana cuando se la invierte. Aunque se reconoce la misma frase, por supuesto la entonación no es nada natural.

 

VST PLUG-INS

Con objeto de incluir en el trabajo aspectos prácticos relacionados con las tarjetas de procesamiento de audio, pensamos desde un primer momento ilustrar la libertad que existe, para un usuario con algún conocimiento de programación en C++, para sacar el máximo partido a su tarjeta mediante el uso de software fácilmente elaborado por él. Un mecanismo que permite lo dicho es la elaboración de plug-ins para Cubase. Como ya dijimos en la sección sobre Steinberg VST, los efectos que presentaremos aquí tienen la cualidad de poder ser utilizados en tiempo real y se desarrollan a partir del SDK 2.0 para la elaboración de VST plug-ins. Al final incluimos enlaces a lo ficheros de texto con el código original y a los manipulados. No podemos incluir todos los ficheros necesarios para la compilación porque son propiedad de Steinberg, aunque se pueden descargar gratuitamente de su sitio web www.steinberg.net.

 

 Delay

Vaya por delante que el programa relativo a este efecto no ha sido desarrollado por nosotros, sino que se incluye en el SDK como ejemplo. De todas formas, se trata de una herramienta muy potente para, manipulándola, conseguir cualquier efecto basado en delay que se nos ocurra y podamos programar. Preferimos no entrar en detalles acerca de cómo está programado, pero mencionaremos que utiliza C++ y que la clave del algoritmo consiste en un bucle en anillo (tal que cuando se llega al final almacenando, se vuelve a las posiciones iniciales) de tamaño el máximo de retardo que podemos introducir. Mostramos un ejemplo de cómo suena este efecto y como se pueden manipular sus parámetros en tiempo real.

 

 Delay invertido

Este es el efecto que nosotros diseñamos a partir del delay original. Se trata de retardar las muestras originales, pero no necesariamente atenuadas, sino que con los controles podemos hacer que el sonido original vaya creciendo en intensidad a cada repetición (lógicamente llegará un momento que se sature, con lo que tendremos que tener cuidado).

 

 Amplificador de ganancia por segundos

Este plug-in fue desarrollado a partir del amplificador que se incluía con el SDK. Lo que hace es que amplifica y atenúa por segundos de manera alternativa (un segundo amplifica, al siguiente atenúa y así sucesivamente) en una cantidad proporcional a lo indicado en el control de su parámetro de ganancia. Para observar su efecto, trabajaremos con una muestra de audio en la que se cuenta de uno a diez los segundos que pasan.

 

 Balanceado estéreo

También a partir del amplificador original, lo que hacemos es tomar una muestra de entrada y subir y bajar los niveles de reproducción de cada altavoz alternativamente con un periodo que concuerda con el ritmo de la pista, produciendose un efecto de balanceado o alternancia entre ellos.

 

Combinación de efectos y acción directa

Aquí observaremos dos cosas. Por un lado, como los efectos dados por los plug-ins se pueden combinar direccionando la salida de uno a la entrada de otro y por otro, como se pueden aplicar directamente sobre lo que llegue por las entradas de la tarjeta, en particular por el micrófono (eso sí, con un cierto retardo dado por el tiempo de procesado).

ADelay.cpp

ADelayInvertido.cpp

AGain.cpp

AGainSegundo.cpp

AGainStereo.cpp