Решение проблем PulseAudio и PipeWire: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
мНет описания правки
 
(не показано 106 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{stub}}
{{stub}}
{{Внимание|Статья еще не окончена!}}
{{Внимание|Статья еще не окончена!}}
=Решение проблем PulseAudio и PipeWire=
=PulseAudio=
==Настройка громкости==
Откройте ALSAmixer:
$ alsamixer


==PulseAudio==
Клавишей {{button|F6}} выберите стрелками нужную звуковую карту и нажмите {{button|Enter}}),


===1===
Клавишами {{button|↑}} / {{button|↓}} выставьте громкость ALSA в колонке '''Master''' в 100%,


==PipeWire==
Для выхода нажмите {{button|Esc}},
{{Note|Для работы с утилитами Pipewire необходимо установить пакет {{pkg|pipewire-utils}}}}


===PipeWire не видит микрофон===
Для сохранения параметров ALSA после перезагрузки выполните:
Если у вас PipeWire не видит микрофон, попробуйте выключить в конфигурационном файле параметр '''api.alsa.use-acp''' и/или включить '''api.alsa.use-ucm'''.


====Если используется '''pipewire-media-session'''====
{{cmd|$ su -}}
{{note|Чтобы проверить, установлен ли у вас Pipewire, выполните в консоли команду: "rpm -q pipewire"}}


Откройте через текстовый редактор от рута <s>{{path|/etc/pipewire/media-session.d/alsa-monitor.conf}}</s> {{path|/usr/share/pipewire/media-session.d/alsa-monitor.conf}}
{{cmd|# alsactl store}}
 
И приведите выделенные параметры к указанным значениям:


=PipeWire=
{{Note|Для работы с утилитами Pipewire необходимо установить пакет {{pkg|pipewire-utils}}}}
==PipeWire не видит микрофон==
Попробуйте выключить в конфигурационном файле параметр '''api.alsa.use-acp''' и/или '''api.alsa.use-ucm'''.
===Если используется '''pipewire-media-session'''===
{{note|для проверки, установлен ли Pipewire, скомандуйте: {{cmd|$ rpm -q pipewire}} }}
Приведите текстовым редактором от рута в файле {{path|/usr/share/pipewire/media-session.d/alsa-monitor.conf}} выделенные параметры к указанным значениям:
  ...
  ...
  rules = [
  rules = [
Строка 29: Строка 34:
             '''api.alsa.use-acp = false'''
             '''api.alsa.use-acp = false'''
  ...
  ...
 
Для проверки доступных устройств ввода скомандуйте: {{cmd|$ pw-link -iol | grep input}}
=====Проверка доступных устройств=====
===Если используется '''wireplumber'''===
Для проверки доступных устройств ввода используйте команду:
{{note|для проверки, установлен ли Wireplumber, скомандуте {{cmd|$ rpm -q wireplumber}} }}
$ pw-link -iol | grep input
Приведите текстовым редактором от рута в файле {{path|/usr/share/wireplumber/main.lua.d/50-alsa-config.lua}} выделенные параметры к указанным значениям:
 
====Если используется '''wireplumber'''====
{{note|Чтобы проверить, установлен ли у вас Wireplumber, выполните в консоли команду: "rpm -q wireplumber"}}
 
Откройте через текстовый редактор от рута <s>{{path|/etc/wireplumber/main.lua.d/50-alsa-config.lua}} (или {{path|~/.config/wireplumber/main.lua.d/50-alsa-config.lua)}}</s> {{path|/usr/share/wireplumber/main.lua.d/50-alsa-config.lua}}
 
  ...
  ...
  alsa_monitor.rules = {
  alsa_monitor.rules = {
Строка 52: Строка 51:
             '''["api.alsa.use-ucm"] = true''',
             '''["api.alsa.use-ucm"] = true''',
  ...
  ...
Перезапустите PipeWire: {{cmd|$ systemctl --user enable --now pipewire-media-session}}


Затем перезапустите PipeWire и проверьте список доступных устройств:
И проверьте список доступных устройств: {{cmd|$ wpctl status}}
 
{{Note|для установки pactl и wpctl скомандуйте {{cmd|# apt-get install /usr/bin/{pa,wp}ctl}} }}
$ systemctl --user --now enable pipewire-media-session.service
==При подключении нового устройства звук на него автоматически не переключается==
 
Чтобы автоматически переключаться на вновь подключенные устройства, добавьте в {{path|~/.config/pipewire/pipewire.conf}} или раскомментируйте в {{path|/usr/share/pipewire/pipewire-pulse.conf}} следующую строку (выделена жирным):
=====Проверка доступных устройств=====
Для проверки доступных устройств ввода используйте команду:
$ wpctl status
 
Если она отсутствует, установите ее следующей командой:
# apt-get install /usr/bin/wpctl
 
===Звук не переключается автоматически при подключении нового устройства===
 
Чтобы автоматически переключаться на вновь подключенные устройства, раскомментируйте следующую строку (выделена жирным):
 
{{path|/usr/share/pipewire/pipewire-pulse.conf}} (или добавьте в {{path|~/.config/pipewire/pipewire.conf}})
 
  ...
  ...
  context.exec = [
  context.exec = [
     { path = "pactl"        args = "load-module module-always-sink" }
     { path = "pactl"        args = "load-module module-always-sink" }
     '''{ path = "pactl"        args = "load-module module-switch-on-connect" }'''
     '''{ path = "pactl"        args = "load-module module-switch-on-connect" }'''
    #{ path = "/usr/bin/sh"  args = "~/.config/pipewire/default.pw" }
#   { path = "/usr/bin/sh"  args = "~/.config/pipewire/default.pw" }
  ]
  ]
  ...
  ...
Для применения изменений перезапустите пользовательские службы: {{cmd|$ systemctl --user restart pipewire{,-pulse} }}
===Звук на наушники Bluetooth автоматически не переключается===
Скомандуйте {{cmd|$ pactl load-module module-switch-on-connect}} и настройте среду рабочего стола на автоматический запуск этой команды при входе в систему.


Перезапустите пользовательские службы '''pipewire.service''' и '''pipewire-pulse.service''' для применения изменений.
Возможно, ещё потребуется выполнить: {{cmd|$ wpctl set-default <id>}}. Найти <id> можно следующим способом:
$ systemctl --user restart pipewire.service pipewire-pulse.service
 
===Звук не переключается автоматически на наушники Bluetooth===
{{Note| Чтобы установить команду pactl, выполните:<br>
# apt-get install /usr/bin/pactl}}
{{Note| Чтобы установить команду wpctl, выполните:<br>
# apt-get install /usr/bin/wpctl}}
 
Выполните:
$ pactl load-module module-switch-on-connect
и настройте среду рабочего стола на автоматический запуск этой команды при входе в систему.
 
Возможно, вам потребуется выполнить:
$ wpctl set-default <id>.
Найти <id> можно следующим способом:
$ wpctl status
Вывод:
 
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
!$ wpctl status
!$ wpctl status&nbsp;
|-
|-
|
|<pre>
<pre>
PipeWire 'pipewire-0' [0.3.71, petr@atk, cookie:1976916996]
PipeWire 'pipewire-0' [0.3.71, petr@atk, cookie:1976916996]
  └─ Clients:
  └─ Clients:
Строка 144: Строка 115:
</pre>
</pre>
|}
|}
===Нет звука после подключения устройства Bluetooth===
===Нет звука после подключения устройства Bluetooth===
По состоянию на 2020-12-07, если у вас нет звука после подключения Bluetooth устройства, вам скорее всего потребуется переключить стандартный аудиопоток или перенаправить его к требуемому.
По состоянию на 2020-12-07, если после подключения устройства Bluetooth нет звука, скорее всего потребуется переключить стандартный аудиопоток или перенаправить его к требуемому.
 
Воспользуйтесь командой:
$ pactl list sinks
 
для просмотра доступных потоков.
 
Вывод:


Для просмотра доступных потоков  скомандуйте:
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
{|class="wikitable mw-collapsible mw-collapsed" style="float:center; margin-left:2em"  
!pactl list sinks
!$ pactl list sinks&nbsp;
|-
|-
|
|
Строка 248: Строка 212:
</pre>
</pre>
|}
|}
и {{cmd|$ pactl set-default-sink}} для смены стандартного потока на bluetooth устройство.


и
Пример использования: {{cmd|$ pactl set-default-sink 42}}
pactl set-default-sink
для смены стандартного потока на bluetooth устройство.


Пример использования:
Можно автоматизировать через udev, используя [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e данный скрипт] как пример.
$ pactl set-default-sink 42
{{Note|Хотя на Github указано, что он уже не нужен после v0.3.21 или GIT. В P10 на 22.09.23 - 0.3.71}}
Обсуждение данной проблемы можно посмотреть [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 здесь]. По словам автора скрипта, профиль гарнитуры (HSP) все еще может иметь проблемы.
==Низкая громкость==
После [[С PulseAudio на PipeWire|замены PulseAudio на Pipewire]] громкость звука может оставаться прежней, но после перезагрузки становится существенно ниже. Для исправления данной проблемы откройте:
*в консоли — {{cmd|alsamixer}},
*:по {{button|F6}} выберите стрелками нужную звуковую карту и нажмите {{button|Enter}}),
*:клавишами {{button|↑}} / {{button|↓}} выставьте громкость ALSA в колонке '''Master''' в 100%,
*:для выхода нажмите {{button|Esc}},
*:для сохранения параметров ALSA после перезагрузки выполните {{cmd|alsactl store}};
*в KDE — настройку звуковых устройств из системного лотка,
*:дальше — мышкой.


Можно автоматизировать через udev, используя [https://gist.github.com/tinywrkb/04e7fd644afa9b92d33a3a99ab07ee9e данный скрипт] как пример.
==Изменение частоты дискретизации==
По умолчанию PipeWire устанавливает фиксированную глобальную частоту дискретизации в 48 кГц. Если требуется иное (например, у вас есть ЦАП, поддерживающий более высокое значение), можно изменить умолчальное значение в системном ({{path|/usr/share/}}) или в пользовательском ({{path|~/.config/}}) файле {{path|pipewire/pipewire.conf}}, раскомментировав строчку '''default.clock.rate''' и заменив '''48000''' на свое значение:
...
context.properties = {
    ...
    ## Properties for the DSP configuration.
    '''default.clock.rate = 96000'''
    ...


{{Note|Хотя на Github указано, что он уже не нужен после v0.3.21 или GIT. В P10 на 22.09.23 - 0.3.71}}
==Изменение разрешённых частот дискретизации==
PipeWire также может динамически изменять поддерживаемую вашим ЦАП выходную частоту дискретизации, соответствующую таковой у воспроизводимого аудиопотока.  


Обсуждение данной проблемы можно посмотреть [https://www.reddit.com/r/archlinux/comments/jydd02/pipewirepulse_03164_in_testing_now_replaces/gd3m7fu/?context=3 здесь]. По словам автора скрипта, профиль гарнитуры (HSP) все еще может иметь проблемы.
Требуемые значения задаются в системном ({{path|/usr/share/}}) или в пользовательском ({{path|~/.config/}}) файле {{path|pipewire/pipewire.conf}}:
...
context.properties = {
    ...
    '''default.clock.allowed-rates = [ частота_1 частота_2 частота_3 ... ]'''
    ...
Например, {{cmd|[ 44100 48000 88200 96000 ]}}. Поддерживаемые значения должны быть описаны в инструкции к вашему ЦАП.


===Низкая громкость===
По [https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1523 словам разработчиков], PipeWire допускает до 16 различных частот дискретизации и переключается по возможности. Это означает, что с приведёнными выше настройками передискретизация не производится, если используемая в аудиопотоке частота поддерживается устройством.
После замены PulseAudio на Pipewire громкость звука может быть как задумано, но после перезагрузки она становится очень низкой.


Для исправления данной проблемы откройте в консоли {{cmd|alasmixer}}, используйте {{button|F6}} для выбора звуковой карты (выберите стрелками нужную карту и нажмите {{button|Enter}}).
==Нет звука или <code>pactl info</code> выдаёт «Ошибка подключения: Соединение отвергнуто»==
Данная ошибка говорит о том, что приложение не может присоединиться к службе PipeWire-Pulse.  


Клавишами вверх/вниз установите громкость ALSA в колонке '''Master''' на значение 100%.
Убедитесь, что файл {{path|/usr/share/pipewire/pipewire-pulse.conf}} существует и не пуст, и перезапустите пользовательскую службу:


Нажмите {{button|Esc}} для выхода и выполните {{cmd|alsactl}} для сохранения параметров ALSA после перезагрузки.
{{cmd|$ systemctl restart --user pipewire-pulse}}


===Изменение частоты дискретизации по умолчанию===
Если файла нет, попробуйте переустановить пакет pipewire и перезагрузиться (перезапуск pipewire и pipewire-pulse помог мне лишь частично):
По умолчанию PipeWire устанавливает фиксированную глобальную частоту дискретизации 48 кГц. Если вам нужно изменить его (например, у вас есть ЦАП (цифро-аналоговый преобразователь), поддерживающий более высокое значение), вы можете установить новое значение по умолчанию:


Откройте о суперпользователя, если вы хотите изменить общесистемные параметры:
{{cmd|# apt-get install --reinstall pipewire}}
$ su -
==Заметная задержка звука при воспроизведении==
# mcedit /etc/pipewire/pipewire.conf
Обычно данная проблема возникает после отключения узла в период неактивности.
Или от обычного пользователя, если хотите изменить параметры только для себя:
===При использовании ''pipewire-media-session''===
$ mcedit ~/.config/pipewire/pipewire.conf
Отключить задержку можно путём редактирования одного из файлов {{path|/usr/share/pipewire/media-session.d/*-monitor.conf}} в зависимости от того, где происходит задержка.


Найдите
Например: {{cmd|# mcedit /usr/share/pipewire/media-session.d/alsa-monitor.conf}}
...
  context.properties = {
      ...
      ## Properties forr the DSP configuration.
      #default.clock.rate =  48000
      ...
Раскомментируйте строчку {{cmd|default.clock.rate}} и замените {{cmd|48000}} на свое значение.


===Изменение разрешённых частот дискретизации===
Для отключения нужно заменить значение {{cmd|session.suspend-timeout-seconds}} на 0 или поэкспериментировать с другими значениями.
PipeWire также может динамически изменять выходную частоту дискретизации, поддерживаемую вашим ЦАП. Частота дискретизации соответствует частоте дискретизации воспроизводимого аудиопотока.  


/etc/pipewire/pipewire.conf (или ~/.config/pipewire/pipewire.conf)
Либо закомментируйте в файле {{path|/usr/share/pipewire/media-session.d/media-session.conf}} строку '''suspend-node'''.


...
Для применения перезагрузитесь или перезапустите пользовательские службы: {{cmd|$ systemctl restart --user pipewire{,-pulse} }}
  context.properties = {  
===При использовании ''wireplumber''===
    ...
Для переопределения умолчальных настроек создайте системный ({{path|/usr/share/}}) или пользовательский ({{path|~/.config/}}) файл {{path|wireplumber/main.lua.d/51-disable-suspension.lua}} со следующим содержимым:
    '''default.clock.allowed-rates = [ частота_1 частота_2 частота_3 ... ]'''
  table.insert (alsa_monitor.rules, {
     ...
    matches = {
        {
            -- Соответствует всем источникам.
            { "node.name", "matches", "alsa_input.*" },
        },
        {
            -- Соответствует всем выводам.
            { "node.name", "matches", "alsa_output.*" },
        },
    },
    apply_properties = {
        ["session.suspend-timeout-seconds"] = 0,  -- 0 выключает приостановку
     },
})
Вместо полного отключения можно задать желаемое число секунд задержки перед приостановкой.


Например,  {{cmd|[ 44100 48000 88200 96000 ]}}. Поддерживаемые значения должны быть описаны в инструкции к вашему ЦАП.
==Пропадание звука при проигрывании других потоков==
В журнале пользовательской службы {{cmd|$ journalctl --user -u pipewire-pulse}} могут обнаружиться такие строки:
pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940
===При использовании ''pipewire-media-session''===
Согласно [https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Troubleshooting#underrununderflow-and-broken-pipe-errors официальному гайду PipeWire], для решения данной проблемы нужно раскомментировать/изменить значение параметра '''api.alsa.headroom = 1024''' в системном ({{path|/usr/share/}}) или в пользовательском ({{path|~/.config/}}) файле


По [https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1523 словам разработчиков], PipeWire допускает до 16 различных частот дискретизации и переключается по возможности. Это означает, что с приведёнными выше настройками передискретизация не производится, если используемая в аудиопотоке частота поддерживается устройством.
{{path|pipewire/media-session.d/alsa-monitor.conf}}.
===При использовании ''wireplumber''===
Внести этот параметр в системный ({{path|/usr/share/}}) или в пользовательский ({{path|~/.config/}}) файл


{{path|wireplumber/main.lua.d/50-alsa-config.lua}}:
apply_properties = {
    ["api.alsa.headroom"] = 1024,
},
==Искажённый звук==
*Найдите проблемную для микрофонов звуковую карту в alsamixer и уменьшите уровень "Mic Boost" или "Internal Mic Boost".
*Попробуйте уменьшить частоту дискретизации до 44100 (44.1 кГц), как описано в разделе [[#Изменение частоты дискретизации по умолчанию]].
==Различные проблемы после простоя==
Если после пробуждения системы звук пропал или исказился, может потребоваться переинициализация ALSA: {{cmd|# alsactl init}}
==Источники==
==Источники==
*[https://wiki.archlinux.org/title/PulseAudio_(Русский)/Troubleshooting_(Русский) Arch - PulseAudio, Решение проблем]
*[https://wiki.archlinux.org/title/PulseAudio_(Русский)/Troubleshooting_(Русский) Arch - PulseAudio, Решение проблем]
*[https://wiki.archlinux.org/title/PipeWire_(Русский)#Решение_проблем Arch - PipeWire, Решение проблем]
*[https://wiki.archlinux.org/title/PipeWire_(Русский)#Решение_проблем Arch - PipeWire, Решение проблем]
*[https://wiki.archlinux.org/title/PipeWire#Troubleshooting Arch - PipeWire, Troubleshooting]
*[https://wiki.archlinux.org/title/PipeWire#Troubleshooting Arch - PipeWire, Troubleshooting]
'''проверка ''вложенности'' '''

Текущая версия от 13:48, 12 сентября 2024

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Внимание: Статья еще не окончена!

PulseAudio

Настройка громкости

Откройте ALSAmixer: $ alsamixer

Клавишей F6 выберите стрелками нужную звуковую карту и нажмите Enter),

Клавишами / выставьте громкость ALSA в колонке Master в 100%,

Для выхода нажмите Esc,

Для сохранения параметров ALSA после перезагрузки выполните:

$ su -

# alsactl store

PipeWire

Примечание: Для работы с утилитами Pipewire необходимо установить пакет pipewire-utils

PipeWire не видит микрофон

Попробуйте выключить в конфигурационном файле параметр api.alsa.use-acp и/или api.alsa.use-ucm.

Если используется pipewire-media-session

Примечание: для проверки, установлен ли Pipewire, скомандуйте: $ rpm -q pipewire

Приведите текстовым редактором от рута в файле /usr/share/pipewire/media-session.d/alsa-monitor.conf выделенные параметры к указанным значениям:

...
rules = [
    {
        ...
        actions = {
        update-props = {
            ...
            api.alsa.use-acp = false
...

Для проверки доступных устройств ввода скомандуйте: $ pw-link -iol

Если используется wireplumber

Примечание: для проверки, установлен ли Wireplumber, скомандуте $ rpm -q wireplumber

Приведите текстовым редактором от рута в файле /usr/share/wireplumber/main.lua.d/50-alsa-config.lua выделенные параметры к указанным значениям:

...
alsa_monitor.rules = {
    {
        ...
        apply_properties = {
            -- Использование устройств ALSA-Card-Profile. Они используют UCM или
            -- конфигурацию профиля для настройки параметров устройства и микшера.
            -- ["api.alsa.use-acp"] = true,
 
            -- Использование UCM вместо profile по возможности. Можно отключить,
            -- чтобы не пытаться использовать профиль UCM.
            ["api.alsa.use-ucm"] = true,
...

Перезапустите PipeWire: $ systemctl --user enable --now pipewire-media-session

И проверьте список доступных устройств: $ wpctl status

Примечание: для установки pactl и wpctl скомандуйте # apt-get install /usr/bin/{pa,wp}ctl

При подключении нового устройства звук на него автоматически не переключается

Чтобы автоматически переключаться на вновь подключенные устройства, добавьте в ~/.config/pipewire/pipewire.conf или раскомментируйте в /usr/share/pipewire/pipewire-pulse.conf следующую строку (выделена жирным):

...
context.exec = [
    { path = "pactl"        args = "load-module module-always-sink" }
    { path = "pactl"        args = "load-module module-switch-on-connect" }
#   { path = "/usr/bin/sh"  args = "~/.config/pipewire/default.pw" }
]
...

Для применения изменений перезапустите пользовательские службы: $ systemctl --user restart pipewire{,-pulse}

Звук на наушники Bluetooth автоматически не переключается

Скомандуйте $ pactl load-module module-switch-on-connect и настройте среду рабочего стола на автоматический запуск этой команды при входе в систему.

Возможно, ещё потребуется выполнить: $ wpctl set-default <id>. Найти <id> можно следующим способом:

$ wpctl status 
PipeWire 'pipewire-0' [0.3.71, petr@atk, cookie:1976916996]
 └─ Clients:
        32. pipewire-media-session              [0.3.71, petr@atk, pid:10780]
        33. pipewire-media-session              [0.3.71, petr@atk, pid:10780]
        39. pipewire                            [0.3.71, petr@atk, pid:10781]
        49. wpctl                               [0.3.71, petr@atk, pid:11459]
        50. pipewire                            [0.3.71, petr@atk, pid:10781]

Audio
 ├─ Devices:
 │      41. Built-in Audio                      [alsa]
 │  
 ├─ Sinks:
 │  *   42. Built-in Audio Analog Stereo        [vol: 0.74] <-- Здесь <id> = 42
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  *   43. Built-in Audio Analog Stereo        [vol: 0.74] <-- Здесь <id> = 43
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sink endpoints:
 │  
 ├─ Sources:
 │  
 ├─ Source endpoints:
 │  
 └─ Streams:

Settings
 └─ Default Configured Node Names:
         0. Audio/Sink    alsa_output.pci-0000_00_05.0.analog-stereo

Нет звука после подключения устройства Bluetooth

По состоянию на 2020-12-07, если после подключения устройства Bluetooth нет звука, скорее всего потребуется переключить стандартный аудиопоток или перенаправить его к требуемому.

Для просмотра доступных потоков скомандуйте:

$ pactl list sinks 
Аудиоприёмник №42
        Состояние: SUSPENDED
        Имя: alsa_output.pci-0000_00_05.0.analog-stereo
        Описание: Built-in Audio Analog Stereo
        Драйвер: PipeWire
        Спецификация отсчётов: s16le 2-канальный 4800
        Схема каналов: front-left,front-right
        Модуль-владелец: 4294967295
        Звук выключен: нет
        Громкость: front-left: 48287 /  74% / -7,96 dB,   front-right: 48287 /  74% / -7,96 dB
                баланс 0,00
        Базовая громкость: 65536 / 100% / 0,00 dB
        Мониторный источник: alsa_output.pci-0000_00_05.0.analog-stereo.monitor
        Задержка: 0 мкс, настроено на 0 мкс
        Флаги: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Свойства:
                object.path = "alsa:pcm:0:front:0:playback"
                api.alsa.path = "front:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                device.routes = "2"
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "Intel 82801AA-ICH"
                alsa.id = "Intel ICH"
                alsa.subdevice = "0"
                alsa.subdevice_name = "subdevice #0"
                alsa.device = "0"
                alsa.card = "0"
                alsa.card_name = "Intel 82801AA-ICH"
                alsa.long_card_name = "Intel 82801AA-ICH with AD1980 at irq 21"
                alsa.driver_name = "snd_intel8x0"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                card.profile.device = "4"
                device.id = "41"
                factory.name = "api.alsa.pcm.sink"
                priority.driver = "1009"
                priority.session = "1009"
                media.class = "Audio/Sink"
                node.nick = "Intel 82801AA-ICH"
                node.name = "alsa_output.pci-0000_00_05.0.analog-stereo"
                device.description = "Built-in Audio"
                device.icon_name = "audio-card-analog"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:05.0"
                device.form_factor = "internal"
                node.pause-on-idle = "false"
                factory.id = "18"
                clock.quantum-limit = "8192"
                client.id = "33"
                node.driver = "true"
                factory.mode = "merge"
                audio.adapt.follower = ""
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "42"
                object.serial = "42"
                device.enum.api = "udev"
                api.alsa.card = "0"
                api.alsa.card.name = "Intel 82801AA-ICH"
                api.alsa.card.longname = "Intel 82801AA-ICH with AD1980 at irq 21"
                device.plugged.usec = "5422646"
                sysfs.path = "/devices/pci0000:00/0000:00:05.0/sound/card0"
                device.subsystem = "sound"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "0x2415"
                device.product.name = "82801AA AC'97 Audio Controller"
                device.name = "alsa_card.pci-0000_00_05.0"
                device.nick = "Intel 82801AA-ICH"
                api.alsa.use-acp = "true"
                api.acp.auto-profile = "false"
                api.acp.auto-port = "false"
                api.dbus.ReserveDevice1 = "Audio0"
                device.string = "0"
        Порты:
                analog-output;output-amplifier-on: Analog Output / Amplifier (тип: Аналоговый, приоритет: 9910, доступность неясна)
                analog-output;output-amplifier-off: Analog Output / No Amplifier (тип: Аналоговый, приоритет: 9900, доступность неясна)
        Активный порт: analog-output;output-amplifier-on
        Форматы:
                pcm

и $ pactl set-default-sink для смены стандартного потока на bluetooth устройство.

Пример использования: $ pactl set-default-sink 42

Можно автоматизировать через udev, используя данный скрипт как пример.

Примечание: Хотя на Github указано, что он уже не нужен после v0.3.21 или GIT. В P10 на 22.09.23 - 0.3.71

Обсуждение данной проблемы можно посмотреть здесь. По словам автора скрипта, профиль гарнитуры (HSP) все еще может иметь проблемы.

Низкая громкость

После замены PulseAudio на Pipewire громкость звука может оставаться прежней, но после перезагрузки становится существенно ниже. Для исправления данной проблемы откройте:

  • в консоли — alsamixer,
    по F6 выберите стрелками нужную звуковую карту и нажмите Enter),
    клавишами / выставьте громкость ALSA в колонке Master в 100%,
    для выхода нажмите Esc,
    для сохранения параметров ALSA после перезагрузки выполните alsactl store;
  • в KDE — настройку звуковых устройств из системного лотка,
    дальше — мышкой.

Изменение частоты дискретизации

По умолчанию PipeWire устанавливает фиксированную глобальную частоту дискретизации в 48 кГц. Если требуется иное (например, у вас есть ЦАП, поддерживающий более высокое значение), можно изменить умолчальное значение в системном (/usr/share/) или в пользовательском (~/.config/) файле pipewire/pipewire.conf, раскомментировав строчку default.clock.rate и заменив 48000 на свое значение:

...
context.properties = {
    ...
    ## Properties for the DSP configuration.
    default.clock.rate = 96000
    ...

Изменение разрешённых частот дискретизации

PipeWire также может динамически изменять поддерживаемую вашим ЦАП выходную частоту дискретизации, соответствующую таковой у воспроизводимого аудиопотока.

Требуемые значения задаются в системном (/usr/share/) или в пользовательском (~/.config/) файле pipewire/pipewire.conf:

...
context.properties = { 
    ...
    default.clock.allowed-rates = [ частота_1 частота_2 частота_3 ... ]
    ...

Например, [ 44100 48000 88200 96000 ]. Поддерживаемые значения должны быть описаны в инструкции к вашему ЦАП.

По словам разработчиков, PipeWire допускает до 16 различных частот дискретизации и переключается по возможности. Это означает, что с приведёнными выше настройками передискретизация не производится, если используемая в аудиопотоке частота поддерживается устройством.

Нет звука или pactl info выдаёт «Ошибка подключения: Соединение отвергнуто»

Данная ошибка говорит о том, что приложение не может присоединиться к службе PipeWire-Pulse.

Убедитесь, что файл /usr/share/pipewire/pipewire-pulse.conf существует и не пуст, и перезапустите пользовательскую службу:

$ systemctl restart --user pipewire-pulse

Если файла нет, попробуйте переустановить пакет pipewire и перезагрузиться (перезапуск pipewire и pipewire-pulse помог мне лишь частично):

# apt-get install --reinstall pipewire

Заметная задержка звука при воспроизведении

Обычно данная проблема возникает после отключения узла в период неактивности.

При использовании pipewire-media-session

Отключить задержку можно путём редактирования одного из файлов /usr/share/pipewire/media-session.d/*-monitor.conf в зависимости от того, где происходит задержка.

Например: # mcedit /usr/share/pipewire/media-session.d/alsa-monitor.conf

Для отключения нужно заменить значение session.suspend-timeout-seconds на 0 или поэкспериментировать с другими значениями.

Либо закомментируйте в файле /usr/share/pipewire/media-session.d/media-session.conf строку suspend-node.

Для применения перезагрузитесь или перезапустите пользовательские службы: $ systemctl restart --user pipewire{,-pulse}

При использовании wireplumber

Для переопределения умолчальных настроек создайте системный (/usr/share/) или пользовательский (~/.config/) файл wireplumber/main.lua.d/51-disable-suspension.lua со следующим содержимым:

table.insert (alsa_monitor.rules, {
    matches = {
        {
            -- Соответствует всем источникам.
            { "node.name", "matches", "alsa_input.*" },
        },
        {
            -- Соответствует всем выводам.
            { "node.name", "matches", "alsa_output.*" },
        },
    },
    apply_properties = {
        ["session.suspend-timeout-seconds"] = 0,  -- 0 выключает приостановку
    },
})

Вместо полного отключения можно задать желаемое число секунд задержки перед приостановкой.

Пропадание звука при проигрывании других потоков

В журнале пользовательской службы $ journalctl --user -u pipewire-pulse могут обнаружиться такие строки:

pipewire-pulse[21740]: pulse-server 0x56009b9d5de0: [Nightly] UNDERFLOW channel:0 offset:370676 underrun:940

При использовании pipewire-media-session

Согласно официальному гайду PipeWire, для решения данной проблемы нужно раскомментировать/изменить значение параметра api.alsa.headroom = 1024 в системном (/usr/share/) или в пользовательском (~/.config/) файле

pipewire/media-session.d/alsa-monitor.conf.

При использовании wireplumber

Внести этот параметр в системный (/usr/share/) или в пользовательский (~/.config/) файл

wireplumber/main.lua.d/50-alsa-config.lua:

apply_properties = {
    ["api.alsa.headroom"] = 1024,
},

Искажённый звук

Различные проблемы после простоя

Если после пробуждения системы звук пропал или исказился, может потребоваться переинициализация ALSA: # alsactl init

Источники

проверка вложенности