Issuu on Google+

La latencia de audio en los ordenadores (1) Sin ánimo de hacer un artículo científico, ni mucho menos, revisaremos un poco los tipos de latencia que se dan en la vida cotidiana como músicos y nuestra tolerancia a este fenómeno, con el objeto de reflejar hasta que punto esta puede influirnos, para después comparándolo con las latencias con que nuestros ordenadores hoy día trabajan, tener una visión de la importancia de esto a la hora de trabajar con ellos en tiempo real. En esta primera entrega tratamos los conceptos básicos de latencia y los casos comunes en la práctica musical.

¿Que es la latencia? Empecemos por algunas definiciones: Según el R. A. E. latencia es el “Tiempo que transcurre entre un estímulo y la respuesta que produce” En la Wikipedia podemos leer una definición de latencia en sistemas informáticos: En redes informáticas de datos se denomina latencia a la suma de retardos temporales dentro de una red. Un retardo es producido por la demora en la propagación y transmisión de paquetes dentro de la red. Otros factores que influyen en la latencia de una red son: • El tamaño de los paquetes transmitidos. • El tamaño de los buffers dentro de los equipos de conectividad. Ellos pueden producir un Retardo Medio de Encolado.. Hay latencia en tecnologías de uso musical, como los transformadores de mp3 a vinilos análogos, siempre el traspaso de información de un mecanismo a otro va a sufrir de este retardo, que normalmente está estimado en milisegundos (1/1,000 sec) en algunos caso pequeño, en otro más notorio, dependiendo del sistema que usen y de las características de los equipos. En general se refiere al tiempo que dura en llegar una acción desde su punto de inicio hasta su “punto de fuga”, es decir cuando la acción se consuma.


Ya en el ámbito del sonido y el musical que nos interesa, podemos resumir que la latencia es el término que se utiliza para definir el tiempo que transcurre entre el momento de la emisión de un sonido y el momento en que nuestros oídos lo escuchan. Especialmente este término toma especial relevancia cuando el músico es a la vez emisor y receptor, ya que si se produce un retardo apreciable entre el momento en que el músico toca o emite una nota y el que la escucha, este tendrá problemas de interpretación. Después de todo ¿quien puede tocar un instrumento si no oye el sonido inmediatamente? Obviamente esto no ocurre cuando interpretamos un instrumento acústico de la manera convencional, pero sí y este es el objeto de este artículo, cuando procesamos el sonido a través de un sistema de audio digital, en particular un ordenador o cuando dependemos de un altavoz para oírnos y este se encuentra alejado de nosotros.

¿Cual es la latencia mínima tolerable por el oído humano? Esta cuestión es un tema que ha generado muchos debates y discusiones no existiendo un acuerdo unánime al respecto de que latencia es la tolerable o la aconsejable para el trabajo con sistemas de audio y es que nuestro oído y cerebro tienen una tolerancia relativamente alta a la latencia y puede variar dependiendo de cada persona, de las características del sonido (si es un sonido de ataque súbito la tolerancia será menor que si se trata de uno de ataque lento) y otros factores. Para ubicarnos y tener una mejor comprensión tomemos como referencia algunos datos: 1º El sonido se propaga por el aire a una velocidad de 340 metros/segundo 2º Para expresarlo en términos mas prácticos si un sonido se emite a una distancia de 1 metro tardará en llegarnos 2.9 milisegundos. Por tanto cada metro de distancia implica 2,9 milisegundos de retardo. 3º Por último pongámoslo en un contexto musical, en una pieza cuyo tempo sea “allegretto” (120 bpm), 2 fusas se encuentran a una distancia de 62,5 milisegundos. Ciertamente va ser raro ver escritas 2 fusas a ese tempo, sería demasiado rápido, pero si podría corresponderse por ejemplo con la distancia que hay entre notas en un redoble de caja y probablemente representa la distancia mas corta entre dos notas en un ámbito musical. Con estos datos comprenderemos que los músicos en la práctica musical cotidiana trabajamos con diversas latencias o retardos sin que ello nos impida ejercer esta actividad.


Veamos también varios ejemplos de situaciones habituales a las que nos exponemos los músicos y las latencias implícitas, que pueden ayudar para comprender el fenómeno: Un guitarrista acústico tiene su instrumento a unos 30 o 40 cm. de los oídos, por tanto oye lo que toca como media 1 milisegundo después de tocarlo. Un violinista tiene aun mas cerca el instrumento del oído, a unos 10 cm, tarda 0,3 ms. en oirlo en un oido y algo mas (aprox. 0,6 ms) en el otro oído. El oído de un cantante igualmente esta muy cerca de la fuente y oye con ambos oídos el sonido que emite, aproximadamente 0,3 ms. La cosa empieza a cambiar cuando se trata de un guitarrista eléctrico, el cual oye el sonido que produce su guitarra a través del altavoz del amplificador de guitarra y este puede estar a diversas distancias. A una distancia media de 1 metro, este oirá las notas que toca unos 3 ms. mas tarde. Pero un guitarrista puede tener el amplificador a varios metros de distancia, con lo que esta latencia aumentará, por lo que no debemos alejarnos demasiado de nuestros amplificadores o esto puede llegar a suponer un problema, no siendo aconsejables distancias de mas de 3 mts. (9 milisegundos). El tema empieza a ser mas complicado cuando tocan varios músicos entre los cuales puede haber distancias importantes y lo que puede hacer mas complejo el tema, distancias diferentes. Imaginemos un conjunto de 3 músicos acústicos dispuestos longitudinalmente en un escenario entre los que haya 4 metros de distancia entre los extremos. El que está ubicado en uno de los extremos se oye a si mismo con un retardo de 0,3 ms., al músico del centro con 6 ms. y al músico del otro extremo con 12 ms de retardo. Las diferencias expuestas en algunos de estos ejemplos son notables y varían entre 0,3 ms y 12 ms, sin embargo en la practica cotidiana ninguno de los músicos de esta lista tendrán problema en tocar su instrumento solos o al unísono con los demás. La razón es bien sencilla, nuestro oído/mente, en términos generales, no es capaz de distinguir dos sonidos como entes distintos salvo que estén separados en el tiempo al menos 11 milisegundos o mas, por lo que este será el umbral a partir del cual la latencia sí empezará a ser claramente apreciada y a representar un problema. Multiples latencias en la orquesta Imaginemos ahora el caso de una orquesta clásica en la que debido a la gran cantidad de músicos pueden llegar a haber distancias de casi 20 metros entre algunos de los


componentes (por ejemplo entre el violinista de un extremo y el contrabajista del otro). 20 metros son nada menos que 58 milisegundos de retardo en la recepción del sonido y esta latencia supera en mucho el umbral de 11 milisegundos antes indicado y será perfectamente apreciable (recordemos las fusas a 62.5 ms en un tempo de 120 bmp antes explicadas), por lo que esto lógicamente producirá problemas de latencia entre músicos y dificultará el trabajo en estos entornos ya que obviamente en la música es absolutamente esencial el tiempo, una orquesta que no sonara al unísono no sería precisamente agradable de escuchar. Por si fuera poco, como hemos dicho antes, en el caso de las orquestas el problema se agrava por que cada músico tendrá a los demás músicos a diferentes distancias con lo que el problema no es constante y adquiere una complejidad mayor. No añadiremos a esto el factor “sala”, pero vale la pena reseñar que a poco que pensemos en ello veremos que las reflexiones que la sala producirá, multiplicarán exponencialmente los sonidos que cada músico percibirá (unos mas fuertes que otros pero audibles) con latencias incluso mayores y diversas. No es el objeto de este artículo tratar la compleja problemática de latencias que se producen en una orquesta y las soluciones que ello tiene (que las tiene afortunadamente, como la capacidad de adelantar o atrasar el tempo de cada músico para adaptarse al tempo general y como no la principal de ellas es la existencia de un director, una de cuyas funciones es “aunar” el tempo de toda la orquesta), pero el ejemplo es perfectamente válido para comprender cuan importante puede ser el problema de la latencia en la interpretación musical. El ejemplo de la orquesta también ilustra un aspecto muy importante de la capacidad de nuestro oído (y sobre todo cerebro) de tolerar situaciones muy complejas de latencia entre músicos y aun así ser capaz de resolver la interpretación musical con resultados totalmente aceptables y satisfactorios. Por eso la cuestión de cual es la latencia tolerable no es una cuestión puramente matemática y no puede tener una respuesta en términos absolutos, aunque tengamos una referencia de umbral definido (aceptado mayoritariamente) de 11 milisegundos, debemos tomar este como un valor relativo y no absoluto. No obstante a partir de dicho umbral de 11 milisegundos un músico si empezará a notar claramente la latencia si es él mismo el que la sufre respecto a lo que toca, por tanto en tareas de monitorización en sistemas de grabación de estudio, este es el umbral a partir del cual hemos de empezar a tomar en consideración este problema. Pronto publicaremos la siguiente entrega de este artículo, adentrándonos en las latencias de los equipos analógicos y digitales y como estos últimos operan e introducen el concepto de latencia en nuestras vidas musicales, si tienes alguna duda o comentario, no dudes en exponerlo.

Latencia de audio en equipos de procesado de sonido Con latencia en los sistemas de audio, sean analógicos o digitales, nos referimos al retardo que sufre una señal de audio en su tránsito a través de un sistema de procesado de audio, es decir el tiempo que transcurre desde que la señal entra por una de sus entradas hasta que


esta es entregada por una de sus salidas. Esta latencia o retardo de la señal se debe al tiempo de proceso que el sistema necesita hasta que nos devuelve de nuevo la señal. En el mundo analógico (mesas de mezcla analógicas, amplificadores, etc.) esta latencia o tiempo de retardo también existe aunque en este caso es puramente una cuestión de tránsito de la señal y es tan pequeño que es absolutamente despreciable e irrelevante en términos musicales, por eso nunca ha sido una cuestión importante en un entorno de proceso analógico de audio. Sin embargo con la llegada de los procesadores digitales esta cuestión comenzó a tomar importancia, al introducir estos sistemas latencias o retardos apreciables y en algunos casos, como en el de los ordenadores, muy significativos, impidiendo en el trabajo de los ordenadores en muchos casos su uso para la monitorización de las señales en tiempo real, convirtiéndose por tanto en un factor clave y en un claro escollo a superar para que el procesado de audio mediante ordenadores pudiera considerarse de igual a igual con los sistemas analógicos y otros sistemas digitales que carecen de latencia apreciable, probablemente el último a superar hoy día. El caso es que aun hoy, a pesar de la enorme potencia de proceso de los ordenadores, esta cuestión sigue sin estar completamente resuelta por diversos motivos y es uno de los factores que mas dolores de cabeza puede producir a los músicos que trabajan en este entorno. Por supuesto, este problema afecta tanto a usuarios de PC como de MAC.

Como funcionan los sistemas de audio digital En los sistemas de procesado digital de audio el primer paso es digitalizar la señal, es decir pasarla o convertirla de su estado analógico al digital para su posterior procesado en dicho sistema. De dicha transformación se encargan los conversores analógico/digital (de ahí su nombre), dispositivos muy comunes y presentes en todos los aparatos digitales que nos rodean. Ello se realiza mediante un sistema de muestreo de la señal (digitalización propiamente dicha) a una determinada resolución (16, 24 o 32 BIT) y frecuencia (desde 44,1 Khz. a 192 Khz.), dependiendo de cada sistema, con esto se realiza una representación digital de la señal con la suficiente resolución y detalle para que mantenga todas sus características y por tanto no pierda nada en el proceso (esta es la teoría al menos). Una vez hecho esto tendremos que cada una de las muestras o samples que ha realizado el conversor analógico/digital es la unidad mas pequeña de que se compondrá la señal digitalizada con las que va a trabajar el procesador digital. En el caso del compact disc la digitalización se realiza, como todos sabemos, a 16 bits y 44.1 Khz.


Para poder procesar la señal con cierta holgura el sistema necesitará operar con pequeños paquetes de muestras, ya que una sola muestra suele ser demasiado pequeña para realizar los procesos y cálculos necesarios, estos paquetes se guardan provisionalmente en pequeños almacenes de memoria intermedia que se han dado en llamar “buffers”. Así pues todo procesador digital necesita utilizar estos “buffers” o paquetes de muestras para cada paso del procesado, por tanto cuanto mayor sea dicho “buffer” mayor será la latencia que genera este paso en el equipo digital. Los propios conversores utilizan dichos buffers y ya añaden una latencia, que normalmente está en torno a 0,5 o 1 milisegundos dependiendo de diversos factores. Afortunadamente muchos de los equipos digitales por hardware (como mesas de mezcla y toda clase de procesadores de efectos digitales), gracias a que trabajan con procesadores digitales de señal (DSP) altamente especializados, pueden operar con “buffers” muy pequeños y a pesar de que hay varios la latencia final resultante se mantiene en unos rangos tolerables en términos musicales que normalmente no superan los 5 milisegundos.

El problema de la latencia de audio en ordenadores En los ordenadores la cosa cambia radicalmente respecto a otros sistemas de proceso de audio, ya que no es un sistema especializado en audio (desgraciadamente), si no un sistema de propósito general y por tanto el audio no tiene la prioridad necesaria para poder operar con buffers ultra pequeños como ocurre en otros sistemas de procesado digital dedicados. En primer lugar el procesador y los subsistemas que incluye (no olvidemos que en un ordenador hay muchos tipos de dispositivos conectados, desde ratones, puertos para discos duros, tarjeta gráfica, usb, firewire, memoria central, etc. y el sistema tiene que atender a todos ellos) deben operar conjunta y cooperativamente y por tanto repartirse las llamadas al procesador y las tareas a realizar. Esto ya de por si impone un gran tráfico de datos de todo tipo y normalmente implica que no es posible otorgar de entrada al flujo de audio (que para el sistema es una simple tarea mas) un buffer tan pequeño como para ser minimizable. Además cuanto mas pequeño sea ese buffer mayor estrés se generará en el sistema aumentando exponencialmente el consumo de cpu. En segundo lugar y mas importante está el sistema operativo. Este es quien en definitiva arbitra y administra las tareas y las prioridades y el que permite a nuestros programas de audio trabajar y comunicarse con


la tarjeta de sonido y demás periféricos. Desafortunadamente el procesado de audio no es una prioridad esencial para los sistemas operativos y por tanto el audio puede sufrir las interferencias de otros procesos constantemente y por tanto no es el entorno precisamente mas propicio para operar a latencias lo suficientemente bajas. Nuestros programas de audio se comunican con la tarjeta de sonido mediante un programa intermediario llamado driver (utilizaremos el anglicismo por su extendido uso), el cual lo proporciona el propio fabricante de la tarjeta y debe instalarse en el ordenador para poder trabajar con la tarjeta conectada a nuestro equipo. El propio sistema operativo proporciona un protocolo o modelo de driver genérico para que los fabricantes de sonido lo implementen con el objetivo de que la tarjeta funcione correctamente en nuestro ordenador. Este tipo de driver genérico está pensado para funciones básicas, pero nunca ha sido especialmente óptimo para el trabajo a muy bajas latencias, no obstante ha ido evolucionando a lo largo del tiempo y en su forma actual (WDM) permite bajas latencias, pero sigue sin ser el mas adecuado para el propósito de que estas sean especialmente bajas (recordemos que el objetivo es tener una latencia total igual o inferior a 11 ms). Algunos programas han apoyado este tipo de driver nativo o genérico como Sonar y otros, pero finalmente se han visto obligados a soportar también el que se ha convertido de hecho en el formato de driver mas extendido y universal para el trabajo con audio: el driver ASIO. Hasta aquí la 2ª parte de este artículo, pronto publicaremos la 3ª y última, entrando en detalle en los problemas de latencia y las posibles soluciones.

Los drivers ASIO de Steinberg Dado el grave problema que las altas latencias generadas por los drivers genéricos del sistema operativo imponían a los programas de audio (en Windows 95, 98 y SE por ejemplo el driver del sistema operativo trabajaba a latencias altísimas en torno a 500 milisegundos o mas, lo que la hacía inusable no solo para monitorizar, si no incluso para mezclar), los fabricantes de software de audio se vieron obligados a desarrollar soluciones para esto. Steinberg fue el pionero en esta cuestión y quien inventó el protocolo hoy por hoy mas extendido: el driver ASIO. Este protocolo o tipo de driver de sonido, está pensado para que el programa de audio pueda saltarse el sistema de comunicación con la tarjeta de sonido proporcionado por el propio sistema operativo (driver de audio genérico) y pueda comunicarse directamente con la tarjeta de sonido, consiguiendo así un flujo de datos directo con esta y por tanto una latencia mucho menor. Steinberg desarrolló el estándar ASIO como un protocolo abierto y por tanto pudo ser adoptado por fabricantes de tarjetas y de programas de audio, por lo que fue finalmente utilizado por (hoy


día todos) los fabricantes de tarjetas de audio profesionales o semiprofesionales del entorno Windows e incluso Apple Macintosh (aunque este implementó de manera relativamente reciente con la llegada de su sistema operativo OSX un protocolo propio, denominado Audio Units, que es especialmente apropiado para bajas latencias) y asimismo por todos los programas de audio del mercado (con la excepción de Logic en Mac, programa que al ser propiedad de Apple eliminó en este el soporte de ASIO por motivos obvios comerciales soportando únicamente Audio Units). Por tanto a la hora de seleccionar una tarjeta de audio es básico que esta tenga disponibles driver ASIO y a ser posible de la mejor calidad, ya que será la manera de que podamos trabajar de una manera mas eficiente posible con nuestros programas de audio.

Alternativas al ASIO: ASIO4ALL Si el fabricante de tu tarjeta de sonido no proporciona drivers ASIO, no está todo perdido y aun queda esperanza. Gracias al desarrollo del driver ASIO universal llamado ASIO4ALL puedes conseguir que tu tarjeta funcione con drivers ASIO y a bajas latencias. Este driver de uso gratuito (lo cual hay que agradecer a su autor) permite mapear el driver estándar que la mayoría de tarjetas del mercado llevan (es el driver nativo de Windows que tuvo su origen en Windows XP) y convertirlo en un driver ASIO virtual con el que trabajará tu programa de audio. Que funcione no está garantizado pero lo cierto es sí funciona con la mayoría de las tarjetas de audio. Aquí tenemos lo que dice el autor al respecto: ASIO4ALL is a hardware independent low latency ASIO driver for WDM audio devices. It uses WDM Kernel-Streaming and sometimes even more sophisticated methods to achieve its objectives. In order to successfully run ASIO4ALL, you need: • A WDM-compatible operating system, such as Win98SE/ME/2k/XP. • A WDM-driver for your audio hardware. (Under Win2k/XP this is implicit, not so under Win98SE/WinME.) • A couple minutes of your time and a little bit of luck. What ASIO4ALL will NOT do: • Replace your existing sound card drivers or mess with them in any way. • Install any kernel mode components that could potentially affect the stability of your system. • “Overclock”, or otherwise operate your audio hardware in ways that could potentially be harmful and/or void your warranty, except, of course, in cases where the manufacturer of your hardware has specifically stated that the use of ASIO4ALL would void your warranty indeed. IMAGEN



latencia