Microsoft DirectX 8.0 (C++) |
セグメントは、DirectMusic のパフォーマンスで演奏可能なデータの基本単位である。セグメントは IDirectMusicSegment8 インターフェイスによって表される。
アプリケーションでは、次のいずれかの方法でセグメント オブジェクトを作成できる。
各セグメントは 1 つまたは複数のトラックによって構成され、各トラックは IDirectMusicTrack8 インターフェイスによって表される。トラックは、セグメントのデータのほとんどを保持し、データは、ノートイベント、バンド チェンジ、テンポ チェンジ、またはその他のタイム イベントで構成される。トラックはセグメント オブジェクトを通して管理されるため、アプリケーションは一般的にこれらのインターフェイスを必要としない。詳細については、「DirectMusic トラック」を参照すること。
セグメントは、パフォーマンスで異なる役割を果たす場合がある。常に必要なプライマリ セグメントは、サウンドトラックの主な内容を提供し、通常、制御セグメントとして機能する。セカンダリ セグメントはプライマリ セグメントと共に演奏され、サウンド エフェクトや短いテーマを提供する。特殊なタイプのセカンダリ セグメントとしてモチーフがあり、常に DirectMusic スタイル オブジェクトから取得される。
さらに、特殊な役割を持つ 3 種類のセグメントがある。
セグメントの再生はパフォーマンス オブジェクトによって制御され、IDirectMusicPerformance8::PlaySegment または IDirectMusicPerformance8::PlaySegmentEx の呼び出しで開始される。
パフォーマンス内では、ただ 1 つのプライマリ セグメントを演奏できる。再生の目的でプライマリ セグメントを挿入する場合は、現在演奏されているセグメントが終わった後にそのセグメントを演奏するように指定したり、現在のプライマリ セグメントを置き換えることができる。
一方、セカンダリ セグメントはプライマリ セグメント上で演奏され、任意の数のセカンダリ セグメントを同時に演奏できる。
通常、セカンダリ セグメントはプライマリ セグメントのパフォーマンスを変更しない。たとえば、セカンダリ セグメントは、プライマリ セグメントのスタイルに影響を与えずに、別のスタイルに基づくことができる。ただし、セカンダリ セグメントを制御セグメントとして指定できる。この場合、セカンダリ セグメントは、通常プライマリ セグメントで処理される特定のタスクを実行する。
セグメントの詳細については、次のトピックを参照すること。
「セグメントのタイミング」も参照すること。