Platform SDK: DirectX |
MIDI ファイルを演奏する場合、デフォルトでは、Gm.dls ファイルに含まれる Roland GM/GS Sound Set の音色が使用される。ただし、ほかのコレクションの音色を使って MIDI ファイルを演奏することもできる。
ほかのコレクションの音色を使って MIDI ファイルを演奏するには、最初に、「コレクションのロード」で説明した方法でコレクションをロードし、IDirectMusicCollection インターフェイスへのポインタを取得する。続いて、MIDI セグメントに対して IDirectMusicSegment::SetParam を呼び出し、セグメントとコレクションの接続を確立する。
次のコード例は、接続の作成方法を示している。
/* pSegment は MIDI ファイルから作成され、 pLoadedCollection は有効な IDirectMusicCollection ポインタであるとする。*/ HRESULT hr = pSegment->SetParam(GUID_ConnectToDLSCollection, 0xFFFFFFFF, 0, 0, (void*)pLoadedCollection);
ほかのコレクションの場合と同様に、自動ダウンロードが有効でない場合は、MIDI ファイルの演奏に使用する音色を、セグメントを演奏する前にダウンロードしなければならない (自動ダウンロードの詳細については、「グローバル パラメータの設定と取り出し」および「バンドのダウンロードとアンロード」を参照すること)。音色が自動的にダウンロードされない場合は、次のコード例に示すように、IDirectMusicSegment::SetParam を呼び出して音色をダウンロードしなければならない。
/* pSegment は IDirectMusicSegment ポインタであり、pPerformance は IDirectMusicPerformance への有効なポインタである。*/ pSegment->SetParam(GUID_Download, 0xFFFFFFFF, 0, 0, (void *) pPerformance);
SetParam を使ったダウンロードの詳細については、「トラック パラメータの設定と取り出し」を参照すること。
ほかのコレクションの音色を使って MIDI ファイルを演奏するには、MIDI ファイルに基づいて、コレクションをロードし、セグメントに関連付ける。次に、ほかのセグメントの場合と同様に、コレクションをダウンロードする。詳細については、「コレクションのロード」を参照すること。
注 : MIDI セグメントにカスタム コレクションを付加するときに、GM コレクションへの接続は破壊されない。たとえば、パッチ番号が 12 の 1 つの音色を含むコレクションをロードし、これをセグメントに接続する場合、12 以外のパッチ番号を持つ MIDI チャンネルでは、GM コレクションの適切な音色を使って演奏が続けられる。