Джек требует, чтобы вы - знающий пользователь - настроили сервер для определения минимальной задержки обработки для вашей машины. (Задержка обработки - это время, которое требуется серверу для перемещения данных в / из клиентских приложений, а затем для отправки / получения следующего «фрагмента» аудиосэмплов за пределы системы.) Джек либо доставит эти фрагменты аудиоданных вовремя, либо он потерпит неудачу и даст вам опустошением буфера (иногда называемый «отсев», или хлопки и щелчки). Если у Джека постоянно возникают проблемы с загрузкой, тогда ваша задача - либо перезапустить сервер с другими настройками, либо изменить что-то в клиентских приложениях, чтобы сделать их более эффективными, чтобы вы могли уложиться в сроки аудио. Поскольку настройки вашего сервера применяются одинаково ко всем клиентам, Джек весьма полезен для маршрутизации звука между несколькими аудиоприложениями и получения предсказуемых результатов. (То есть это похоже на подключение «джеков» к различным аудиокомпонентам.)
Pulse предназначен для минимизации количества пропаданий звука из-за того, что сервер не соблюдает крайний срок для отправки / получения звука вне системы. По-видимому, он пытается сделать это, выбирая большой буфер для клиентских приложений, которые не запрашивают низкую задержку обработки , а затем «вставляя» выборки в этот буфер для клиентских приложений, которые имеют крайний срок раньше. Если он попытается внедрить сэмплы так быстро, что пропустит крайний срок и вызовет переполнение, Pulse автоматически увеличит кратчайшее время, в течение которого клиент сможет отправить аудио обновление на сервер. В импульсных документах четко указано, что сверхнизкая задержка - скажем, менее 10 мс задержки обработки- это не цель дизайна. Учитывая, что сам Linux (и, вероятно, ваше оборудование) не был предназначен для планирования звука в реальном времени, я бы склонен им верить.
С точки зрения пользовательской конфигурации, Pulse является «легким». (Можно сказать, что у Pulse низкая задержка конфигурации , что, к сожалению, многие приложения Linux Audio явно игнорируют.) С точки зрения базовой сложности по сравнению с Джеком, Pulse "толстый".
Чтобы получить точный ответ о том, что быстрее, вам просто нужно получить устройство обратной связи и измерить задержку прохождения сигнала в обе стороны в вашей собственной системе, чтобы узнать правду. Задержка в обоих направлениях - это время, которое требуется вашей системе для обработки аудио и получения того, что было обработано, обратно в систему. В Интернете есть учебники, в которых объясняется, как это сделать в Linux. Это даст вам представление о том, что вы на самом деле ищете, то есть о предполагаемой задержке - времени, которое требуется с момента запуска события (например, игры на гитаре) до момента, когда вы впервые услышите звук. что приводит (например, слышать гитарный аккорд).
Наконец, имейте в виду, что как Pulse, так и Jack находятся на вершине ALSA в большинстве дистрибутивов GNU / Linux. Я знаю, что вы спрашиваете только о Джеке против Пульса. Но если вы используете одно звуковое приложение, которое может напрямую подключаться к ALSA, невозможно представить, что добавление Pulse или Jack снизит задержку восприятия, чем одна ALSA. В этом смысле и Пульс, и Джек "толстые".
tldr; Одна только ALSA самая быстрая, Джек полезен для объединения нескольких аудиоприложений, а Pulse, вероятно, проще всего использовать, когда вам не нужны сверхнизкие задержки. Игнорируйте любую документацию или обсуждения, в которых используется термин « задержка», без объяснения того, что подразумевается под задержкой. (К сожалению, официальные документы Джек и записи Леннарта о Pulse попадают в эту категорию.)
Примечание : могут быть крайние случаи, когда вы хотите использовать одно аудио приложение, и оно имеет отвратительный интерфейс ALSA и приличный интерфейс Jack. В этом случае использование Джека может снизить задержки. Но если мы говорим о приложениях, разработанных для минимизации задержки, такие случаи должны быть редкими. Но подключите устройство с обратной связью и проверьте мою гипотезу!