Platform SDK: DirectX

ステップ 1 : サウンドのロード

[C++]

ここでは、DirectX for Visual Basic でのアプリケーション開発について説明する。

[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 : エフェクトの演奏」を参照すること。