ALSAまたはPulseAudioを使用してステレオソースを8チャンネルPCMに再マップし、ボリュームを減らすにはどうすればよいですか?

ALSAまたはPulseAudioを使用してステレオソースを8チャンネルPCMに再マップし、ボリュームを減らすにはどうすればよいですか?

私の設定の詳細は次のとおりです。

Intel HDカード(card0)が内蔵されており、既存のすべてのアプリケーションがデフォルトで使用されています。通常、ステレオ出力はステレオファイルとストリーミングアプリケーションからカードに出力されます。

これで、USBサウンドカード(カード1:XMOSのxCORE-200)を追加し、8つの出力(4つのTwitter、4つのスピーカー)の非標準配列を持っています。対称型なので左側にツイッター2個/スピーカー2個、右側にツイッター2個/スピーカー2個があります。チャネル配列は次のとおりです。

[0, 1, FrontRightTweeter, RearRightTweeter, LeftRearTweeter, LeftFrontTweeter, 6, 7, 8, 9, RightFrontSpeaker, RightRearSpeaker, LeftRearSpeaker, LeftFrontSpeaker, 14, 1

クロスオーバーはすでに処理されているので、左側がまったく新しい左側に行き、右側がまったく新しい右側に入るようにすべてのステレオソースを再マッピングしたいと思います。

また、手動テストでは常に音量を大幅に(約90%)下げ、新しいスピーカーの設定に適したレベルに達する必要がありました。だから私はこれを即座にすることができるはずです。

.asoundrcとPulseAudioモジュールを介してALSAを使用するいくつかの例を見てみましたが、すべての部分をうまく接続できないようです。特に少ないチャンネルソースからより多くのチャンネルソースへ(通常その逆)。私はあなたが望むチャンネルの再マッピングと音量の減少を達成するためのサンプル.asoundrcまたはPulseAudioモジュールの設定(どちらの方が合理的なもの)を探しています。ありがとうございます!

ベストアンサー1

これはプラグインに統合されたプラグインttableオプションを介して可能です。routeplug

pcm.MyLittleDevice {
    type plug
    slave {
        pcm "hw:1"
        channels 16
    }
    ttable [
        [ 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 ]
        [ 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 ]
    ]
}

ボリュームを減らすには、1sを小さい値に置き換えます。

おすすめ記事