Platform SDK: DirectX |
ここでは、DirectX for Visual Basic でのアプリケーション開発について説明する。
パフォーマンスを作成および初期化した後、DLSEffects サンプルは DLS ファイルとセグメント ファイルをロードする。これらのファイルはどちらも、mediapath で指定されたディレクトリからロードされる。
' dx は DirectX7 オブジェクトを表す。 ' perf は初期化された DirectMusicPerformance オブジェクトを表す。 ' seg は DirectMusicSegment として宣言される。 mediapath = FindMediaDir("sample.sgt", "dmusic") If mediapath <> vbNullString Then ChDir mediapath Dim loader As DirectMusicLoader Set loader = dx.DirectMusicLoaderCreate Set coll = loader.LoadCollection(mediapath & "boids.dls") Set seg = loader.LoadSegment(mediapath & "sample.sgt")
ロードされるセグメントの種類が何であるかは問題ではない。アプリケーションはセグメントを演奏しないが、DLS データをダウンロードするには DirectMusicSegment オブジェクトが必要である。
ここで、アプリケーションは DirectMusicCollection オブジェクトをセグメントに関連付け、ポートにダウンロードする。セグメントによって参照されるほかの音色も、同様にダウンロードされる。
Call seg.ConnectToCollection(coll) Call seg.Download(perf)
Boids.dls コレクションには、Vocals という音色が 1 つだけ含まれている。この音色のパッチ番号は 127 に設定されている。MIDI パッチ メッセージを送信して、この音色を任意のチャンネルに割り当てることができる。ほかのサンプルに影響を与えることなく、演奏するサンプルの 1 つ (鼓動音のサウンド) にピッチ ベンドを設定できるように、アプリケーションは音色を 2 つのチャンネルに割り当てている。
Const channel = 1 Const hbchannel = 2 Const patch = 127 Call perf.SendPatchPMSG(0, DMUS_PMSGF_REFTIME, channel, patch, 0, 0) Call perf.SendPatchPMSG(0, DMUS_PMSGF_REFTIME, hbchannel, patch, 0, 0)
チャンネル 1 または 2 で演奏される音符はいずれも、Vocals 音色を使用する。この音色を使って、異なるサウンド効果を得る方法については、「ステップ 2 : エフェクトの演奏」を参照すること。