Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:pulseaudio [2015/06/26 13:20] [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> | ||
+ | |||
+ | |||
======Настройка====== | ======Настройка====== | ||
=====Обзор===== | =====Обзор===== | ||
Строка 358: | Строка 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> | ||
- | где alsa_input.usb-046d_09c1-02-U0x46d0x9c1.analog-mono - это имя микрофона в pulseaudio\\ | + | card1 — название подключаемого устройства, которое можно определить по файлу, появляющемуся в /sys/class/sound при подключении устройства. Скрипт запускает другой скрипт в фон, который, в свою очередь, ждёт 5 секунд, пока появится нужный сток/источник, и затем производит переключение. <user> — имя обычного пользователя, которому нужно выполнить переключение (можно эту строчку повторить несколько раз, меняя только имена пользователей, для переключения нескольким пользователям). <sink> — имя стока, соответствующего подключаемому устройству (можно узнать, подключив устройство и выполнив команду pactl list sinks, см. поле name). Если нужно переключить не сток, а источник (подключается не наушники, а микрофон), то вместо set-default-sink <sink> будет set-default-source <source>, имя источника можно узнать из вывода команды pactl list sources. |
- | linux_user - логин вашего простого пользователя.\\ | + | |
- | такая связка нужна чтобы запустить webcammic в фоне, дождаться пока появится устройство в Pulseaudio и только тогда менять настройку.\\ | + | |
- | Чтобы узнать как называется ваш микрофон можно использовать команду | ||
- | pactl list sources | ||
- | | ||
- | | ||
======Bauer stereophonic-to-binaural DSP====== | ======Bauer stereophonic-to-binaural DSP====== | ||
Пример подключения LADSPA модуля [[http://bs2b.sourceforge.net/|bs2b]].\\ | Пример подключения LADSPA модуля [[http://bs2b.sourceforge.net/|bs2b]].\\ | ||
Установить плагин | Установить плагин | ||
<code>sudo apt install bs2b-ladspa ladspa-sdk</code> | <code>sudo apt install bs2b-ladspa ladspa-sdk</code> | ||
+ | Далее либо командами в консоли, либо с помощью [[pulseaudio#veromix|veromix]]. | ||
Получить имя выхода по-умолчанию. | Получить имя выхода по-умолчанию. | ||
<code>pacmd list-sinks</code> | <code>pacmd list-sinks</code> | ||
Строка 397: | Строка 408: | ||
pacmd load-module module-ladspa-sink sink_name=**[name]** master=**[default sink]** plugin=bs2b label=bs2b control=700,4.5 | 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 \ | + | <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> |
- | 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> | + | <code>pacmd set-default-sink ladspa_out</code> |
или это же, но мышкой в настройках звука\\ | или это же, но мышкой в настройках звука\\ | ||
{{:wiki:pulseaudio:bs2b-ladspa.png?400|}} | {{:wiki:pulseaudio:bs2b-ladspa.png?400|}} | ||
- | Если всё заработало, то можно добавить в настройки **/etc/pulse/default.pa** | + | Если всё заработало, то можно добавить в настройки **/etc/pulse/default.pa**\\ |
+ | Или копируем **/etc/pulse/default.pa** в **~/.config/pulse/default.pa** и вписываем уже в него для применения только для данного пользователя. | ||
<code>### BS2B plugin | <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 | + | 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> | set-default-sink ladspa_out</code> | ||
- | ======Шумоподавитель для микрофона в skype====== | + | ======Шумоподавитель для микрофона в skype, steam и т.п.====== |
Сначала проверим работу фильтра.\\ | Сначала проверим работу фильтра.\\ | ||
Строка 416: | Строка 426: | ||
<code>PULSE_PROP="filter.want=echo-cancel" skype</code> | <code>PULSE_PROP="filter.want=echo-cancel" skype</code> | ||
- | Вписываем в **/etc/pulse/default.pa** для автозапуска при старте pulseaudio | + | Вписываем в **/etc/pulse/default.pa** для автозапуска при старте pulseaudio.\\ |
+ | Или копируем **/etc/pulse/default.pa** в **~/.config/pulse/default.pa** и вписываем уже в него для применения только для данного пользователя. | ||
<code>### Шумоподавитель | <code>### Шумоподавитель | ||
- | load-module module-echo-cancel source_name=noechosource sink_name=noechosink | + | load-module module-echo-cancel source_name=noechosource sink_name=noechosink source_properties=device.description=Микрофон_с_шумоподавителем sink_properties=device.description=Выход_без_эха |
set-default-source noechosource</code> | set-default-source noechosource</code> | ||
+ | |||
+ | В моём случае эта строка выглядит так: | ||
+ | <code>### Шумоподавитель | ||
+ | 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, то следует включить в нем какую-то музыку фоном, даже с минимальной громкостью. | К сожалению, в текущей версии PulseAudio существует [[https://bugs.freedesktop.org/show_bug.cgi?id=83557|баг]], из-за которого этот модуль работает только тогда, когда производится не только запись, но и воспроизведение. Скажем, в Skype, Mumble и прочих голосовых телефонах будет все сразу замечательно, а если вы заходите только записать звук, например, через audacity, то следует включить в нем какую-то музыку фоном, даже с минимальной громкостью. |