stringtranslate.com

Kit de conexión de audio JACK

JACK Audio Connection Kit (o JACK ; un acrónimo recursivo ) es una API de servidor de sonido profesional y un par de implementaciones de daemon para proporcionar conexiones en tiempo real y de baja latencia para datos de audio y MIDI entre aplicaciones. JACK fue desarrollado por una comunidad de desarrolladores de código abierto liderada por Paul Davis (quien ganó un premio de código abierto en 2004 por este trabajo) [3] y ha sido una pieza clave de la infraestructura y el estándar de facto para el software de audio profesional en Linux desde su inicio en 2002. El servidor es software libre , con licencia GPL-2.0 o posterior , mientras que la biblioteca tiene licencia LGPL-2.1 o posterior . [2]

Implementaciones

La API JACK está estandarizada por consenso y existen dos implementaciones compatibles: jack1, que está implementada en C simple y ha estado en modo de mantenimiento por un tiempo, y jack2 (originalmente jackdmp), una reimplementación en C++ originalmente liderada por Stéphane Letz, que introdujo escalabilidad multiprocesador y soporte para sistemas operativos distintos de Linux. [4]

JACK se puede utilizar con ALSA , PortAudio , CoreAudio , FFADO y OSS como back-ends de hardware . Además, existe un controlador ficticio (útil si no se desea salida de sonido, por ejemplo, para renderización sin conexión) y un controlador de audio sobre UDP. Una o ambas implementaciones pueden ejecutarse en Linux , macOS , Solaris , Windows , iOS , FreeBSD , OpenBSD y NetBSD .

La API JACK también es implementada por PipeWire para compatibilidad con versiones anteriores como un proveedor de reemplazo completo para clientes JACK, asignando llamadas a la API JACK a llamadas PipeWire equivalentes. [5] Si también se usa como reemplazo de ALSA y PulseAudio, puede unificar los diferentes servidores de sonido y API que se pueden encontrar normalmente en una máquina y permitir una mejor integración entre diferentes programas. PipeWire también afirma agregar una serie de características y corregir una serie de limitaciones en comparación con JACK. [6] El uso de PipeWire como la implementación predeterminada de JACK es el predeterminado en Fedora 34 y versiones posteriores. [7]

Programación de baja latencia

Al igual que PulseAudio , el demonio JACK es un "demonio de audio", es decir, realiza la mezcla de audio de las aplicaciones mediante software. Para ello, supone tener acceso exclusivo al subsistema de audio del núcleo.

Los requisitos de programación de JACK para lograr latencias suficientemente bajas fueron una de las fuerzas impulsoras detrás del esfuerzo de optimización en tiempo real para la serie 2.6 del kernel de Linux , [8] [9] cuyo rendimiento de latencia inicial había sido decepcionante en comparación con la serie 2.4 anterior. [10] El trabajo de ajuste en tiempo real culminó en numerosas mejoras de programación para el kernel principal y la creación de una rama -rt para optimizaciones más intrusivas en la versión 2.6.24, y más tarde el parche CONFIG_PREEMPT_RT . [11]

Aplicaciones con soporte JACK

Véase también

Referencias

  1. ^ "JACK". Resumen del análisis . Ohloh . Consultado el 8 de enero de 2012 .
  2. ^ ab "Kit de conexión de audio JACK - Licencia". Archivado desde el original el 2021-05-03 . Consultado el 2021-06-08 .
  3. ^ "Premios de código abierto 2004: Paul Davis por JACK". techrepublic.com.com . Consultado el 24 de mayo de 2016 .
  4. ^ "¿Qué novedades hay en JACK2? - Documento de la Linux Audio Conference 2009 del autor principal de JACK2, Stephane Letz". linuxaudio.org . Consultado el 17 de febrero de 2010 .[ enlace muerto permanente ]
  5. ^ "JACK - Wiki - PipeWire/pipewire". PipeWire en GitLab . Consultado el 11 de febrero de 2021 .
  6. ^ "Preguntas frecuentes - Wiki - PipeWire/pipewire". PipeWire en GitLab . Consultado el 11 de febrero de 2021 .
  7. ^ Larabel, Michael. "Fedora 34 obtiene aprobación por intentar utilizar PipeWire como opción predeterminada para las necesidades de audio". Phoronix . Phoronix Media . Consultado el 11 de febrero de 2021 .
  8. ^ "Anuncio original de un parche voluntario de pre-empción para la serie de kernel Linux 2.6 por Ingo Molnar, 2004". lkml.org . Consultado el 17 de febrero de 2010 .
  9. ^ "Encontrar orígenes de latencias mediante Ftrace, artículo de Steven Rostedt del Real-time Workshop 2009" (PDF) . Consultado el 17 de febrero de 2010 .
  10. ^ "Audio en tiempo real frente a 2.6, artículo de Lee Revell en la Linux Audio Conference 2006" (PDF) . Archivado desde el original (PDF) el 10 de noviembre de 2020. Consultado el 17 de febrero de 2010 .
  11. ^ "Real-Time Linux Wiki". Kernel.org (Los archivos del núcleo de Linux) . Consultado el 8 de junio de 2010 .

Enlaces externos