Articulos posteado por

Como reducir la latencia

Como reducir la latencia

La 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!

 

 

14 Comentarios

  • Gracias loco por el aporte!!!

  • Gracias a vos Pablo por leer, espero que puedas encontrar información útil en otros artículos del blog.

    Un saludo y suerte!!

  • Gran aporte, gracias. No me dedico a grabar, pero me siento curioso por tener el hobby, y en todos lados las explicaciones estan dirigidas solo a entendidos previamente, o a vender productos

  • Uno de los mejores blogs que conozco sobre el tema… muchas gracias por todo!

    • Hola Pablo, gracias por comentar y leer, me alegra que te sirva el Blog un saludo grande.

  • Hola Jorge, que gran ayuda brindas… se que no te digo nada nuevo, pero es que es casi imposible no mencionar lo bien que le resultan tus respuestas a muchos de los lectores.
    Hoy, soy yo quien tiene una gran duda y agradecería mucho tu ayuda.
    Soy compositor y ya llevo varios años en la música, me dedique a formar bandas y tocar en vivo, pero nunca a grabar.
    Ahora que me encuentro muy lejos de donde nací, y sin conocer a nadie para construir mis ideas y llevarlas al publico, pues me e decidido a grabarme solo y me e comprado una Interfaz UMC204HD Behringer, un Micro condensador Audio-Technica AT2020 y mi laptop es una Packard Bell Dual Core 2.00 GHz con RAM de 4 GB (con disponibilidad libre de casi 3gb) y sistema operativo de 32 bits.
    Me quedan un par de días para poder devolver o cambiar lo comprado en caso de disconformidad… así que al encontrarme con los grandes aportes que compartes, me gustaría comentarte que no logro quitar una mínima latencia muy retardada cada vez que intento grabar. Estoy utilizando el Ableton Live 9 Suite y ya llevo varios días con ese problema.
    Cual crees que podría ser el problema?
    Muchas gracias de antemano y que sigas impartiendo conocimiento por mucho mas tiempo. 😉

    • Hola Rockdrigo, el tema de la latencia tiene mas que ver con el DAW que estes usando ya que desde allí se suelen modificar las preferencias de dicho ajuste, tanto para grabar como para mezclar. Te puedo comentar del caso de Pro tools en donde se ajusta el buffer size para grabar o mezclar y al grabar es necesario que sea lo mas pequeño posible mientras no se escuchen fallas al reproducir (drops o distorsiones), luego al mezclar se puede aumentar para que la computadora pueda procesar los plugins que se van a usar sin problemas.

      Espero te sea de ayuda la respuesta y mucha suerte.

  • el problema con mi ableton es de 64 bits es que no se que le pasa mi laptop es un hp 245 memoria RAM de 4,00 GB . PROCESADOR AMD E1 -2100 APU WITH Radeon (TM) HD Graphics 1.00 GHZ hay avece que como que se queda trabado no se si es porque el vst plugins son muy pesados y avece sale un sonido molestoso como de radio mayormente no entiendo lo que es el bufer y la lactencia recien probe el asio4all me a ido bastante mejor con los sonidos se an mejorado pero eh usado y comienza a salir un pequeño ruido no se si no lo se usarlo o si alguien me puede ayudar como usar el bufer o lactencia o si tengo que usar otro tipo de vst plugins soy muy nuevo en ableton y quiero aprenderlo bien LO AGRADECERIA ETERNAMENTE

    • Hola Joshue y gracias por tu comentario, en verdad es probable que si estas usando instrumentos VST en tiempo real con las capacidades de tu computadora estés sobre exigiéndola y eso provoque errores en la reproducción, habría que usar lo justo y necesario de VST e intentar reducir la cantidad de plugins que estás aplicando en vivo.

      La latencia tiene que ver con que escuchar con precisión lo que se interpreta al grabar y no tener un delay del sonido que se está interpretando y el monitoreo. El buffer por su parte sirve para que la computadora pueda procesar la información que significa usar plugins o VST, por lo que mientras más alto será mejor la efectividad pero también van a empezar a existir errores en la reproducción debido a que va a demorar un poco en reproducir el audio.

      Espero te sirva la sugerencia y muchos éxitos!

  • Hola Jorge
    Gran blog el tuyo, muchas gracias
    Lo que no he visto en ningun lado, es como corregir en un DAW un desfase de tiempo, aunque me imagino que no es dificil. Se me ocurre que lo mas practico, para grabar sobre proyectos pregrabados. es monitorear en tiempo real la grabacion nueva directamente desde la interface, sin entrar en la PC, logicamente no se pueden aplicar efectos , a menos que la interface tenga propios, mientras se escucha el play back del resto de lo pregrabado. Claro que la nueva pista tendra un atraso, aunque supongo que una vez en edicion, simplemente se desplaza en la linea de tiempo hasta coincidir en donde corresponde, y ahi se agregan efectos y procesamiento. Inclusive, hay interfaces que tienen efectos propios, que pueden ser similares a los deseados, y servirian para aproximar al monitoreo a la edicion deseada luego. Entiendo que asi se elimina el problema de exigir demasiado al buffer. Seria lindo si me confirmaras que voy bien encaminado
    Saludos

    • Hola Pedro y gracias por comentar. Como bien dices una alternativa para evitar la latencia al grabar es monitorear desde la interfaz antes de entrar al secuenciador o hacerlo usando una consola, si esta disponible. Por otro lado un desfase en el tiempo se puede corregir moviendo la region de audio y alineando a donde debería ir.

      Esto funciona bien cuando tienes fuentes grabadas con mas de un micrófono y hay pequeños desfases entre ellos.

  • Hola Jorge, buen artículo. Me preguntaba si a la hora de exportar mi proyecto sería correcto mantener el buffer al máximo que me permita mi Daw (por ejemplo, 1024 samples). Entiendo que para grabar necesito ajustar el buffer al mínimo sin que se escuchen esos clicks o pops, etc, y para la mezcla puedo ajustar un valor más alto sin problemas, pero el caso es que no estoy seguro de si al exportar (o grabar) mi mezcla con un buffer de 1024 samples podría perjudicar un poco la calidad del resultado final de la canción.

    Por ejemplo, he creado unas pruebas de exportación con diferentes buffers (128 (valor mínimo) y 1024 (valor máximo)), y me da la sensación de que se escucha mejor la exportación con el buffer a 128. ¿Esto es así?, ¿o mis oídos me están engañando y el buffer no afecta nada a la calidad de la exportación/grabación en el Daw?.

    Ojalá puedas ayudarme por favor. Un saludo.

    • Hola Juan, el tema del buffer va a ser más importante a la hora de re-grabar en una pista la mezcla ahí es muy probable que si lo tienes bajo existan problemas. De todas formas la calidad no va a ser perjudicada al incrementar el valor, nunca hice ese tipo de pruebas pero no debería haber una diferencia de sonido.

      Espero te sea de ayuda y un saludo.

    • De acuerdo Jorge, ya entiendo, entonces puedo dejar el buffer a 1024 para hacer una exportación o grabación sin problemas, porque la calidad no se verá afectada. ^^

      Ahora mismo lo que estoy haciendo es grabar toda la mezcla a una pista estéreo (en vez de exportar), creo que es la mejor forma de conseguir resultados transparentes y de calidad (por el tema de que al hacer un render/bounce, el Daw hace unos cálculos matemáticos complejos y en el proceso se pueden perder algunos picos/detalles de la mezcla que después en el paso del mastering complicarían la calidad final de éste). Muchas gracias por todo maestro, sigue adelante, un gran abrazo. 😀 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Posts Relacionados

Buscar

Nos gusta que te guste

Tweets Recientes