Магия pipewire. Настройка качественного звука в Linux

Пост опубликован в блогах iXBT.com, его автор не имеет отношения к редакции iXBT.com

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


В настоящее время актуальными системами реализации звука в Linux принято считать: 

  • ALSA — это одна из старейших звуковых подсистем ядра Linux, которая по своей сути является встроенным звуковым драйвером на уровне ядра Linux. Обеспечивает минимальные задержки, но очень капризна при работе c современными беспроводными устройствами и с несколькими звуковыми потоками.
  • PulseAudio — звуковой сервер/ретранслятор расположенный между ядром системы и физическими устройствами ввода и вывода звука. Позволяет управлять множеством звуковых потоков, изменять их частоту, работать с беспроводными устройствами. В общем, лишён почти всех недостатков ALSA, но прилично искажает изначальный сигнал и имеет весомые задержки.
  • Pipewire — современная реализация звукового сервера/ретранслятора, что по принципу работы полностью аналогичен PulseAudio. Лишён почти всех недостатков Pulseaudio и имеет обширную совместимость с множеством устройств прямо из коробки.

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

Система автора

Подготовка

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

Выполним установку ALSA и вспомогательных пакетов:

sudo pacman -S alsa alsa-utils alsa-firmware alsa-card-profiles alsa-plugins

  • ALSA — звуковой драйвер ядра (обычно присутствует).
  • Alsa-utils — консольный микшер (alsamixer).
  • Alsa-firmware — драйверы для различных звуковых карт.
  • Alsa-card-profiles — готовые профили.
  • Alsa-plugins — различные алгоритмы шумодава и прочее ПО.

После окончания установки вводим в терминале команду alsa-utils для вызова консольного микшера.

В окне псевдографического микшера, вид которого будет отличаться в зависимости от звуковой карты и подключённых устройств, всё довольно просто:

  • Клавиша F6 это выбор звуковой карты.
  • Клавиша F3 переключает на настройки устройств ввода (микрофон).
  • Клавиша F4 отображает настройку устройств вывода (колонки).
  • Для включения или выключить регуляторов служит клавиша M.
  • Регулировка значений выполняется с помощью стрелок.

Здесь каждый сам решает, что и как подкрутить. Тем не менее, если шкала Master (общая громкость) стоит не на 100, то будет логично с помощью стрелок на клавиатуре (вверх) её задрать на максимум. Всё остальные настройки - по собственному усмотрению.

Сохраняем изменения командой в терминале:


sudo alsactl store

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

Установка и настройка Pipewire

Выполним базовую установку Pipewire и вспомогательных пакетов:

sudo pacman -S pipewire pipewire-alsa pipewire-pulse pipewire-jack pavucontrol

  • Pipewire — радиосервер.
  • Pipewire-alsa — модуль расширения для перехвата запросов ALSA в pipewire.
  • Pipewire-pulse — модуль расширения для перехвата запросов PulseAudio в pipewire.
  • Pipewire-jack — модуль расширения для перехвата запросов jack в pipewire (уменьшение задержки).
  • Pavucontrol— удобный графический микшер.

Активируем демона:

systemctl --user enable --now pipewire.service pipewire.socket pipewire-pulse.service wireplumber.service

Запустим красивый графический микшер pavucontrol командой в терминале:

pavucontrol

Выберем нашу звуковую карту и выставляем режим: "Аналоговый стерео дуплекс". Он позволяет задействовать одновременно устройство ввода и вывода. В других вкладкам редактируем громкость наших устройств до желаемого уровня.

Windows vs Linux

Сравним ради интереса звучание Windows и Linux в S.T.A.L.K.E.R.: Тень Чернобыля при 16 Бит 48 кГц.

Несмотря на сжатие YouTube, разница в качестве очевидна.

Заключение

Вот, собственно, и всё. Посредством новейшего ретранслятора pipewire и удобного графического микшера pavucontrol мы всего за пару кликов обеспечили поддержку беспроводных гарнитур, качественный звук, минимальные задержки и удобное регулирование. Конечно, можно было бы заморочиться и установить битрейт повыше, кодек получше, ядро с уймой патчей, но это нужно лишь аудиофилам. Уважайте свободу, используйте Linux и ни в коем случае не предавайте себя.