Platform SDK: DirectX

セグメントのタイミング

[C++]

IDirectMusicSegment::SetStartPoint メソッドを呼び出して開始ポイントを設定しない限り、セグメントは最初から演奏される。IDirectMusicSegment::SetRepeats を使ってリピート回数を設定した場合、IDirectMusicSegment::SetLoopPoints を呼び出してループを定義しなければ、セグメント全体がその回数だけ反復される。ループを設定すると、セグメントのループ ポイント間の部分だけが繰り返される。

セグメントの演奏が開始される演奏タイムは、IDirectMusicPerformance::PlaySegment の 2 つのパラメータによって決定される。

[Visual Basic]

DirectMusicSegment.SetStartPoint メソッドを呼び出して開始ポイントを設定しない限り、セグメントは最初から演奏される。IDirectMusicSegment.SetRepeats を使ってリピート回数を設定した場合、DirectMusicSegment.SetLoopPoints を呼び出してループを定義しなければ、セグメント全体がその回数だけ反復される。ループを設定すると、セグメントのループ ポイント間の部分だけが繰り返される。

セグメントの演奏が開始される演奏タイムは、DirectMusicPerformance.PlaySegment の 2 つのパラメータによって決定される。

DMUS_SEGF_AFTERPREPARETIME
最も早い開始タイムに準備時間を加えたタイムに演奏する。既にキューにある現在演奏中のセグメントからポートへのメッセージは、いずれも無効にならない。これにより処理時間が省略され、プライマリ セグメント間の移行部でモチーフがなめらかに演奏されることが保証される。
DMUS_SEGF_GRID
グリッド境界で演奏する。グリッドとは拍 (ビート) の小分割である。スタイルの形式でオーサリングされた拍子記号は、各拍を何個のグリッドに分割するかを決定する。
DMUS_SEGF_BEAT
拍で演奏する。
DMUS_SEGF_MEASURE
小節の先頭で演奏する。
DMUS_SEGF_DEFAULT
挿入されたセグメントのデフォルトの境界を使う。

これらのフラグがいずれもセットされていない場合、セグメントは最も早い開始タイムに演奏を開始する。

テンポの変更によって開始タイムが受ける影響については、「クロック タイムとミュージック タイム」を参照すること。