- Улучшаем качество звука на Linux (Pulseaudio)
- 3 комментариев
- Настройка качества звука в Linux Mint 19.3 через Pulseaudio.
- Стандартные значения.
- Редактирование значений.
- Улучшение звука.
- Параметр resample-method.
- Параметр default-sample-format .
- 4 отзыва к статье “Настройка качества звука в Linux Mint 19.3 через Pulseaudio.”
- Магия pipewire. Настройка качественного звука в Linux
- Система автора
- Подготовка
- Установка и настройка Pipewire
- Windows vs Linux
- Заключение
Улучшаем качество звука на Linux (Pulseaudio)
Задался на выходных вопросом улучшения качества воспроизводимого звука на Linux. На ноутбуке установлена звуковая карта с Double Home Theater, под Windows есть возможность установить драйвера Double Home Theater v4, которые заметно улучшали качество звучания. На выходных появилось свободное время и решил провести разведку этого вопроса. И вот что накопал:
По умолчанию, после установки Ubuntu настройки звука выставлены в плохое качество, для улучшения необходимо внести корректировки в конфиг демона Pulse.
1. Открываем конфиг (потребуются права sudo):
sudo nano /etc/pulse/daemon.conf
2. Меняем значение параметров resample-method и default-sample-format, если эти строки закоментированны (перед ними стоит знак “;”), их необходимо раскоментировать:
resample-method = src-sinc-best-quality default-sample-format = float32ne
Доступные значения для resample-method: src-sinc-best-quality, src-sinc-medium-quality, src-sinc-fastest, src-zero-order-hold, src-linear, trivial, speex-float-N, speex-fixed-N, ffmpeg.
Примечание: N – число от 1 до 9, чем выше число, тем выше качество
Доступные значения для default-sample-format: u8, s16le, s16be, s24le, s24be, s24-32le, s24-32be, s32le, s32be float32le, float32be, ulaw, alaw.
Внимание: метод src-sinc-best-quality сильно нагружает CPU, поэтому в качестве альтернативы можно попробовать значения src-sinc-medium-quality или speex-float-N со значением N от 5 до 7. Если появились хрипы во время воспроизведения звука, пробуйте менять значение атрибута resample-method на более простой алгоритм, а для значения default-sample-format устанавливать значение более низкой дискретизации.
Настройки по умолчанию: CD quality: 16bit, 2 channels, 44100 Hz.
Если планируется воспроизводить аудиофайлы с большей частотой, можно так же изменить частоту, переопределив следующие параметры:
default-sample-rate = 44100 alternate-sample-rate = 48000
3. По завершению редактирования перезапускаем демона и наслаждаемся проделанной работой:
pulseaudio --kill && pulseaudio --start
3 комментариев
Рекомендую для меломанов значение resample-method заменить на copy (т.е resample-method = copy) иначе звук будеть сильно хуже Windows + ASIO. Но на мой слух звук в линукс вообще не для меломанов.
Ты очень сильно не прав, утверждая, будто звук в линукс не для меломанов. В линукс звук в разы лучше, чем в винде (хоть семёрка, хоть десятка, без разницы). К тому же, масса аудиофильских аппаратов строится именно на основе линукс, например Bryston BDP-2. Это только единичный пример, их много. Винда – ширпотреб и звук в ней никогда не будет аудиофильским, какие бы asio в ней не применялись, звуковая система априори не предназначена для качественного получения звука.
По поводу resample-method = copy полностью согласен.
Настройка качества звука в Linux Mint 19.3 через Pulseaudio.
В Linux Mint по умолчанию для Pulseaudio установлен режим производительности, который является режимом низкого качества звука с минимальными накладными расходами для процессора. В обычном случае это работает хорошо и не создаёт никаких проблем, но если целью является получить наилучший звук, который способно выдать имеющееся оборудование, то для такого стандартные настройки не годятся.
Стандартные значения.
Настройка Pulseaudio производится через простой конфигурационный файл:
Вывести список параметров и их значения в терминал:
Значения по умолчанию в Linux Mint 19.3:
daemonize = no
fail = yes
high-priority = yes
nice-level = -11
realtime-scheduling = yes
realtime-priority = 5
allow-module-loading = yes
allow-exit = yes
use-pid-file = yes
system-instance = no
local-server-type = user
cpu-limit = no
enable-shm = yes
flat-volumes = no
lock-memory = no
exit-idle-time = 20
scache-idle-time = 20
dl-search-path = /usr/lib/pulse-11.1/modules
default-script-file = /etc/pulse/default.pa
load-default-script-file = yes
log-target =
log-level = notice
resample-method = auto
avoid-resampling = yes
enable-remixing = yes
remixing-use-all-sink-channels = yes
enable-lfe-remixing = no
lfe-crossover-freq = 0
default-sample-format = s16le
default-sample-rate = 44100
alternate-sample-rate = 48000
default-sample-channels = 2
default-channel-map = front-left,front-right
default-fragments = 4
default-fragment-size-msec = 25
enable-deferred-volume = yes
deferred-volume-safety-margin-usec = 1
deferred-volume-extra-delay-usec = 0
shm-size-bytes = 0
log-meta = no
log-time = no
log-backtrace = 0
rlimit-fsize = -1
rlimit-data = -1
rlimit-stack = -1
rlimit-core = -1
rlimit-rss = -1
rlimit-as = -1
rlimit-nproc = -1
rlimit-nofile = 256
rlimit-memlock = -1
rlimit-locks = -1
rlimit-sigpending = -1
rlimit-msgqueue = -1
rlimit-nice = 31
rlimit-rtprio = 9
rlimit-rttime = 200000
Редактирование значений.
Редактировать этот конфигурационный файл можно любым текстовым редактором с правами суперпользователя. Рекомендую nano.
Текстовые комментарии закомментированы знаком #
Перечисленные в файле параметры закомментированы знаком ;
Чтобы изменить значение параметра, его нужно раскомментировать, убрав ;
Чтобы изменённые параметры вступили в силу, нужно применить конфигурацию Pulseaudio:
Альтернативный метод через уничтожение процесса и его запуск:
pulseaudio —kill && pulseaudio —start
Может быть достаточно просто pulseaudio —kill и дальше демон (сервис) запустится автоматически.
Улучшение звука.
Основными параметрами, влияющими на качество звучания, являются resample-method и default-sample-format.
Вывести поддерживаемые оборудованием значения параметров:
aplay —device hw /dev/urandom —dump-hw-params
Параметр resample-method.
У resample-method значение по умолчанию auto, что, скорее всего, означает resample-method = speex-float-1, то есть высокая производительность, но низкое качество. Поэтому оптимальнее выбрать конкретный метод. Так же это может помочь решить проблему с «хрипами».
resample-method = speex-float-n — это компромиссный высокопроизводительный метод, где n означает целое число от 1 до 9. Чем выше значение, тем лучше качество звучание, но выше накладные расходы для производительности. В качестве компромиссного варианта рекомендуется значение в диапазоне от 5 до 7. Для максимального качества значение 9.
resample-method = src-sinc-n-quality — [устаревший параметр] — метод предназначенный для звука высокого качества, где n означает best, medium и fastest варианты. Метод создаёт значительную нагрузку на процессор.
resample-method = soxr-n — [актуальный параметр] — метод предназначенный для звука высокого качества, является заменой rc-sinc. Здесь n означает mq, hq и vhq. Метод создаёт значительную нагрузку на процессор.
resample-method = copy — самое высокое качество, но при высокой нагрузке на процессор.
Примечание: При загрузке процессора, близкой к 100%, на высоком уровне качества может появляться «треск».
Параметр default-sample-format .
Значение по умолчанию s16le, что является качеством ниже среднего, но с низкой нагрузкой на процессор.
Для высокого качества, нужно указать следующее значение:
default-sample-format = float32le
После завершения редактирования конфигурационного файла с сохранением изменений необходимо применить новые значения для параметров:
После выполнения команды изменения тут же вступят в силу. Теперь можно наслаждаться высококачественным звучанием.
4 отзыва к статье “Настройка качества звука в Linux Mint 19.3 через Pulseaudio.”
Для speex-float рекомендованы значения до 7 включительно. Если нужно самое высокое качество, то оптимальнее использовать copy.
Статья устарела в связи со стабилизацией PipeWire и его внедрению в ведущие дистрибутивы. «Магические пассы» для PulseAudio ныне не актуальны.
copy подразумевает минимальное использование буферизации. Для sample format максимальное s32le.
Магия 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 и ни в коем случае не предавайте себя.