Настройка качества звука в Linux Mint 19.3 через Pulseaudio.
В Linux Mint по умолчанию для Pulseaudio установлен режим производительности, который является режимом низкого качества звука с минимальными накладными расходами для процессора. В обычном случае это работает хорошо и не создаёт никаких проблем, но если целью является получить наилучший звук, который способно выдать имеющееся оборудование, то для такого стандартные настройки не годятся.
Стандартные значения.
Настройка Pulseaudio производится через простой конфигурационный файл:
/etc/pulse/daemon.conf
Вывести список параметров и их значения в терминал:
pulseaudio --dump-conf
Значения по умолчанию в 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.
Текстовые комментарии закомментированы знаком #
Перечисленные в файле параметры закомментированы знаком ;
Чтобы изменить значение параметра, его нужно раскомментировать, убрав ;
Было:
; default-sample-format = s16le
Стало:
default-sample-format = s16le
Чтобы изменённые параметры вступили в силу, нужно применить конфигурацию Pulseaudio:
pulseaudio --check
Альтернативный метод через уничтожение процесса и его запуск:
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
После завершения редактирования конфигурационного файла с сохранением изменений необходимо применить новые значения для параметров:
pulseaudio --check
После выполнения команды изменения тут же вступят в силу. Теперь можно наслаждаться высококачественным звучанием.
Непонятно почему, но при speex-float-8 у меня pulseaudio жрет 6% цп, а при copy и soxr-vhq только 1
Для speex-float рекомендованы значения до 7 включительно. Если нужно самое высокое качество, то оптимальнее использовать copy.
В чём отличие soxr-vhq и copy? Какой sample format выдаёт лучшее качество?
Статья устарела в связи со стабилизацией PipeWire и его внедрению в ведущие дистрибутивы. «Магические пассы» для PulseAudio ныне не актуальны.
copy подразумевает минимальное использование буферизации. Для sample format максимальное s32le.