私はRaspberry Pi用のC ++(オープンソース)カーラジオアプリケーションを開発しています。https://github.com/vinthewrench/carradio
ALSA apiとSignstek USB DACである程度成功しましたが、4つのスピーカーの使用に関する問題を解決する方法についてアドバイスを求めたいと思います。
私のコードは現在左右のチャンネルについてのみ知っており、snd_pcm_writeiは「デフォルト」デバイスを呼び出します。
他のUSB DACを追加して4つのチャネル(前面と背面)を提供できると思いますが、4つのチャネルすべてと通信するためのコードを書く方法はわかりません。答えは、一種のハイブリッド仮想デバイスの前面チャネルと背面チャネルを作成し、snd_pcm_openを実行し、そのデバイスを呼び出すことです。
だから質問は何ですか?前面チャネルと背面チャネルを統合し、ALSAがすべてのミキシング操作を実行するようにALSAを設定する正しい方法は何ですか?
私はまだALSAを設定する方法を知らず、いくつかの試行錯誤を受けました。
とても感謝しています。
答え1
デザインアドバイスが必要です。いいえALSAを介して直接同じ出力のチャンネルを駆動するには、2つの異なるサウンドカードを使用します。その理由は、各サウンドカードがわずかに異なるマスタークロックを持ち、2つのチャンネルペアのクロックが分かれ、しばらくすると(最も期待していないとき)、アプリケーションで興味深いバグが表示され始めるからです。
したがって、クロックドリフトをリサンプリングして変更するためのツール(Pulseaudioなど)を使用してください。または、選択できる4つのチャンネルを持つUSBサウンドカードを探します。
前面と背面のチャネルを統合し、ALSAがすべてのミキシング操作を実行するようにALSAを設定する正しい方法は何ですか?
マゾヒストでこれにこだわるなら、見てたくさんプラグインを選択し、プラグインのアドインまたはroute
プラグインを確認してください。plug