Microsoft DirectX 8.0 (C++)

トラックのアレンジ

セグメント内のほとんどのトラックは固定されており、セグメントを演奏するたびに同じデータが生成される。ただし、トラックが IDirectMusicTrack8::Compose メソッドを実装し、適切に設定されている場合、演奏の開始時やループするたびに、動的にデータを生成できる。

サインポスト トラックである単一の標準トラックは、アレンジをサポートする。サインポスト トラックは、コードマップから新しいコード トラックをアレンジする。

通常、トラック構成はオーサーによって設定されるが、次のいずれかまたは複数のフラグを IDirectMusicSegment8::SetTrackConfig または IDirectMusicSegmentState8::SetTrackConfig に渡すことによって、アプリケーションでトラックのアレンジの動作のオンとオフを切り替えることができる。

DMUS_TRACKCONFIG_COMPOSING
トラックは、IDirectMusicSegment8::Compose メソッドによってアレンジされる。
DMUS_TRACKCONFIG_LOOP_COMPOSE
トラックは、セグメントがループするたびに自動的にアレンジされる。
DMUS_TRACKCONFIG_PLAY_COMPOSE
トラックは、セグメントが開始されるたびに自動的にアレンジされる。

自動的にアレンジが行われるのは、アレンジした内容を保存するトラックがセグメントに含まれている場合だけである。サインポスト トラックをアレンジするときは、新しいコードのコード トラックが必要となる。セグメントを演奏する前に、IDirectMusicSegment8::Compose を呼び出すことによって、必要なトラックが存在することを確認できる。

すべてのアレンジを手動で行う場合は、設定する構成フラグは DMUS_TRACKCONFIG_COMPOSING だけである。ほかの 2 つのフラグがいずれも設定されていない場合、トラックは、Compose メソッドを呼び出した場合にのみアレンジされる。