再生中の音楽の変化
DirectMusic がスタイルベースのセグメントを演奏するとき、基本的な和音とリズムに変更が加えられるので、演奏に変化が表われる。変更の一部はスクリプト化され、一部はランダムに行われる。
- パターンの選択。一般的なスタイルには複数のパターンが含まれる。これらのパターンは、コマンド トラックからのコマンドに応じて選択される。たとえば、コマンド トラックがブレーク装飾の演奏を要求すると、スタイル再生エンジンは現在のグルーブ レベルに矛盾しないブレーク パターンを選択する (オーサーは、各パターンにふさわしいグルーブ レベルを指定する)。適切なパターンがいくつかある場合は、オーサーによってセグメントに埋め込まれたルールに従ってパターンが選択される。パターンは完全または部分的にランダムに選択されることもあれば、特定のシーケンスで選択されることもある。
- パターン内のバリエーション。パターン内のパートには、複数のバリエーションを設定することができる。バリエーションは、オーサーが指定した順序で演奏することができる。それ以外の場合は、パターンの各繰り返しにおいて、スタイル再生エンジンがバリエーションをランダムに選択する。
- グルーブ レベル。セグメントの現在のグルーブ レベルにより、スタイル内のどのパターンを再生用に選択できるかが決まる。現在のレベルを設定するのはコマンド トラックであるが、コマンド トラックは通常、セグメントかテンプレートの一部としてオーサリングされる。セグメントの現在のグルーブ レベルは、プログラム的に変更することができる。パフォーマンスのマスタ グルーブ レベルを設定することで、変更をすべてのセグメントに適用することができる。
- 転調。セグメントを演奏するときに、ベース コードはコード トラックの進行に従って変化する。現在のパターンのノートは、新しいコードと調和するよう、自動的に転置される。
- タイミングのバリエーション。再生エンジンは、個々のノートのパラメータ、つまりノートの開始時期と終了時期に、ランダムな変更を加えることができる。
- バンド。セグメントの演奏中に、音色と音色の設定 (ボリューム、パン、および転調) の選択を、オーサリングされたセグメント内のバンド トラックで変更したり、アプリケーションで動的に変更することができる。アプリケーションでバンドを変更するには、バンド オブジェクトに基づくセカンダリ セグメントを作成してそのセグメントを演奏するか、演奏中のセグメントのバンド トラック上にパラメータを設定する。
アプリケーションはほとんどの場合、既存のセグメントを操作するのではなく、別のセグメントを演奏して音楽全体を制御する。たとえば、ゲームのインテンシティの変化を音楽に反映させるには、インテンシティ レベルに応じてオーサリングされた新しいセグメントにトランジションするだけでよい。オーサーにグルーブ範囲の異なるパターンを作成させ、ゲーム イベントに応じてグルーブ レベルを変更すると、1 つのスタイル ベースのセグメントでも同様のエフェクトを得ることができる。