pavucontrolで再生デバイスを作成するには?

pavucontrolで再生デバイスを作成するには?

まず、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は現在使用されなくなりましたが、それを使用するための古いプログラムがまだあるため、他のほとんどすべてのオーディオシステムはpadspPulseaudioなどのアナログレイヤを提供します。

今日、Linuxで使用されている基本的なオーディオシステムは、アルザス。これはカーネルの一部となり、ハードウェア用のドライバを提供します。デバイスは/dev/snd/pcmC0D0p(card0、device0、play)または(card1、device2、Capture)のように見えますが、コンテンツを接続できないため、/dev/snd/pcmC1D2c誰もがデバイスの代わりにライブラリ()を直接使用します。 ALSAを構成できますが、この構成ファイルはユーザーフレンドリーではありません。libalsa/dev/dsp/.asoundrc

今日、ほとんどのデスクトップシステムにはPulseaudioも付属しています。これはALSAの上で実行され、OSSだけでなくALSAにアクセスしたいプログラム(という疑似ALSAデバイスを使用pulse)にも互換性レイヤを提供します。ご覧のとおり、コマンドラインから制御できるpavucontrolPulseaudioとPulseaudioもあります(なぜ2つあるのかは尋ねないでください...)。pacmdpactl

あなたの質問に戻ります。pavucontrol実行後に再生タブと録画タブに表示される内容

padsp -- dsd -i /dev/dsp -o /dev/dsp -fa -ma

似ていると思いますOSS emulation[dsd]。おそらく「OSSエミュレーション」部分(padspOSSエミュレーションのために存在する)について混乱している可能性があります。この内容が表示されない場合は、上記のコマンドを実行した後に発生する可能性のあるエラーとpactl list short clientsコマンドの実行時に出力を含めるように質問を編集してください。その後、何が間違っているかをデバッグしてみてください。

Pulseaudioでは、すべてオーディオレシーバー(例:サウンドカードの再生ハードウェア)にも関連項目があります。.monitor オーディオソース。 2番目のアプリケーションを.monitor最初のアプリケーションが再生しているシンクソースに接続して、あるアプリケーションから別のアプリケーションにオーディオをストリーミングできます。puvacontrolこれまで読んだチュートリアルで説明されているようにこれを行うことができます。

あなたの場合は、サウンド出力を監視したいgqrxので、ハードウェアオーディオレシーバーを使用することができます。あなたできるまた、接続されたソースを使用して「ダミー」オーディオシンクを生成し.monitorますが、オーディオを聞くことはできません。

snd_aloopALSAでのみループバックを実行する別の(やや複雑な)方法です。とにかくPulseaudioを実行すると、いいえそれを書いてください。

編集する

次のように問題を再現しました。このブログエントリdsd設定方法については、3つに加えてgqrx5つのストリーム(「再生」と「録音」の下に表示されるのはデバイスではなくオーディオストリームです)を取得することを除いて言葉です。過去に同様の問題があったことをpavucontrol曖昧に覚えていましたがpadsp(ストリームを1つだけ生成する必要がありますが、複数のストリームを生成しました)、追加のストリームを無視して動作しました。私も少し見てみると、padsp.cI / 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(再生ストリームがある場合)。

関連情報