2つのアプリケーションを接続するには、2つのALSAループバックインターフェースを作成する必要があります。
/etc/modprobe.d/sound.confには次のものがあります -
alias snd-card-1 snd-aloop
options snd-aloop pcm_substreams=2,2 id=1,2 enable=1,1 index=10,11
これは、ループバックを生成して動作しますが、必要ではないサラウンドインターフェイスも多く生成します。以下の例 -
surround51:CARD=D2,DEV=0
Loopback, Loopback PCM
5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=D2,DEV=0
Loopback, Loopback PCM
7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
とにかくステレオ用のループバックデバイスを作成できますか?
ありがとう
答え1
設定ファイルがあることがわかりました。
/usr/share/alsa/pcm
サラウンドサウンドインターフェイスを作成します。ファイルを削除しましたが、インターフェースは作成されなくなりました。
答え2
パルスオーディオの代替:
Pulseaudioでアプリケーションが他のアプリケーションの出力を録音できるようにするのは非常に簡単です。
Pulseaudioには音源(Sound Source)と音源シンク(Sound Sink)という概念があります。これにはどのアプリケーションでも接続できます。 Pulseaudioには、これらの接続を記憶し、次にアプリケーションが再起動したときに接続を復元するモジュールがあります(接続が可能な場合)。それ以外の場合、Pulseaudioはデフォルト接続を選択します。
GUIを使用してこれらすべてを確認および変更することができます。pavucontrol
これにより、アプリケーションとソース/シンク間の接続だけでなく、ソース/シンク自体のボリュームコントロールも変更できます。
4つのソース/シンクの基本的なユースケースは、ハードウェアの録音と再生を示しています。しかし、これに限定されず、他の種類のソースとシンクを生成する方法もたくさんあります。特に、各受信機は.monitor
ループバックであるソースに接続されます。実際、pavucontrol
これはサウンドメータリング表示を達成するために使用されます。
したがって、2つのループ、さらには100のループ、または1つのアプリケーションを受け取る複数のアプリケーションを持つT接続を設定することは非常に簡単です。
GUIだけでは不十分な場合は、スクリプトを許可するコマンドラインアプリケーションpacmd
とGUIもあります。詳細については、またはをpactl
参照してくださいpacmd help
。pactl help
(なぜ2つなのかわかりませんが…)しかし、出力は解析するのが特に簡単ではなく、少しの操作grep -A
などが必要です。
Pulseaudioには、すべてのALSAアプリケーションがALSAデバイスでPulseaudioを使用できるようにする互換性レイヤが含まれていますpulse
。あなた.asoundrc
が好きなものがあれば
pcm.!default pulse
ctl.!default pulse
これにより、すべてのALSAアプリケーションはデフォルトでPulseaudioを使用します(他のALSAデバイスを使用するように設定していない場合)。一部のALSAアプリケーションはそれを使用する必要があると思うので(これは悪い設計です)、代わりにこれらのアプリケーションを使用するように説得する必要がありhw:...
ます。default
一部のALSAアプリケーションはのみ適用可能な操作を実行しようとしますhw:...
。
結論:Pulseaudio(またはJackを使用)を使用してサウンドをルーティングすることは、ALSAを直接使用するよりもはるかに簡単です。