トランジションの使い方
あるセグメントを停止して次のセグメントを始める際に、耳障りな中断が突然発生することを防止するため、または音楽を終止形 (カデンツァ) へ移行するために、適切なトランジションを提供する中間または終始のセグメントを作成するようコンポーザに指示できる。
トランジション セグメントをアレンジするには、3 つの手法のいずれかを選択できる。
- IDirectMusicPerformance8::PlaySegmentEx メソッドを使うと、pTransition パラメータでセグメントを指定できる。このセグメントは、新しくアレンジするトランジションのテンプレートとして使用される。トランジションは i64StartTime で演奏され、pSource で指定されたセグメントが演奏される。
- IDirectMusicComposer8::AutoTransition メソッドは、パフォーマンスへのポインタを受け取り、現在演奏中のセグメントから開発者が指定した 2 番目のセグメントへのトランジションを作成する。続いて、再生の目的でトランジション セグメントと 2 番目のセグメントを自動的に挿入し、これら両方のセグメントへの IDirectMusicSegmentState インターフェイスを返す。トランジションの演奏は、直ちに、または dwFlags パラメータで指定された次の境界から開始される。オプションで、2 番目のセグメントを NULL にもできるが、その場合はトランジションを経て無音に至る。
- IDirectMusicComposer8::ComposeTransition メソッドは、1 番目のセグメントの任意の場所から 2 番目のセグメントの先頭または無音に至るトランジションを作成し、アプリケーションがトランジションを演奏できるように IDirectMusicSegment インターフェイスへのポインタを返す。
AutoTransition と ComposeTransition のどちらのメソッドもパラメータとして、コードマップ、コマンド、および一連のフラグを受け取る。
- コードマップは、通常どおり、セグメントのコード進行を定義するコード トラックを作成するために使用される。
- コマンドとして、DMUS_COMMANDT_TYPES 列挙型のいずれかを指定する。コマンドは、トランジション セグメントのコマンド トラックで要求するパターンのタイプとして、通常のグルーブ パターンと装飾のどちらを使うかを決定する。セグメントを演奏する際に、スタイルから適切なパターンが選択される。
- DMUS_COMPOSEF_FLAGS からフラグを選択し、トランジションの詳細、特にそのタイミングを定義する。DMUS_COMPOSEF_MODULATE フラグを使って、トランジションをある調性から別の調性へ円滑に移行させる。2 番目のセグメントがない場合、無音への変調は不可能なので、このフラグは利用できない。
AutoTransition およびmposeTransition によって作成されたトランジションの長さは、通常 1 小節である。ただし、DMUS_COMPOSEF_LONG フラグが含まれ、スタイル内のエンド装飾が 1 小節よりも長い場合は、1 小節よりも長くなる。また、DMUS_COMMANDT_ENDANDINTRO 型の場合は 2 小節以上になる。