Como reducir la latencia
a latencia es uno de los problemas más comunes a la hora de grabar en un homestudio o en un entorno casero de grabación en especial cuando lidiamos con interfaces de audio de gama baja o la que ya viene incorporada con la computadora (placa de sonido integrada). Veamos como podemos reducir la latencia en nuestras grabaciones y para eso empecemos por lo básico:
¿Qué es la latencia?
Es básicamente el período que transcurre entre que una señal ingresa y sale de un sistema determinado. En términos coloquiales viene siendo el tiempo transcurrido entre que una persona canta ante un micrófono y lo que cantó sale por los parlantes.
La latencia representa un gran problema en especial a la hora de monitorear lo que estamos grabando y es un problema que se agrava a mayor cantidad de pistas o procesos se hagan en simultáneo.
Pero no todas las latencias son iguales, tengamos en cuenta que nuestro cerebro usa la latencia para poder distinguir de donde provienen los sonidos de acuerdo a la diferencia de tiempo que hay entre que un sonido llega a nuestro oído izquierdo y el tiempo que demora en llegar al derecho.
Ahora, la latencia que nos preocupa a nosotros es la que hace imposible grabar cómodamente. A partir de una latencia de 25 milisegundos, nuestro cerebro detecta los sonidos como eco, para hacernos una idea algo similar al slapback delay. Muchos músicos son más sensibles a la latencia y se les dificulta grabar con latencias menores.
En términos prácticos mientras menor sea la latencia más cómodos nos sentiremos a la hora de grabar. El problema es que mientras menor sea la latencia más sobrecargado estará el procesador de la computadora y por ende lo ideal es encontrar un balance entre el rendimiento del sistema y la latencia óptima para grabar.
¿Donde se genera la latencia?
Como sabemos, existen varios componentes en la cadena de grabación digital. Para empezar tenemos la fuente sonora, una voz por ejemplo, esa voz va hacía un micrófono que transduce la energía acústica en energía eléctrica, luego esa señal se dirige hacia la placa o interfaz de audio donde la señal atraviesa un proceso de conversión analógico/digital y posteriormente dicha señal es almacenada en el disco y procesada por la Estación de Trabajo de Audio Digital (DAW) quién se comunica a su vez con la interfaz para reconvertir la señal digital en analógica para que esta pueda ser amplificada y posteriormente reproducida por los parlantes.
El proceso como podemos observar es una suma de etapas y cada etapa es un generador potencial de latencia, es decir que cada etapa tiene un cierto retardo. Algunas etapas son peores que otras en ese sentido pero todas generan algo de latencia.
Analicemos entonces los puntos donde se genera latencia:
Conversores analogico digitales: En cualquier sistema de audio digital tendremos como mínimo un conversor analogico/digital a la entrada y uno digital/analogico a la salida. Los conversores tienen latencia pero es mínima, del orden de los 0,5 milisegundos. En una inmensa mayoría de casos, los conversores no son el problema. Necesitariamos sumar muchos procesos de conversión AD/DA para que empecemos a notar la latencia.
Buffer: Una vez tenemos se realizó la conversión analógico digital, la información que representa el sonido que fue grabado debe ser manipulada y almacenada por nuestro sistema. Como podemos imaginarnos, la reproducción de audio digital requiere una comunicación intensiva y continúa entre el conversor A/D, el disco duro/memoria RAM y el conversor D/A.
Si queremos por ejemplo grabar algo al mismo tiempo que lo escuchamos la señal tiene que ser convertida de analógico a digital, almacenarse, convertirse de digital a analógico y reproducirse por los monitores. Este proceso no se puede realizar en un solo paso y para ello se usa algo que se denomina buffer que no es otra cosa que información que se guarda en la memoria RAM para ser usada mientras el sistema realiza otras tareas.
Para entender mejor el concepto de buffer me gusta imaginarlo como un balde que está al medio de ambos procesos. Cuando grabamos algo el sistema guarda en ese “balde” pedazos de información de audio, y la interfaz de audio usa lo que hay en el buffer para reproducir el sonido que se introdujo en el sistema, lo que hay en el balde será usado también por el sistema para almacenarlo en el disco rígido o hacer el proceso que corresponda con la información.
Ahora, el problema es que el tamaño del balde es determinante ya que si el balde es muy chico el mismo será vaciado (por el sistema) antes de que pueda ser llenado nuevamente (por la interfaz) y como resultado escucharemos clicks y pops que dificultan la grabación o el monitoreo. Por el contrario si el balde es demasiado grande el tiempo de comunicación se agranda ya que hay que esperar hasta que se llene para que se puedan oir los cambios. Ese tiempo transcurrido es lo que denominamos latencia.
Para solucionar este problema vamos a tener que negociar: Hay que elegir el buffer en función de nuestra computadora y del tiempo de latencia que querramos lograr.
Eligiendo el tamaño del buffer:
El tamaño de buffer que podemos elegir depende directamente de la capacidad de nuestro CPU, a mayor capacidad tiene el CPU menor puede ser el tamaño del buffer elegido y por tanto menor la latencia.
Una técnica apropiada para elegir un buffer que sea un buen compromiso entre baja latencia y una sobrecarga del CPU es ir bajando el tamaño hasta que empecemos a escuchar clicks y pops en el monitoreo. El punto en el que empezamos a escuchar esos defectos indica claramente que el CPU esta sobrecargado y que hemos elegido un buffer muy pequeño, por ende lo que tenemos que hacer es subir el tamaño del buffer hasta dejar de escuchar esos ruidos. En ese punto, podríamos decir que la latencia es la ideal para nuestro sistema.
De esta recomendación, se desprende claro está que si queremos monitorear en tiempo real varias pistas o usar muchos plugins y emulaciones vamos a necesitar una buena computadora, de lo contrario vamos a correr el riesgo de poder jugar una mano de Solitario en el tiempo que transcurre entre que tocamos una nota y la podemos escuchar por los monitores.
Si queremos una aproximación del tiempo de latencia que vamos a obtener para un tamaño determinado de buffer podemos usar el siguiente calculo.
Latencia = [(Tamaño del buffer * 2) / Frecuencia de muestreo ] + Latencia conversores
Asumamos que estamos grabando a 44100 Hz y que elegimos un tamaño de buffer de 256 muestras.
Latencia = (256*2) / 44100Hz
Latencia = 0.012 s
Si cambiamos la frecuencia de muestreo a 96000 Hz, la latencia será de 5 ms. Y si disminuimos el tamaño del buffer a la mitad, manteniendo la frecuencia de muestreo en 44100 Hz una latencia similar 5-6ms.
La latencia y la frecuencia de muestreo:
Como observamos en el cálculo anterior, la latencia disminuye cuando aumenta la frecuencia de muestreo. Lo primero que se nos viene a la mente al conocer este dato es “Entonces doblo la frecuencia de muestreo y asunto solucionado” el problema es que al doblar la frecuencia de muestreo también aumentamos la cantidad de stress al que sometemos al procesador y por ende eso va a limitar la cantidad de pistas, efectos o procesos que podamos ejecutar en simultáneo.
Un consejo que puedo dar al respecto es que usemos la frecuencia de muestreo que nos permita trabajar cómodamente con las sesiones con las que planeamos grabar. El problema de la latencia es mejor resolverlo por otro lado, aunque para cierto tipo de sesiones livianas no es una mala idea usar una mayor frecuencia de muestreo si experimentamos problemas con la latencia.
¿Qué tienen que ver los drivers con la latencia?
Los drivers son muy importantes en el nivel de latencia que va a tener nuestro sistema debido a que son los encargados de comunicar a nuestra interfaz de sonido con el sistema operativo.
Para ponerlo de una manera más didáctica, los drivers son como traductores que se encargan de que el hardware y el software se entiendan.
Estos deben estar optimizados para el hardware que estemos usando ya que cada interfaz de audio se comunica con el sistema a su manera, por esto es necesario que siempre tengamos la última versión de los drivers de nuestra interfaz de audio ya que estos suelen solucionar los problemas de las versiones anteriores.
¿Qué es ASIO?
ASIO es una sigla que quiere decir Audio Stream Input/Output, es un controlador ideado por Steinberg que básicamente busca lidiar con el problema de latencia que hay en los drivers nativos de computadoras con Windows (DirectSound).
Lo que hace en esencia es simplificar la comunicación entre el sistema y la interfaz de audio, quitando muchos intermediarios que generan latencia y por ende dificultan enormemente el monitoreo en tiempo real de una grabación.
Cada modelo/fabricante de interfaz crea los drivers de sus dispositivos basándose en el estándar ASIO, esto implica que si bien el estándar es el mismo eso no quiere decir que los drivers sean intercambiables incluso entre distintos modelos de una misma marca.
¿Y que es ASIO4ALL?
Uno de los problemas más frecuentes cuando uno se inicia en esto del audio es que arrancamos a grabar usando la interfaz de sonido que viene integrada con la placa madre de nuestra computadora. El problema con la placa de sonido integrada es que no tiene drivers optimizados para reducir la latencia ya que no está pensada para un uso profesional o para monitorear en tiempo real.
La solución a este problema son los drivers ASIO4ALL, estos son drivers que se comportan básicamente como los drivers ASIO comunes pero que funcionan con cualquier interfaz de audio, aún con las que vienen integradas en las placas madres genéricas.
Para poder integrar los drivers ASIO4ALL en nuestro sistema procedemos a bajarlos desde su sitio oficial (casualmente fueron actualizados recientemente después de 4 años):
Descargar Drivers ASIO4ALL
Una vez los bajemos y los instalemos procedemos a cambiar los drivers por defecto en el software que estemos usando. Si por ejemplo estamos usando el Cubase para grabar con una interfaz de audio integrada tenemos que seleccionar los drivers ASIO4ALL como dispositivos de Entrada/Salida. De esta manera podremos saltearnos los drivers de Windows y usar una versión adaptada de los drivers ASIO que mejorarán mucho la performance en cuanto a latencia, aunque hay que aclarar que no son tan efectivos como los drivers de las interfaces de audio.
Distintas situaciones, distinta latencia:
Lo positivo de la optimización de la latencia es que no siempre vamos a tener que configurar el sistema de igual manera ya que cada situación es distinta.
Analicemos algunas situaciones posibles:
Grabación con monitoreo en tiempo real: Esta sin duda es la que más exige al sistema. Supongamos que queremos grabar las voces de un tema que ya tiene 24 pistas, como dijimos anteriormente la mejor manera de lograr una buena toma es que el intérprete se sienta cómodo y por ende para este tipo de configuraciones vamos a necesitar una latencia baja.
Lo ideal es que configuremos el buffer lo más bajo posible, para la mayor parte de las computadoras el buffer estará entre 128 y 256 muestras, suficiente para monitorear en tiempo real en la mayoría de las circunstancias.
Algo que hay que tomar en cuenta es tratar de no usar procesamiento en tiempo real a la hora de grabar porque eso aumenta considerablemente la latencia, lo ideal es usar dicho procesamiento en caso de absoluta necesidad, quizás algún reverb para el cantante y en el caso de tener muchas pistas tratar de dejar activas solamente las que sean necesarias para realizar la toma.
También es cierto que el nivel de latencia aceptable varía en función del instrumento que estemos grabando pero eso es más una cuestión de prueba y error en función de la comodidad del músico, lo que hay que tener en cuenta siempre es que a la hora de grabar voces la latencia debe ser mínima.
Mezcla o post-producción: Una vez en el proceso de mezcla podemos permitirnos el lujo de lidiar con un poco más de latencia. Esto porque no nos cambia la vida si las pistas demoran un segundo en empezar a reproducirse una vez apretamos play. Lo importante en estos casos es prestarle atención a la cantidad de procesos/pistas y también a la compensación de delay en caso de contar con ella (hablaré al respecto más adelante).
Conclusiones:
Optimizar la latencia de nuestro sistema se hace imprescindible para cualquier proceso de grabación con monitoreo. La única contra es que mientras menos latencia busquemos, más capacidad de procesamiento vamos a necesitar en nuestra computadora limitando así nuestras posibilidades de acuerdo a la computadora que tengamos.
El ajuste del tamaño del buffer es por lejos lo que más influencia tiene en la latencia de nuestro sistema, el mejor método de ajuste es el de prueba y error y negociar el punto entre el que dejamos de escuchar clicks y pops (buffer muy chico) y el punto en el que hay mucha latencia (buffer muy grande).
Espero que se haya entendido y a grabar que se acaba el mundo!
Fuente: http://blog.7notasestudio.com/como-reducir-la-latencia/#prettyPhoto