web-dev-qa-db-ja.com

仮想オーディオケーブルを使用したオーディオのルーティング

オーディオをチェーンルーティングする必要がある一連のプログラムを実行しています。

プログラム1は、プログラム2に無音でルーティングする必要があるオーディオを生成し、プログラム2は、プログラム3に無音でルーティングする必要がある新しいオーディオソースを作成します。最後に、プログラム3がスピーカーに送られるオーディオを作成します。

これを達成するための最良の方法は何かを誰かが理解するのを手伝ってくれる人はいますか? 「Sudomodprobesnd-aloop」を使用して、プログラム1からプログラム2にオーディオをサイレントにルーティングすることができました。これにより、ループバックデバイスが提供されます。

しかし今、私はそのオーディオをプログラム3に静かにルーティングする方法に固執しています。ああ、これはパイプでは達成できません。

4
Projectile Fish

Pulseaudio、または純粋なALSA? Pulseaudioが最も簡単です:ダミーシンクを作成します

pacmd load-module module-null-sink sink_name=tmpsink

プログラム1を出力させます。プログラム2はtmpsink.monitorソースから読み取ります。等々。これはすべてスクリプト化できます。 pacmd helpは、役立つ可能性のあるその他のコマンドを示しています。コマンドラインでプログラムのソースとシンクを指定できない場合は、list-sink-inputslist-source-outputs、またはmove-sink-inputmove-sink-output

ALSAでそれを行うのはおそらく...楽しいです。 ALSAでそれをやろうとする前に、ジャックを使ってやろうと思いました。

4
dirkt