четверг, 11 июня 2015 г.

Гайд по настройке PulseAudio. Часть первая.

PulseAudio, ранее известный как Polypaudio, - звуковой сервер для UNIX-подобных систем (Linux, BSD и прочих) и Windows. Это замена звуковому серверу ESD с намного меньшим временем задержки, лучшим качеством микширования и дискретизации и лучшей общей архитектурой.
Вот некоторые возможности PulseAudio:

  • Высококачественное программное микширование нескольких аудиопотоков с поддержкой более одного входа и выхода. Может использоваться для объединения нескольких звуковых карт в одну (с изменением частоты дискретизации).
  • Множество поддерживаемых клиентских библиотек. Приложения, использующие ESD, ALSA, oss, libao и GStreamer, поддерживаются без необходимости внесения каких-либо изменений в них. Модули для работы PulseAudio доступны для xmms и mplayer.
  • Внесение достаточно малых временных задержек и очень точное измерение времени задержки для воспроизведения и записи. Возможность полной синхронизации нескольких потоков воспроизведения.
  • Сетевая прозрачность: приложения могут воспроизводить или записывать звук на компьютере, отличном от того, на котором они выполняются.
  • Расширяемая архитектура с модулями для jackd, multicast-rtp, lirc и avahi, в числе прочих.
  • Раздельная установка уровней громкости для разных программ.
  • Расширяемая модульная система с поддержкой динамически загружаемых библиотек
  • Совместимость со многими популярными аудиоприложениями.
  • Использование технологии zero-copy, сберегающей машинное время.
  • Интерфейс командной строки с возможностью использования сценариев.
  • Демон, перенастраиваемый с помощью командной строки.
  • Встроенное преобразование аудиоформатов.
  • Смешиваемые потоки могут иметь разные частотные характеристики.
  • Эффективный микшер, даже для звуковых плат без микшера, предотвращающий «монополизацию»/«кражу» звукового устройства отдельной программой.
  PulseAudio - это не замена звуковой подсистеме ALSA. Он работает поверх ALSA, оперируя потоками. PulseAudio полностью совместим с приложениями ALSA и OSS. Для приложений OSS PulseAudio предоставляет утилиту padsp, создающую файлы типа /dev/dsp, через которые программа работает со звуковым сервером. Здесь я опишу опциональную настройку звукового сервера, способы улучшения качества звука и решение некоторых проблем.


Настройка демона


Конфигурационный файл демона PulseAudio, находится в /etc/pulse/daemon.conf. Вот его содержимое:


# This file is part of PulseAudio.
#
# PulseAudio is free software; you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PulseAudio is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with PulseAudio; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA.

## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
## more information. Default values are commented out.  Use either ; or # for
## commenting.

; daemonize = no
; fail = yes
; allow-module-loading = yes
; allow-exit = yes
; use-pid-file = yes
; system-instance = no
; local-server-type = user
; enable-shm = yes
; shm-size-bytes = 0 # setting this 0 will use the system-default, usually 64 MiB
; lock-memory = no
; cpu-limit = no

; high-priority = yes
; nice-level = -11

; realtime-scheduling = yes
; realtime-priority = 5

; exit-idle-time = 20
; scache-idle-time = 20

; dl-search-path = (depends on architecture)

; load-default-script-file = yes
; default-script-file = /etc/pulse/default.pa

; log-target = auto
; log-level = notice
; log-meta = no
; log-time = no
; log-backtrace = 0

# resample-method defaults to  speex-float-1 on most architectures,
# speex-fixed-1 on ARM
; resample-method = speex-float-1
; enable-remixing = yes
; enable-lfe-remixing = no

; flat-volumes = yes

; rlimit-fsize = -1
; rlimit-data = -1
; rlimit-stack = -1
; rlimit-core = -1
; rlimit-as = -1
; rlimit-rss = -1
; rlimit-nproc = -1
; rlimit-nofile = 256
; rlimit-memlock = -1
; rlimit-locks = -1
; rlimit-sigpending = -1
; rlimit-msgqueue = -1
; rlimit-nice = 31
; rlimit-rtprio = 9
; rlimit-rttime = 1000000

; default-sample-format = s16le
; default-sample-rate = 44100
; alternate-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right

; default-fragments = 4
; default-fragment-size-msec = 25

; enable-deferred-volume = yes
; deferred-volume-safety-margin-usec = 8000
; deferred-volume-extra-delay-usec = 0
Строки, начинающиеся с # и ; являются закомментированными, и игнорируются. Поэтому для активации параметра, необходимо удалить перед ним точку с запятой. Полностью описывать каждую директиву не имеет смысла, так как это достаточно подробно описано в man-страницах. Остановимся на наиболее интересных:

high-priority - запуск демона с высоким приоритетом. Имеет смысл при разрывах в звуке или "шорохе".
nice-level - уровень приоритета. По умолчанию это -11 или -10 (зависит от дистрибутива). Чем меньше это число, тем более высокий приоритет получит демон.
realtime-scheduling - планировщик реального времени. Позволяет запустить демон с приоритетом реального времени.
realtime-priority - уровень приоритета реального времени.
resample-method - уровень частоты дискретизации. Данный параметр влияет на качество звука. По умолчанию стоит speex-float-1 - низкое качество при незначительной нагрузке на процессор.
flat-volumes - данная опция позволяет сохранять уровень громкости при старте приложений.
default-sample-format - ещё одна настройка, влияющая на качество воспроизведения. По умолчанию также установлено минимальное значение, для снижения использования процессора.
default-sample-rate - частота дискретизации по умолчанию.
default-sample-channels - количество звуковых каналов (2 = стерео).
default-channel-map - указывает название и расположение звуковых каналов.
default-fragments - размер буфера звуковой карты. По умолчанию настройки оптимальны для большинства звуковых карт, однако для некоторых желательно вычислить точное значение параметра. Об этом будет рассказано далее в статье.
default-fragment-size-msec - время (в миллисекундах) задержки при обработке звуковых фрагментов из буфера.


Настройка качества звука.


Если ваш процессор обладает достаточной мощностью, можно сильно улучшить качество звука через PulseAudio. Для этого откройте конфиг демона (/etc/pulse/daemon.conf), удалите точку с запятой перед следующими строками и укажите:


resample-method = src-sinc-best-quality
default-sample-format = float32le
Внимание: начиная с выпуска Pulseaudio 7, параметр src-sinc заменён на soxr-mq (среднее качество), soxr-hq (высокое качество) и soxr-vhq (очень высокое качество). Если у вас эти методы не работают - установите библиотеку libsoxr0.

Перезапустите демон:

pulseaudio -k

Настраиваем буфер звуковой карты.

Помните, я говорил, что можно указать размер буфера именно для своей звуковой карты? Сейчас мы его вычислим. Для начала нужно отключить PulseAudio:

echo autospawn = no >> ~/.config/pulse/client.conf 
pulseaudio -k
  
Далее получаем значения:

LANG=C timeout --foreground -k 10 -s kill 10 pulseaudio -vvvv 2>&1 | grep device.buffering -B 10 
sed -i '$d' ~/.config/pulse/client.conf 

Вывод будет примерно таким:
I: [pulseaudio] source.c:     alsa.long_card_name = "HDA Intel at 0xfa200000 irq 46"
I: [pulseaudio] source.c:     alsa.driver_name = "snd_hda_intel"
I: [pulseaudio] source.c:     device.bus_path = "pci-0000:00:1b.0"
I: [pulseaudio] source.c:     sysfs.path = "/devices/pci0000:00/0000:00:1b.0/sound/card0"
I: [pulseaudio] source.c:     device.bus = "pci"
I: [pulseaudio] source.c:     device.vendor.id = "8086"
I: [pulseaudio] source.c:     device.vendor.name = "Intel Corporation"
I: [pulseaudio] source.c:     device.product.name = "82801I (ICH9 Family) HD Audio Controller"
I: [pulseaudio] source.c:     device.form_factor = "internal"
I: [pulseaudio] source.c:     device.string = "front:0"
I: [pulseaudio] source.c:     device.buffering.buffer_size = "768000"
I: [pulseaudio] source.c:     device.buffering.fragment_size = "384000"
Нас интересуют значения device.buffering.buffer_size и device.buffering.fragment_size.По умолчанию частота дискретизации
равна 41000 и 16 бит. Будем исходить из этого. 41000*16=705600 бит в секунду.
Для стерео это будет 1411200 бит в секунду. Вычисляем значение буфера: 768000/1411200=0.544217687075=544.
Значение фрагментов: 384000/1411200=0.272108843537=272. Далее 544/272=2. Осталось записать полученные значения в конфиг.
default-fragments = 2
default-fragment-size-msec = 272
Далее запускаем демон:
pulseaudio -k
pulseaudio --start

Настройка для приложений использующих ALSA.

Открываем файл /etc/asound.conf (если он отсутствует - создайте) и введём следующее значение:
 pcm.pulse {
     type pulse
 }
 
 ctl.pulse {
     type pulse
 }
Это позволит в настройках таких программ, указывать в качестве устройства вывода PulseAudio.
Для установки PulseAudio по умолчанию для ALSA-приложений:
pcm.!default {
    type pulse
 }
 
 ctl.!default {
     type pulse
 }

Поддержка объёмного звука.

 
Для включения объёмного звука 5.1 или 7.1, в конфиге /etc/pulse/daemon.conf, найдите и раскомментируйте строку:
default-sample-channels
и укажите:
# Для 5.1
default-sample-channels=6
# Для 7.1
default-sample-channels=8
Перезапустите PulseAudio.

Инструменты для настройки PulseAudio.

Для начала, небольшой глоссарий:
Известно, что у звуковой карты два типа гнёзд: входы (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 (First In First Out, первым вошёл, первым вышел). Также можно создавать сетевые Sink'и, ведущие multicast-вещание или передающие звуковой поток определённому хосту. Всё это реализуется модулями PulseAudio.
Итак, звук проигрывается через «Sink», а записывается через «Source».
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. Загруженный модуль PulseAudio. Например, загрузка module-alsa-sink с заданием пераметров, указывающих на устройство Alsa — создаст Sink, связанный с этим устройством. Существуют и другие модули, создающие объекты PulseAudio, позволяющие управлять им, использовать FIFO для обмена звуковым потоком и многое другое;
Client. Приложение, подключившееся к PulseAudio. Может создавать потоки Sink-Input и Source-Output и управлять демоном PulseAudio.
Sample. Звуковой сэмпл, загруженный в PulseAudio для быстрого воспроизведения. Может использоваться для проигрывания стандартных звуков. Например, x11 bell. Могут проигрываться по команде от модуля, клиента или из консоли.
pactl - основная консольная утилита для управления PulseAudio.
pacmd - Кроме pactl существует другая утилита для управления PulseAudio: pacmd.
Если к PulseAudio подключен модуль module-cli-protocol — создаётся 
UNIX-сокет на котором висит PulseAudio-shell. Это во многом похоже на 
telnet. Шелл принимает текстовые команды и исполняет их. pacmd help покажет 
список доступных команд. Проблема в том, что pactl умеет не всё, а pacmd не так удобен в 
использовании. В дальнейшем будем придерживаться pactl, однако если его 
функционала не хватит — используем pacmd.
Pavucontrol - графическая утилита для управления основными звуковыми параметрами PulseAudio.
Для начала давайте посмотрим что у нас есть: какие объекты определены в 
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
 
Продолжение следует... 
 
Источники:
http://help.ubuntu.ru/wiki/pulseaudio
https://wiki.debian.org/ru/PulseAudio
http://linux.die.net/man/5/pulse-daemon.conf
 
 

7 комментариев:

  1. После настройки качества звука перестал запускаться PulseAudio !!!
    Для запуска PulseAudio после перезагрузки пришлось изменить команду запуска родную на pulseaudio --start

    ОтветитьУдалить
  2. Опиши как полностью удалить pulseaudio

    ОтветитьУдалить
    Ответы
    1. PulseAudio не всем подходит (жрет cpu, заикание звука). Он безумно удобен, но вот не всегда cpu хватае.

      Удалить
    2. Удалил в ~/.config/pulse файлы "cookie" и "d57*". Перезапустил PulseAudio. Удаленные файлы пересоздались. Заметно уменьшились заикания звука - приблизились к нормальным. Переcтал дёргаться значок динамика справа вверху экрана и , если открыть его, в нём перестала появлятся галочка в боксе "Mute audio output" в момент прерывания звука. Складывается впечатление, что что-то отключает "Выход" и из-за этого и происходит заикание. Оно уменьшилось, но на слух всё равно ощущается, хоть теперь и слабо. Но что временами отключает звук (это и ощущается как заикания), я пока не понял.

      Очень полезная статья. По ней посчитал "default-fragments" и "default-fragment-size-msec". Они оказались не теми, что приняты по умолчанию. Поправил.

      Удалить
  3. Интересно, но удалил в /~/.config/pulse cookie и файлы d57* и дерганье значка динамика справа вверху прекратилось. Такое впечатление, что при установке Linux в /~/.config/pulse создаются какие-то кривые. Удалённые файлы сами заново создались. Но звук на слух всё равно иногда пропадает на краткое время. Но , вроде, длительность пропадания уменьшилась. И в меню динамик→audio mixer дерганье меню стало реже и меньше по размеру. Но минут через 10-15 дерганье прекратилось и там. И галочка в «Mute audio output» перестала устанавливаться при пропадании звука и сбрасываться при появлении звука снова.
    Складывается впечатление, что что-то отключает "Выход" и из-за этого и происходит заикание. Оно уменьшилось, но на слух всё равно ощущается, хоть теперь и слабо. Но что временами отключает звук (это и ощущается как заикания), я пока не понял.

    Очень полезная статья. По ней посчитал "default-fragments" и "default-fragment-size-msec". Они оказались не теми, что приняты по умолчанию. Поправил.

    ОтветитьУдалить
  4. Кажется, проблема решилась. Оказалось, что для звуковой карты подставлялся profile output:analog-stereo+input:analog-stereo, а нужно output:analog-stereo. Хотя, если смотреть через pavecontrol, то в нём стоит output:analog-stereo. У вас может быть надо выбрать другое имя профайла, если, например, стоит 3-х или более канальная аудио-система.
    Но, если запустить команду
    pactl list >list.txt
    и посмотреть в ней конфигурацию звуковой карты, то в ней указывается:
    Звуковая плата №0

    Активный профиль: output:analog-stereo+input:analog-stereo
    Поэтому, копируем из /etc/pulse/default.pa в /~/.config/pulse/
    В нём пишем последней строкой:
    set-card-profile 0 output:analog-stereo
    где 0 — индекс звуковой карты у меня (см. list.txt выше, т. к. у Вас может быть другой).
    Для проверки можно посмотреть в /~/.config/pulse/ файлы *default-sink и *default-source, где будут указаны, соответственно, pci-адреса, оканчивающиеся на analog-stereo и analog-stereo.monitor, а ранше в обоих файлах был указан pci-адрес, оканчивающийся на analog-stereo. У Вас могутт быть другие имена. Это зависит от имени профайла, который Вам надо выбрать самому, что зависит от звуковой карта (см. в list.txt).

    ОтветитьУдалить