問題タブ [asio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
audio - NAudio: 「ASIO をインスタンス化できません。STAThread が設定されているかどうかを確認してください」
ASIO ドライバーを使用して、マイク オーディオを NAudio のスピーカーにルーティングしようとしています。私は NAudio デモ プロジェクトで成功を収めました。このコードを別のプロジェクト (関連する場合は XNA) にコピーすると、毎回 COMException が発生します。ここに私が書いた方法があります:
毎回、このメソッドは AsioDriver.cs で失敗します。
何が起こっているのか、なぜなのかわかりません。NAudio デモ プロジェクトでも同じコードが機能します。何か案は?
c# - NAudio で ASIO オーディオ出力デバイスを一覧表示する
NAudio ライブラリを使用して ASIO オーディオ出力デバイスを一覧表示するにはどうすればよいですか?
WaveIn の場合、次のようになります。
WASAPI の場合、次のようになります。
c# - ASIO: バッファロス
序章
ダンス競技用のマルチチャンネル ASIO オーディオおよびビデオレコーダーを作成しています。ビデオとオーディオのストリームは完全に同期している必要があります。主な障害は、実際のデバイス ( Steinberg UR44 ) にアクセスできないことです。そのため、デバイスを使用しているクライアントがログを送信するだけでASIO4ALLを使用しています。
問題
私のマシンでASIO4ALLを使用すると、理想的な同期が得られますが、デバイスを使用するクライアントには時間の経過とともに遅延が大きくなります。では、バッファ ロスを検出した方法を次に示します。ログには、イベント ハンドラ2482
の呼び出しが表示されます。AsioOut.AudioAvailable
記録セッションの継続時間は35.133
秒です。バッファ サイズ: 512
; フォーマット: 16 bit PCM, 44kHz, 1 channel
.
したがって35.133 x 44100 / 512 = 3026
、理論上は通話が発生するはずでしたが、クライアントは音声データ2482
を失っただけでした。~20%
そのため、出力オーディオ ファイルの持続時間は28.003
数秒 (~20%
録音セッションの持続時間よりも短い) しかなく、オーディオとビデオの同期に時間遅延が発生するのはそのためです。
質問:この計算と結論は正しいですか?
audio - ffmpeg を使用して ASIO デバイスからオーディオをキャプチャすることは可能ですか?
Dante Virtual Soundcard をインストールした Windows 7 マシンをセットアップし、そのサウンドカードを ASIO 機能で起動しました。サウンドカードは、Tesira サーバーからネットワーク経由でオーディオを受信します。オーディオをファイルにキャプチャしたいと考えています (各チャンネルを別々のファイルにすることを強くお勧めします)。ファイルは後で再生されます。チャネル数は 6 つ以上になる可能性があります。
同じセットアップで、ffmpeg を使用して、正常に動作しているビデオを Direct Show でキャプチャします。ffmpeg はオーディオも録音できるため、オーディオについても同じ設定を使用したいと考えました。ただし、仮想サウンドカードがおそらく作成する ASIO デバイスを選択するオプションはないようです。問題は、ffmpeg にどのコマンド ラインを使用するか、または何をインストールするかです。または、コマンドラインからASIOを記録できる他のプログラムはどれですか?
私はすでにインストールしようとしました:
- Asio4all (実際には間違った方法)
- ソックス(実際の理由はわかりません)
- HiFi Cable Asio Bridge (VB-audio から、寄付版でも十分なチャンネルがありません)
- Voicemeeter (VB-Audio から、十分なチャンネルがなく、実際にミックスダウンします)
- O Deus Asio リンク、これは興味深いオプションかもしれませんが、ルートを構成できませんでした。何か提案はありますか?
私が気づいたことの 1 つは、仮想サウンドカードも WDM を使用するように設定できることです。次に、デバイスを で見ることができますがffmpeg -list_devices true -f dshow -i duymmy
、記録しても結果が得られません。ctrl-c
代わりに停止する必要がq
あり、ファイルはゼロバイトです。おそらくこれは、ネットワーク上のデータがすべて ASIO フォーマットであり、Tesira Server が「WDM データ」を送信できないためです。FFmpeg は、オーディオのみのキャプチャ ピンの選択で停止します
編集:
高冗長性で ffmpeg を実行したところ、WDM サウンドカードを選択すると で停止しましたSelecting pin Capture on audio only
。また、オプションを要求すると、同じ行が 22 回表示されます。min ch=1 bits=8 rate= 11025 max ch=2 bits=16 rate= 44100
c# - Asio、C#、マイクとライン入力からの音を同時に録音
単一のオーディオ カードの複数のインターフェイスからサウンドをキャプチャしようとしています。互いに相対的にシフトされていない配列を取得できますか? 4 つのマイク (チャネルごとに 1 つのインターフェイスに 2 つのマイク) を使用して、サウンド エミッターの位置を検出したいのですが、Windows を使用しているため、集約デバイスを作成できません。異なるスレッドからのサウンドも録音しましたが、アレイ間の遅延は非常にランダムでした。これが主な問題です。配列に相互相関関数を適用して最大値を与える遅延(シフト)を取得したいためです。このシフトは音源に対する角度を定義するため、ASIO に対して異なるものを使用できますが、すべてに対して安定している必要があります。記録間隔。C# の解決策がない場合、私は C++ を知っています。私の問題を解決する方法を教えてください。