PulseAudio を介して、問題なくサウンド カードの追加チャネルにアクセスするにはどうすればよいでしょうか?

PulseAudio を介して、問題なくサウンド カードの追加チャネルにアクセスするにはどうすればよいでしょうか?

Pulseaudio FAQ についてチャネル マップを使用して ALSA シンク モジュールを明示的にロードする方法を示します。 これは機能しますが、デバイスの自動検出モジュールを無効にする必要もありますが、これは実行したくありません。

「サウンド」設定には、各出力デバイス用の「モード」オプションがあり、PulseAudio がそのデバイスに使用するチャンネル マップを構成するようです。「アナログ ステレオ出力」や「アナログ サラウンド 5.1 出力」などのオプションがあります。ほとんどの場合、非常にうまく機能するデフォルト構成を壊さないことが目的であれば、これが最適な方法のようです。

問題は、私のスピーカーは実際にはステレオですが、まだ6つの出力を何とか使いたいということです。それらを追加のシンクとして公開できると思います。または、これらの追加チャンネルを「aux0、aux1、...」として公開できれば、モジュール再マップシンク追加のシンクとして表示されるようにします。

また、8 つのアナログ入力と 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

しかし、これは補助チャンネルを使用するため、さらに混乱を招きます。 を使用すると、remix=noそれが不要になります。

あなたにとってのクルージュの定義が何なのか私にはわかりませんが、これらの例と PA Wiki または少しのグーグル検索を使えば、残りの部分を理解することができるはずです。追加チャネルについては、Wiki に次のように記載されています。

チャンネル マップ。カンマで区切られたチャンネル名のリスト。現在定義されているチャンネル名は次のとおりです: left、right、mono、center、front-left、front-right、front-center、rear-center、rear-left、rear-right、lfe、subwoofer、front-left-of-center、front-right-of-center、side-left、side-right、aux0、aux1 ~ 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ただし、各コマンドには が含まれていません。pulseaudio がすでに実行さpacmdれているため、 で行う場合と比べて、最初にいくつかのモジュールをアンロードするなど、若干異なる操作を行う必要がある場合があることに注意してください。default.pa私はこれに頭を悩ませました。 (:v)

関連情報