Platform SDK: DirectX

セグメント

[C++]

DirectMusic 内のデータの基本チャンクをセグメントと呼ぶ。セグメントは IDirectMusicSegment インターフェイスによって表される。セグメントは、次のいずれかの方法で作成することができる。

各セグメントは 1 つまたは複数のトラックによって構成され、各トラックは IDirectMusicTrack インターフェイスによって表される。トラックは、セグメントのデータのほとんどを保持し、データは、音符イベント、バンド チェンジ、テンポ チェンジ、またはその他のタイム イベントで構成される。トラックはセグメント オブジェクトを通して管理されるため、アプリケーションは一般的にこれらのインターフェイスを必要としない。詳細については、「トラック」を参照すること。

[Visual Basic]

DirectMusic 内のデータの基本チャンクをセグメントと呼ぶ。各セグメントは DirectMusicSegment オブジェクトによって表される。セグメントは、次のいずれかの方法で作成することができる。

セグメントはさまざまな目的を果たす。次に、使用する頻度の高いセグメントを示す。

[C++]

セグメントの再生は、IDirectMusicPerformance インターフェイスで制御され、IDirectMusicPerformance::PlaySegment の呼び出しで開始される。セグメントの演奏インスタンスは IDirectMusicSegmentState インターフェイスによって表され、このインターフェイスを使ってセグメントの現在の状態に関する情報を取り出せる。

[Visual Basic]

セグメントの再生は、DirectMusicPerformance オブジェクトで制御され、DirectMusicPerformance.PlaySegment の呼び出しで開始される。再生するセグメントのインスタンスは DirectMusicSegmentState オブジェクトで表され、このオブジェクトを使ってセグメントの現在の状態に関する情報を取り出せる。

パフォーマンス内では、ただ 1 つのプライマリ セグメントを演奏できる。再生の目的でプライマリ セグメントを挿入する場合は、現在演奏されているセグメントが終わった後にそのセグメントを演奏するように指定したり、現在のプライマリ セグメントを置き換えることができる。

一方、セカンダリ セグメントはプライマリ セグメント上で演奏され、任意の数のセカンダリ セグメントを同時に演奏できる。

通常、セカンダリ セグメントはプライマリ セグメントのパフォーマンスを変更しない。たとえば、セカンダリ セグメントは、プライマリ セグメントのスタイルに影響を与えずに、別のスタイルに基づくことができる。

[C++]

ただし、セカンダリ セグメントは制御セグメントとして指定することができる。この場合、通常はプライマリ セグメントで処理される IDirectMusicPerformance::SetParam および IDirectMusicPerformance::GetParam 呼び出しに応答するタスクが、セカンダリ セグメントによって奪われる。このように、制御セグメントによって、現在のコードまたはグルーブ レベルが管理される場合がある。詳細については、「トラック」を参照すること。

セカンダリ セグメントを制御セグメントとして演奏する方法の詳細については、DMUS_SEGF_FLAGS を参照すること。

[Visual Basic]

ただし、セカンダリ セグメントは制御セグメントとして指定することができる。この場合、セカンダリ セグメントは DirectMusicPerformance.GetCommand などの特定の呼び出しに応答するタスクを実行し、現在のコードやグルーブ レベルなど、音楽のいくつかの面を制御する。

セカンダリ セグメントを制御セグメントとして演奏する方法の詳細については、CONST_DMUS_SEGF_FLAGS を参照すること。

セグメントの再生の詳細については、「セグメントのタイミング」を参照すること。