問題タブ [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.
c++ - Asio の非同期と同時実行
boost::asio
非同期TCP接続を使用して、でコードを書いています。私はそれについていくつかの疑問を持っていることを認めざるを得ません. これらはすべて並行性に関するものです。ここにあるいくつかの:
async_write
最初のソケットの完了を待たずに同じソケットで2 つ以上を開始するとどうなりますか? ハンドラ (およびasync_write
) はオーバーラップしますか、それともasio
シリアライゼーションと同期を提供しますか?上記と
async_connect
との同じ質問async_read
。一般に、これらの関数を異なるスレッドから呼び出すことは安全です (異なるバッファーの使用について話しているわけではありません。それは別の問題です...)。
c# - C#でサインスイープを生成する
開始周波数、終了周波数、およびスイープの期間を定義できるC#でサインスイープを生成したいと思います。バッファを再生するDirectSoundやASIOなどのサウンドライブラリを見てきました。しかし、バッファーサイズの制限により、スイープの期間が複数のバッファーを満たすのに十分な長さである場合に、スイープの期間を制御する方法を理解できませんでした。サンプルやガイドは非常に役立ちます。
windows - Pure Data がフリーズして音声が出力されない
Pure Data をダウンロードして再インストールしました。メディアを実行している場合 -> オーディオと MIDI をテストするには、80、60、オフの 3 つのテスト トーン設定があります。どちらを使っても何も出ません。すべてがオンになっており、接続されていますが、音はありません。ASIO を実行しようとすると、Pd を完全に閉じることができなくなります。さらに、Pd の内外でオーディオを再生できません。もう一度何かを聞きたい場合は、スピーカーのミュートが解除されているにもかかわらず、コンピューターを再起動する必要があります。
c++ - C ++ .exeと.dllが、それが構築されたマシンでのみ機能する原因は何ですか?
私はVS2010を使用しており、このプロジェクトで作業しています。
http://www.codeproject.com/KB/audio-video/Asio_Net.aspx
最初に、デモバイナリをダウンロードしましたが、マシンでクラッシュしました。コメントのいくつかを読んだ後、ソースをダウンロードしてビルドし(ASIO SDKを入手した後)、それがあなたのマシンで動作するはずだと言われました。これは正しいです。VSでビルドした後、そのマシンで動作します。
再構築された.exeと.dllを別のマシンに移動すると、最初にダウンロードしたデモバイナリと同じエラーでクラッシュします。だから私はこれを引き起こす原因がわかりません。このC++バイナリをどのマシンでも機能させるにはどうすればよいですか?
私はC#開発者であり、ほとんどのコードはC ++であるため、少し途方に暮れています。
ところで、ここにエラーメッセージがあります:
"未処理の例外:System.IO.FileNotFoundException:ファイルまたはアセンブリ'Bluewave.Interop.Asio.dll'またはその依存関係の1つを読み込めませんでした。指定されたモジュールが見つかりませんでした。BlueWave.Interop.Asio.Test.TestConsoleで.Main(String [] args) "
編集:ここで見つかった回答:http: //msdn.microsoft.com/en-us/library/8kche8ah (v = VS.100).aspx
依存関係ウォーカーを使用して、欠落している.dllを見つけます。
c# - C++ ASIO ライブラリから C# でオーディオ ストリームを録音する
オーディオ ストリームを録音する最適な方法を見つける必要があります。低レベルのコードは既に C++ で作成しており、その一部を C# にインターフェースしています。
だから私は浮動小数点数の配列の配列 - オーディオ信号 - を与える C++ コールバックを持っています。現時点では、私の C++ ライブラリは wav 形式でファイルに直接データを記録しており、記録が終了したときに C# アプリに通知するだけです。
しかし、UI 側でのインタラクティブ性、たとえば「無限」のプログレス バー、記録されるデータの量、キャンセル ボタンなどをもっと増やしたいと思っています。私は .NET と C# のメモリ管理についてほとんど知らないので、効率的に作成する方法がわかりません。
データを内部に配置して、後で配列のようにアクセスできる、C# に高速でサイズ変更可能なコンテナーはありますか?
また、波形イメージを作成したいと思います。私はすでにこれらのことをC++で行っていますが、どういうわけか、メッセージを書きすぎたり、オブジェクトを転送したりするという考えは好きではありません.
まとめると、次のようになります。
私はいくつかのことを行う C++ アンマネージ コールバックを持っており、データを処理したら C# メソッドを呼び出したいと思います。C プロトタイプは次のようになります。
void プロセス (float **signal, int n); (通常は [2][n] - ステレオ用)
C#に相当するものは何ですか?そのC++コールバックからどのように呼び出すのですか?
連続ストリームを書き込み ( mem.put(float[][] data, int size) など)、配列として、または他の簡単な方法で読み取るのに最適なクラスは何ですか (たとえば、そこから wav ファイルを保存するため、または波形ビットマップを作成します)
C# で実行すると、パフォーマンスが大幅に低下しますか? (C#関数などを呼び出すマネージC ++ラッパー...そしておそらくいくつかのDSPのもの)または私はただの偏執症ですか?:)
乾杯、
パブロックス
私の解決策
わかりました私はそれをそのように解決しました:
私のC++ヘッダーファイルでは、転送構造を取得しました:
次に、マネージ C++ クラスで次のように宣言しました。
次に、オーディオを初期化するメソッドへの引数として使用できます。
そのデリゲートには、次の C プロトタイプもあります。
内部 C++ クラスで次のように使用されます。
次に、最初のメソッドの本体は次のとおりです。
audioObserver の本体は、そのコールバックをオブジェクトに格納し、オーディオ関連の処理を行うだけです。
コールバックは、次のように処理メソッドで呼び出されます。
そして、C# デリゲートの本体:
したがって、おそらくそれは最善のコードではありません-私にはわかりません。それが機能しているとしか言えず、漏れていないようです:)
c - 未定義の参照
ASIO(オーディオストリーム入力/出力)を使おうとしています。SDKをダウンロードしましたが、このSDKにはライブラリがなく、ヘッダーとソースファイルしかないため、ライブラリにコンパイルする必要がありました。さらに、MSVCの一部の機能(具体的には一部のマクロ定義-_WIN64およびWINVER)を使用するように作成されています。ライセンス上の理由でMSVCを使用できません。だから私はMinGWでEclipseCDTを使用していて、プリプロセッサにこれらのマクロ(Windows 7 x64用)を設定するように指示し、ライブラリをうまくコンパイルしました。
そのライブラリを使用したいとき、未定義の参照を取得し続けます。何が悪いのか教えていただけますか?
Hello worldファイル(ASIOドライバーをロードしてその情報を出力):
gccからの詳細な出力:
そして、ライブラリのnmからの出力(関連するオブジェクトのみ):
編集:
さて、今私はライブラリをコンパイルすることができたので、Cコードでアクセスできます(私は追加しました
extern "C"
すべての関数宣言の前。これで、nm出力は次のようになります。
これはかなりよく見えます。私はまだいくつかの名前をマングリングしていますが、それでも未定義の参照について不平を言っています。
私はまだここで何が欠けていますか?
編集2:私はついに物事を機能させました。エラーの原因は、設定のキャッシュが残っているためと思われます。プロジェクトを削除してすべてを再設定すると、問題は解決しました。しかし、ライブラリのコンパイルに関するヒントを提供してくれた@John Zwickに感謝します。私は、長い間それを続けていました。
linker - 「g_Templates」への未定義の参照
アプリケーション用に MinGW を使用して ASIO をコンパイルしようとしていますが'g_Templates'
、 、'g_cTemplates'
、およびへの未定義の参照が引き続き発生し'vtable for AsioDriver'
ます。とリンクしてい-lole32 -luuid
ます。これをコンパイルするには、どのような追加ライブラリが必要ですか?
Google はこれが DirectShow フィルターであることを発見しましたが、MinGW は DirectShow に対してコンパイルできるはずです。
c++ - VS2010の「再定義;異なる型修飾子」
Visual Studio でダウンロードしたコードをコンパイルしようとしています。コードは msvc 6 用で、VS2010 にインポートしました。このコードは、DLL をコンパイルして labview の ASIO サポートを提供するためのものです。コード全体については、こちらを参照してください。
ビルド時に次のエラーが表示されます:「エラー C2373:'_pctype': 再定義; 型修飾子が異なります。」
コード スニペットは次のとおりです。
unsigned short _Ints[ 512 ];
unsigned short *_pctype = _Ints;
私が提供したリンクから誰かがコードのパッケージを参照している場合、これはファイル GenMonCIN.c からのものです。
c++ - PortAudio は、Asio と WDM-KS の両方でデバイス数が 0 であることを示しています
PortAudio は、ASIO と Windows WDM-KS ホスト API の両方について、0 の deviceCount と -1 の defaultOutputDevice を示しています。ASIO と Windows WDM-KS の両方のサポートを含むように PortAudio を正常にビルドしました。使用可能なホストを反復処理すると、両方のオプションが表示されます。ASIO4All がインストールされていることも確認しました。私は何を間違っていますか?Mac の仮想マシン (vmware) 内で Windows を実行しています。それは問題を引き起こしていますか?
audio - ASIOデータフォーマット
簡単なオーディオインターフェースを作ろうと思っています。そのために、ASIOドライバーが通常どの形式でデータをプログラムに配信するかを知りたいだけですか? 仕様からそれを理解することも、他の場所で見つけることもできませんでした。独自のドライバーを作成したくありません。データを同じ形式で配信したいだけです。