Latencia típica del micrófono a las muestras digitalizadas en una PC

Estoy buscando hacer un procesamiento de audio en tiempo real en una PC (podría ser Windows o Linux). Para eso necesito obtener datos de audio digitalizados de un micrófono muy rápidamente. Me pregunto cuál es el rango típico de latencia que debo esperar. ¿Está en el rango de microsegundos? ¿Entre 1 y 10 ms? ¿Más de 10ms? Si es más de unos pocos ms, ¿hay alguna forma de reducirlo a 1 ms o menos? Si no es posible en una PC, ¿existen kits de desarrollo de tarjetas de audio con procesador DSP adecuados para el procesamiento de audio en tiempo real?

En mi juego con una guitarra y un bajo la otra noche, encontré una latencia de ida y vuelta de 5 ms apenas aceptable. No pude jugar lo mejor posible con una latencia de 10 ms; de hecho, encontraría una solución diferente si esa fuera la mejor que pudiera obtener. Menos de 5 ms de ida y vuelta probablemente estaría bien para la mayoría de los músicos, me sorprendería que alguien notara menos de 1 ms (si es posible).

Respuestas (2)

Hay muchas variables que afectan la latencia total porque hay varias fuentes de latencia. La latencia es introducida por el proceso de conversión de analógico a digital, y luego por varios búferes diferentes, como el búfer del bus (p. ej., el búfer USB) y, por lo general, al menos dos búferes de software (del controlador y el DAW). Si algún complemento es parte de la cadena de señal, se vuelve mucho más complicado, con algunos complementos que introducen 500 ms o más de latencia (eso es raro para la mayoría de los complementos, pero es posible o incluso probable para limitadores de pico anticipados o convolución reverberaciones).

RME, por ejemplo, anuncia una latencia para su interfaz BabyFace tan baja como 14 muestras para controladores OS X. A una frecuencia de muestreo de 96 kHz, eso equivale a menos de 1 ms. Eso es sólo una parte de la imagen. En mi computadora, ejecuto el búfer para Ableton Live a 128 muestras, que a 44,1 kHz tiene más de 6 ms de latencia, y eso es unidireccional. La latencia total de ida y vuelta para mi configuración actual es de aproximadamente 12 ms, lo que no es lo suficientemente rápido para grabar.

En la práctica, siempre he valorado la grabación confiable, lo que significa que quiero búferes más grandes, ya que una insuficiencia de datos en el búfer es una brecha en la grabación. Búferes más grandes significan más muestras de latencia. Por lo tanto, me aseguro de poder monitorear siempre sin depender del audio enrutado a través del DAW. Cuando estoy grabando en un canal DAW, el canal está activado para grabación pero también silenciado. Luego utilizo un mezclador o una interfaz de monitorización de baja latencia (un mezclador digital integrado en la interfaz) para combinar el audio de latencia casi nula de la interpretación mezclado con las pistas de acompañamiento existentes o la pista de clic.

Si desea un procesamiento de audio digital de latencia súper baja, una opción es obtener una potencia de procesamiento dedicada. Hay muchas interfaces de audio disponibles ahora que incluyen algunos procesamientos de audio básicos (ecualización, ecualización, reverberación) como parte de sus mezcladores digitales de monitoreo de baja latencia. Hay algunos productos de gama alta que combinan una interfaz con un DSP dedicado que se puede usar en tiempo real o para editar y mezclar, como los productos UAD Apollo.

Como comentó JCPedroza, hay herramientas disponibles para permitir el procesamiento en tiempo real utilizando la potencia de la CPU nativa. No sé mucho sobre esos en este momento.

Con una interfaz de audio USB económica (160 USD), que ejecuta OS X en una MacBook Pro con un procesador i5, no puedo obtener una latencia de ida y vuelta inferior a unos 6 ms sin artefactos realmente malos. Sospecho que una mejor interfaz me daría mejores resultados. Aparentemente, la mayoría de las interfaces Thunderbolt tienen una latencia mucho más baja que las USB.

Editar: aquí hay una tabla de latencia para una marca de interfaces Thunderbolt rápidas .

Latencia de ida y vuelta* (ms) probada a 96 kHz en OS 10.10 y Mac Pro

Tamaño de búfer Pro Tools 11 Logic Pro X Cubase 7 Ableton Live 9 Reaper 4.7
32 n/d 1,67 1,67 2,09 1,44
64 1,38 2,33 2,33 2,42 2,11
128 2,29 3,67 3,67 3,76 3,44

De esto podemos deducir varias cosas:

  1. Puede obtener una latencia de menos de 1 ms en el camino, desde el micrófono hasta las muestras, pero el viaje de ida y vuelta lleva aproximadamente el doble de tiempo y eso será más de 1 ms para todas las interfaces, excepto las más caras.
  2. El software que usa importa (me sorprendió ver ProTools con la latencia más baja).
  3. Los tamaños de búfer más pequeños son fundamentales para obtener la latencia más baja, pero pueden generar problemas de calidad de sonido si la computadora tiene poca potencia.
  4. Frecuencias de muestreo más altas (el cuadro de frecuencia de muestreo de 48 kHz no se cita aquí, pero es más lento) también son fundamentales para obtener la latencia más baja, pero nuevamente ejercen presión sobre el hardware de la computadora.

TL; DR: con la interfaz, la computadora y el software correctos (en su mayoría costosos), se puede hacer.

Gran respuesta, pero tal vez no califique las CPU de la computadora para audio en tiempo real y uso en vivo. Hay innumerables ejemplos de artistas que incorporaron con éxito CPU para el procesamiento de audio en vivo, un ejemplo famoso es Nine Inch Nails usando Mainstage, que ejecuta todo "desde efectos vocales hasta parches de guitarra". Consulte youtube.com/watch?v=4kU0skUZTIw
@JCPedroza Si Apple quisiera venderme algo, tener a NIN interpretando Survivalism en el video es una buena manera de hacerlo. También estaba trabajando con un bajista hoy y estábamos hablando de hacer un equipo de teclado completo con una computadora portátil y pensamos que no podíamos hacerlo, pero ahora parece que posiblemente podemos. ¡Gracias!

He estado usando Linux para música en tiempo real durante muchos años, y nunca he tenido un caso en el que la latencia de extremo a extremo fuera más de un par de milisegundos. Echa un vistazo a kxstudio. No puedo hablar con Windows o Mac, ya que no he tenido experiencia con su uso para la música.

No tengo los representantes para comentar, pero, por supuesto, tenga cuidado de llevar una computadora portátil al escenario, especialmente con una interfaz de audio USB. Pero ese es otro tema.

Si está utilizando Linux, entonces creo que su Jack Gui debería mostrar su latencia. Pero estoy casi seguro de que no incluirá ninguna latencia en su tarjeta o módulos de audio. El estándar de oro, si desea incluir todo en la cadena de audio, es conectar la salida de audio a la entrada de audio y grabar ambos en pistas separadas. Luego tráelos con audacia o algo similar y mide.
Ah, y por un "par de milisegundos", eso fue en general. Si el arranque está dedicado a esta aplicación, y solo está haciendo esta aplicación dedicada en tiempo real, entonces, a menos que su procesamiento sea un verdadero cerdo, entonces debería obtener menos de 1 ms en estos días. Nuevamente, la advertencia sería si está utilizando audio USB, pero aun así, con usb3, me pregunto si eso sigue siendo un problema. ¿Puedo preguntar por qué preguntas esto?
Para medir la latencia, conecte la salida de audio a la entrada de audio y grabe ambas en pistas separadas. Luego, con audacia o lo que sea, mide la diferencia.