PipeWire/サンプル

提供: ArchWiki
PipeWire/例から転送)
ナビゲーションに移動 検索に移動

関連記事

サラウンドサウンドシステム

フロント/リアの分離

PipeWire を PulseAudio/JACK の代替として使用する場合、Pulseaudio のフロント/リアの分離のためのサンプルを再現するために PipeWire を設定することができます。これにより、スピーカーまたはヘッドフォンのために別のシンクにオーディオストリームを Pulseaudio を使用して送信することができます。

スピーカーをラインアウトポートに接続し、ヘッドフォンをリアポートに接続します。pavucontrol で使用するサウンドカードを「Analog Surround 4.0 Output」に設定します。次に、以下のコマンドを使用して、スピーカー用の新しいシンクとヘッドフォン用の新しいシンクを作成し、スピーカーをフロントチャンネルにリンクし、ヘッドフォンをリアチャンネルにリンクします。

 pactl load-module module-null-sink sink_name=speakers object.linger=1 media.class=Audio/Sink channel_map=FL,FR
 pactl load-module module-null-sink sink_name=headphones object.linger=1 media.class=Audio/Sink channel_map=RL,RR

object.linger=1 は、作成したクライアントが切断された後もシンクを保持するようにします。sink_nameは任意の名前を使用できます。

モジュールをアンロードするには、pactl load-module コマンドの出力である ID を使用して、pw-cli destroy ID を使用します。個別のモジュールをpactl unload-module でアンロードすることは現在サポートされていません[1]。ただし、pactl unload-module module-null-sink を使用して、すべての module-null-sink モジュールをアンロードすることができます。

jack_connect を使用して、新しいシンクのモニターをサウンドカードの再生ポートに接続します。チャンネルの名前は、pw-link -iolを実行して調べることができます[2]

 pw-link speakers:monitor_1 alsa_output.pci-0000_00_14.2.analog-surround-40:playback_FL
 pw-link speakers:monitor_2 alsa_output.pci-0000_00_14.2.analog-surround-40:playback_FR
 pw-link headphones:monitor_1 alsa_output.pci-0000_00_14.2.analog-surround-40:playback_RL
 pw-link headphones:monitor_2 alsa_output.pci-0000_00_14.2.analog-surround-40:playback_RR
ヒント: 上記のコマンドをスクリプトに追加し、自動起動に設定すると、プロセスを自動化できます。必ず alsa_output.pci-0000_00_14.2.analog-surround-40 をあなたのサウンドカードの名前に置き換えてください。スクリプトの実行前に遅延を追加することで、スムーズに動作するようにすることもできます。
ノート: Jack/Pipewire のシンク名は時折変更されるようです。上記の例では、alsa_output.pci-0000_00_14.2.analog-surround-40:playback_FL は、時に Built-in\ Audio\ Analog\ Surround\ 4.0:playback_FL に変更されます。素早い回避策として、autostart スクリプトに第二のセットの pw-jack コマンドを追加することができます。

個別に音量を制御するには、一つのオプションは、alsa ユーティリティ(amixer など)を使用して、Front および Rear/Surround(alsa 命名)チャンネルを制御することです。現在のデフォルトの Pulseaudio sink に応じて自動的にそれを行うスクリプトは、ここで見つけることができます。