Найти тему
Жизнь под Debian Linux

Оптимизация звуковой подсистемы Linux. PipeWire, PipeWire-Pulse

Звуковая подсистема Linux долгие годы была ахиллесовой пятой. Многие, пытавшиеся использовать Linux в качестве полноценной рабочей станции обработки звука, звукозаписи и пр. сталкивались с многочисленными проблемами. То не удавалось получить необходимого качества, то всплывали неожиданные задержки аудиотракта, то проявлялись детские болезни с хрипом.

Конечно, с этим боролись с переменным успехом, однако комфорта использования Linux для аудио это явно не добавляло.

Но все течет, все изменяется. Уже довольно продолжительное время назад появился сервер PipeWire впитавший лучшее от предыдущих попыток построить качественную аудиоподсистему.

Вероятнее всего, если вы пользуетесь современной версией ОС Linux, PipeWire - уже установлен и используется на вашем компьютере. И в первую очередь он прекрасен для простого пользователя тем, что он "просто работает". И надо сказать, что делает он это отлично.

Однако, пока существует масса программ, разработчики которых так и не удосужились организовать в них поддержку PipeWire. В результате в составе PipeWire устанавливаются и используются плагины, которые прикидываются другими устаревшими аудиоподсистемами. Например, PulseAudio.

Вот именно о нем и пойдет речь. Так как PulseAudio была наиболее распространенной в Linux в прошедшие годы, многие программы до сих пор именно эту подсистему и требуют для вывода звука.

Даже Google Chrome получил поддержку PipeWire совсем недавно. И то, она находится до сих пор в категории экспериментальных и по-умолчанию отключена.

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

А вот в с настройкой плагина, прослойки между PipeWire и программами, рассчитанными на PulseAudio, можно и даже нужно разобраться. Сделавшие это часто отмечают в себе желание заново переслушать свои любимые композиции или поиграть в любимые старые игрушки с "новым" звучанием.

И действительно, всего несколько настроек позволяет значительно расширить динамический диапазон и четкость воспроизведения тихих звуков в звуковом ряде, путем улучшения качества передискретизации и микширования звуковых потоков.

В этом здорово и интересно разобраться, впрочем, тем кому лень, а звук сделать получше хочется, можно обойтись и простой настройкой по инструкции.

И естественно, как это чаще всего случается в Linux, графический интерфейс тут нам не помощник. Будем править конфигурационные файлы.

Что важно помнить:

Особенность PipeWire в том, что не следует исправлять конфигурационные файлы там, где вы их найдете, так как с обновлением они окажутся перезаписаны и ваш труд пропадет даром. Сначала надо скопировать нужные конфигурационные файлы куда следует, и лишь потом править их.

Вот этим мы с вами и займемся, если ни кто не против.

Для начала следует создать каталог /etc/pipewire. По-умолчанию он отсутствует, а нам потребуется. В этот каталог копируем три файла из каталога /usr/share/pipewire:

-2

Именно их нам предстоит править.

Начнем с основного: /etc/pipewire/pipewire.conf

Здесь я обычно меняю частоту дискретизации по-умолчанию. И вам стоит, если ваш ЦАП поддерживает. Но больше 96000герц выставлять смысла не вижу.

Отвечает за эту настройку параметр:

...
context.properties = {
...
default.clock.rate = 96000
...

Таким образом мы говорим звуковой подсистеме PipeWire приводить к этой частоте дискретизации входящие потоки звука. Можно было бы заставить менять частоту под входящие потоки, тем самым экономить процессорное время и уменьшая и без того маленькую задержку, но мне нравится именно так. А Вы вольны экспериментировать. Хозяин - барин.

Лично я этот файл больше не меняю. Но всегда прежде убеждаюсь, что ЦАП звуковой карты умеет 96000герц, чтобы не было двойной передискретизации. Если не умеет, то лучше частоту снизить до максимально доступной лично на вашей звуковой карте.

Далее синхронно правим /etc/pipewire/client.conf и /etc/pipewire/pipewire-pulse.conf:

-3

По-умолчанию качество выбрано "4", можно до "15" увеличивать, но мне "10" за глаза. Чем выше значение, тем больше будет потреблять процессорного времени. Хотя для современных процессоров 4% потребления одного из ядер - не принципиально.

Больше ничего править в большинстве случаев не требуется. Осталось лишь перезапустить звуковую подсистему или перезагрузить компьютер.

Можно наслаждаться новым, более качественным звучанием уже знакомых композиций и программ.

А если сравните звучание аналогичных тем с Windows с аналогичным аудиотрактом, то будете очень приятно удивлены. Я удивился.

_______________________________________________________________________________

Если статья оказалась полезной, то возможно и другие статьи моего цикла оптимизаций производительности системы вам пригодятся:

Тонкая настройка Debian Linux