Buffer y Latencia son para un “técnico de sonido” novato, como cualquier cantante que comienza a grabarse, dos términos “fantasmas” que pueden amargarle las sesiones de grabación. Para que superes esta situación, lo mejor es que conozcas de qué se tratan y cómo controlarlos.
¿Qué es un Buffer?
El buffer es un espacio temporal de memoria física el cual se usa para almacenar información mientras se envía de un lado a otro. Los buffers se pueden encontrar en todo tipo de dispositivos electrónicos, desde el nivel de circuitos hasta el nivel de la comunicación entre dispositivos como por ejemplo en el funcionamiento de internet. Los buffers son tan comunes por su función, que es paliar la diferencia de velocidad de transmisión o procesamiento entre dos dispositivos o procesos por eso están por todos lados en un ordenador: en discos duros, procesadores, RAM, impresoras… y su tamaño y características pueden afectar al rendimiento del dispositivo.
Principalmente existen dos tipos de implementación de un buffer, el físico y el de software: en el físico se tiene un módulo de memoria físico dedicado únicamente a la tarea de funcionar como buffer. El implementado por software es mucho más común y aunque el resultado de funcionamiento es el mismo cuenta con la ventaja de poder usar recursos no dedicados en un inicio para un buffer como puede ser la memoria RAM de un ordenador, ya que estos son creados virtualmente por un software y se pueden eliminan cuando ya no sean necesarios liberando recursos.
¿Para qué sirve un Buffer?
Un buffer suele utilizarse para transmitir información en sistemas en los cuales la velocidad a la que se obtiene o se manda la información es diferente a la velocidad a la que se procesa, y no deben confundirse con la memoria cache, ya que tienen funciones muy diferentes: los buffers almacenan información sin mantenerla más tiempo del que tarda en mandarse, pero la memoria cache almacena información durante un periodo de tiempo para que diferentes procesos o aplicaciones puedan acceder a ella rápidamente.
¿Qué es la latencia?
Si hubiera que resumirlo en pocas palabras, la latencia de audio es un retraso que afecta la reproducción de audio digital.
Los problemas más comunes vienen cuando se usa software de música en un ordenador con la tarjeta de sonido estándar instalada. Supongamos que estámos utilizando una configuración como ésta, y cuando grabamos una pista de voz, algo está mal. Hay una demora muy notable entre su rendimiento real y lo que puede escuchar a través de los auriculares conectados al ordenador. ¡Esto es latencia!
También puede afectar cuestiones como efectos virtuales e instrumentos. Si alguna vez nos pasó que cuando tocamos una tecla desde un controlador MIDI, para acceder a un instrumento virtual, y no logramos sincronizar la acción con el resultado, eso es a causa del fenómeno de latencia.
¿Por qué es un problema?
Es un problema porque la música precisa de sincronización para poder obtener los resultados adecuados de figuraciones musicales, sincronicidad con los otros músicos (reales o virtuales) y aunque parezca poco una fracción de segundo en música es un siglo.
¿Qué lo causa?
La latencia de audio es causada por retrasos en el procesamiento de los datos de audio a medida que viaja desde el mundo exterior (o desde la nota activada en un teclado) al procesador de la computadora y vuelve a salir. Es decir es el tiempo de procesos digitales, que intervienen entre una acción y su resultado acústico. En primer lugar, el audio se convierte mediante convertidores A / D en la tarjeta de sonido a datos digitales. Pasa a través del Bus y luego ingresa a un búfer de entrada en la PC o Mac. Después de esto, impacta cargando el proceso de la CPU propia de la computadora. Como la computadora está ejecutando todo tipo de otros programas a través del sistema operativo, esto puede presentar muchos obstáculos adicionales. por eso, la computadora debe procesar el audio, pero cuanto más lo haga en ese momento, más datos se irán acumulando en los buffers. Una vez que todos los efectos, sintetizadores de software o cualquier otra cosa han sido procesados, se envían de vuelta a través de un buffer de salida. Esto luego pasa los datos a un convertidor D / A, para convertir los datos de nuevo a audio, y se escucha a través de los altavoces o auriculares que hemos conectado. Cada una de estas etapas lleva tiempo, aunque en milisegundos, pero se suman a un retraso notable.
Factores que intervienen
Como hemos descripto anteriormente, la carga de procesos. Muchos autores tienden a atribuir la latencia como una culpa de la tarjeta de sonido, pero esto no es del todo cierto. Obviamente es recomendable contar con tarjetas o interfases de sonido que tengan drivers ASIO como mínimo. Y si usamos alguna unidad que realice a expensas de un procesador incorporado, sus propios procesos DSP, eso aliviará la carga del CPU de la computadora. Pero aún así podríamos no librarnos de la latencia. Los factores que intervienen son múltiples: La carga del procesador puede estar ocupada por procesos en segundo plano de la computadora. Protocolos de red, transacciones de internet, indexación de archivos en segundo plano, programas antivirus, etc.
¿Cómo arreglo los problemas de latencia?
En primer lugar, tener un buen ordenador es la base del éxito. Por eso una gran cantidad de procesadores multinúcleo, con mucha memoria es lo ideal. Obviamente también utilizar interfases de audio de altas prestaciones con drivers ASIO. Esto es lo indicado, ya que estos controladores son capaces de procesar datos de audio mucho más rápido. Como tales, pueden reducir la latencia a unos pocos milisegundos, que la gran mayoría de las personas ni siquiera notarían, pero que en la sumatoria general de los procesos van a hacer la diferencia.
Algunas interfases de audio cuentan con modos de monitoreo directo. Estos dirigen la señal de la entrada directamente a la salida (altavoces o auriculares). Esto significa que el ordenador y toda la latencia de audio que provoca se eliminan del proceso; escucharás tu interpretación mientras viaja a través de la entrada. Aunque nunca estaremos a salvo del todo.
Un consejo que puedo ofrecerte es: Separar los procesos de producción.
Separa los procesos de producción, por un lado la grabación de las pistas MIDI que hagan uso de instrumentos virtuales, y en una segunda etapa, podemos dedicarnos a producir las grabaciones que provengan del mundo analógico. Una vez terminada la producción con VST-i podemos digitalizarla o renderizarla a un archivo de audio y de ese modo liberar recursos que quedan disponibles para las demás necesidades de la producción. También hay que ser económicos en la cantidad de efectos que insertamos. He visto en muchos casos que los problemas de latencia son porque erróneamente los usuarios no saben que algunos efectos pueden (y deben) ser compartidos por envíos de auxiliares. Caso típico la reverb. Muchos usuarios colocan un plugin por cada canal de audio que precisa reverb, aumentando drásticamente la carga del CPU. Cuando no es NI RECOMENDABLE, NI NECESARIO.
Obviamente también tiene que ver con los settings de audio que estamos utilizando. No es lo mismo procesar una señal de 16 bits y 44,1 Khz que de 24 y 48 Khz. Entonces MUCHA ATENCIÓN A LOS ESTABLECIMIENTOS DEL MOTOR DE AUDIO.
Mi recomendación es básicamente estar lo mas cerca del procesamiento nativo en bits de la interfase.
Si tu interfase trabaja nativamente en modo 24 bits, no forzarla a 16 bits. Pues aunque sea menos cantidad de datos, el RESAMPLING que debe hacer el DAW para sacarlo hacia la tarjeta de sonido, invertirá recursos innecesarios. ¿Grabar a 96 khz? solo se me justifica si tienes micrófonos HD que puedan capturar 48.000 hz de frecuencias reales, en caso contrario no tiene sentido.
Espero que con todo lo que sabes ahora, tengas un poco menos de miedo a los términos latencia y buffer.
¡Ponte frente a ellos con el buen hacer y hazlos tus aliados!