TARJETAS DE AUDIO – EFECTOS SOFTWARE

 

Como aplicación práctica de lo visto sobre procesado de efectos a tiempo real, vamos a estudiar un estándar muy extendido para la creación de plug-ins de edición de este tipo de efectos, creado por la firma Steinberg y difundido en forma de código abierto.

Los Plug-in (en inglés "enchufar en") subprogramas que se "enchufan" a otros más grandes y que al recibir de estos un pedido de proceso de ciertos datos le devuelven el resultado. En el caso de los efectos de sonido la ventaja de esto es doble: por un lado dotamos a la aplicación principal (un secuenciador MIDI+Audio, por ejemplo) de la capacidad de aumentar sus posibilidades de edición de sonido, y por otro se facilita la creación de estos subprogramas, ya que el programador sólo tiene que preocuparse de recibir un buffer de datos, procesarlo y devolverlo a la aplicación, y no de cómo interactua la aplicación con el subsistema de audio.

Existen diferentes formatos y cada programa de audio puede aceptar uno o varios de éstos, o tener formato propio. Vamos a mencionar los dos más extendidos, para centrarnos posteriormente en el segundo. 

 

DIRECT X (DX)

Es una "interfaz de programación de aplicaciones" (API) de Microsoft, que mejora las capacidades multimedia del equipo a través de la aceleración de las aplicaciones de audio y video en Windows 95/98/NT. DirectX proporciona una reproducción mejor de las aplicaciones multimedia y una administración mejorada de los gráficos en 3D. Los programas más comunes que soportan este formato son Cakewalk Pro Audio, Sound Forge, Cubase VST, Cool Edit Pro y Wavelab. Para realizar un diagnóstico de DirectX podemos que ejecutar el programa DxDiag.

 

STEINBERG VST

Steinberg es una compañía pionera en la elaboración de aplicaciones para la creación de música. Su producto estrella es, sin duda, Cubase, que era, en su origen, un completo secuenciador MIDI. Actualmente, a partir de la versión Cubase VST (Virual Studio Technology, esta aplicación pasó a ser un secuenciador MIDI – audio integrado. Esto quiere decir que es capaz de manejar simultáneamente pistas de datos MIDI (que por tanto sonarán a través del sintetizador adecuado) y pistas de audio, es decir, archivos de sonido *.wav por ejemplo. El problema de la sincronización MIDI-audio no es nada trivial, puesto que son formatos radicalmente distintos y el manejo de archivos *.wav requiere muchísima más capacidad de proceso que los MIDI, además de no llevar, en principio, ninguna información sobre el ritmo para mantener el sincronismo. La capacidad de proceso que se necesita para este tipo de sincronismo es muy grande, de tal forma que hasta mediados de los noventa no se consiguieron realizar aplicaciones satisfactorias, al menos a nivel comercial. Debido al rápido desarrollo de los procesadores y DSP’s, actualmente con cualquier equipo informático convencional se pueden conseguir resultados de calidad prácticamente profesional, que hace sólo 10 años serían impensables a un precio tan asequible. Tanto es así que ahora no sólo es posible manejar a la vez multitud de pistas de audio y MIDI a la vez, sino que se pueden aplicar a éstas efectos de gran calidad en tiempo real. Ahí es donde entran en juego los plug-ins VST, que es el formato de plug-in propio de Steinberg, que funciona, entre otros programas, sobre Cubase, y cuyo kit de desarrollo se ha decidido proporcionar a la comunidad Internet, para que cualquier usuario que tenga conocimientos suficientes pueda desarrollar sus propios efectos. En la figura 22 se muestra una imágen típica de Cubase VST, en este caso para MAC. Se aprecian elementos como la ventana de arrange, en el fondo, que es donde se representan y manipulan las diferentes pistas (tanto de MIDI como de audio) de la composición. Abajo está la barra de transporte, que recoge los controles típicos de "play" "stop" "ffwd", etc, así como el compás y el ritmo, en BPM (Golpes Por Minuto). A la izquierda hay un recuadro que muestra diferentes controles para la ecualización y la adición de efectos a una pista determinada. Los parámetros de estos efectos, a su vez, se controlan mediante el recuadro de la derecha, y finalmente, debajo de éste se encuentra el mezclador, donde se controla el volumen y otros parámetros de cada pista. Éstas no son, ni mucho menos todas las funciones y ventanas de los secuenciadores MIDI-Audio, pero servirá para hacernos una idea.

Vemos que todo esto se presenta con gráficos "hiperrealistas" para subrayar que esto es exáctamente lo que parece: un completo estudio profesional en nuestro propio PC. Otros programas de éste tipo, como Logic Audio, tienen similares prestaciones y presentan un aspecto parecido. El único problema es su precio: la última versión de Cubase, por ejemplo, cuesta más de 700 euros. Pero existen versiones simplificadas como Cubasis Audio Lite por menos de la mitad, que serán suficientes para usuarios no profesionales. En cualquier caso, todo esto en "hardware" representaría un coste de varias decenas de miles de euros.

 

Vamos a describir de forma somera cómo funciona un plug-in VST. Como hemos dicho, su única función es recoger de una aplicación host (pej. Cubase) un flujo de datos de audio, procesarlo con el algoritmo correspondiente y enviar el resultado de nuevo a la aplicación. Este proceso se realiza normalmente usando el procesador del ordenador. No requiere necesariamente un DSP dedicado. El host proporciona bloques de audio secuencialmente y los recibe procesados, pero no guarda ninguna información de los parámetros de estado asociados al proceso. Esta tarea la realiza enteramente el plug-in. Podemos decir que un plug-in no es más que una caja negra con un número arbitrario de entradas, salidas, y parámetros asociados. En la plataforma Windows, un plug-in VST es un archivo *.dll (Dynamic Link Library) multi-hilo. Este archivo deberá ser copiado en la carpeta "Vstplugins" del Cubase para que éste pueda acceder a él. Como vemos en la figura 23, se puede incluir una interfaz gráfica (GUI) para que el acceso a los parámetros sea más fácil y atractivo.

 

En la presentación de nuestro trabajo mostraremos el proceso de elaboración de uno de estos plug-ins. En concreto un efecto de delay, cuyo algoritmo conseguimos en internet, en el cual hemos realizado una adaptación conveniente y modificado algunos parámetros para obtener otros efectos interesantes, relacionados con éste.