Pavucontrol ubuntu как установить
Перейти к содержимому

Pavucontrol ubuntu как установить

  • автор:

Как настроить PulseAudio в Ubuntu

Я только недавно начал использовать Kodi для прослушивания музыки. Если я не выполняю тяжелые задачи, и учитывая, что у моего компьютера много оперативной памяти, я не знаю, мне это нравится. Но проблема Kodi и многих других музыкальных плееров заключается в том, что у них нет эквалайзера. Это можно исправить с помощью PulseEffects, которое представляет собой программное обеспечение, с помощью которого мы можем управлять PulseAudio. Эта статья о втором, хотя, возможно, уместно будет поговорить и о первом.

PulseAudio — это звуковой сервер, доступный для Linux и macOS. Хотя сейчас все вертится вокруг Трубопровод, многие программы по-прежнему зависят от PulseAudio или основаны на нем, и в этой статье мы поговорим о как настроить в убунту.

Посмотреть все разделы

Настройте PulseAudio в Ubuntu шаг за шагом

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

Программное обеспечение и обновления

Внутри, в первом разделе, у нас должно быть что-то вроде этого:

исходники программного обеспечения

При закрытии окна оно спрашивает нас, хотим ли мы перезагрузить репозитории, и это не помешает. Если вам не сказали «да», в терминале вы должны написать «sudo apt update», чтобы пакеты из новых источников отображались как вариант для установки.

Установите PulseAudio на Ubuntu

По умолчанию Ubuntu использует (или полагается) ALSA для управления звуком. Если мы хотим проверить или взглянуть на это, мы можем открыть терминал и ввести «alsamixer» (без кавычек), что даст нам что-то вроде следующего:

Алсамиксер на Ubuntu

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

  1. Открываем терминал и пишем:
sudo apt установить pulseaudio
  1. Далее перезагружаем компьютер, чтобы изменения вступили в силу.
  2. PulseAudio имеет графический инструмент, который позволит нам управлять им, и его имя — PulseAudio Volume Control, но он не установлен по умолчанию. Для того, чтобы его использовать, мы должны открыть другой терминал (или в том же) и написать:
sudo apt установить pavucontrol
  1. После установки мы открываем ящик приложения и идем до конца, так как появится приложение под названием «Управление громкостью PulseAudio»:

Павуконтроль

А графический инструмент такой:

Графический интерфейс павуконтроля

Управление звуком с помощью «PulseAudio Volume Control»

Графический интерфейс управления громкостью PulseAudio на момент написания статьи имел пять вкладок:

  • воспроизведение: отсюда мы увидим бары с тем, что воспроизводит звук. Если у нас ничего нет, мы будем видеть только «Системные звуки», и мы можем придать ему большую или меньшую громкость. Если есть приложения, воспроизводящие что-то, они появятся здесь.
  • Запись: отсюда мы будем управлять звуком записывающих его приложений, если таковые имеются.
  • Устройства вывода: это похоже на первое, но на самом деле это совершенно другое. Здесь появятся подключенные устройства вывода, такие как компьютерные динамики, наушники, подключенные к разъему, или устройства Bluetooth.
  • Устройства ввода: то же, что и предыдущий, но для ввода. Появится микрофон вашего ноутбука, если он есть, а также другие, которые могут записывать звук с помощью других средств, таких как порты USB или HDMI.
  • конфигурация: на этой вкладке мы можем изменить звуковые профили. По умолчанию используется дуплексное аналоговое стерео.

То, что появится в этом окне, будет зависеть от того, что мы играем или записываем в любой момент времени. Если мы откроем браузер и начнем слушать музыку из Spotify, она появится на вкладке воспроизведения. То же самое, если мы используем Kodi или Rythmbox. И отсюда мы также можем отключить программы, которые мы не хотим озвучивать, среди прочего.

Например, на следующем изображении вы можете увидеть, что произойдет, если мы откроем Firefox и воспроизведем видео:

YouTube на PulseAudio

Этот графический интерфейс для PulseAudio показывает нам над системными звуками, которые на 100%, и под программой, в данном случае Firefox, которая что-то воспроизводит, в частности, видео под названием HELLO! на видеоплатформе YouTube. Отсюда мы могли бы придать ему большую или меньшую громкость, а также заглушить то, что воспроизводится. И не только это: это приложение раздельное воспроизведение по табам, поэтому отсюда мы можем увеличить громкость на одной вкладке и уменьшить ее на другой или даже отключить ее. Отключение звука вкладок — это то, что уже предлагает большинство браузеров, но это пример, чтобы вы понимали, что у вас больше контроля над тем, что воспроизводится на вашем компьютере, и все это из одного и того же приложения.

Другие варианты

Я знаю, что многих интересует тема PulseAudio в Ubuntu, но я Я бы не рекомендовал его использовать, если в этом нет необходимости потому что конкретная программа просит нас об этом. Все, что описано выше, также можно увидеть в разделе «Звук» приложения «Настройки», и GNOME улучшает свое приложение настроек все больше и больше с каждым выпускаемым выпуском. Кроме того, мы не будем, ну скажем так, «заиграться», чем могли бы что-то испортить.

Теперь, если мы хотим, чтобы эквалайзер мог изменять звук любой программы, воспроизводящей звук, я бы рекомендовал PulseEffects упомянутый ранее. С его помощью мы можем настроить эквалайзер для Kodi или любой звуковой программы, у которой его нет. Если его нельзя установить, как мы объясняли сейчас около четырех лет назад, прямо сейчас он также доступен на Flathub (здесь). И практически то же самое, но для PipeWire, о котором мы тоже упоминали в этой статье, имеем Легкие эффекты, цель которого более или менее та же: иметь возможность контролировать звучание того, что воспроизводится на нашем компьютере, будь то Ubuntu или любой другой совместимый дистрибутив Linux.

Также имейте в виду, что описанное здесь действительно на момент написания этой статьи. Если все пойдет так, как ожидалось, скоро все это будет объединено в PipeWire, так что говорить о Jack, PulseAudio, ALSA и о том, как настроить звук, не будет особого смысла, потому что все будет по-другому. А пока мы надеемся, что эта статья помогла вам установить, использовать и лучше понять PulseAudio.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Убунлог » Software » Мультимедиа » Как настроить PulseAudio в Ubuntu

Будьте первым, чтобы комментировать

Кратко о PulseAudio

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

PulseAudio — «слой звуковой абстракции», принимающий звуковой поток от приложений и передающий его Alsa;

PulseAudio оперирует объектами и позволяет перенаправлять звуковой поток между ними (роутинг);
PulseAudio — демон, обычно запускаемый от имени пользователя;

Позволяет передавать звук по сети и «расшаривать» микрофоны, установленные на других компьютерах. Теперь при отключении USB-колонки ни одна прога не подвиснет, а будет переброшена на другую доступную карту.

Установка Pulseaudio 2.0

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

sudo add-apt-repository ppa:ubuntu-audio-dev/ppa sudo apt-get update && sudo apt-get upgrade

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

sudo apt-get install ppa-purge && sudo ppa-purge ppa:ubuntu-audio-dev

Заикается звук в skype

Проблема со skype и pulseaudio.
На старом проце (AMD Athlon™ XP 1500+), звук в скайпе сильно квакает.
Процессор нагружен на 100%.
Долго разбирался, в результате нашёл инструкцию http://pc-freak.net/blog/fix-to-gnome-pulseaudio-server-crappy-sound-on-debian-gnu-linux-pulseaudio-debian-workaround/
Продублирую:
прописываем в файле /etc/pulse/daemon.conf

default-fragments = 8 default-fragment-size-msec = 5

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

pulseaudio -k

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

enable-shm = yes shm-size-bytes = 0
high-priority = yes nice-level = -11
realtime-scheduling = yes realtime-priority = 5

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

pulseaudio -k

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

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

Card, Sink & Source

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

Card. Объект представляет физическую звуковую карту со всеми её входами и выходами;

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

Source (англ. источник) — источник звука, создающий звуковой поток. Представляет вход звуковой карты: линейный вход, микрофон.

В PulseAudio задаётся «default Sink» и «default Source»: объекты, используемые по умолчанию для свежезапущенных приложений. Замечу, что Sink не обязательно должен описывать физический порт звуковой карты: это абстракция приёмника потока звука. PulseAudio — штука высокоуровневая и позволяет создавать весьма «хитрые» объекты: например, Sink типа ‘NULL’ (реализуемый модулем PulseAudio module-null-sink) просто поглотит звук, а модуль module-pipe-sink позволит передавать звуковой поток через файл FIFO. Также можно создавать сетевые Sink’и, ведущие multicast-вещание или передающие звуковой поток определённому хосту. Всё это реализуется модулями PulseAudio.

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

Sink-Input & Source-Output

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

Source-Output. Если же приложение собирается принимать звук из некоторого Source (звукозапись) — оно становится «выходом Source’а»: Source-Output.

Каждый Sink-Input по умолчанию связываться с одним из Sink’ов и передаёт звуковой поток. PulseAudio далее определяет с чем связан Sink (например, звуковая карта) и передаёт его по назначению. Существует особый тип Source’а: Monitor. Для каждого Sink’а может быть создан отдельный монитор, позволяющий вести запись. Так, получается запись «звука из колонок».

Итак, медиаплеер создаёт 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’а! если ещё отключить «Позволить скайп автоматически подстраивать громкость»):

pcm.pulse < type pulse >ctl.pulse < type pulse >pcm.!default < type pulse >ctl.!default

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

padsp [options] PROGRAM [ARGUMENTS . ]

Программы управления Pulseaudio

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

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

veromix

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

sudo apt install veromix

PulseEffects

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

sudo add-apt-repository ppa:mikhailnov/pulseeffects -y sudo apt update sudo apt install pulseeffects pulseaudio --install-recommends

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

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)

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

ootync@rtfm ~ $ patricks ls sinks >Sink#0 Sink#1

Внимательнее присмотретсья к Sink #0:

ootync@rtfm ~ $ patricks ls sink 0 Sink#0 alsa_output.pci-0000_00_1b.0.analog-stereo> Is Default: yes Description: Internal Audio Analog Stereo State: RUNNING Driver: module-alsa-card.c Owner Module: Module#4 Sample Spec: s16le 44100ch 2Hz Channel Map: front-left, front-right Mute: no Volume: 25% Base Volume: 100 Latency: 199703 Configured Latency: 210000 Flags: HARDWARE, HW_MUTE_CTRL, HW_VOLUME_CTRL, DECIBEL_VOLUME, LATENCY Ports: analog-output, analog-output-headphones Active Port: analog-output Monitor Source: Source#0 Id: 0 Name: alsa_output.pci-0000_00_1b.0.analog-stereo Proplist: 33 items

Внимательнее посмотреть на список портов Sink #0:

ootync@rtfm ~ $ patricks ls sink 0 ports >#0 analog-output: "Analog Output" prio=9900 #1 analog-output-headphones: "Analog Headphones" prio=9000

Переключить Sink #0 на следующий порт

ootync@rtfm ~ $ patricks set sink 0 port next Sink#0 alsa_output.pci-0000_00_1b.0.analog-stereo>: analog-output-headphones

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

ootync@rtfm ~ $ patricks mv sink next all 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

Настройка

Обзор

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

pactl list

покажет длинный список существующих объектов.
У каждого объекта есть набор описывающих его полей, а также специальное поле «Properties»: список key-value свойств (обычно строковых).
У всех объектов есть index (Sink #0) — уникальный номер объекта определённого типа. Также многие объекты имеют имена (Name: ): index и Name можно использовать для обращения к конкретному объекту.

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

Sink #1 — Sink: вопроизводит звук State: RUNNING — Sink работает: через него проигрывается музыка Name: alsa_output.pci-0000_00_1b.0.analog-stereo — Уникальное имя Sink'а Description: Internal Audio Analog Stereo — Текстовое описание Sink'а Driver: module-alsa-card.c — Используемый "драйвер": модуль PulseAudio, создавший этот Sink Sample Specification: s16le 2ch 44100Hz — Параметры дискретизации, количество каналов, кодирование. Channel Map: front-left,front-right — Звуковые каналы Owner Module: 5 — index модуля, создавшего этот Sink Mute: no Volume: 0: 26% 1: 26% — Громкость обоих каналов 0: -35.42 dB 1: -35.42 dB balance 0.00 Base Volume: 100% — "Базовая громкость": указывает на некоторую "неусиленную" громкость устройства вывода 0.00 dB Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor — Имя "монитора", связанного с этим Sink (виртуальный Source: позволяет писать "звук с колонок") Latency: 161458 usec, configured 210000 usec — Параметры звукового лага Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY Properties: . — Всякие свойства. Там можно увидеть имя устройства Alsa, куда этот Sink отдаёт звук Ports: — Порты Sink'а: соответствуют физическим портам звуковой карты analog-output: Analog Output (priority. 9900) — Выход наушников analog-output-speaker: Analog Speakers (priority. 10000) — Колонки ноутбука Active Port: analog-output-speaker — Текущий выбранный порт: музыка у меня играет из колонок ноута. Card #1 — Физическая звуковая карта Name: alsa_card.pci-0000_00_1b.0 Driver: module-alsa-card.c Owner Module: 5 Properties: . Profiles: — Профили звуковой карты: выбранный пресет маппинга физических портов. output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority. 6000) output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority. 6060) output:iec958-stereo: Digital Stereo Duplex (IEC958) (sinks: 1, sources: 0, priority. 5500) output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (sinks: 1, sources: 1, priority. 5560) input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority. 60) off: Off (sinks: 0, sources: 0, priority. 0) Active Profile: output:analog-stereo+input:analog-stereo Source #1 — Source: позволяет записывать звук State: IDLE — Source бездействует: я ничего не записываю :) Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor Description: Monitor of Internal Audio Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 44100Hz Channel Map: front-left,front-right Owner Module: 5 Mute: no Volume: 0: 100% 1: 100% 0: 0.00 dB 1: 0.00 dB balance 0.00 Base Volume: 100% 0.00 dB Monitor of Sink: alsa_output.pci-0000_00_1b.0.analog-stereo — Этот Source создан как монитор 1го Sink'а: из него можно записывать то что слышно из колонок Latency: 0 usec, configured 1999818 usec Flags: DECIBEL_VOLUME LATENCY Properties: .

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: звуковой выход по умолчанию

PulseAudio метит один из Sink’ов как «по умолчанию»: новые запущенные приложения по умолчанию будут проигрываться через него. Другими словами, если приложение при создании Sink-Input’а не выбирает Sink самостоятельно (например, из пользовательских настроек) — выбирается default-sink. Sink по умолчанию можно посмотреть выполнив команду pactl stat:

$ pactl stat . Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo Default Source: alsa_input.usb-046d_0802_0825F490-02-U0x46d0x802.analog-mono

Изменим его: смотрим имя нужного Sink’а и пишем:

pacmd set-default-sink '1'

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

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

Этим действием можно перекинуть Sink-Input с одного Sink’а на другой. Таким образом можно перебросить музыку на только что подключенную USB-колонку. Смотрим имена двух Sink’ов, находим нужный Sink-Input и пишем:

pactl move-sink-input 16 '1'

и звук Sink-Input#16 моментально переключается на Sink #1. Это может быть USB-колонка. Увы, перебросить сразу все Sink-Input’ы с помощью pactl или pacmd нельзя. В конце статьи будет решение. Source-Output также можно переключать между Source’ами.

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

Громкость в PulseAudio задаётся численно: 0..65535 (соответствует 0% и 100%), а также — сюрприз! — значения большие чем 100% вызывают усиление сигнала что незаменимо при просмотре фильмов с ненормализованной громкостью. Здесь можно использовать index Sink’а:

pactl set-sink-volume '1' 100 # очень тихо! 100/65535 = 0,15% pactl set-sink-volume '1' 65535 # 100% pactl set-sink-volume '1' 78642 # 120% — усиление pactl set-sink-mute '1' true # соседи могут засыпать

Усиление может вызывать clipping: всем известный «дребезг». Аналогично можно управлять громкостью Source’ов. UPD: с версии 0.9.15 появилась фича «FLAT_VOLUME» (её можно увидеть в Sink ‘Flags’). При наличии этого флага громкость Sink’а автоматически устанавливается как максимальная громкость всех Sink-Input’ов. Отключить её можно так: echo «flat-volumes = no» » /etc/pulse/daemon.conf

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

С появлением Windows7 линуксоиды, не знакомые с PulseAudio, обзавидовались возможности регулировать громкость отдельных приложений 🙂 Теперь это возможно: смотрим index нужного Sink-Input’а и усиливаем отдельное приложение:

pactl set-sink-input-volume '16' 80000

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

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

pactl suspend-sink '1'

Конфиг

Когда Вам в голову придёт мысль добавить одну из этих команд в автозагрузку — немедленно выбросьте её! В таких случаях нужно использовать файл конфигурации PulseAudio. Пример можно найти в файле /etc/pulse/default.pa. Обратите внимание на shebang #!/usr/bin/pulseaudio -nF: это скрипт, синтаксис которого очень похож на команды, которые понимаем pacmd. Для самообразования: pacmd — Запускает интерактивную консоль PulseAudio
pacmd help — список команд, на оффсайте
Модули PulseAudio

Звуковой сервер

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

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

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

sudo apt-add-repository ppa:christoph-gysin/pasystray sudo apt-get update sudo apt-get install pasystray

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

sudo apt-get install avahi-daemon

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

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

sudo ln -s /usr/share/icons/AwOken/clear/24x24/apps/covergloobus.png /usr/share/icons/AwOken/clear/24x24/apps/pasystray.png

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

sudo ln -s /usr/share/icons/Faenza/status/24/covergloobus-panel.png /usr/share/icons/Faenza/status/24/pasystray.png

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

sudo ln -s /usr/share/icons/Faenza-Dark/status/24/covergloobus-panel.png /usr/share/icons/Faenza-Dark/status/24/pasystray.png

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

Ставим Avahi, если не стоит:

sudo apt-get install avahi-daemon

Нам необходим pulseaudio и модуль, автоматически размещающий данные о наличии аудиосервера в локальной сети через службу Avahi.

sudo apt-get install pulseaudio pulseaudio-module-zeroconf esound

Создадим группу audio, участники которой имеют право доступа к аудиоустройствам:

sudo groupadd audio

Добавим себя в эту группу:

sudo gpasswd -a user audio

Добавим себя ещё и в эту группу, для доступа к pulseaudio:

sudo gpasswd -a user pulse-access

Поставим alsa.

sudo apt-get install alsa libasound2-plugins

Убедимся, что вам доступны аудиоустройства. Эта комманда покажет список доступных устройств в системе.

aplay -l

Подправим конфиг pulseaudio:

sudo nano /etc/pulse/default.pa

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

### Network access (may be configured with paprefs, so leave this commented ### here if you plan to use paprefs) load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16 load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16 load-module module-zeroconf-publish

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

Перезагружаем сервер. Если все прошло успешно — то сервер должен появится в pasystray в пункте Default Server у клиента 4) .

pulseaudio -D

Остановить так:

pulseaudio -k

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

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

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

Проблемы

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

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

PULSE_SERVER=192.168.1.2 deadbeef

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

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

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

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

Завершаем работу pasystray;

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

Запускаем pasystray для этого нажимаем Alt + F2 и вводим команду pasystray

Воспроизведение звука от двух пользователей одновременно

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

Добавить всех пользователей в группу pulse-access;

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

PULSEAUDIO_SYSTEM_START=1

Автоматическое переключение ввода/вывода звука на подключаемое устройство

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

### Local additions from load-module module-switch-on-connect

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

SUBSYSTEM=="sound", KERNEL=="card1", ACTION=="change", RUN+="/usr/local/bin/usb_switch_to_udev.sh"
#!/bin/sh su -c "/usr/local/bin/usb_switch_to.sh" &

#!/bin/sh sleep 5 pacmd set-default-sink pacmd list-sink-inputs | awk ‘/index:/’ | xargs -r -I<> pacmd move-sink-input <>

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

Bauer stereophonic-to-binaural DSP

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

sudo apt install bs2b-ladspa ladspa-sdk

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

pacmd list-sinks

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

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

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

pacmd set-default-sink ladspa_out

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

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

### 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

Шумоподавитель для микрофона в skype, steam и т.п.

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

PULSE_PROP="filter.want=echo-cancel" skype

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

### Шумоподавитель load-module module-echo-cancel source_name=noechosource sink_name=noechosink source_properties=device.description=Микрофон_с_шумоподавителем sink_properties=device.description=Выход_без_эха set-default-source noechosource

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

### Шумоподавитель 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

Далее в 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:

killall pulseaudio

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

sudo apt-get remove pulseaudio gstreamer0.10-pulseaudio -y

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

gconftool-2 -s --type string /desktop/gnome/sound/default_mixer_device "alsamixer" gconftool-2 -s --type list --list-type string /desktop/gnome/sound/default_mixer_tracks "[Master]" gconftool-2 -s --type boolean /desktop/gnome/sound/enable_esd false gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosink "alsasink" gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosrc "alsasrc" gconftool-2 -s --type string /system/gstreamer/0.10/default/chataudiosink "alsasink" gconftool-2 -s --type string /system/gstreamer/0.10/default/musicaudiosink "alsasink"

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

sudo add-apt-repository ppa:dtl131/ppa

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

sudo apt-get update && sudo apt-get upgrade

Перезагружаемся.

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

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

Апплет для Unity

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

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

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

Снова ставим PulseAudio:

sudo apt-get install pulseaudio gstreamer0.10-pulseaudio indicator-sound -y

Удаляем добавленный ранее репозиторий и все оставшиеся от него пакеты:

sudo apt-get install ppa-purge sudo ppa-purge ppa:dtl131/ppa

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

gconftool-2 -s --type string /desktop/gnome/sound/default_mixer_device "" gconftool-2 -s --type list --list-type string /desktop/gnome/sound/default_mixer_tracks "[]" gconftool-2 -s --type boolean /desktop/gnome/sound/enable_esd true gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosink "autoaudiosink" gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosrc "autoaudiosrc" gconftool-2 -s --type string /system/gstreamer/0.10/default/chataudiosink "autoaudiosink" gconftool-2 -s --type string /system/gstreamer/0.10/default/musicaudiosink "autoaudiosink"

Очищаем настройки старого PulseAudio:

rm -r ~/.pulse ~/.asound* sudo rm /etc/asound.conf

PulseAudio, часть 1: управление из командной строки

Одним из новшеств 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, про которую нельзя сказать что она удобная и продвинутая 🙂 однако тренироваться будем с ней.

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

Для начала давайте посмотрим что у нас есть: какие объекты определены в PulseAudio. Рекомендую запустить фоновую музыку чтобы было на что смотреть 🙂
Команда pactl list покажет длинный список существующих объектов.
У каждого объекта есть набор описывающих его полей, а также специальное поле «Properties»: список key-value свойств (обычно строковых).
У всех объектов есть index (Sink #0) — уникальный номер объекта определённого типа. Также многие объекты имеют имена (Name: ): index и Name можно использовать для обращения к конкретному объекту.

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

Sink #1 — Sink: вопроизводит звук State: RUNNING — Sink работает: через него проигрывается музыка Name: alsa_output.pci-0000_00_1b.0.analog-stereo — Уникальное имя Sink'а Description: Internal Audio Analog Stereo — Текстовое описание Sink'а Driver: module-alsa-card.c — Используемый "драйвер": модуль PulseAudio, создавший этот Sink Sample Specification: s16le 2ch 44100Hz — Параметры дискретизации, количество каналов, кодирование. Channel Map: front-left,front-right — Звуковые каналы Owner Module: 5 — index модуля, создавшего этот Sink Mute: no Volume: 0: 26% 1: 26% — Громкость обоих каналов 0: -35.42 dB 1: -35.42 dB balance 0.00 Base Volume: 100% — "Базовая громкость": указывает на некоторую "неусиленную" громкость устройства вывода 0.00 dB Monitor Source: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor — Имя "монитора", связанного с этим Sink (виртуальный Source: позволяет писать "звук с колонок") Latency: 161458 usec, configured 210000 usec — Параметры звукового лага Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY Properties: . — Всякие свойства. Там можно увидеть имя устройства Alsa, куда этот Sink отдаёт звук Ports: — Порты Sink'а: соответствуют физическим портам звуковой карты analog-output: Analog Output (priority. 9900) — Выход наушников analog-output-speaker: Analog Speakers (priority. 10000) — Колонки ноутбука Active Port: analog-output-speaker — Текущий выбранный порт: музыка у меня играет из колонок ноута. Card #1 — Физическая звуковая карта Name: alsa_card.pci-0000_00_1b.0 Driver: module-alsa-card.c Owner Module: 5 Properties: . Profiles: — Профили звуковой карты: выбранный пресет маппинга физических портов. output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority. 6000) output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority. 6060) output:iec958-stereo: Digital Stereo Duplex (IEC958) (sinks: 1, sources: 0, priority. 5500) output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (sinks: 1, sources: 1, priority. 5560) input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority. 60) off: Off (sinks: 0, sources: 0, priority. 0) Active Profile: output:analog-stereo+input:analog-stereo Source #1 — Source: позволяет записывать звук State: IDLE — Source бездействует: я ничего не записываю :) Name: alsa_output.pci-0000_00_1b.0.analog-stereo.monitor Description: Monitor of Internal Audio Analog Stereo Driver: module-alsa-card.c Sample Specification: s16le 2ch 44100Hz Channel Map: front-left,front-right Owner Module: 5 Mute: no Volume: 0: 100% 1: 100% 0: 0.00 dB 1: 0.00 dB balance 0.00 Base Volume: 100% 0.00 dB Monitor of Sink: alsa_output.pci-0000_00_1b.0.analog-stereo — Этот Source создан как монитор 1го Sink'а: из него можно записывать то что слышно из колонок Latency: 0 usec, configured 1999818 usec Flags: DECIBEL_VOLUME LATENCY Properties: .
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: звуковой выход по умолчанию

PulseAudio метит один из Sink’ов как «по умолчанию»: новые запущенные приложения по умолчанию будут проигрываться через него. Другими словами, если приложение при создании Sink-Input’а не выбирает Sink самостоятельно (например, из пользовательских настроек) — выбирается default-sink.
Sink по умолчанию можно посмотреть выполнив команду pactl stat :
$ pactl stat
.
Default Sink: alsa_output.pci-0000_00_1b.0.analog-stereo
Default Source: alsa_input.usb-046d_0802_0825F490-02-U0x46d0x802.analog-mono
Изменим его: смотрим имя нужного Sink’а и пишем:
pacmd set-default-sink ‘1’
Обратите внимание что pacmd в некоторых случаях позволяет использовать номера вместо длинных имён.
Аналогично для Source. Кстати, неверно выбранный default-Source тоже может не давать общаться в Skype 🙂

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

Этим действием можно перекинуть Sink-Input с одного Sink’а на другой. Таким образом можно перебросить музыку на только что подключенную USB-колонку.
Смотрим имена двух Sink’ов, находим нужный Sink-Input и пишем:
pactl move-sink-input 16 ‘1’
и звук Sink-Input#16 моментально переключается на Sink #1. Это может быть USB-колонка.
Увы, перебросить сразу все Sink-Input’ы с помощью pactl или pacmd нельзя. В конце статьи будет решение.
Source-Output также можно переключать между Source’ами.

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

Громкость в PulseAudio задаётся численно: 0..65535 (соответствует 0% и 100%), а также — сюрприз! — значения большие чем 100% вызывают усиление сигнала что незаменимо при просмотре фильмов с ненормализованной громкостью.
Здесь можно использовать index Sink’а:
pactl set-sink-volume ‘1’ 100 # очень тихо! 100/65535 = 0,15%
pactl set-sink-volume ‘1’ 65535 # 100%
pactl set-sink-volume ‘1’ 78642 # 120% — усиление
pactl set-sink-mute ‘1’ true # соседи могут засыпать
Усиление может вызывать clipping: всем известный «дребезг».
Аналогично можно управлять громкостью Source’ов.
UPD: с версии 0.9.15 появилась фича «FLAT_VOLUME» (её можно увидеть в Sink ‘Flags’). При наличии этого флага громкость Sink’а автоматически устанавливается как максимальная громкость всех Sink-Input’ов. Отключить её можно так:
echo «flat-volumes = no» >> /etc/pulse/daemon.conf

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

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

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

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

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

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

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

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

ootync@rtfm ~ $ patricks ls sinks >Sink#0 Sink#1

Внимательнее присмотретсья к Sink #0:

ootync@rtfm ~ $ patricks ls sink 0 Sink#0 Is Default: yes Description: Internal Audio Analog Stereo State: RUNNING Driver: module-alsa-card.c Owner Module: Module#4 Sample Spec: s16le 44100ch 2Hz Channel Map: front-left, front-right Mute: no Volume: 25% Base Volume: 100 Latency: 199703 Configured Latency: 210000 Flags: HARDWARE, HW_MUTE_CTRL, HW_VOLUME_CTRL, DECIBEL_VOLUME, LATENCY Ports: analog-output, analog-output-headphones Active Port: analog-output Monitor Source: Source#0 Id: 0 Name: alsa_output.pci-0000_00_1b.0.analog-stereo Proplist: 33 items

Внимательнее посмотреть на список портов Sink #0:

ootync@rtfm ~ $ patricks ls sink 0 ports >#0 analog-output: "Analog Output" prio=9900 #1 analog-output-headphones: "Analog Headphones" prio=9000

Переключить Sink #0 на следующий порт

ootync@rtfm ~ $ patricks set sink 0 port next Sink#0 : analog-output-headphones

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

ootync@rtfm ~ $ patricks mv sink next all Moving 1 inputs to sink "alsa_output.pci-0000_00_1b.0.analog-stereo". Sink#0 : default sink
Ссылки
В следующей серии
  • Конфиги PulseAudio
  • Работа с модулями
  • Работа с сэмплами
  • Звук по сети, revisited

Настройка звука с помощью PulseAudio

PulseAudio — кроссплатформенный звуковой сервер, созданный в качестве улучшенной замены таких серверов, как ESD, ARts.

PulseAudio принимает звук от одного или нескольких источников (процессов или устройств) и направляет одному или нескольким приёмникам (звуковым платам, серверам PulseAudio или процессам). Одной из основных целей проекта является предоставление возможности перенаправления любых звуковых потоков, включая и потоки от процессов, требующих прямого доступа к аудиоустройствам. Это достигается с помощью специальных псевдоустройств, работающих непосредственно с другими звуковыми системами, такими как aRts или ESD.

В РЕД ОС пользователь может настроить систему ALSA так, чтобы она использовала виртуальное устройство, созданное сервером PulseAudio. Тогда программы, работающие со звуком через драйвер ALSA, будут на самом деле работать с PulseAudio, который взаимодействует с помощью ALSA уже с реальным устройством.

  • раздельная установка уровней громкости для разных программ;
  • смешивание потоков от разных звуковых плат;
  • расширяемая модульная система с поддержкой динамически загружаемых библиотек;
  • совместимость со многими популярными аудиоприложениями;
  • работа с несколькими источниками и приёмниками звука;
  • приемлемая для повседневного непрофессионального использования задержка и возможность ею управлять;
  • использование технологии zero-copy, сберегающей машинное время;
  • интерфейс командной строки с возможностью использования сценариев;
  • демон, перенастраиваемый с помощью командной строки;
  • встроенное преобразование аудиоформатов;
  • синхронизация потоков воспроизведения;
  • смешиваемые потоки могут иметь разные частотные характеристики;
  • эффективный микшер, даже для звуковых плат без микшера, предотвращающий «монополизацию» звукового устройства отдельной программой.

Настройка звука с помощью графического интерфейса PulseAudio

Работа с утилитой

Утилита настройки звука доступна из «Главного меню» — «Параметры» — «Звук». Также открыть утилиту можно, нажав ПКМ на иконку регулировки громкости и выбрав пункт «Параметры звука».

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

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

Вкладка «Звуковые события»

На вкладке «Звуковые события» можно выбрать тему звуковых событий, а также их громкость.

Вкладка «Оборудование»

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

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

  • Аналоговый стерео дуплекс — работает с устройствами ввода и вывода звука одновременно;
  • Аналоговый стерео выход — работает только с устройствами вывода звука;
  • Аналоговый стерео вход — работает только с устройствами ввода звука;
  • Цифровой стерео выход — позволяет получать более высокое качество звука, но не все устройства способны поддерживать этот режим;
  • Цифровой стерео выход + Аналоговый стерео вход — позволяет использовать аналоговые устройства ввода звука одновременно с цифровыми устройствами вывода звука;
  • Выключено — отключает звуковое устройство.

Примечание.

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

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

При нажатии кнопки «Проверить» рядом с иконкой по выбранному каналу будет воспроизведена звуковая дорожка. Например, при использовании наушников и нажатии кнопки «Проверить» возле иконки «Front Left» воспроизводимую звуковую дорожку будет слышно только в левом наушнике.

Вкладка «Вход»

Параметр «Громкость записи» позволяет пользователю настраивать чувствительность микрофона под свои нужды.

В момент настройки можно наблюдать за уровнем чувствительности микрофона по шкале «Уровень записи».

Выпадающий список «Канал» предлагает на выбор следующие каналы для работы устройств ввода звука:

  • Front Microphone — канал микрофона с порта на передней панели компьютера;
  • Rear Microphone — канал микрофона с порта на материнской плате;
  • Line In — канал для устройств ввода звука с дополнительного порта на материнской плате. Отличительной особенностью от обычного канала для микрофона является более низкая чувствительность. Данный канал предназначен для электронных устройств, которые имеют возможность ввода звука в компьютер. Например, микшеры, синтезаторы, дрампады и др.

Примечание.

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

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

Вкладка «Выход»

В отличие от вкладки «Вход» список устройств для вывода звука предоставляется сразу. От выбранного устройства зависит набор настраиваемых параметров.

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

  • Speakers — канал устройств вывода звука с порта на передней панели компьютера;
  • Headphones — канал устройств вывода звука с порта на материнской плате;
  • Line Out — канал устройств вывода звука с дополнительного порта на материнской плате без усиления. Чаще всего используется для подключения усилителей или активных колонок. На обычных устройствах звук будет очень тихим.

Примечание.

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

Вкладка «Приложения»

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

Настройка звука с помощью pavucontrol

Pavucontrol — это регулятор громкости для PulseAudio с расширенными возможностями.

Для его установки перейдите в сеанс пользователя root:

и выполните команду:

dnf install pavucontrol

После установки запуск утилиты pavucontrol доступен из «Главного меню» — «Аудио и Видео» — «Регулятор громкости PulseAudio» или через терминал командой:

pavucontrol

Программа представляет из себя окно с пятью вкладками: «Проигрывание», «Запись», «Устройства вывода», «Устройства ввода» и «Конфигурация».

Вкладка «Проигрывание»

Данная вкладка позволяет регулировать уровень громкости запущенных приложений и системных звуков независимо друг от друга.

Для системных звуков доступен только ползунок регулировки громкости. Для приложений дополнительно добавляются настройки амплитуды сигнала. При нажатии на иконку динамика ( ) звук выбранного канала будет заглушен. Нажатие на иконку щита ( ) позволяет регулировать звуковые каналы устройства по отдельности.

В нижней части окна есть выпадающий список, сортирующий выводимые на экран приложения. Список состоит из трёх пунктов:

  • Applications — показывает потоки приложений в системе;
  • Virtual Streams — показывает потоки виртуальных приложений;
  • All Streams — показывает все звуковые потоки в системе.

Вкладка «Запись»

На этой вкладке можно настроить уровни чувствительности микрофона для каждого приложения в отдельности. Интерфейс по внешнему виду схож с интерфейсом во вкладке «Проигрывание». Каждое приложение с запущенной записью имеет свой ползунок для настройки чувствительности записи и показатель амплитуды сигнала.

Нажатие на иконку динамика ( ) останавливает запись звука в приложении. При нажатии на иконку щита ( ) появляется возможность редактирования записи в разные каналы независимо друг от друга.

Выпадающий список «Показывать» предлагает те же параметры, что и на вкладке «Проигрывание».

Вкладка «Устройства вывода»

Вкладка «Устройства вывода» отвечает за настройку подключенных устройств для вывода звука. Для каждого подключенного устройства основным параметром для настройки является параметр Port. Port — позволяет выбрать, с какого порта будет работать подключенное устройство. Например, Line Out отвечает за использование портов на материнской плате, а Handphones — портов на передней панели компьютера.

Звуковое устройство имеет ползунок для регулировки громкости, показатель амплитуды сигнала, иконку динамика ( ), чтобы заглушить звук, иконку щита ( ) для регулировки каналов устройства по отдельности. Также доступна кнопка «Set As Fallback» ( ), которая указывает на устройство, выбранное системой как устройство по умолчанию.

Параметр Latency offset отвечает за задержку воспроизведения звука. Он особенно полезен для тонкой настройки синхронизации между устройствами воспроизведения и устройствами ввода. Например, с помощью данной настройки можно избавиться от эффектов эха при разговорах по видеосвязи.

Выпадающий список «Показывать» имеет следующие варианты:

  • Hardware Output Devices — показывает только физические устройства вывода;
  • Virtual Output Devices — показывает только виртуальные устройства вывода;
  • All Output Devices — показывает все устройства вывода.

Вкладка «Устройства ввода»

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

Выпадающий список «Показывать» имеет следующие параметры для сортировки звуковых устройств ввода:

  • Hardware Input Devices — показывает только физические устройства ввода звука;
  • Virtual Input Devices — показывает только виртуальные устройства ввода звука;
  • Monitors — показывает только мониторы, подключённые через HDMI или DVI, т.к. они также являются звуковыми устройствами;
  • All Except Monitors — показывает все устройства ввода звука, кроме мониторов;
  • All Input Devices — показывает все устройства ввода звука.

Вкладка «Конфигурация»

Вкладка «Конфигурация» содержит в себе только один параметр — Профиль. Выбор этого параметра работает аналогично такому же параметру в графическом интерфейсе PulseAudio:

  • Аналоговый стерео дуплекс — работает с устройствами ввода и вывода звука одновременно;
  • Аналоговый стерео выход — работает только с устройствами вывода звука;
  • Аналоговый стерео вход — работает только с устройствами ввода звука;
  • Цифровой стерео выход — позволяет получать более высокое качество звука, но не все устройства способны поддерживать этот режим;
  • Цифровой стерео выход + Аналоговый стерео вход — позволяет использовать аналоговые устройства ввода звука одновременно с цифровыми устройствами вывода звука;
  • Выключено — отключает звуковое устройство.

Примечание.

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

Настройка звука с помощью PulseAudio через терминал

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

pactl list

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

Для получения информации по устройствам ввода звука, используйте команду:

pactl list sources

Для получения информации по устройствам вывода звука, используйте команду:

pactl list sinks

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

Смена профиля работы звуковых устройств

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

pactl list cards

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

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

pactl set-card-profile

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

Громкость в PulseAudio регулируется командой вида:

pactl set-sink-volume

Стоит отметить, что уровень громкости вводится от 0 до 65535 (от 0% до 100%). Если попытаться выставить громкость больше, чем на 65535, то звук будет выводится с усилением (и будет указываться больше, чем 100%). Слишком большое усиление может искажать звук.

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

Источник звука можно заглушить командой вида:

pactl suspend-sink true

Вернуть звук из источника можно, поменяв значение последнего параметра с true на false:

pactl suspend-sink false

Также последний параметр можно задавать целыми числами, где 1 — это true, а 0false.

Похожими действиями можно и приостановить запись из устройства ввода:

pactl suspend-source true pactl suspend-source false

Громкость звука в приложениях

Чтобы изменять громкость звука для конкретного запущенного приложения, нужно сначала узнать для этого приложения номер входа аудиоприёмника (для приложений с проигрыванием звуков) или выход источника (для приложений с записью звука).

Чтобы узнать номера аудиоприёмников, в терминале необходимо выполнить команду:

pactl list sink-inputs

Для определения номера выхода источника команда будет выглядеть следующим образом:

pactl list source-outputs

У каждого входа аудиоприёмника и выхода источника есть свои свойства. Для определения номера конкретного приложения, следует обратить внимание на свойство «application.name», в котором указано название приложения:

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

pactl set-sink-input-volume pactl set-source-output-volume

Перемещение звукового потока

При необходимости перенести звук программы на другой источник звука (например, перенести звук с USB-колонок на наушники) можно воспользоваться следующей командой:

pactl move-sink-input

Обратите внимание, что pactl не позволяет переносить звуки со всех приложений одновременно.

Дата последнего изменения: 16.06.2023

Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *