
オーディオをチェーンルーティングする必要がある一連のプログラムを実行しています。
プログラム 1 は、プログラム 2 に静かにルーティングする必要があるオーディオを生成し、次にプログラム 2 は、プログラム 3 に静かにルーティングする必要がある新しいオーディオ ソースを作成します。最後に、プログラム 3 は、スピーカーに送るオーディオを作成します。
これを実現する最善の方法は何か、誰か教えてくれませんか? 「sudo modprobe snd-aloop」を使用して、プログラム 1 からプログラム 2 にオーディオをサイレントにルーティングし、ループバック デバイスを取得できました。
しかし、今、そのオーディオをプログラム 3 に静かにルーティングする方法に行き詰まっています。ああ、これはパイプでは実現できません。
答え1
Pulseaudio、それとも純粋なALSA? Pulseaudioが一番簡単: ダミーシンクを作成する
pacmd load-module module-null-sink sink_name=tmpsink
プログラム 1 がそれに出力できるようにします。プログラム 2 はtmpsink.monitor
ソースから読み取ります。以下同様です。これらはすべてスクリプト化できます。コマンドラインでプログラムのソースとシンクを指定できない場合は、、、またはなどpacmd help
の役立つ可能性のあるその他のコマンドが表示されます。list-sink-inputs
list-source-outputs
move-sink-input
move-sink-output
ALSA でそれを実行するのはおそらく...楽しいでしょう。ALSA でそれを実行する前に、Jack を使用して実行してみます。