Почему на Linux плохой звук — некоторое прозрение
Там были затронуты интересные вопросы, касающиеся улучшайзеров.
Здесь весьма распространено мнение, (и до сегодняшнего дня я тоже его придерживался) что для достижения качественного звука надо выдать его на динамики с минимальными искажениями (bit perfect и подобное), а дальше динамики уж сами разберуться. У нас же не фуфло пластиковое, а напольники за 5000$.
Конечно нет, у нас фуфло пластиковое в тонком корпусе ноутбука! Они не разберутся, вот тут наша детская ошибка.
Например, есть ноут Huawei Matebook. Он идет сразу с системой Dolby Atmos (о чем писал fornlr когда говорил что все усложняется, и тут он совершенно прав, а я совершенно НЕ прав). Со стороны может показаться — ну зачем этот Atmos, очередной улучшайзер ненужный.
Но нет — в данном случае это улучшайзер нужный! Просто необходимый.
У ноута 4 динамика, два сверху два снизу. Уже проблема — естественно в линуксе все 4 сразу работать не будут, работают либо только нижние, либо только левые и т. д.
А теперь представьте, какой будет звук, если его выдать только на нижние динамики, которые смотрят в стол? Во-первых тихий — половина динамиков не работает, во вторых глухой. По басу — динамики могут друг друга тупо гасить.
Все эти проблемы решает Dolby Atmos, которая правильно разделяет на 4 канала, выдает на каждый динамик, вносит коррекцию с учетом расположения динамиков в корпусе. То есть без Dolby Atmos такая конфигурация вообще работать не может!
Вот и причина разительно лучшего звука в Windows.
В Linux чисто технически проблема решаема, вот пример как
но непонятен результат, и эти телодвижения — мягко говоря для пользователя не тривиальны.
Так что скоро мы рискуем остаться без динамиков в ноутах!
Предлагаю обсудить пути выхода из ситуации.
Магия pipewire. Настройка качественного звука в Linux
Широкого известно, что, в отличие от ОС компании 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, то будет логично с помощью стрелок на клавиатуре (вверх) её задрать на максимум. Всё остальные настройки — по собственному усмотрению.
Сохраняем изменения командой в терминале:
В принципе, если вам необходим только вывод звука в один канал и у вас нет беспроводных устройств, то на этом можно было бы и завершить весь этот скучный гайд. Однако если вы любите играть в игры одновременно слушая музыку и общаясь по беспроводной гарнитуре с напарником, то без 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 командой в терминале:
Выберем нашу звуковую карту и выставляем режим: «Аналоговый стерео дуплекс«. Он позволяет задействовать одновременно устройство ввода и вывода. В других вкладкам редактируем громкость наших устройств до желаемого уровня.
Windows vs Linux
Сравним ради интереса звучание Windows и Linux в S.T.A.L.K.E.R.: Тень Чернобыля при 16 Бит 48 кГц.
Несмотря на сжатие YouTube, разница в качестве очевидна.
Заключение
Вот, собственно, и всё. Посредством новейшего ретранслятора pipewire и удобного графического микшера pavucontrol мы всего за пару кликов обеспечили поддержку беспроводных гарнитур, качественный звук, минимальные задержки и удобное регулирование. Конечно, можно было бы заморочиться и установить битрейт повыше, кодек получше, ядро с уймой патчей, но это нужно лишь аудиофилам. Уважайте свободу, используйте Linux и ни в коем случае не предавайте себя.