TARJETAS DE AUDIO – SUBSISTEMA DE AUDIO

 

CONTROLADORES WAVE IN/OUT

Un driver o controlador WAVE es un programa residente que ofrece al resto del sistema, acceso uniforme a un dispositivo de entrada o salida de audio digital. Puesto que la interfaz que ofrecen dichos drivers es estándar, los programas que accedan a ella funcionarán con cualquier hardware que exista por debajo de él. Un driver ofrece al sistema tantos puertos de entrada o salida WAVE como pueda tener el dispositivo asociado. Como ya hemos comentado, existen dispositivos half-duplex y full-duplex. Algunos dispositivos half-duplex pueden funcionar como full-duplex a costa de dividir la calidad (bits de profundidad, canales o frecuencia) del sonido en cada dirección.

 

MEZCLADORES

Los mezcladores controlan la contribución de distintas fuentes o líneas de sonido a una línea de sonido compuesta. Entre estas líneas de sonido se incluyen dispositivos WAVE IN/OUT pero no se limitan a ellos como veremos ahora. Para no confundir conceptos diferenciaremos los casos de los mezcladores de entrada y los mezcladores de salida.

Mezclador de entrada

Determina la forma en que diversas fuentes de sonido contribuyen a un puerto WAVE-IN. Los sonidos de cada puerto WAVE-IN son los que finalmente puede recoger la aplicación. En el siguiente esquema (figura 11) tenemos dos mezcladores de entrada. Cada uno controla la contribución de las líneas de entrada (en amarillo) a un puerto WAVE-IN (en azul). Una misma línea de entrada podría contribuir a dos mezcladores a la vez.

 

Mezclador de salida

Determina la forma en que las fuentes de sonido contribuyen a una salida física de audio de la tarjeta. Algunas de las señales que entran en el mezclador de salida son generadas por la aplicación de audio y otras podrían ser las mismas que entraban en el mezclador de entrada.

Los mezcladores han sido durante mucho tiempo la respuesta más económica para ofrecer más fuentes de sonido sin encarecer demasiado el hardware. También han ayudado a mantener un solo modelo de programación a lo largo de sucesivas versiones de cada tarjeta puesto que independientemente del dispositivo de entrada utilizado, siempre se lee en el mismo sitio (a la salida de los WAVE-IN).

Ahora, con los sistemas operativos basados en controladores, el problema del modelo de programación está mejor solventado. La abstracción que un controlador de un mezclador ofrece a una aplicación de audio es una serie de controles (sliders, potenciómetros, monitores,...) los cuales son ofrecidos al usuario para que los modifique. Esta abstracción permite que los mezcladores también controlen los parámetros de los efectos analógicos o digitales que el hardware puede aplicar a las líneas de sonido hasta formar la salida de éste.

 

Mezclador intermedio

Para obtener configuraciones más complejas existen en el mercado, controladores que ofrecen puertos de entrada y salida WAVE no asociados a ningun hardware (ninguna entrada ni salida). Nos permiten redireccionar el flujo WAVE OUT de un programa a un flujo WAVE IN de otro asociandolos a puertos del controlador. El problema que plantean es el incremento de la latencia (retardo) que introduce cada THRU la cual limita mucho las aplicaciones en tiempo real.

 

 

BUFFERING

Tanto a la entrada como a la salida de audio, el flujo de datos ha de ser constante con una cadencia determinada por la frecuencia de muestreo. En los ordenadores, la CPU se dedica simultáneamente a varias tareas, aparte de generar audio. Si el audio necesita ser mezclado por software o es fruto de algún tipo de procesado que consuma CPU, este proceso tendrá que competir con el resto de tareas. El ordenador en su procesado no puede asegurar un flujo de datos constante, por lo cual se usan buffers. Cuando la CPU se usa para el audio, llenamos el buffer generando datos de audio. En los momentos en que se dedica a otra tarea, los datos necesarios para mantener la continuidad son cogidos del buffer por parte de la tarjeta.

Podría ser que hubiese mucha competencia por la CPU. En ese caso, la tarjeta podría vaciar todos los datos que hay en el buffer con lo que se podrían generar saltos o cortes. Estos problemas se pueden resolver muchas veces agrandando el buffer para que quepan mas datos. El problema de esta solución radica en el consumo de memoria, pero además en el hecho de que siempre el buffer nos va a introducir una latencia. Así, si por ejemplo cambiamos el valor de un parámetro de un sintetizador virtual y tenemos un buffer demasiado grande en la salida, ese cambio no se escuchará en el momento, pues en el buffer ya habrá datos que se calcularon sin tener en cuenta ese cambio.

El uso de buffering en entrada se debe a un motivo similar y es que se nos introducen datos con cadencia continua para los cuales el programa no puede prestar atención también continua por la compartición de CPU.

Los buffers son también útiles cuando hay dos procesos en cascada que se calculan a velocidades distintas. Una última utilidad de los buffers es el Internet Streaming, para escuchar audio que llega por Internet. Aquí las ráfagas son más acusadas aún que en el caso del procesado de la CPU, por lo que necesitaremos un buffer bastante grande para escuchar el sonido de forma continua.

 

FORMATOS DE AUDIO MÁS HABITUALES

Las tarjetas de sonido son elementos realmente versátiles en cuanto al soporte de formatos de audio, puesto que la mayoría son capaces de trabajar con archivos de sonido procedente de CD (*.cda), de dispositivos o secuenciadores MIDI (*.mid), los asociados a los trackers (*.s3m, *.mod) así como con datos PCM (la extensión de estos archivos suele ser *.wav o *.voc) y, por supuesto, los omnipresentes mp3, etc., etc. Pasamos a describir brevemente estos formatos.

 

Audio digital en formato de onda: Audio CD o *.WAV

El audio digital en formato de onda ha sido históricamente el formato por excelencia para almacenar el sonido digital. Su principal ventaja es su calidad y su principal inconveniente, el espacio que ocupa. Para hacerse una idea, en un CD caben tan sólo 74 minutos de audio a la máxima calidad: 44,1KHz, 16 bits y estéreo. Normalmente, cuando grabamos sonido en el ordenador lo haremos mediante este formato, el formato de onda. Con él, se almacenan los valores del sonido en cada instante sin compresión alguna.

 

MIDI

Con él se soluciona el problema del espacio. Es totalmente distinto al formato de onda; tan sólo almacenaremos información acerca de las notas que deberán ser tocadas en cada instante, así como ciertos parámetros asociados a éstas definidos en el estándar MIDI que contribuyen a que las creaciones suenen de la forma más realista posible, pero no se almacenan los sonidos en si. Los sonidos (que son los que realmente ocupan espacio masivo en el disco duro) los genera el sintetizador de sonidos. Por tanto permite gran flexibilidad y es ideal para compositores. Sin embargo, para obtener una calidad aceptable, será necesario que nuestra tarjeta disponga de tabla de ondas o, en su defecto, de un sintetizador fm como ya indicamos en el apartado anterior. Una carencia fundamental es que no podremos añadir voces humanas, ya que no se pueden sintetizar tan fácilmente como el sonido de un instrumento. Sin embargo, sí podemos incluir un sample de voz humana ( o de cualquier otro sonido) en una tabla de ondas, de forma que pueda sonar en un momento dado mediante una orden midi, de la misma forma que los instrumentos wave table.

El formato MIDI ya no se utiliza como antes para dar música a producciones multimedia, puesto que la capacidad de los CDs hace que sea posible incluir las melodías en formato de onda, con la ventaja de poder incluir canciones con voces humanas.

 

Mods o módulos

Se encuentran a caballo entre los anteriores. Provienen del mundo de los PC’s Amiga y tienen características muy interesantes Funcionan por mediación de dos partes diferenciadas. Por un lado estan los patterns, que son equivalentes a la secuencia de notas de los archivos MIDI, y por otro los samples, que son sonidos digitales que se utilizan como instrumentos. Por tanto, podemos grabar voces (y tipos de acordes –mayores, menores, séptimas,...) como un instrumento y utilizarlas en las composiciones. Los módulos permiten obtener producciones de gran calidad en no demasiado espacio, con lo que superan las limitaciones de los dos casos anteriores.

 

MP3

Es el más famoso actualmente. No es más que una especificación para la compresión de ficheros de onda. Con esta especificación se consigue reducir el tamaño original de los ficheros en un factor de diez aproximadamente, aunque podemos realizar la compresión que deseemos (indicando las frecuencias de muestreo). Lógicamente, en esta compresión se produce pérdida de detalle en el sonido. Sin embargo, el sistema mp3 trata de eliminar datos redundantes o zonas donde apenas llega el oído humano. En la práctica, no mucha gente es capaz de distinguir entre una canción original y una en formato *.mp3. El éxito de los archivos *.mp3 proviene de esta indistinguibilidad y de la facilidad de tránsito por Internet, debido a su relativamente pequeño tamaño.

 

Otros

De filosofía similar a la de los MIDI, están el CMF o el ROL; de formato onda, aparte de los ya indicados, tenemos el AU (en Unix) o el VOC. Con un funcionamiento parecido al de los módulos hay muchos, como son el S3M, el OKT, el 669, el MTM, el XM, el MED o el LIQ.