シンセサイザーのプログラミングを始めたいです。サウンド カードを使用する必要があると考えたので、Google で検索を開始しました。しばらくして、多くのオプションを発見しました:
- WaveOut API - これは時代遅れだと聞いたので、これを破棄しました。
- WASAPI - 私が望んでいたものには、少しレベルが低すぎるように思えました。
- DirectSound、XAudio、XAudio2 - かなり問題ないように見えますが、遅延をできるだけ少なくしたいと考えています。
- Asio - まさに私が欲しかったものに見えました!
オーディオ プログラミングを始めるためのチュートリアルとソース コードをいくつか見つけました。悲しいことに、私が仕事をするようになった唯一のものは、私が使いたくない waveOpen API を使用しています。
次に、このチュートリアルを見つけました。これは、私のニーズにぴったりだと思われました。驚くべきことに、このチュートリアルは、ASIO を使用して見つけることができる唯一の使用可能なリソースです (まあ、私はそれを機能させることができないため、それほど使用可能ではありません)。問題は、私はそれを機能させることができないということです。デモを実行すると、「アプリケーションが動作を停止しました」というエラーが表示され、続いてコンソール出力が表示されます。
未処理の例外: System.BadImageFormatException: ファイルまたはアセンブリ 'BlueWave.Interop.Asio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' またはその依存関係の 1 つを読み込めませんでした。不正な形式のプログラムをロードしようとしました。ファイル名: 'BlueWave.Interop.Asio, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' at BlueWave.Interop.Asio.Test.TestConsole.Main(String[] args)
WRN: アセンブリ バインドのログがオフになっています。アセンブリ バインドの失敗ログを有効にするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) を 1 に設定します。 . この機能をオフにするには、レジストリ値 [HKLM\Software\Microsoft\Fusion!EnableLog] を削除します。
コンパイルしようとすると、大量のRosieエラーが発生
しました。
これは、msvcr90.dll と msvcd90.dll を C:\Windows\System32 に手動で配置した後です (他の方法ではインストールできませんでした)。ええ、もちろん、このすべての前に ASIO4ALL をインストールしました。
ですから、これは実際には質問ではありませんが、一般的なアドバイスを求めているだけです。asio を機能させるのはそれほど難しいことではないと思いますが、同時に、ASIO API を学習するための別のリソースへのリンクや、その他のアドバイスは素晴らしいでしょう。(Xaudio2 を動かしてみるほうが簡単かもしれません。わかりません...)
事前に感謝します。私の質問が長くて退屈だと思われる場合は申し訳ありません。
編集:反応をありがとう。TropicalProgrammerによる ASIOHost APIに出会いました。それが良いかどうかはわかりませんが、有望に見えます。現在検討中です。より良いオプションがあるかもしれませんが、私は現在 ASIO に心を決めていることを認めなければなりません。