PulseAudio Сравнение версий

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:pulseaudio [2015/06/26 12:42]
[Bauer stereophonic-to-binaural DSP]
wiki:pulseaudio [2021/07/17 19:53] (текущий)
[module, client, sample]
Строка 75: Строка 75:
   * **Module**. Загруженный модуль PulseAudio. Например,​ загрузка module-alsa-sink с заданием пераметров,​ указывающих на устройство Alsa — создаст Sink, связанный с этим устройством. Существуют и другие модули,​ создающие объекты PulseAudio, позволяющие управлять им, использовать FIFO для обмена звуковым потоком и многое другое;​   * **Module**. Загруженный модуль PulseAudio. Например,​ загрузка module-alsa-sink с заданием пераметров,​ указывающих на устройство Alsa — создаст Sink, связанный с этим устройством. Существуют и другие модули,​ создающие объекты PulseAudio, позволяющие управлять им, использовать FIFO для обмена звуковым потоком и многое другое;​
   * **Client**. Приложение,​ подключившееся к PulseAudio. Может создавать потоки Sink-Input и Source-Output и управлять демоном PulseAudio.   * **Client**. Приложение,​ подключившееся к PulseAudio. Может создавать потоки Sink-Input и Source-Output и управлять демоном PulseAudio.
-Sample. Звуковой сэмпл, загруженный в PulseAudio для быстрого воспроизведения. Может использоваться для проигрывания стандартных звуков. Например,​ x11 bell. Могут проигрываться по команде от модуля,​ клиента или из консоли.+  * **Sample**. Звуковой сэмпл, загруженный в PulseAudio для быстрого воспроизведения. Может использоваться для проигрывания стандартных звуков. Например,​ x11 bell. Могут проигрываться по команде от модуля,​ клиента или из консоли.
  
 =====ALSA → PulseAudio===== =====ALSA → PulseAudio=====
Строка 95: Строка 95:
 =====GUI инструменты===== =====GUI инструменты=====
 Если Вы читаете эту статью чтобы решить пару нюансов и не вникать — рекомендуется попробовать GUI-tools, описанные на [[http://​pulseaudio.org/​wiki/​AboutPulseAudio#​RelatedSoftware|странице]] PulseAudio. С помощью **pavucontrol** можно будет быстро выбрать устройство записи «по умолчанию» (Input Devices, кнопка справа «Set as fallback») и Skype будет работать :) Также **pavucontrol** позволяет управлять громкостью общей и отдельных приложений. ​ Если Вы читаете эту статью чтобы решить пару нюансов и не вникать — рекомендуется попробовать GUI-tools, описанные на [[http://​pulseaudio.org/​wiki/​AboutPulseAudio#​RelatedSoftware|странице]] PulseAudio. С помощью **pavucontrol** можно будет быстро выбрать устройство записи «по умолчанию» (Input Devices, кнопка справа «Set as fallback») и Skype будет работать :) Также **pavucontrol** позволяет управлять громкостью общей и отдельных приложений. ​
 +
 +====veromix====
 +Многофункциональный микшер для звукового сервера PulseAudio, имеющий Python / GTK и QT (pyqt) графический интерфейс. Позволяет управлять LADSPA плагинами.
 +Установка через Центр приложений Ubuntu или через консоль:​
 +<​code>​sudo apt install veromix</​code>​
 +{{:​wiki:​pulseaudio:​veromix-gtk.png?​600|}}
 +====PulseEffects====
 +Удобное Python / GTK графическое приложение для набора PulseAudio эффектов. Множество плагинов в комплекте.
 +Установка через консоль:​
 +<​code>​sudo add-apt-repository ppa:​mikhailnov/​pulseeffects -y
 +sudo apt update
 +sudo apt install pulseeffects pulseaudio --install-recommends</​code>​
 +{{:​wiki:​pulseeffects.png?​600|}}
 =====Консольные инструменты===== =====Консольные инструменты=====
 ====pactl==== ====pactl====
Строка 161: Строка 174:
 Moving 1 inputs {65} to sink "​alsa_output.pci-0000_00_1b.0.analog-stereo"​... Moving 1 inputs {65} to sink "​alsa_output.pci-0000_00_1b.0.analog-stereo"​...
 Sink#0 <​alsa_output.pci-0000_00_1b.0.analog-stereo>:​ default sink</​code>​ Sink#0 <​alsa_output.pci-0000_00_1b.0.analog-stereo>:​ default sink</​code>​
 +
 +
 ======Настройка====== ======Настройка======
 =====Обзор===== =====Обзор=====
Строка 299: Строка 314:
 [[http://​www.pulseaudio.org/​wiki/​Modules|Модули PulseAudio]] [[http://​www.pulseaudio.org/​wiki/​Modules|Модули PulseAudio]]
  
-=====Bauer stereophonic-to-binaural DSP===== 
-Пример подключения модуля bs2b.\\ ​ 
-Установить плагин 
-<​code>​sudo apt install bs2b-ladspa ladspa-sdk</​code>​ 
-Получить имя выхода по-умолчанию. 
-<​code>​pacmd list-sinks</​code>​ 
-Например,​ у меня это **alsa_output.pci-0000_00_1b.0.analog-stereo**\\ ​ 
-Установить плагин\\ ​ 
-pacmd load-module module-ladspa-sink sink_name=**[name]** master=**[default sink]** plugin=bs2b label=bs2b control=700,​4.5 
- 
-<​code>​pacmd load-module module-ladspa-sink \ 
-    sink_name=crossfeed master=alsa_output.pci-0000_00_1b.0.analog-stereo \ 
-    plugin=bs2b label=bs2b control=700,​4.5</​code>​ 
-Установить выход звука через плагин\\ ​ 
-<​code>​set-default-sink ladspa_out</​code>​ 
-или это же, но мышкой в настройках звука\\ ​ 
-{{:​wiki:​pulseaudio:​bs2b-ladspa.png?​400|}} 
- 
-Если всё заработало,​ то можно добавить в настройки **/​etc/​pulse/​default.pa** 
-<​code>###​ BS2B plugin 
-load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_1b.0.analog-stereo plugin=bs2b label=bs2b control=700,​4.5 
-set-default-sink ladspa_out</​code>​ 
  
  
Строка 380: Строка 373:
   - Добавить всех пользователей в группу pulse-access;​   - Добавить всех пользователей в группу pulse-access;​
   -  В конфигурационном файле **/​etc/​default/​pulseaudio** (в Ubuntu 14.04 эта настройка перенесена в /​etc/​init.d/​pulseaudio) включаем system-mode:​ <code bash>​PULSEAUDIO_SYSTEM_START=1</​code>​   -  В конфигурационном файле **/​etc/​default/​pulseaudio** (в Ubuntu 14.04 эта настройка перенесена в /​etc/​init.d/​pulseaudio) включаем system-mode:​ <code bash>​PULSEAUDIO_SYSTEM_START=1</​code>​
-======Автоматическая настройка микрофона при подключении web камеры.====== 
-Ну и ещё один совет,​если у вас скайп периодически теряет веб камеру,​ что ​ лечится простым переподключением в usb,\\ 
-но поскольку web-камера ещё и микрофон,​ то слетает настройка микрофона в pulseaudio.\\ 
  
-Чтобы не обременять пользователя постоянным администрированием ​pulseaudioможно сделать скрипт.\\ +====== Автоматическое переключение ввода/​вывода звука на подключаемое устройство ====== 
-При подключении ​udev запустит скрипт который назначит микрофон от вебкамеры основным.\\ +При ​подключении наушников в порт наушников карты PCI драйвер ALSA в PulseAudio автоматически отключает ​порт громкоговорителей, ​и, если у вас в карте нет порта линейного выхода или у него меньший приоритетто порт вывода ​звука автоматически переключается на наушникиНо если вы подключаете наушники или микрофон ​по USB или Bluetooth, ​то ввод/​вывод звука на них автоматически ​не переключается. Чтобы настроить автоматическое переключение ввода/вывода звука ​на подключаемое устройство, можно подключить ​модуль PulseAudio module-switch-on-connectОн переключает сток/​источник по умолчанию в PulseAudio на новый появившийся сток/источник, соответствующий новому подключённому устройству, а также переключает все каналы вывода в сток / вывода из источника,​ используемые приложениями,​ со старого стока/источника по умолчанию на новый. Он идёт в стандартной поставке PulseAudio и подключается редактированием файла /​etc/​pulse/​default.pa,​ в него ​нужно добавить:
-Приведу голые скрипты (если файл не существует то создаём его):\\+
  
-/​etc/​udev/​rules.d/​90-webcam_mic.rules +  ​### Local additions from <​user>​ 
-  ​#SUBSYSTEM=="​usb",​ ATTR{idVendor}=="​046d",​ ATTR{idProduct}=="​09c1",​ RUN+="/​usr/​bin/​setsid /​usr/​local/​bin/​webcammic_udev"​ +  ​load-module module-switch-on-connect
-  ​SUBSYSTEM=="​sound",​ KERNEL=="​card1",​ ACTION=="​change",​ RUN+="/​usr/​local/​bin/​webcammic_udev"​+
  
-/​usr/​local/​bin/​webcammic_udev+В случае устройства,​ подключаемого по USB (например,​ веб-камеры или USB-наушников),​ альтернативным решением является настройка udev на автоматический запуск скрипта,​ который переключает в PulseAudio сток/​источник по умолчанию и каналы ввода/​вывода,​ при подключении устройства. Для этого нужно создать следующие файлы:​ 
 + 
 +/​etc/​udev/​rules.d/​90-usb-switch-to.rules:​ 
 +  SUBSYSTEM=="​sound",​ KERNEL=="​card1",​ ACTION=="​change",​ RUN+="/​usr/​local/​bin/​usb_switch_to_udev.sh"​ 
 + 
 +/​usr/​local/​bin/​usb_switch_to_udev.sh:​
   #!/bin/sh   #!/bin/sh
-  /​usr/​local/​bin/​webcammic ​&+  ​su <​user>​ -c "/​usr/​local/​bin/​usb_switch_to.sh" ​&
  
-/​usr/​local/​bin/​webcammic+/​usr/​local/​bin/​usb_switch_to.sh:​
   #!/bin/sh   #!/bin/sh
   sleep 5   sleep 5
-  ​su linux_user ​-c "echo \"set-default-source ​alsa_input.usb-046d_09c1-02-U0x46d0x9c1.analog-mono\" | pacmd"+  ​pacmd set-default-sink <​sink>​ 
 +  pacmd list-sink-inputs | awk '/​index:/​{print $2}' | xargs -r -I{} pacmd move-sink-input {} <​sink>​ 
 + 
 +card1 — название подключаемого устройства,​ которое можно определить по файлу, появляющемуся в /​sys/​class/​sound при подключении устройства. Скрипт запускает другой скрипт в фон, который,​ в свою очередь,​ ждёт 5 секунд,​ пока появится нужный сток/​источник,​ и затем производит переключение. <​user>​ — имя обычного пользователя,​ которому нужно выполнить переключение (можно эту строчку повторить несколько раз, меняя только имена пользователей,​ для переключения нескольким пользователям). <​sink>​ — имя стока, соответствующего подключаемому устройству (можно узнать,​ подключив устройство и выполнив команду pactl list sinks, см. поле name). Если нужно переключить не сток, а источник (подключается не наушники,​ а микрофон),​ то вместо ​set-default-sink <​sink>​ будет set-default-source <source>, имя источника можно узнать из вывода команды pactl list sources. 
 + 
 +======Bauer stereophonic-to-binaural DSP====== 
 +Пример подключения LADSPA модуля [[http://​bs2b.sourceforge.net/​|bs2b]].\\  
 +Установить плагин 
 +<​code>​sudo apt install bs2b-ladspa ladspa-sdk</​code>​ 
 +Далее либо командами в консоли,​ либо с помощью [[pulseaudio#​veromix|veromix]]. 
 +Получить имя выхода по-умолчанию. 
 +<​code>​pacmd list-sinks</​code>​ 
 +Например,​ у меня это **alsa_output.pci-0000_00_1b.0.analog-stereo**\\  
 +Установить плагин\\  
 +pacmd load-module module-ladspa-sink sink_name=**[name]** master=**[default sink]** plugin=bs2b label=bs2b control=700,​4.5 
 + 
 +<​code>​pacmd load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_1b.0.analog-stereo plugin=bs2b label=bs2b control=700,​4.5</​code>​ 
 +Установить выход звука через плагин\\  
 +<​code>​pacmd set-default-sink ladspa_out</​code>​ 
 +или это же, но мышкой в настройках звука\\  
 +{{:​wiki:​pulseaudio:​bs2b-ladspa.png?​400|}} 
 + 
 +Если всё заработало,​ то можно добавить в настройки **/​etc/​pulse/​default.pa**\\ 
 +Или копируем **/​etc/​pulse/​default.pa** в **~/​.config/​pulse/​default.pa** и вписываем уже в него для применения только для данного пользователя. 
 +<​code>###​ BS2B plugin 
 +load-module module-ladspa-sink sink_name=ladspa_out master=alsa_output.pci-0000_00_1b.0.analog-stereo plugin=bs2b label=bs2b control=700,​4.5 sink_properties=device.description=Bauer_stereophonic-to-binaural 
 +set-default-sink ladspa_out</​code>​ 
 + 
 +======Шумоподавитель для микрофона в skype, steam и т.п.====== 
 + 
 +Сначала проверим работу фильтра.\\  
 +Запускаем skype с дополнительной переменной 
 +<​code>​PULSE_PROP="filter.want=echo-cancel"​ skype</​code>​ 
 + 
 +Вписываем в **/​etc/​pulse/​default.pa** для автозапуска при старте pulseaudio.\\ 
 +Или копируем **/​etc/​pulse/​default.pa** в **~/​.config/​pulse/​default.pa** и вписываем уже в него для применения только для данного пользователя. 
 +<​code>###​ Шумоподавитель 
 +load-module module-echo-cancel source_name=noechosource sink_name=noechosink source_properties=device.description=Микрофон_с_шумоподавителем sink_properties=device.description=Выход_без_эха 
 +set-default-source noechosource</​code>​
  
-где alsa_input.usb-046d_09c1-02-U0x46d0x9c1.analog-mono - это имя микрофона в pulseaudio\\ +В моём случае эта строка выглядит так: 
-linux_user - логин вашего простого пользователя.\\ +<​code>###​ Шумоподавитель 
-такая связка нужна чтобы запустить webcammic в фоне, дождаться пока появится устройство в Pulseaudio ​и только тогда ​менять настройку.\\+load-module module-echo-cancel source_name=alsa_input.pci-0000_00_1b.0.analog-stereo sink_name=alsa_output.pci-0000_00_1b.0.analog-stereo source_properties=device.description=Микрофон_с_шумоподавителем sink_properties=device.description=Выход_без_эха 
 +set-default-source alsa_input.pci-0000_00_1b.0.analog-stereo.2</​code>​ 
 +Далее в skype (steam и т.п.) указываем в качестве микрофона ​новый «Микрофон_с_шумоподавителем».
  
-Чтобы узнать ​  ​как называется ваш микрофон ​можно использовать команду +К сожалению,​ в текущей версии PulseAudio существует [[https://​bugs.freedesktop.org/​show_bug.cgi?​id=83557|баг]],​ из-за которого этот модуль работает только тогдакогда производится ​не только запись, но и воспроизведение. Скажем,​ в Skype, Mumble и прочих голосовых телефонах будет ​все сразу замечательно, а если вы заходите только записать звук, например, через audacity, то следует включить в нем какую-то музыку ​фоном, даже с минимальной громкостью. 
-  pactl list sources +Если вы используете второй способ,​ убедитесь,​ что нужная ​вам программа воспроизводит аудио в sink с шумоподавлением, а не напрямую в аудиокарту. Перенести sink можно, например,​ через pavucontrol. 
-  ​+Не воспроизводите музыку в аудиоплеере через sink с шумоподавлением,​ а то получите звук в моно и 32кГц.
 ====== Удаление ====== ====== Удаление ======
 На данный момент Pulseaudio доработан и при его использовании не возникает особых проблем,​ но если, всё таки, проблемы есть((Необходимостью может являться пропадание звука после перезагрузки и сообщение "​Ожидание ответа звуковой подсистемы"​)),​ то есть смысл попробовать удалить. На данный момент Pulseaudio доработан и при его использовании не возникает особых проблем,​ но если, всё таки, проблемы есть((Необходимостью может являться пропадание звука после перезагрузки и сообщение "​Ожидание ответа звуковой подсистемы"​)),​ то есть смысл попробовать удалить.