stringtranslate.com

Комплект для подключения аудиоразъема JACK

JACK Audio Connection Kit (или JACK ; рекурсивная аббревиатура ) — это профессиональный API звукового сервера и пара реализаций демона для обеспечения соединений в реальном времени с низкой задержкой для аудио- и MIDI-данных между приложениями. JACK был разработан сообществом разработчиков с открытым исходным кодом во главе с Полом Дэвисом (который получил премию Open Source Award в 2004 году за эту работу) [3] и является ключевой частью инфраструктуры и фактическим стандартом для профессионального звукового программного обеспечения на Linux с момента его создания в 2002 году. Сервер является бесплатным программным обеспечением , лицензированным по лицензии GPL-2.0 или более поздней версии , в то время как библиотека лицензирована по лицензии LGPL-2.1 или более поздней версии . [2]

Реализации

API JACK стандартизирован на основе консенсуса, и существуют две совместимые реализации: jack1, которая реализована на чистом C и некоторое время находилась в режиме поддержки, и jack2 (первоначально jackdmp), повторная реализация на C++, изначально возглавляемая Стефаном Летцем, которая представила многопроцессорную масштабируемость и поддержку операционных систем, отличных от Linux. [4]

JACK можно использовать с ALSA , PortAudio , CoreAudio , FFADO и OSS в качестве аппаратных бэкэндов . Кроме того, существуют фиктивный драйвер (полезный, если не требуется вывод звука, например, для офлайн-рендеринга) и драйвер Audio-over-UDP. Одна или обе реализации могут работать на Linux , macOS , Solaris , Windows , iOS , FreeBSD , OpenBSD и NetBSD .

JACK API также реализован PipeWire для обратной совместимости в качестве полного поставщика замены для клиентов JACK, сопоставляя вызовы JACK API с эквивалентными вызовами PipeWire. [5] Если его использовать в качестве замены для ALSA и PulseAudio, он может объединить различные звуковые серверы и API, которые обычно могут быть найдены на машине, и обеспечить лучшую интеграцию между различным программным обеспечением. PipeWire также заявляет о добавлении ряда функций и устранении ряда ограничений по сравнению с JACK. [6] Использование PipeWire в качестве реализации JACK по умолчанию является реализацией по умолчанию в Fedora 34 и более поздних версиях. [7]

Планирование с малой задержкой

Как и PulseAudio , JACK daemon является "аудио-демоном", т.е. он микширует аудио из приложений через программное обеспечение. Для этого он предполагает иметь эксклюзивный доступ к звуковой подсистеме ядра.

Требования JACK к планированию для достижения достаточно низких задержек были одной из движущих сил усилий по оптимизации в реальном времени для ядра Linux серии 2.6, [8] [9] первоначальные показатели задержки которых были разочаровывающими по сравнению со старой серией 2.4. [10] Работа по настройке в реальном времени завершилась многочисленными улучшениями планирования для основного ядра и созданием ветви -rt для более навязчивых оптимизаций в выпуске 2.6.24, а затем и патча CONFIG_PREEMPT_RT . [11]

Приложения с поддержкой JACK

Смотрите также

Ссылки

  1. ^ "ДЖЕК". Резюме анализа . Олох . Получено 2012-01-08 .
  2. ^ ab "JACK Audio Connection Kit - License". Архивировано из оригинала 2021-05-03 . Получено 2021-06-08 .
  3. ^ "Open Source Awards 2004: Пол Дэвис за JACK". techrepublic.com.com . Получено 24 мая 2016 г. .
  4. ^ "Что нового в JACK2? - Доклад Linux Audio Conference 2009, написанный основным автором JACK2 Стефаном Летцем". linuxaudio.org . Получено 17 февраля 2010 г.[ постоянная мертвая ссылка ]
  5. ^ "JACK - Wiki - PipeWire/pipewire". PipeWire на GitLab . Получено 11 февраля 2021 г.
  6. ^ "FAQ - Wiki - PipeWire/pipewire". PipeWire на GitLab . Получено 11 февраля 2021 г.
  7. ^ Ларабель, Майкл. «Fedora 34 получает одобрение за попытку перехода на PipeWire по умолчанию для аудиопотребностей». Phoronix . Phoronix Media . Получено 11 февраля 2021 г. .
  8. ^ "Оригинальное объявление о добровольном упреждающем патче для серии ядер Linux 2.6 от Инго Молнара, 2004". lkml.org . Получено 17 февраля 2010 .
  9. ^ "Finding Origins of Latencies Using Ftrace, статья Стивена Ростедта из Real-time Workshop 2009" (PDF) . Получено 17 февраля 2010 г.
  10. ^ "Real-time audio vs. 2.6, Linux Audio Conference 2006 paper by Lee Revell" (PDF) . Архивировано из оригинала (PDF) 10 ноября 2020 г. . Получено 17 февраля 2010 г. .
  11. ^ "Real-Time Linux Wiki". Kernel.org (Архивы ядра Linux) . Получено 8 июня 2010 г.

Внешние ссылки