Microsoft DirectX 8.0 (Visual Basic) |
DirectMusic ローダーは、オーディオ圧縮マネージャ (ACM) でサポートされているフォーマットの圧縮されたウェーブフォーム オーディオ ファイル、および非圧縮ウェーブ ファイルをロードできる。
ウェーブ ファイルに基づくセグメントは、ほかのセグメントと同様に演奏される。このようなセグメントは、メッセージとしてパフォーマンスに渡され、常にオーディオパスのチャンネル 0 で演奏される。ウェーブについてはノートとは異なる意味の合成が行われるが、ウェーブもシンセサイザに渡されて、MIDI コントローラで操作できる。
次のサンプル コードでは、ピッチ チェンジ MIDI メッセージをデフォルトのオーディオパスのチャンネル 0 に送信している。dmp は DirectMusicPerformance8 オブジェクトである。ピッチの変更は、そのオーディオパスで再生されるすべてのウェーブに影響する。
Private Sub sldrPitch_Change() Dim hi As Byte, lo As Byte ' 値を 7 ビット バイトに分割する。スライダから返される値は ' 0 〜 16383 の範囲である。 hi = Fix(sldrPitch.Value / 128) lo = CByte(sldrPitch.Value And 127) ' ピッチ ベンド メッセージを送信する。 Call dmp.SendMIDIPMSG(0, DMUS_PMSGF_REFTIME, 0, &HE0, _ lo, hi) End Sub
注 アプリケーションが複数のオーディオパスを使用する場合、この例に示されている手法が機能しないことがある。DirectX for Visual Basic では、アプリケーションで作成されたメッセージを特定のオーディオパスに送信する方法はない。パフォーマンス チャンネル 0 は、オーディオパスごとに、シンセサイザの異なるチャンネルにマップされるので、あるパスでの MIDI コントローラの変更はほかのパスに影響しない。詳細については、「アプリケーションで作成されたメッセージ」を参照すること。
ウェーブもまた DirectMusic Producer ファイルに埋め込んで、さまざまなバリエーションのあるスタイルのように動作させることができる。例については、AudioScripts サンプル アプリケーションを参照すること。このサンプルの ScriptDemoBaseball.spt スクリプトは、ボタンがクリックされるたびに物売りの叫び声のバリエーションを再生する。
セグメント (.sgt) ファイルのウェーブは、再生する前にダウンロードする必要がある。セグメントのバンドをダウンロードすると、これらのウェーブもダウンロードされる。詳細については、「バンドのダウンロードとアンロード」を参照すること。