Как установить pulseaudio ubuntu

Обновлено: 02.07.2024

Порой иногда нужно запускать Pulseaudio через systemd как сервис в Ubuntu. Это может быть необходимо по разным причинам.

Например, вы хотите сделать музыкальный сервер. Или как в моем случае, у меня многопользовательская система, и я запускаю иногда игры, под разными пользователям. Steam у меня работает под отдельным пользователем. И хотелось бы, чтобы звук из игры со steam и audacious работали одновременно и проигрывали музыку.

По умолчанию в Ubuntu pulseaudio запускается, от лица пользователя, когда ему потребуется звук, и чтобы одновременно играть в игры со steam и слушать музыку в audacious, нужно запустить Pulseaudio в качестве сервиса, либо прокинуть сокет для второго пользователя.

На официальном сайте, говорят что запускать pulseaudio в качестве сервиса, не очень удачная идея. Пишут, что все пользователи системы получат доступ к звуковой карте и микрофону (мне как раз это и нужно), и то что все смогут зафлудить папку /var.

Также говорят, что будет высокая нагрузка на CPU, из-за того что не доступен shared memory. Я если честно не увидел этой высокой нагрузки в system mode. Имхо, больше грузит хром, когда проигрывает музыку, или видео на ютубе. Загрузка Pulseaudio CPU действительно есть, у меня она порядка 4%, а хрома 25%. Причем она одинаковая что в system wide mode, что в обычном.

Flatpak не работает с pulseaudio в system wide mode. Тикет на Github.

Способ первый.

Если вы хотите просто передать звук второму пользователю, например, запустить программу через kdesudo, то отлично подойдет данный способ, и не нужно будет включать system wide mode у pulseaudio.

В файле /etc/pulse/default.pa добавьте в конце строку:

На другом пользователе в файле /home/otheruser/.config/pulse/client.conf:

Способ второй.

Если первый способ вам не подходит, или вы решили запускать pulseaudio в качестве сервиса, то вот что нужно сделать.

1) Сделайте бэкап папке /etc/pulse

2) Немного о конфигах

Я очень долго не мог понять, почему, когда я правлю конфиги, ничего не работает. Оказалось, что за работу в качестве клиента и сервиса у Pulseaudio, отвечают разные конфиги, и я правил не тот конфиг. Я правил конфиги от клиента, а запускал как сервис, и удивлялся почему ничего не работает.

Конфиги, которые отвечают за сервис - daemon.conf, system.pa
Конфиги, которые отвечают за работу клиента - client.conf, default.pa

3) Исправьте конфиги в /etc/pulse

В client.conf указать:

Это запретит автозапуск от имени пользователя.

В daemon.conf указать:

Параметры default-sample-format, default-sample-rate, default-sample-channels выставить индивидуально в зависимости от звуковой карты.

Отредактировать файл system.pa. Я привожу весь свой конфиг, т.к. стандартный конфиг отличается.

Очень важным является set-default-sink и set-default-source. У вас они могут отличатся в зависимости от звуковой карты. Чтобы узнать конкретный sink(выход) и source(вход) нужно выполнить команды

Параметр load-module module-echo-cancel aec_method=webrtc format=s16le rate=48000 channels=2 Отключает шум микрофона, при записи.

Параметр load-module module-switch-on-connect позволяет, при подключении наушников переводить звук на них автоматически.

Обзор хорошо написан в википедии.
Cводный список основных отличий от Alsa:

PulseAudio — «слой звуковой абстракции», принимающий звуковой поток от приложений и передающий его Alsa; PulseAudio оперирует объектами и позволяет перенаправлять звуковой поток между ними (роутинг); PulseAudio — демон, обычно запускаемый от имени пользователя; Позволяет передавать звук по сети и «расшаривать» микрофоны, установленные на других компьютерах. Теперь при отключении USB-колонки ни одна прога не подвиснет, а будет переброшена на другую доступную карту.

На данный момент (6.08.2012) в репозиториях Ubuntu 12.04 лежит пакет pulseaudio версии 1.1, тем временем уже давно доступна версия 2.0, поэтому если у вас есть какие либо проблемы со звуком, есть смысл попробовать установить более новую версию. Улучшения описаны на официальном сайте(eng).

для восстановления предыдущей версии:

ставим пакет sudo apt-get install paprefs
после установки запускаем от имени простого пользователя,
На закладке Simultaneous output
ставим галку «Add virtual output device for simultaneous output on all local sound cards»

если не поможет попробуйте дополнительно прописать в файле /etc/pulse/daemon.conf следующие настройки.

и снова перезапускаем

Замечено, что чем меньше клиентов у pulseaudio тем лучше он работает, не зависимо от нагрузки процессора.
Поэтому, особенно на слабых процессорах, когда разговариваете по skype рекомендую закрывать других клиентов.
Таким клиентами являются: видео проигрыватель, музыкальный проигрыватель и даже pavucontrol.

Card, Sink & Source

Известно, что у звуковой карты два типа гнёзд: входы (line in, микрофон) и выходы (наушники, line out, S/PDIF). В типовой конфигурации для каждой имеющейся звуковой карты и её «гнёзд» PulseAudio создаёт следующие объекты:

Card. Объект представляет физическую звуковую карту со всеми её входами и выходами; Sink (англ. низина) — «сток», принимающий звуковой поток. Представляет выход звуковой карты: линейный выход, наушники, колонки ноутбука; Source (англ. источник) — источник звука, создающий звуковой поток. Представляет вход звуковой карты: линейный вход, микрофон.

Итак, звук проигрывается через «Sink», а записывается через «Source».

Sink-Input & Source-Output

Итак, медиаплеер создаёт Sink-Input, а Skype — и Sink-Input, и Source-Output.

module, client, sample

В рамках статьи — чисто информационные :)

Module. Загруженный модуль PulseAudio. Например, загрузка module-alsa-sink с заданием пераметров, указывающих на устройство Alsa — создаст Sink, связанный с этим устройством. Существуют и другие модули, создающие объекты PulseAudio, позволяющие управлять им, использовать FIFO для обмена звуковым потоком и многое другое; Client. Приложение, подключившееся к PulseAudio. Может создавать потоки Sink-Input и Source-Output и управлять демоном PulseAudio. Sample. Звуковой сэмпл, загруженный в PulseAudio для быстрого воспроизведения. Может использоваться для проигрывания стандартных звуков. Например, x11 bell. Могут проигрываться по команде от модуля, клиента или из консоли.

ALSA → PulseAudio

Конечно же, сперва нужно убедиться что PulseAudio установлен и запущен:

Далеко не каждое приложение умеет работать с PulseAudio напрямую: обычно они умеют использовать Alsa. Для таких приложений нужно сообщить, чтобы Alsa перенаправляла их звуковые потоки к PulseAudio. Для этого в файл

GUI инструменты

Если Вы читаете эту статью чтобы решить пару нюансов и не вникать — рекомендуется попробовать GUI -tools, описанные на странице PulseAudio. С помощью pavucontrol можно будет быстро выбрать устройство записи «по умолчанию» (Input Devices, кнопка справа «Set as fallback») и Skype будет работать :) Также pavucontrol позволяет управлять громкостью общей и отдельных приложений.

veromix

Многофункциональный микшер для звукового сервера PulseAudio, имеющий Python / GTK и QT (pyqt) графический интерфейс. Позволяет управлять LADSPA плагинами. Установка через Центр приложений Ubuntu или через консоль:


PulseEffects

Удобное Python / GTK графическое приложение для набора PulseAudio эффектов. Множество плагинов в комплекте. Установка через консоль:


Консольные инструменты

pactl

Управление PulseAudio осуществляется с помощью команды pactl, про которую нельзя сказать что она удобная и продвинутая :) однако тренироваться будем с ней.

pacmd

Кроме pactl существует другая утилита для управления PulseAudio: pacmd. Если к PulseAudio подключен модуль module-cli-protocol — создаётся UNIX-сокет на котором висит PulseAudio-shell. Это во многом похоже на telnet. Шелл принимает текстовые команды и исполняет их. pacmd help покажет список доступных команд.
Проблема в том, что pactl умеет не всё, а pacmd не так удобен в использовании. В дальнейшем будем придерживаться pactl, однако если его функционала не хватит — используем pacmd.

patricks

Утилита для управления демоном PulseAudio :)

Дозированная подача информации командой ls: теперь в терминал не будет вываливаться тонна информации (особенно properties) Все объекты — в том числе порты и профайлы — можно задавать как по имени, так и по индексу Команда set sink 0 port next — можно не гадать номер порта и просто переключиться на следующий. Удобно для хоткея. Наличие команды mv sink 0 all для перемещения всех звуковых потоков в нужный Sink (USB-Колонка)

Полакомиться можно на GitHub: ootync/Patricks (файлы скрипта положить куда-нибудь и сделать симлинк на patricks.php)

Обзор

Для начала давайте посмотрим что у нас есть: какие объекты определены в PulseAudio. Рекомендую запустить фоновую музыку чтобы было на что смотреть Команда

Рекомендую присмотреться к полям объектов Sink и Source: по умолчанию они описывают Ваше железо. Покажу свой пример:

Card Profile: маппинг портов звуковой карты

На данный момент нельзя изменить приоритеты, однако можно выбрать тот или иной профиль. Подсматриваем в выводе pactl list имя карты и профиля, и выбираем:

Всё, порты карты переназначены. Можно вообще выключить все разъёмы, выбрав профайл «off»:

Sink Port: переключение звука на наушники

и звук моментально перебрасывается на наушники, отключая колонки.
Аналогично для Source. Возможно, Ваш микрофон не работает в Skype именно из-за того что выбран не тот порт записи :)

Default Sink: звуковой выход по умолчанию

Обратите внимание что pacmd в некоторых случаях позволяет использовать номера вместо длинных имён. Аналогично для Source. Кстати, неверно выбранный default-Source тоже может не давать общаться в Skype :)

Move Sink-Input: перемещение звукового потока

Управление громкостью

Громкость приложений

Приостановка

Sink и Source можно «приостановить»:

Конфиг

Одна из интереснейших возможностей аудиосервера pulseaudio — это передача аудиопотока по сети на удалённые аудиоустройства. В общем случае- это сервер с подключенными колонками.
В результате Вы получаете полностью отвязанный от проводов 1) ноутбук, воспроизводящий звук при просмотре любимых фильмов на большую акустическую систему.
Для прослушивания музыки данный способ не рекомендуется, проще и качественнее использовать mpd на сервере плюс какой любо клиент на ноутбуке.

Настройка клиента

Настройка клиента тривиальна. Раньше для выбора сервера для воспроизведения использовалась утилита padevchooser, теперь этот проект заброшен и ему на смену пришел пакет pasystray.
Для его установки необходимо добавить сторонний PPA ppa:christoph-gysin/pasystray.

Pasystray не запустится, если у вас не запущен avahi-daemon, данная служба необходима, как раз, для сканирования локальной сети на предмет наличия общедоступных сервисов. Поэтому если вы её, по каким либо причинам удаляли, то необходимо установить:


Необходимо добавить запись Pasystray в whitelist панели unity для того, что бы иконка могла отображаться.
С помощью данной утилиты вы можете выбрать сервер pulseaudio, доступный в текущей сети (пункт меню Default Server), и управлять основными его функциями (для этого в меню предусмотрены специальные пункты, и если какие либо из них не доступны, значит в вашей системе не установлены приложения, которые для них требуются) Manager…- запускает paman
Volume Control…- запускает pavucontrol
Volume Meter()…- запускает pavumeter

В стандартных наборах иконок нет иконки для pasystray, поэтому на панели она может выбиваться из общего стиля, для замены необходимо создать символьную ссылку, например так:
Для AwOken

Для Faenza-Ambiance (светлая панель)

Для Faenza-Radiance (темная панель)

Настройка сервера

Нам необходим pulseaudio и модуль, автоматически размещающий данные о наличии аудиосервера в локальной сети через службу Avahi. Создадим группу audio, участники которой имеют право доступа к аудиоустройствам: Добавим себя ещё и в эту группу, для доступа к pulseaudio: Убедимся, что вам доступны аудиоустройства. Эта комманда покажет список доступных устройств в системе.

Для доступа из сети к аудиосерверу раскомментируете три строки и добавьте параметры загрузки модулей module-esound-protocol-tcp и module-native-protocol-tcp:

где 127.0.0.1;192.168.0.0/16 — это сети, в которых будет доступен наш сервер 2) . По умолчанию pulseaudio слушает порт 4317, если вы изменяли настройки iptables, не забудьте его открыть 3) .
С конфигом всё.

Перезагружаем сервер. Если все прошло успешно — то сервер должен появится в pasystray в пункте Default Server у клиента 4) . Теперь можно добавить службу pulseaudio в автозагрузку.
Если у вас на сервере так же работает mpd, то можно сконфигурировать его на использование выхода- pulseaudio, и тогда он будет сам запускать сервер при старте, таким образом в автозагрузку служб можно будет добавить только mpd. Так же плюсом данного способа будет то, что звук в mpd и приложениях, использующих перенаправление звука, будет выровнена громкость.

Использование

Для корректного перенаправления звукового потока необходимо сначала в pasystray, выбрать Default Server <имя_пользователя>@<имя_сервера>, а потом запускать приложение, воспроизводящее звук.

Проблемы

Проверка схемы перенаправления звука

Если у вас возникают какие либо проблемы и вы хотите проверить работоспособность схемы перенаправления звука, то можно запустить любимый плеер, указав явно сервер pulseadio

Avahi-daemon и локальный домен (.local)

Перенесено в статью о Avahi

Звук не перенаправляется

Иногда возникает ситуация 5) , когда avahi-daemon работает, в pasystray указываем вывод через другой сервер, звук пропадает на локальном компьютере, но не появляется на сетевом (в VLC это сопровождается появлением ошибки).
Решение:

Перезапускаем avahi-daemon, для этого нажимаем Alt + F2 и вводим команду gksu service avahi-daemon restart , в появившемся окне вводим пароль; Запускаем pasystray для этого нажимаем Alt + F2 и вводим команду pasystray

По умолчанию в pulseaudio заложено следующее поведение: при переключении пользователя в системе звук воспроизводится только от одного пользователя. Это может показаться неудобным тем, кто хочет слышать музыку, запущенную у одного из пользователей, или звуковые оповещения «фонового» пользователя. Для того, что бы появилась возможность слышать звук от нескольких пользователей одновременно, необходимо:

В конфигурационном файле /etc/default/pulseaudio (в Ubuntu 14.04 эта настройка перенесена в /etc/init.d/pulseaudio) включаем system-mode:

При подключении наушников в порт наушников карты PCI драйвер ALSA в PulseAudio автоматически отключает порт громкоговорителей, и, если у вас в карте нет порта линейного выхода или у него меньший приоритет, то порт вывода звука автоматически переключается на наушники. Но если вы подключаете наушники или микрофон по USB или Bluetooth, то ввод/вывод звука на них автоматически не переключается. Чтобы настроить автоматическое переключение ввода/вывода звука на подключаемое устройство, можно подключить модуль PulseAudio module-switch-on-connect. Он переключает сток/источник по умолчанию в PulseAudio на новый появившийся сток/источник, соответствующий новому подключённому устройству, а также переключает все каналы вывода в сток / вывода из источника, используемые приложениями, со старого стока/источника по умолчанию на новый. Он идёт в стандартной поставке PulseAudio и подключается редактированием файла /etc/pulse/default.pa, в него нужно добавить:

В случае устройства, подключаемого по USB (например, веб-камеры или USB-наушников), альтернативным решением является настройка udev на автоматический запуск скрипта, который переключает в PulseAudio сток/источник по умолчанию и каналы ввода/вывода, при подключении устройства. Для этого нужно создать следующие файлы:

card1 — название подключаемого устройства, которое можно определить по файлу, появляющемуся в /sys/class/sound при подключении устройства. Скрипт запускает другой скрипт в фон, который, в свою очередь, ждёт 5 секунд, пока появится нужный сток/источник, и затем производит переключение. <user> — имя обычного пользователя, которому нужно выполнить переключение (можно эту строчку повторить несколько раз, меняя только имена пользователей, для переключения нескольким пользователям). <sink> — имя стока, соответствующего подключаемому устройству (можно узнать, подключив устройство и выполнив команду pactl list sinks, см. поле name). Если нужно переключить не сток, а источник (подключается не наушники, а микрофон), то вместо set-default-sink <sink> будет set-default-source <source>, имя источника можно узнать из вывода команды pactl list sources.

Пример подключения LADSPA модуля bs2b.
Установить плагин

Далее либо командами в консоли, либо с помощью veromix . Получить имя выхода по-умолчанию.

Например, у меня это 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

Установить выход звука через плагин


или это же, но мышкой в настройках звука

Если всё заработало, то можно добавить в настройки /etc/pulse/default.pa
Или копируем /etc/pulse/default.pa в

/.config/pulse/default.pa и вписываем уже в него для применения только для данного пользователя.

Сначала проверим работу фильтра.
Запускаем skype с дополнительной переменной

Вписываем в /etc/pulse/default.pa для автозапуска при старте pulseaudio.
Или копируем /etc/pulse/default.pa в

/.config/pulse/default.pa и вписываем уже в него для применения только для данного пользователя.

В моём случае эта строка выглядит так:

Далее в skype (steam и т.п.) указываем в качестве микрофона новый «Микрофон_с_шумоподавителем».

К сожалению, в текущей версии PulseAudio существует баг, из-за которого этот модуль работает только тогда, когда производится не только запись, но и воспроизведение. Скажем, в Skype, Mumble и прочих голосовых телефонах будет все сразу замечательно, а если вы заходите только записать звук, например, через audacity, то следует включить в нем какую-то музыку фоном, даже с минимальной громкостью. Если вы используете второй способ, убедитесь, что нужная вам программа воспроизводит аудио в sink с шумоподавлением, а не напрямую в аудиокарту. Перенести sink можно, например, через pavucontrol. Не воспроизводите музыку в аудиоплеере через sink с шумоподавлением, а то получите звук в моно и 32кГц.

На данный момент Pulseaudio доработан и при его использовании не возникает особых проблем, но если, всё таки, проблемы есть 6) , то есть смысл попробовать удалить.

Все нижеописанные действия стоит начинать только в случае крайней необходимости! Инструкция подходит для Ubuntu 9.10 / 10.04 / 10.10 / 11.04 / 11.10

Завершаем работу PulseAudio:

Удаляем ненужные пакеты:

Изменяем настройки gstreamer:

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

Обновляем списки репозиториев и обновляем пакеты:

Теперь нужно добавить новый апплет звука на панель. Для этого жмём правой кнопкой мыши на панели → Добавить на панель… → в списке выбираем Регулятор громкости.

В GNOME Classic из Ubuntu 11.10 требуется зажать Alt и нажать правую кнопку мыши для того, чтобы появился пункт Добавить на панель…

Апплет для Unity

Так как в Unity нет привычной панели с апплетами, нужно установить другой регулятор громкости, к примеру: volti. Для установки, скачайте и установите deb пакет последней версии. Необходимо добавить запись Volti в whitelist панели unity для того, что бы иконка могла отображаться.

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

Если возникли проблемы и звука теперь вообще нет, или что то не работает - можно легко вернуть все обратно.

Звук в системе - вещь очень необходимая. Вы можете захотеть послушать музыку, посмотреть фильм, пообщаться с друзьями через голосовую связь или видеочат. Для всего этого вам нужно будет, чтобы система поддерживала работу со звуком. И не менее важно, чтобы звук воспроизводился хорошо.

В этой статье мы не будем рассматривать установку драйверов или выполнить настройку звука linux по умолчанию. Мы будем говорить о комфортном управлении звуком. О том, как заставить звуковую систему работать лучше, чтобы получаемый звук соответствовал вашим желаниям.

Как работает аудио в Linux

Если не вдаваться в подробности, то вот небольшая схема того, как будет работать звук в Linux:


Здесь есть источник и есть цель. Что-то создает звук, что-то должно его получить и обработать, а затем, наконец, воспроизвести. Для большинства повседневных задач мы используем обычные приложения, например, VLC для генерации звука и колонки или наушники для воспроизведения.

В обратном порядке то же самое. Устройство, например, микрофон, генерирует звук, а затем отправляет его приложению, например, Jitsi или Skype. Модель всегда работает похожим образом. Но между этими двумя точками существует звуковая подсистема Linux.

Если не углубляться в историю, для управления звуком linux использовалась Advanced Linux Sound Architecture (ALSA). Если быть точным, то она и сейчас используется. Но в современных дистрибутивах настройка звука в linux выполняется без непосредственной настройки ALSA пользователем. Вместо этого применяются инструменты более высокого уровня - PulseAudio.

Почему именно PulseAudio?

Почему Pulse так необходим? Это не так. ALSA работает настолько хорошо, что многие дистрибутивы только сейчас начинают интегрировать Pulse по умолчанию. Тем не менее работа с ALSA может потребовать многих часов ручной настройки.

И здесь мы не говорим о настройке по умолчанию. Дополнительная настройка звука alsa может привести к созданию запутанных конфигурационных файлов и скриптов, поэтому вам будет сложно создать единственную конфигурацию на все случаи жизни. Проблема не всегда в ALSA, иногда причиной стает само приложение, но это не меняет конечный результат.

Сейчас мы требуем от нашего компьютера намного больше чем раньше. Раньше аудиовыход подключался к наушникам или колонкам и все. Сейчас же часто необходимо подключать компьютер к пучковой аудиосистеме, телевизору и получать звук с микрофона по Bluetooth.

PulseAudio позволяет все это настроить просто и быстро, а вам только останется убедиться, что все работает правильно. Также здесь добавляется несколько дополнительных полезных функций. Например, возможность передавать аудио на другой компьютер изменение форматов и каналов.

Настройка Pulse

Чтобы настроить воспроизведение звука с помощью Pulse вам понадобится выполнить три вещи:

  • Проверьте соединения, как физические, так и виртуальные;
  • Подключите звуковой выход или вход к источнику звука;
  • Управляйте целями с помощью Pulse Audio Control (pavucontrol).

Шаг 1. Проверьте оборудование

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

Признайте это. Вы хоть раз оставляли подключенными наушники, забывали ввести пароль к колонкам или пытались включить звук с выключенной громкостью. Вы тратили много времени на настройку звука linux, а проблема была совсем не там. Поэтому лучше сразу убедиться что физическая составляющая в порядке. Так дополнительная настройка PulseAudio будет проще.

Шаг 2. Проверьте ваше приложение

Точно так же проверьте настройки вашей программы. Не во всем программах есть много опций, но, например, в VLC можно настроить громкость воспроизведения и драйвер, с помощью которого будет воспроизводиться звук:


В приложении Google Hangouts настройки более упрощены:


Вам нужно убедиться, что приложение отправляет звук правильной подсистеме. Если сомневаетесь, лучше передать звук Pulse:

  • Отправьте звук Pulse и сможете управлять его воспроизведением динамически с помощью панели управления Pulse;
  • Если хотите получить ручной контроль - отправьте звук напрямую в ALSA. Это может понадобиться если вы используете такие профессиональные JACK или Patchage. Им нужно иметь полный контроль над маршрутизацией звука.

У Pulse есть плагин для ALSA поэтому даже если вы направите звук в ALSA, вы все равно сможете управлять им с помощью Pulse. Сигнал не будет перехвачен, так что об этом можно не беспокоиться.

Шаг 3. Настройка звука в pavucontrol

С помощью панели управления звуком PulseAudio или pavucontrol вы можете выполнять все необходимые действия. По умолчанию она находится в настройках Gnome, но может быть установлена отдельно. Для KDE утилита будет называться pavucontrol-qt.

Вы можете использовать pavucontrol чтобы настроить громкость звука и маршрутизацию на вашем компьютере. Возможно, вы ею уже пользуетесь ежедневно, но не знаете что это настройка pulseaudio. Когда вы регулируете громкость в своем окружении рабочего стола, вы используете те же инструменты.

Панель управления состоит из пяти вкладок:

  • Конфигурация - настройка звуковых карт. Она не используется часто, один раз устанавливаете нужные значения и забываете;
  • Устройства ввода - доступные устройства ввода, что-то, что может генерировать звук, например, микрофон или веб-камера;
  • Устройства вывода - доступные устройства вывода, такие как колонки или наушники, а также USB гарнитуры;
  • Запись - активные сеансы записи, например, браузер ищет аудиовход для чата или программа для записи, например, Audacity.
  • Проигрывание - активный поток звука, которые воспроизводится в данный момент. Вы можете менять громкость для одного или для двух каналов по отдельности для каждого приложения.


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

Шаг 4. Маршрутизация звука в Pulse

Вы можете выбрать на какое устройство будет передаваться ваш звук с помощью Pulse. Настройка звука Pulseaudio выполняется очень просто. Например, попробуйте что-то простое. Включите какую-либо музыку, затем перейдите на вкладку конфигурация.

Здесь обратите внимание, что для каждого устройства выбран профиль работы, например, у меня для встроенного аудио используется аналоговый сетреодуплекс. Если вы измените его на что-то другое музыка затихнет. Она продолжит воспроизводиться, но мы ее не будем слышать.


Вы можете видеть, что здесь, кроме аудиовыходов есть HDMI. После установки новой видеокарты, она может перехватить приоритет вывода у звуковой. Но вы уже знаете куда смотреть. В остальных же случаях параметры не изменятся пока вы их сами не измените.

Теперь давайте предпримем что-то более сложное, например, запишем воспроизводимый звук в файл. Откройте Audacity и в настройках выберите источник звука Pulse. Иногда может быть Default Line:0


Затем начните запись, вы увидите что пишите тишину:


Дальше вернитесь к панели управления Pulse, перейдите на вкладку Запись и выберите источник для Audacity вместо Встроенное аудио - Monitor Встроенное аудио, дальше вы увидите как началась запись:



Таким образом, вы можете перенаправлять звук для приложений. Многие проблемы со звуком возникают из-за того, что система использует не то аудиоустройство по умолчанию. Возможно, ваша USB камера не установлена как стандартный аудиовход. В таком случае вы просто не получите звука.

То же самое верно для аудио. Если вы смотрите фильм и не слышите звук, проверьте Pulse. Возможно, он отправляется на неактивное устройство или громкость отключена.

Выводы

На компьютерах всегда были проблемы со звуком. Звуковым устройствам нужны драйвера, операционной системе нужно обнаружить их и управлять, а пользователь должен понимать как работают элементы управления. Мы рассмотрели как выполняется настройка звука в Linux. И да, это 2017 и Linux может воспроизводить звук. И даже больше, он может управлять звуком. Надеюсь, эта информация была полезна для вас.



Одним из новшеств Ubuntu 10.10 стал переход с «голой» ALSA на PulseAudio. Ранее постилось много советов прибить и удалить его для решения проблем, однако теперь PulseAudio стабилен, с ним не шипят колонки ;), и он способен на такое, что не снилось Alsa :)

  • Как переключить весь звук на USB-колонку на закрывая приложений (usb hotplug);
  • Как выбрать порт звуковой карты для вывода звука (колонки ноутбука/наушника, LineOut/Наушники);
  • Как выбрать профайл звуковой карты (маппинг физических портов: 5.1 или стерео+lineIn?);
  • Как управлять громкостью и усиливать тихий сигнал (!);
  • Как сделать Skype громче музыки?

Кратко о PulseAudio

  • PulseAudio — «слой звуковой абстракции», принимающий звуковой поток от приложений и передающий его Alsa;
  • PulseAudio оперирует объектами и позволяет перенаправлять звуковой поток между ними (роутинг);
  • PulseAudio — демон, обычно запускаемый от имени пользователя;
  • Позволяет передавать звук по сети и «расшаривать» микрофоны, установленные на других компьютерах.
  • Теперь при отключении USB-колонки ни одна прога не подвиснет, а будет переброшена на другую доступную карту :)

GUI инструменты

Если Вы читаете эту статью чтобы решить пару нюансов и не вникать — могу порекомендовать попробовать GUI-tools, описанные на странице PulseAudio. С помощью pavucontrol можно будет быстро выбрать устройство записи «по умолчанию» (Input Devices, кнопка справа «Set as fallback») и Skype будет работать :) Также pavucontrol позволяет управлять громкостью общей и отдельных приложений.

Основные понятия PulseAudio

Card, Sink & Source
  • Card. Объект представляет физическую звуковую карту со всеми её входами и выходами;
  • Sink (англ. низина) — «сток», принимающий звуковой поток. Представляет выход звуковой карты: линейный выход, наушники, колонки ноутбука;
  • Source (англ. источник) — источник звука, создающий звуковой поток. Представляет вход звуковой карты: линейный вход, микрофон.

Итак, звук проигрывается через «Sink», а записывается через «Source».

Sink-Input & Source-Output
  • Sink-Input. Когда приложение, поддерживающее PulseAudio, собирается проигрывать звук — оно направляет свой вывод в один из объявленных Sink'ов и становится «входом Sink'a»: Sink Input. Приложение может создавать несколько потоков вывода, создавая отдельные Sink-Input'ы для каждого потока.
  • Source-Output. Если же приложение собирается принимать звук из некоторого Source (звукозапись) — оно становится «выходом Source'а»: Source-Output.

Итак, медиаплеер создаёт Sink-Input, а Skype — и Sink-Input, и Source-Output.

module, client, sample
  • Module. Загруженный модуль PulseAudio. Например, загрузка module-alsa-sink с заданием пераметров, указывающих на устройство Alsa — создаст Sink, связанный с этим устройством. Существуют и другие модули, создающие объекты PulseAudio, позволяющие управлять им, использовать FIFO для обмена звуковым потоком и многое другое;
  • Client. Приложение, подключившееся к PulseAudio. Может создавать потоки Sink-Input и Source-Output и управлять демоном PulseAudio.
  • Sample. Звуковой сэмпл, загруженный в PulseAudio для быстрого воспроизведения. Может использоваться для проигрывания стандартных звуков. Например, x11 bell. Могут проигрываться по команде от модуля, клиента или из консоли.

ALSA → PulseAudio


Конечно же, сперва нужно убедиться что PulseAudio установлен и запущен:
sudo apt-get install pulseaudio
pulseaudio --start -D

Далеко не каждое приложение умеет работать с PulseAudio напрямую: обычно они умеют использовать Alsa. Для таких приложений нужно сообщить, чтобы Alsa перенаправляла их звуковые потоки к PulseAudio.
Для этого в файл

/.asoundrc вставляем следующие строки (Которые, кстати, вылечат микрофон Skype'а! если ещё отключить «Позволить скайп автоматически подстраивать громкость» — подсказывает aim):
pcm.pulse < type pulse >
ctl.pulse < type pulse >
pcm.!default < type pulse >
ctl.!default < type pulse >

Первые две строки создадут виртуальные устройства ALSA с именем 'pulse' для ввода и вывода, а также устройство контроля (громкости). Следующие две — определяют их как «по умолчанию»: теперь все приложения вместо Alsa будут использовать PulseAudio через специальный плагин (и ничего не подозревать).
Для применения измений нужно перезапустить звуковые приложения. Свежезапущенные приложения подхватят изменения сами.
UPD: yuretsz подсказывает, что приложения, использующие OSS ( /dev/dsp ), нужно запускать через враппер padsp [options] PROGRAM [ARGUMENTS . ] .

Управление PulseAudio: pactl

Управление PulseAudio осуществляется с помощью команды pactl, про которую нельзя сказать что она удобная и продвинутая :) однако тренироваться будем с ней.

Осмотр владений

Рекомендую присмотреться к полям объектов Sink и Source: по умолчанию они описывают Ваше железо.
Покажу свой пример:

pactl & pacmd

Кроме pactl существует другая утилита для управления PulseAudio: pacmd .
Если к PulseAudio подключен модуль module-cli-protocol — создаётся UNIX-сокет на котором висит PulseAudio-shell. Это во многом похоже на telnet :)
Шелл принимает текстовые команды и исполняет их. pacmd help покажет список доступных команд.
Проблема в том, что pactl умеет не всё, а pacmd не так удобен в использовании. В дальнейшем будем придерживаться pactl , однако если его функционала не хватит — используем pacmd .
В конце статьи я продемонстрирую собственную утилиту, работающую поверх стандартных: намного более функциональную и удобную :)

Card Profile: маппинг портов звуковой карты

У звуковой карты ограниченное количество разъёмов, а применений им может найтись масса: можно задействовать все под вывод звука 5.1 и оставить один для микрофона; или же оставить один джек под стерео-выход, зато получить входы для микрофона и линейный; или…
Увы, магия здесь не прокатит: наборы предустановлены производителем. Их список можно посмотреть в поле «Profiles» объекта «Card».
Для каждого профиля задаётся приоритет (priority): число, определяющее «степень привлекательности» именно этого профайла. По умолчанию PulseAudio выбирает профайл с наибольшим приоритетом.
Для каждого профайла указывается сколько Sink'ов и Source'ов он породит если его выбрать: sinks: 1, sources: 0 .

На данный момент нельзя изменить приоритеты, однако можно выбрать тот или иной профиль.
Подсматриваем в выводе pactl list имя карты и профиля, и выбираем:
pactl set-card-profile 'alsa_card.pci-0000_00_1b.0' 'output:analog-stereo+input:analog-stereo'
Всё, порты карты переназначены.
Можно вообще выключить все разъёмы, выбрав профайл «off»:
pactl set-card-profile 'alsa_card.pci-0000_00_1b.0' 'off'

Sink Port: переключение звука на наушники

У одного Sink'а может быть несколько звуковых портов. Например, Sink созданный на основе звуковой карты ноутбука, может иметь два порта: встроенные колонки и выход на наушники.
Текущий порт Sink'а можно посмотреть в его поле Active Port: analog-output-speaker .
Глядя на список Ports нужного объекта Sink, назначаем порт:
pactl set-sink-port 'alsa_output.pci-0000_00_1b.0.analog-stereo' 'analog-output'
и звук моментально перебрасывается на наушники, отключая колонки.
Аналогично для Source. Возможно, Ваш микрофон не работает в Skype именно из-за того что выбран не тот порт записи :)

Default Sink: звуковой выход по умолчанию
Move Sink-Input: перемещение звукового потока
Управление громкостью
Громкость приложений

С появлением Windows7 линуксоиды, не знакомые с PulseAudio, обзавидовались возможности регулировать громкость отдельных приложений :)
Теперь это возможно: смотрим index нужного Sink-Input'а и усиливаем отдельное приложение:
pactl set-sink-input-volume '16' 80000

Приостановка

Sink и Source можно «приостановить»:
pactl suspend-sink '1'

Конфиг

  • pacmd — Запускает интерактивную консоль PulseAudio
  • pacmd help — список команд, на оффсайте

patricks

Замучавшись неудобством официальных утилит, ваш верный слуга написал свою утилиту для управления демоном PulseAudio :)

  • Короткие, интуитивные команды
  • Дозированная подача информации командой ls : теперь в терминал не будет вываливаться тонна информации (особенно properties)
  • Все объекты — в том числе порты и профайлы — можно задавать как по имени, так и по индексу
  • Команда set sink 0 port next — можно не гадать номер порта и просто переключиться на следующий. Удобно для хоткея.
  • Наличие команды mv sink 0 all для перемещения всех звуковых потоков в нужный Sink (USB-Колонка)

Пример работы:
Посмотреть список Sink'ов. Текущий Sink выделен символом >:


Перекинуть все Sink-Input'ы на следующий Sink (например, свежеподключенную USB-колонку)

PulseAudio Equalizer - это основной эквалайзер для Ubuntu в Linux, который окончательно загнулся к 2021г. Теперь у нас есть достойная замена PulseEffects, его и буду дальше использовать.

Политика разработчиков Linux по отношению к эквалайзерам звука по истине заставляет негодовать, официальная позиция - звук должен быть таким как есть. Из-за этого нет общего решения, но на помощь как всегда приходит сообщество!

Ниже раскрывающиеся блоки относятся к PulseAudio Equalizer, пропустите их и перейдите к PulseEffects в случае K/Ubuntu 20.04 LTS Focal Fossa (Фокусная Фосса) и сборок старше.

Разъяснения про PulseAudio Equalizer

Если ставились через скрипт установки программ (setup.sh) - он уже всё установил и настроил, остаётся только выбрать схему эквализации и перетащить устройства (см. ниже).

Установить PulseAudio Equalizer Ubuntu 20.04 Focal Fossa

Текущий собранный эквалайзер PulseAudio Equalizer Ubuntu 20.04 Focal Fossa не полноценно встраивается в систему - в Параметрах Системы → Мультимедиа нет вкладок Громкость и Звук и Видео. GNOME ALSA Mixer так же не поставился и ещё ряд программ (до Апреля 2021 бросил затею по переходу на 20.04).

Установить PulseAudio Equalizer Ubuntu 18.04 Bionic Beaver

PulseAudio Equalizer - это непосредственно основной эквалайзер для ubuntu 18.04 в Linux. И установим микшер GNOME ALSA Mixer, чтоб можно было удобно добираться до каналов звуковых устройств..

Настройка звука Линукс если установлен PulseAudio Equalizer

Я объясню как обращаться со звуковой системой Linux на примере Kubuntu 18.04. Настройка звука Линукс сводится к настройке подсистемы Pulse (их больше, но доминирует эта).

Необходимо запустить PulseAudio Equalizer и выбрать схему эквализации, на мой взгляд Laptop крайне адекватная, поставить галочку EQ Enabled , нажать Apply Settings и закрыть.. (setup.sh это сделает)

Пуск → Приложения → Мультимедиа → PulseAudio Equalizer

PulseAudio Equalizer

Теперь у нас будет фоном постоянно работать эквалайзер. Но необходимо ещё указать звуковой системе приоритет устройств вывода звука. Для этого идём в Мультимедиа слева будет столбец, в котором мы выбираем пункт и указываем, что данного типа звуковые потоки будут сниматься с эквалайзера первыми (не забудьте про корневой пункт Воспроизведение звука, источники не подходящие под категории будут обрабатываться по правилам из этого раздела).

Пуск → Компьютер → Параметры системы → Мультимедиа → Звук и видео

Настройка звука в KDE

Не забываем нажать Применить..
(Вместо "Фиктивный выход" будет название звуковой карты конкретного компьютера.)

Внимание! Если звук хрипит при изменении громкости, проверьте чтоб устройством по умолчанию была звуковая карта, а не эквалайзер.. В трее на динамике жмём правой → Настроить виджет громкость → Громкость… По умолчанию всё в порядке должно быть.. (Мой скрипт управления громкостью fsesound через карту работает обходя эквалайзер..)

На закладке "Настройка звукового оборудования" можно настроить устройства и переключить звуковую схему на 5.1 итп. Я ещё отключаю лишние устройства..

Если PulseAudio Equalizer не запускается в графическом режиме, введите в консоли:

И проследите какие ошибки пишет, может не запускаться из-за отсутствия иконки в выбранной теме оформления..

Ещё бывало отваливался при обновлении из-за конфликта версий, для решения проблемы заблокируем обновление:

Установить PulseEffects

Если ставились через скрипт установки программ (setup.sh) - он уже установил, включил и добавил в автозагрузку. → Переходим к настройке программ

Ещё одна свежая разработка PulseEffects, но звук в нём слегка другой, поскольку эквализация иная.. И установим микшер QasMixer, чтоб можно было удобно добираться до каналов звуковых устройств..
После установки остаётся запустить приложение, слева найти строчку с эквалайзером, включить самый первый gstreamer_ballad или ziyad_perfecteq (в самом низу) - верхастей звучит. А справа будет кнопка вызывающая выпадалку в которой следует включить автозагрузку.
При закрытии может отвалиться эквалайзер, но после перезагрузки всё наладится, программа запустится в фоновом режиме и дальнейшее открытие закрытие не будет обрывать эквализацию.

Настройка эквалайзера PulseEffects

Включить линейный вход звуковой карты Linux

Захотел услышать линейный вход (микрофонный так же), но по какой-то причине GNOME ALSA Mixer не включает Loopback Mixing.
Решение: запустить (отдельную, не в Dolphin) консоль написать alsamixer нажать F3 выбрать канал (стрелками влево вправо) и включить его (вверх вниз), заранее уберите уровни Line и Line Boost в 0 чтоб не оглохнуть.. Далее уже можно будет управлять из графического режима.

Скрипт для регулировки уровня громкости Pulse, переключения звуковых схем 5.1

Поскольку "яжпрограммист", написал свой сценарий управления звуком в системе.. Скрипт fsesound находится в архиве, рядом с установщиком setup.sh (смотрите раздел установка программ в Linux).. Скрипт будет выполняться на стадии запуска системы, выставляя начальную громкость и запуская эквалайзер.. И он борет проблему с отключением сабвуфера..

Для установки необходимо скопировать fsesound в систему, задать права на запуск и добавить ссылку (в данном случае через ярлычок) на запуск.

  1. Что сделать
  2. Громкость или звуковая схема
  3. Карта или звуковая схема2
  4. Карта (all=применить ко всем)

Если не указана карта - берётся текущая, можно указывать как по индексу 0, 1.. так и по имени Creative, NVidia, HD-Audio (без учёта регистра HD-Audio = hd-audio) скрипт пройдёт по текстовым полям: alsa.card_name, alsa.long_card_name, device.vendor.name, device.product.name в попытке найти заданное..

  • up - увеличить громкость
  • down - уменьшить громкость
  • vol - задать громкость
  • start - действия при запуске системы
  • set - задать звуковую схему
  • toggle - переключить звуковую схему

Логика сокращений звуковой схемы в set и toggle такая:

Аналоговые схемы: выход[вход] (m=mono, s=stereo, 51=5.1 выход)
s = Аналоговый стерео выход
ss = Аналоговый стерео дуплекс (Аналоговый стерео выход + Аналоговый стерео вход)
51s = Аналоговый объёмный 5.1 выход + Аналоговый стерео вход

Цифровые схемы HDMI: d|схема|номер устройства:
ds = Цифровой стерео/Digital Stereo (HDMI) выход
ds2 = Digital Stereo (HDMI 2) выход
d512 = Digital Front 5.1 (HDMI 2) выход

Цифровые схемы IEC958
958 = Цифровой стерео (IEC958) выход
958m = Цифровой стерео (IEC958) выход + Аналоговый моно вход
958s = Цифровой стерео (IEC958) выход + Аналоговый стерео вход

Полный список смотрите в скрипте, функция getprofile() и/или в настройках карты..

Громкость принимает значение в процентах (и тут всё просто 0 - 100%) или значение 0 - 65535 (100%) [78642 - 120% — усиление]. т.е. если задать 1200 это будет 1200/65535*100=1,98..

Конечно можно и без /usr/bin/ вызывать.. fsesound toggle ss 51s

Если после перезагрузки не сохраняется уровень громкости или не запускается PulseAudio Equalizer

Создадим скрипт в автозапуске start.sh, он сначала задаёт 1% уровень громкости включает эквалайзер и затем устанавливает приемлемый для меня стартовый уровень 16% громкости системы (поиграйтесь).. Это пример того, что делает скрипт fsesound, корректней всё работает через него.

Одной командой в консоли:

В GNOME, Cinnamon итд. автозапуск скорее всего в этой папке, в случае прорблем см. выше как это сделано ярлычком fsesound.desktop.

Отключаем всплывающее окно при изменении громкости (Plasma volume OSD)

В следующей версии KDE в настройках plasma-volume-control (значок динамика в трее) будет галочка отключающая OSD окно при изменении громкости, а пока решим этот вопрос изменив скрипт..

Параметры системы → Поведение рабочей среды → Основные параметры → Показывать уведомления при регулировке устройств

Ещё есть kmix - замена этого плагина (plasma-volume-control). Скажем так - это старая разработка, но не хуже, может даже лучше местами.. Стоит заметить: при переключении на схему 5.1 plasma-volume-control теряется, показывает неточные данные о громкости.. Мне это не мешает, но посмотрим, может kmix поставлю..

Если не работает сабвуфер

Дело в том, что в настройках pulse какие-то мутки с этим - канал lfe по умолчанию выключен. Подробнее гуглите man pulse-daemon. Смысл в подмешивании канала в другие, когда стерео положительно на звук влияет.

Ещё бывает сабвуфер залипает и не включается при переключении на 5.1, просто погоняйте бегунки канала в микшере (gnome-alsamixer), у меня при изменении любого рабочего канала Front, Surround итп отлагивается, но Front будет на каждой схеме.. (Опять же fsesound всё это делает за нас на автомате.)

Что делать если в Linux пропал звук

Такое случалось при обновлении системы, иногда начинались проблемы завала в хрип. Лечиться традиционно удалением конфигов, остальные методы могут высадить много времени, но не решить проблему.. Сделайте поправочку ( удалите ) на отсутствие PulseAudio Equalizer.. Таких проблем не встречал последние несколько лет. (Контроллер громкости плазмы plasma-pa.)

Уходим на перезагрузку и не забываем эквалайзер поднять: Параметры системы → Мультимедиа → Звук и видео (подробнее см. выше)

Если щелчки, булькает или хрипит звук Linux

Хочется отметить, что разработчики материнских плат не очень качественно подходят к фильтрации питания, что может проявляться как периодические щелчки, бульканья или хрип в звуке Linux или даже постоянным небольшим шипением реагирующим на перепады скажем на видеокарте.

Скорее всего это функции энергосбережения процессора, происходят постоянные скачки мощности, что и вызывает помехи. Это легко побороть в БИОСе компьютера (во время загрузки щёлкайте клавишу del), затем ищите где настройки процессора и отключайте C6 state, C1 state итп. Они примерно так называются в зависимости от производителя процессора.. Так же я словил проблему с тем, что зачем-то обновил BIOS, в нём исчез волшебный пункт C6 state и стало по новому, а обратно утилита не даёт откатить BIOS - гады подумал я, и вот методы решения:

0) Загрузитесь из под установочной флешки/диска, выполните проверку дисков на ошибки (в диспетчере разделов).

1) Переустанавливаем полностью pulse вместе с конфигами см. выше.

2) Обновите ядро системы, поскольку присутсвует взаимосвязь и ядро может некорректно функционировать по какой-то причине с железом, можно воспользоваться Ukuu (Ubuntu Kernel Upgrade Utility). И повторяем пункт 1, а может и нет.

3) Возможно проблема с режимом звуковой карты, выполним и уйдём на перезагрузку.

4) Всё ещё проблемы? Вот это уже не хорошо.. Попробовать под Windows, если артефактов нет, виновато ядро, по каким-то причинам некорректно работающее с железом. Если через время от включения компьютера артефакты пропадают, то скорее всего где-то железная проблема, конденсаторы могут так себя вести, здесь уже более радикальное решение может быть вплоть до замены/ремонта материнской платы, видеокарты итп., лучше начать исключать периферию первой, по возможности.

5) Написать производителю материнской платы и подробно описать всё: какие артефакты, какая система, что делали. Возможно ждать нового ядра Linux, новой прошивки BIOS, поиграться с настройками в БИОС, раз на раз может повезти и больше не заходить туда..

В моём случае после обновления БИОС появилась какая-то обратная связь (помехи проходить стали) материнской платы с PCI слотом в котором старая карточкой Creative X-Fi Elite Pro. Виновником проброса щелчков оказалась сама звуковая карта - давала в систему и на встроенную звуковую карточку проходило. Конденсаторы на старой все менял, так что там уже что-то другое, видимо время пришло. Переключился на встроенный Realtek ALC892, на материнской плате стоят модные конденсаторы в тракте и в целом обещали крутой звук и знаете, действительно, встроенный звук шагнул далеко вперёд, не думаю что буду ещё покупать внешние звуковые. Заметил что слышу дополнительные звуки не воспроизводимые старой звуковой. А вот запаса по громкости не хватает - слабее раза в 2-3, полностью раскачать студийные наушники не может, буду паять усилитель для наушников. В любом случае молодцы!

Читайте также: