8
April
2024
Замена звукового сервера Pulseaudio на Pipewire в Linux и установка EasyEffects
17:17

Замена звукового сервера Pulseaudio на Pipewire в Linux и установка EasyEffects

8 April 2024 17:17

Инструкция по замене PulseAudio на PipeWire и установке EasyEffects

1) добавил PPA-репозиторий

sudo -E add-apt-repository ppa:pipewire-debian/pipewire-upstream

2) обновил кеш пакетов apt

sudo apt update

3) установил звуковой сервер pipewire

sudo apt install pipewire

4) Также необходимо установить зависимость с помощью Pipewire, иначе вы столкнетесь с проблемой «Bluetooth-гарнитура не подключается после установки Pipewire». Установил зависимость:

sudo apt install libspa-0.2-bluetooth

5) Установил библиотеки клиента Pipewire

sudo apt install pipewire-audio-client-libraries

6) Перезагрузил конфигурацию служб данного пользователя (т.к. сервер выполняется в контесте пользователя)

systemctl --user daemon-reload

7) Отключил службу PulseAudio пользователя

systemctl --user --now disable pulseaudio.service pulseaudio.socket

8) Дополнительно: в Ubuntu отключил сервис pulseaudio после перезагрузки, с помощью команды:

sudo systemctl --user mask pulseaudio

9) Установил пакет pipewire-media-session

sudo apt install pipewire-media-session

Отмечу, что есть два способа управления потоками и политиками в PipeWire: при помощи модулей pipewire-media-session или wireplumber.

10) Установил пакет pipewire-pulse

sudo apt install pipewire-pulse

11) Удалил остатки pulseaudio

sudo apt remove pulseaudio   

12) Запускаю сервисы

systemctl --user --now enable pipewire pipewire-pulse pipewire-media-session   

13) Проверка

pactl info   

Результат должен быть примерно следующий:

трока сервера: /run/user/1000/pulse/native
Версия протокола библиотеки: 35
Версия протокола сервера: 35
Выполняется локально: да
Номер клиента: 59
Размер блока памяти: 65472
Имя пользователя: user
Имя хоста: green-pro
Имя сервера: PulseAudio (on PipeWire 1.0.3)
Версия сервера: 15.0.0
Спецификация отсчётов по умолчанию: (недействительно
Схема каналов по умолчанию: front-left,front-right
Аудиоприёмник по умолчанию: alsa_output.pci-0000_00_1b.0.analog-stereo
Источник по умолчанию: alsa_input.pci-0000_00_1b.0.analog-stereo
Cookie: 5a3e:4b14

14) Установка регулятора уровней и т.п. - Панель управления для PipeWire, под названием EasyEffects

Приложение EasyEffects имеет домашнюю страницу на сайте https://github.com/wwmm/easyeffects
EasyEffects возможно установить из Flatpak:

sudo apt install flatpak
flatpak install flathub com.github.wwmm.easyeffects

Нажимаем два раза Enter, если хотим разрешить установку - Y - приложения EasyEffects
Загрузка и установка easyeffects - около 5 минут.

Если программа EasyEffects не устанавливается - проверьте, что добавлен flatpak репозиторий EasyEffects (актуально только для некоторых дистрибутивов):

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.fpatpakrepo

По умолчанию в Linux Mint и Linux Green данная команда не нужна.

15) Запускаем приложение EasyEffects

flatpak run com.github.wwmm.easyeffects

Должно появиться пустое окно: "Список пуст".
easyeffects1
16) В EasyEffects зашел на закладку "Pipewire" - смена звуковой карты (только если она внешняя USB)
pipewire-internal-audio
В разделе "Автозагрузка предустановок" сменил звуковую карту для ввода-вывода звука с Built-in Audio Analog Stereo на USB Audio Analog Stereo.
pipewire-out

В разделе "Общие" выбрал USB звуковую карту (если встроенный звук, данный пункт выполнять не требуется)

17) В EasyEffects проверяем вывод звука - раздел "Проверочный сигнал".
sound_test

Осторожно, очень громкий сигнал, снимите наушники!

На закладке "Выход" появится спектр сигнала, с уровнем -6 дБ
test
Отключем проверочный сигнал на закладке Pipewire - Проверочный сигнал.

18) Запускаем источник звука - ранее установленное приложение Shortwave
vinyl
19) Чтобы отрегулировать громкость: в EasyEffects на закладке "Pipewire" - "Проигрыватели" уменьшаем громкость с 100% до 20-25%.
volume
20) Регулировка громкости PipeWire - на закладке "Проигрыватели" (100% -> 22%)
20) Добавил эквалайзер в "Эффекты" - "Добавить эффект" - "Эквалайзер"
eq1
По умолчанию 32 полосы! Это мне не нужно, достаточно 5 полос. Исправляем вверху Число полос с 32 на 5.
eq2
Для изменения параметров эквалайзера после уменьшения числа полос растягиваем окно за правый край:
eq3
и нажимаем кнопку "Подсчитать частоты".
eq4
За нижний край увеличиваем размер окна или раскрываем окно на весь экран.
Настраиваем эквалайзер по вкусу.

Если на максимальной громкости в наушниках возникает перегрузка, можно отрегулировать усиление "Выход".
eq5

Звук в PipeWire с эквалайзером стал лучше по сравнению с PulseAudio.

Не допускайте перегрузки выхода (передвиньте ползунок влево)! lvls
21) Для лучшего качества переключите режим эквалайзера с IIR на FFT. fft
22) Сохраняем настройки эквалайзера на диск с помощью кнопки "Экспорт предустановки APO".
В дальнейшем, запускать каждый раз EasyEffects не нужно, т.к. настройки применяются к PipeWire при запуске ОС.
Запуск EasyEffects для настройки звука производится командой

flatpak run com.github.wwmm.easyeffects

Также, программу настройки звука Easy Effects можно выполнить в меню "Пуск" - "Аудио и видео" - "Easy Effects":
easy_effects_icon

Сохранение настроек EasyEffects производится в меню "Предустановки":
pipewire-save-settings

Настройка регулятора громкости в системном лотке

Если к компьютеру подключено несколько звуковых карт, настройка громкости в системном лотке по умолчанию управляет громкостью встроенной звуковой карты. Изменения уровня громкости не будут влиять на громкость в динамиках. Чтобы решить проблему, щелкните левой кнопкой мыши по регулятору громкости, выберите "Настройки звука".
volume2

Откроется панель - нужно выбрать звуковую карту, которой будет управлять регулятор громкости. В моём случае выход звука на внешнюю звуковую карту называется "Analog output USB audio" - нажал на соответствующую кнопку панель. Теперь регулятор громкости работает корректно - управляет громкостью вывода звука на внешнюю USB звуковую карту.
usb_sound_card

Чтобы уведомления не мешали прослушиванию музыки, в том же окне "Звук" на вкладке "Настройки звуков" нужно убавить громкость звуков до нуля.
notifications-off

Дополнительная информация - компонент pipewire-media-session можно в дальнейшем заменить на WirePlumber, как написано здесь: https://forum.endeavouros.com/t/pipewire-pipewire-media-session-vs-wireplumber/20705/4

Восстановление PulseAudio

Если потребуется, можно отказаться от PipeWire и EasyEffects в пользу PulseAudio:

sudo systemctl --user --now disable pipewire pipewire-pulse pipewire-media-session 
sudo apt remove pipewire && sudo apt autoremove && sudo apt autoclean
sudo flatpak remove com.github.wwmm.easyeffects
sudo add-apt-repository -r ppa:pipewire-debian/pipewire-upstream
sudo apt update
sudo apt install --reinstall pulseaudio pavucontrol 
systemctl --user unmask pulseaudio.service
systemctl --user unmask pulseaudio.socket
systemctl --user enable pulseaudio.service
systemctl --user enable pulseaudio.socket
systemctl start pulseaudio.service 
systemctl start pulseaudio.socket
systemctl --user daemon-reload

Перезагрузка:

sudo shotdown -r now

Наконец-то при загрузке будет выведен звук через динамики!

Дополнительная проверка в терминале:

systemctl --user status pulseaudio.service

Должно быть выведено зеленым цветом: "Active: active (running)".

Отладка:

pulseaudio -k
pulseaudio -D
sudo journalctl -xe

В моём случае, после всех указанных выше действий, ошибок нет. Удалось установить Pipewire, затем вернуть обратно Pulseaudio.


Источники:



Related publications