Джек против Пульсаудио – как это происходит быстрее?

Я вижу кучу заявлений о том, что Джек быстрее, чем пульс, и имеет меньшую задержку. Как это так? Почему Pulse называют себя легким, а парни Джека называют его толстым? Может ли кто-нибудь сломать внутренности этих двух демонов неспециалисту?

    3 Solutions collect form web for “Джек против Пульсаудио – как это происходит быстрее?”

    Джек требует от вас – знающего пользователя – настроить сервер для определения минимально возможной задержки обработки для вашего компьютера. (Задержка обработки – это время, когда сервер переводит данные в / из клиентских приложений, а затем отправляет / получает следующий «фрагмент» аудиозаписей вне системы.) Джек будет либо доставлять эти фрагменты аудиоданных во времени, либо он будет терпеть неудачу и даст вам переполнение буфера (иногда называемое «отсева», или всплывающие окна и клики ). Если Джек последовательно получает недоработку, тогда ваша задача – либо перезапустить сервер с различными настройками, либо изменить что-то в клиентских приложениях, чтобы сделать их более эффективными, чтобы вы могли соответствовать вашим срокам аудио. Так как ваши настройки сервера применяются одинаково ко всем клиентам, Джек очень полезен для маршрутизации звука между несколькими аудиоприложениями и получения прогнозируемых результатов. (То есть, это похоже на подключение «гнезд» к различным аудиокомпонентам.)

    Пульс предназначен для сведения к минимуму количества выпадений звука из-за того, что сервер не соответствует крайнему сроку отправки / приема звука вне системы. По-видимому, он пытается это сделать, выбирая большой буфер для клиентских приложений, которые не требуют низкой латентности обработки , а затем «вводят» образцы в этот буфер для приложений клиентов, срок которых истекает раньше. Если он попытается так быстро вставить образцы, что он пропустит крайний срок и вызывает недоумение, Pulse автоматически увеличит минимальное количество времени, которое позволит клиенту отправить звуковое обновление на сервер. Импульсные документы явно заявляют, что сверхнизкая латентность – скажем, менее 10 мс латентности обработки – не является целью дизайна. Учитывая, что сам Linux (и, вероятно, ваше оборудование) не был предназначен для планирования звука в реальном времени, я бы склонен им поверить.

    С точки зрения пользовательской конфигурации импульс «светлый». (Можно сказать, что Pulse имеет низкую задержку конфигурации , что, к сожалению, многие Linux Audio приложения, по-видимому, игнорируют.) С точки зрения своей сложной сложности по сравнению с Jack, Pulse является «толстым».

    Чтобы получить окончательный ответ, по которому быстрее, вам просто нужно получить устройство loopback и измерить латентность « туда и обратно» в вашей собственной системе, чтобы узнать правду. Задержка в обратном направлении – это время, в течение которого ваша система обрабатывает аудио и получает то, что она обрабатывает обратно в систему. В онлайн-учебнике рассказывается о том, как это сделать в Linux. Это даст вам представление о том, что вы на самом деле после, это воспринимаемая латентность – время, которое требуется с момента запуска события (например, наведение струн гитары) до момента, когда вы впервые услышите звук это результат (например, прослушивание гитарного аккорда).

    Наконец, имейте в виду, что оба Pulse и Jack сидят поверх ALSA в большинстве дистрибутивов GNU / Linux. Я знаю, что вы только спрашиваете о Джеке против Пульса. Но если вы используете одно звуковое приложение, которое может напрямую подключаться к ALSA, нет никакого мыслимого способа, чтобы добавление Pulse или Jack обеспечивало вам более низкую воспринимаемую задержку, чем ALSA. В этом смысле оба Импульса и Джека являются «жирными».

    tldr; Только ALSA является самым быстрым, Джек полезен для объединения нескольких аудио-приложений, а Pulse, вероятно, проще всего использовать, когда вы не заботитесь о сверхнизкой задержке. Игнорируйте любую документацию или обсуждения, в которых используется термин « задержка», без объяснения того, что означает латентность. (К сожалению, как официальные документы Джека, так и записи блога Леннарта о Pulse попадают в эту категорию.)

    Примечание . Там могут быть крайние регистры, в которых вы хотите использовать одно звуковое приложение, и оно имеет crummy интерфейс ALSA и достойный интерфейс Jack. В этом случае использование Джека может привести к более низкой задержке. Но если мы говорим о приложениях, предназначенных для минимизации латентности, эти случаи должны быть редкими. Но подключите устройство петли и проверьте мою гипотезу!

    На самом деле они похожи на звуковые серверы . JACK предназначен для реагирования в реальном времени / с малой задержкой, что требуется профессиональными аудио решениями. PulseAudio нацелен на общий рабочий стол (где применяются менее строгие требования). Кажется, что PA тяжелее JACK – более сложным становится больше накладных расходов. В Linux оба используют ALSA для реального вывода в конце. С PA данные часто направляются из ALSA (выход приложения) в PA (обработка) в ALSA (выход), что, конечно, медленнее, чем маршрут JACK-ALSA. С другой стороны, он прозрачен для приложений, которые не могут использовать его изначально, поскольку он представляет им виртуальную звуковую карту с интерфейсом ALSA.

    В любом случае, если вы не собираетесь создавать музыку или не можете жить без контроля объема приложения (или пересылки звука на другой компьютер по сети), простая ALSA будет работать отлично, с меньшими затратами. Некоторые драйверы могут выполнять аппаратное смешивание, и даже если нет, ALSA может смешиваться через плагин (возможно, не так быстро, как JACK, но «нормальное» использование должно быть в порядке).

    На самом деле это не вопрос «против». Сначала мы видим, что они оба – «Звуковые серверы». Таким образом, возможно, заключить, что нужно просто выбирать между ними. Это не так. Сравните, например, видеокамеру и камеру FLIR, обе камеры. Но между ними не просто «выбирать». Они выполняют очень разные роли, эти роли могут быть дополнены, но они никоим образом не конкурентоспособны. Нужен домкрат, или нужен пульс, или ему может понадобиться и то, и другое. Выбор зависит от проблемной области, а не от особенностей, таких как специфическая латентность.

    Что касается «FAT» против нет, этот термин используется слишком многими способами, чтобы быть действительно значимым. Но, как правило, термин FAT используется, когда приложение «делает все это для вас» более или менее. «Легкий вес» имеет тенденцию к тому, что вы загружаете нужную вам функциональность, возможно, выбирая из поддона вариантов и отбрасывая остальные. Пульс – это программа «большого блоба», в которой вы даете несколько параметров и, в значительной степени, от нее. Нужно это или нет, при запуске импульса загружается большое количество функций. Джек один крошечный и бесполезный сам по себе, программа, к которой вы приклеиваете любое количество плагинов, программ и т. Д., Чтобы создавать то, что вы хотите. Программисты склонны рассматривать мир со стороны машинных ресурсов.

    Таким образом, импульс является сервером с переменной задержкой, а гнездо – фиксированным латентным. Это их специфические проблемные области. Если вы просто смотрите телевизор или слушаете музыку по сети, вы обязательно хотите пульс. Если вы пытаетесь играть в живую электронную музыку, вам обязательно понадобится домкрат. Если вы смотрите телевизор и делаете тяжелую обработку звуковых потоков, вам наверняка понадобятся и то, и другое.

    Linux и Unix - лучшая ОС в мире.