Pulseaudio volume control linux mint

Настройка качества звука в Linux Mint 19.3 через Pulseaudio.

В Linux Mint по умолчанию для Pulseaudio установлен режим производительности, который является режимом низкого качества звука с минимальными накладными расходами для процессора. В обычном случае это работает хорошо и не создаёт никаких проблем, но если целью является получить наилучший звук, который способно выдать имеющееся оборудование, то для такого стандартные настройки не годятся.

Стандартные значения.

Настройка Pulseaudio производится через простой конфигурационный файл:

Вывести список параметров и их значения в терминал:

Значения по умолчанию в Linux Mint 19.3:

Редактирование значений.

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

Текстовые комментарии закомментированы знаком #

Перечисленные в файле параметры закомментированы знаком ;

Чтобы изменить значение параметра, его нужно раскомментировать, убрав ;

Чтобы изменённые параметры вступили в силу, нужно применить конфигурацию Pulseaudio:

Альтернативный метод через уничтожение процесса и его запуск:

pulseaudio —kill && pulseaudio —start

Может быть достаточно просто pulseaudio —kill и дальше демон (сервис) запустится автоматически.

Улучшение звука.

Основными параметрами, влияющими на качество звучания, являются resample-method и default-sample-format.

Вывести поддерживаемые оборудованием значения параметров:
aplay —device hw /dev/urandom —dump-hw-params

Параметр resample-method.

У resample-method значение по умолчанию auto, что, скорее всего, означает resample-method = speex-float-1, то есть высокая производительность, но низкое качество. Поэтому оптимальнее выбрать конкретный метод. Так же это может помочь решить проблему с «хрипами».

resample-method = speex-float-n — это компромиссный высокопроизводительный метод, где n означает целое число от 1 до 9. Чем выше значение, тем лучше качество звучание, но выше накладные расходы для производительности. В качестве компромиссного варианта рекомендуется значение в диапазоне от 5 до 7. Для максимального качества значение 9.

resample-method = src-sinc-n-quality — [устаревший параметр] — метод предназначенный для звука высокого качества, где n означает best, medium и fastest варианты. Метод создаёт значительную нагрузку на процессор.

resample-method = soxr-n — [актуальный параметр] — метод предназначенный для звука высокого качества, является заменой rc-sinc. Здесь n означает mq, hq и vhq. Метод создаёт значительную нагрузку на процессор.

resample-method = copy — самое высокое качество, но при высокой нагрузке на процессор.

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

Параметр default-sample-format .

Значение по умолчанию s16le, что является качеством ниже среднего, но с низкой нагрузкой на процессор.

Для высокого качества, нужно указать следующее значение:

После завершения редактирования конфигурационного файла с сохранением изменений необходимо применить новые значения для параметров:

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

2 отзыва к статье “Настройка качества звука в Linux Mint 19.3 через Pulseaudio.”

Непонятно почему, но при speex-float-8 у меня pulseaudio жрет 6% цп, а при copy и soxr-vhq только 1

Для speex-float рекомендованы значения до 7 включительно. Если нужно самое высокое качество, то оптимальнее использовать copy.

Источник

How to Install and Use PulseAudio-Equalizer on Linux Mint 20

The PulseAudio is an open-source volume control and audio effects tool. It allows us to control and tune the audio settings. The PulseAudio Equalizer has a multi-band interface. Therefore, you can easily adjust the slider when the audio is playing.

As PulseAudio is a popular open-source tool, it is included in Linux Mint 20 standard repositories installed from there. Moreover, it can also be installed on Linux Mint 20 from the external PPA repository.

This post explains the installation of PulseAudio-Equalizer on Linux Mint.

Installing PulseAudio on Linux Mint 20 from the standard repositories

Open the terminal window, and first, update the apt listing with the command:

Type the below-given command to install PulseAudio on Linux Mint 20 from the standard repositories:

Press ‘y’ to continue installing PulseAudio.

Once the PulseAudio is installed, verify the installation with the command:

Читайте также:  Windows zip programs free download

The Pulseaudio 13.99.1 is successfully installed on my Linux Mint 20.

The PulseAudio offers many extra modules included in Linux Mint 20 standard repositories and can be installed easily with apt command.

Installing PulseAudio-Equalizer on Linux Mint 20 from the PPA repository

The PPA repositories are created and maintained by the developers. Fire up the terminal and perform the following steps to install PulseAudio from the PPA repository:

Step 1: Add PulseAudio PPA repository

First, add the PulseAudio PPA repository using the command:

The PulseAudio PPA repository will be added successfully.

Step 2: Update apt-cache

Once the PPA repository is added successfully, update the apt cache with the command:

Step 3: Install PulseAudio

Next, install the PulseAudio with the command:

Press ‘y’ to continue installing PulseAudio.

Getting started and configuring the PulseAudio-Equalizer

Once you have installed PulseAudio using any recommended method, open the PulseAudio tool with the command:

While opening the PulseAudio tool, you may encounter the error stating that some modules are missing. In this case, open the PulseAudio’s configuration file with the command:

Add the below-given lines at the bottom of the/etc/pulse/default.pa file.

Save the file and exit the nano editor by pressing ctrl+x.

Next, kill the PulseAudio service and restart it:

Now, open the PulseAudio with the command:

The PulseAudio-Equalizer is ready for use.

How to remove PulseAudio-Equalizer

At any point, if you wish to remove PulseAudio from Linux Mint 20, then type the below-given command to do so:

Press ‘y’ to continue removing PulseAudio Equalizer.

The PulseAudio Equalizer will be removed successfully.

Conclusion

PulseAudio Equalizer is a free and open-source tool for volume control. It is part of Linux Mint 20 standard repositories and can be installed with apt command. Moreover, it is also available from an external PPA repository. This article shows the PulseAudio Equalizer installation on Linux Mint 20 system from the standard and PPA repositories.

About the author

Kamran Sattar Awaisi

I am a software engineer and a research scholar. I like to write article and make tutorial on various IT topics including Python, Cloud Computing, Fog Computing and Deep Learning. I love to use Linux based operating systems.

Источник

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


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

В статье я с самого начала расскажу что это такое и как оно работает, а так же:

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

И представлю своё решение, призванное упростить управление PulseAudio 😉

Кратко о PulseAudio

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

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

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

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

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

Card, Sink & Source

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

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

В 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

/.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: по умолчанию они описывают Ваше железо.
Покажу свой пример:

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 .

Читайте также:  Windows установить шрифт без прав администратора

На данный момент нельзя изменить приоритеты, однако можно выбрать тот или иной профиль.
Подсматриваем в выводе 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

patricks

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

Особенности:

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

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

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

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

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

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

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

Источник

Оцените статью