Как получить доступ к дополнительным каналам на моей звуковой карте через PulseAudio без лишних хлопот?

Как получить доступ к дополнительным каналам на моей звуковой карте через PulseAudio без лишних хлопот?

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

В настройках "звука" есть опция "режим" для каждого выходного устройства, которая, по-видимому, настраивает карту каналов, используемую PulseAudio для этого устройства. Она имеет такие опции, как "Аналоговый стереовыход" и "Аналоговый объемный 5.1-выход". Это похоже на выход, если цель состоит в том, чтобы не нарушать конфигурацию по умолчанию, которая в большинстве случаев работает очень хорошо.

Проблема в том, что мои динамики на самом деле просто стерео, но у меня есть еще 6 выходов, которые я хотел бы как-то использовать. Я полагаю, что их можно выставить как дополнительные приемники. Или, если я смогу выставить эти дополнительные каналы как "aux0, aux1, ...", я могу использоватьмодуль-переназначение-приемникчтобы они выглядели как дополнительные раковины.

У меня также есть восемь аналоговых входов и 2 цифровых входа, и ни одна настройка «режима» не позволяет раскрыть их все.

Так вот вопрос: где настраиваются эти "режимы"? Или есть ли другие хорошие решения этой проблемы?

решение1

Мне помогли приведенные здесь примеры:

https://wiki.archlinux.org/index.php/PulseAudio/Examples#Одновременный_HDMI_и_аналоговый_выход

В итоге у меня получилось следующее ~/.config/pulse/default.pa:

# http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3
# https://wiki.archlinux.org/index.php/PulseAudio/Examples#Simultaneous_HDMI_and_Analog_Output
# remix=no is required, otherwise it will turn 2-channel sound into 4-channel sound and send it to all master channels
load-module module-remap-sink sink_name=headphones remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=front-left,front-right channel_map=front-left,front-right sink_properties=device.description=Headphones
load-module module-remap-sink sink_name=speakers remix=no master=alsa_output.pci-0000_00_1b.0.analog-surround-40 channels=2 master_channel_map=rear-left,rear-right   channel_map=front-left,front-right sink_properties=device.description=Speakers

# sending output to this goes to both
# replacing "0" with "alsa_output.pci-0000_00_1b.0.analog-surround-40" might work, but this also does
update-sink-proplist 0 device.description="Both"

# this renames the virtual streams, which show up in KMix.  It's handy, since KMix can't show more than one sink for master volume in the popup
update-sink-input-proplist 0 media.name="Headphones"
update-sink-input-proplist 1 media.name="Speakers"

master=...При необходимости замените имена устройств ( ).

ПРИМЕЧАНИЕ:Сначала нужно скопировать /etc/pulse/default.paи ~/.config/pulse/default.paотредактировать его, потому что PulseAudio вообще не читает из системного файла, если файл пользователя существует. С этого момента вы должны объединить все изменения из системного файла в свой личный. В качестве альтернативы вы можете просто отредактировать системный файл, но тогда он может быть перезаписан обновлениями, что сведет на нет всю вашу работу! (Или, может быть, dpkg предложит вам вручную объединить их, но что, если вы этого не заметили? (Вставьте рекомендацию etckeeperздесь.))

Вот еще пример:

http://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Modules/#index12h3

Но он использует каналы aux, что еще более запутанно. Использование remix=noделает это ненужным.

Теперь я понятия не имею, что вы определяете как кладж, но вы должны быть в состоянии использовать эти примеры плюс PA Wiki или немного погуглить, чтобы получить остальную часть пути. Для ваших дополнительных каналов, вики перечисляет это:

Карта каналов. Список названий каналов, разделенных запятыми. Текущие определенные названия каналов: left, right, mono, center, front-left, front-right, front-center, back-center, back-left, back-right, lfe, subwoofer, front-left-of-center, front-right-of-center, side-left, side-right, aux0, aux1 to aux15, top-center, top-front-left, top-front-right, top-front-center, top-rear-left, top-rear-right, top-rear-center, (значение по умолчанию зависит от количества каналов и драйвера)

Кстати, pacmdинструмент принимает те же команды, что и default.paфайл, так что вы можете вносить изменения интерактивно, а затем вставлять рабочие команды в default.pa, только без pacmdкаждой из них. Имейте в виду, что вам, возможно, придется сделать некоторые вещи немного иначе, например, сначала выгрузить некоторые модули, по сравнению с тем, что вы делаете в default.pa, поскольку pulseaudio уже запущен. Я потратил некоторое время, ломая над этим голову. (:v)

Связанный контент