![]() | TOP | ![]() | 今月刊 | ![]() | 既刊 | ![]() | I/O | ![]() | サポート | ![]() | Q&A | ![]() | Web I/O | ![]() | 通販 | ![]() | お問い合わせ | ![]() |
|
サンプルプログラム、DMSample3 で「再生するMIDIファイルのテンポの変更を行なう」ということを
扱っていますが、このプログラムですと、テンポを変更に使用しているキー(’W’,’E’,’R’)を
押してから実際に変更したテンポが反映されるまでにタイムラグがあるように感じます。
これは、なぜなのでしょうか?
押した瞬間にテンポが変更されるような仕様にしたいのですが、どのようにしたら可能になるのでしょうか?
実際のコードで確認はしていないのですが、遅延の解消には、たとえば
IdirectMusicPerformance8::Invalidateメソッドで現在のキューの内容を消去することなどが考えられると思います。
SDKのヘルプを見る限り、デフォルトでは、およそ1秒分のメッセージが、いつでもキューに準備されているようです。
「DirectX9実践プログラミング」では、「DirectX 9.0b SDK」を使ったDirectXのプログラミングを解説しております。そのため、「DirectX 9.0b SDK」より新しいバージョンの「DirectX SDK」には 対応しておりません。
ご連絡頂いたエラーは「DirectX 9.0b SDK」より新しい「DirectX SDK」を使った場合に発生するエラーですので、本書のサンプルをコンパイルされる際は、使用される「DirectX SDK」を「DirectX 9.0b SDK」に変更し てください。
また、「DirectX 9.0c」というのは「DirectXランタイム」のバージョンのことだと思いますが、「DirectXランタイム」は最新のものでも問題ございません。ただし、コンパイルには「DirectX 9.0b SDK」が必要です。