まず、Linuxオーディオの知識が不足していることを認めます。大きくて混乱し、少し怖いようです。
私が望むのは、ウェブに浮かぶ他の例に見られるように、アマチュアラジオ番組のオーディオをgqrx
デジタル音声デコーダに送信することです。dsd
ただし、仮想サウンドデバイスを作成したら、次を/dev/dsp/
使用します。
padsp -- dsd -i /dev/dsp -o /dev/dsp -fa -ma
開いてみると、再生デバイスの下にDSDは表示されませんpavucontrol
(しかしgqrx
リストには表示されます)。さまざまな方法を試しましたが、dsd
再生デバイスのリストには表示されません。このステップは、出力を聞くために他のオーディオレシーバーをさらに使用するために必要です。
事前にありがとう...
答え1
Linuxオーディオをあまり怖くないようにするには、Linuxオーディオ履歴の簡単な概要(詳細についてはGoogleを参照):
Linuxで最初に広く使用されているサウンドシステムは、オープンサウンドシステム(OSS)、同様の機器が使用されました/dev/dsp
。 OSSは現在使用されなくなりましたが、それを使用するための古いプログラムがまだあるため、他のほとんどすべてのオーディオシステムはpadsp
Pulseaudioなどのアナログレイヤを提供します。
今日、Linuxで使用されている基本的なオーディオシステムは、アルザス。これはカーネルの一部となり、ハードウェア用のドライバを提供します。デバイスは/dev/snd/pcmC0D0p
(card0、device0、play)または(card1、device2、Capture)のように見えますが、コンテンツを接続できないため、/dev/snd/pcmC1D2c
誰もがデバイスの代わりにライブラリ()を直接使用します。 ALSAを構成できますが、この構成ファイルはユーザーフレンドリーではありません。libalsa
/dev/dsp
/.asoundrc
今日、ほとんどのデスクトップシステムにはPulseaudioも付属しています。これはALSAの上で実行され、OSSだけでなくALSAにアクセスしたいプログラム(という疑似ALSAデバイスを使用pulse
)にも互換性レイヤを提供します。ご覧のとおり、コマンドラインから制御できるpavucontrol
PulseaudioとPulseaudioもあります(なぜ2つあるのかは尋ねないでください...)。pacmd
pactl
あなたの質問に戻ります。pavucontrol
実行後に再生タブと録画タブに表示される内容
padsp -- dsd -i /dev/dsp -o /dev/dsp -fa -ma
似ていると思いますOSS emulation[dsd]
。おそらく「OSSエミュレーション」部分(padsp
OSSエミュレーションのために存在する)について混乱している可能性があります。この内容が表示されない場合は、上記のコマンドを実行した後に発生する可能性のあるエラーとpactl list short clients
コマンドの実行時に出力を含めるように質問を編集してください。その後、何が間違っているかをデバッグしてみてください。
Pulseaudioでは、すべてオーディオレシーバー(例:サウンドカードの再生ハードウェア)にも関連項目があります。.monitor
オーディオソース。 2番目のアプリケーションを.monitor
最初のアプリケーションが再生しているシンクソースに接続して、あるアプリケーションから別のアプリケーションにオーディオをストリーミングできます。puvacontrol
これまで読んだチュートリアルで説明されているようにこれを行うことができます。
あなたの場合は、サウンド出力を監視したいgqrx
ので、ハードウェアオーディオレシーバーを使用することができます。あなたできるまた、接続されたソースを使用して「ダミー」オーディオシンクを生成し.monitor
ますが、オーディオを聞くことはできません。
snd_aloop
ALSAでのみループバックを実行する別の(やや複雑な)方法です。とにかくPulseaudioを実行すると、いいえそれを書いてください。
編集する
次のように問題を再現しました。このブログエントリdsd
設定方法については、3つに加えてgqrx
5つのストリーム(「再生」と「録音」の下に表示されるのはデバイスではなくオーディオストリームです)を取得することを除いて言葉です。過去に同様の問題があったことをpavucontrol
曖昧に覚えていましたがpadsp
(ストリームを1つだけ生成する必要がありますが、複数のストリームを生成しました)、追加のストリームを無視して動作しました。私も少し見てみると、padsp.c
I / Oが発生したときにのみストリームが生成されるようです。おそらくストリームがまだ再生されていない理由です。padsp
ブログ投稿が作成されてから状況が変更された可能性があり、その過程でいくつかの問題が発生した可能性があります。
したがって、「レコード」からOSS emulation[dsd]
ストリームを選択します(これは入力する、記録する内容とは何の関係もありません。dsd
再生中の.monitor
受信機の入力に接続し、gqrx
有効なデータを供給します(ここでは予想されるデータが何であるかわからないため、これはできません。テストできません)再生ストリームが出ていることを確認してください。
ハードウェアでdsdの出力を再生するには、仮想受信機を作成します。
pacmd load-module module-null-sink sink_name=gqrx_to_dsd sink_properties=device.description=GQRX-to-DSD
このシンクをの出力として選択しgqrx
、.monitor
このシンクのソースをの入力として選択しますdsd
。次に、ハードウェアオーディオレシーバーを出力として選択しますdsd
(再生ストリームがある場合)。