オーディオをチェーンルーティングする必要がある一連のプログラムを実行しています。
プログラム1は、プログラム2に無音でルーティングする必要があるオーディオを生成し、プログラム2は、プログラム3に無音でルーティングする必要がある新しいオーディオソースを作成します。最後に、プログラム3がスピーカーに送られるオーディオを作成します。
これを達成するための最良の方法は何かを誰かが理解するのを手伝ってくれる人はいますか? 「Sudomodprobesnd-aloop」を使用して、プログラム1からプログラム2にオーディオをサイレントにルーティングすることができました。これにより、ループバックデバイスが提供されます。
しかし今、私はそのオーディオをプログラム3に静かにルーティングする方法に固執しています。ああ、これはパイプでは達成できません。
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でそれをやろうとする前に、ジャックを使ってやろうと思いました。