Platform SDK: DirectX |
コード マップ オブジェクトは、基礎となる和音構造と音楽の雰囲気を提供するコードのコレクションを表す。コード マップには、多くの関連するコードによるいくつかのパスが含まれ、コンポーザ エンジンが音楽のピースのコード進行を決定する際に、さまざまな選択が可能となる。
オーサリングされたセグメントの場合、通常、アプリケーションはコード マップに関与する必要はない。コード マップは、固定コード進行を作成するために、オーサリングの段階で使用される。ただし、コード マップを使って、実行時にセグメントを作成したり、既存のセグメントのコード進行を変更することもできる。
DirectMusicChordMap オブジェクトは、コード マップ ファイルかリソースから取得する。詳細については、「DirectMusic ローダー」および「アレンジ用のミュージック ファイル」を参照すること。
スタイルの一部としてコード マップをオーサリングした場合は、IDirectMusicStyle::GetChordMap メソッドに (オーサーが割り当てた) コード マップの名前を渡して、IDirectMusicChordMap インターフェイスへのポインタを取得することができる。IDirectMusicStyle::EnumChordMap メソッドを使って、特定のコード マップを検索することもできる。また、IDirectMusicStyle::GetDefaultChordMap メソッドを使って、スタイルのデフォルト コード マップへのポインタを取得することもできる。
注 : DirectMusic Producer では、スタイル ファイルへのコード マップのオーサリングはサポートされていない。
IDirectMusicComposer::ComposeSegmentFromTemplate または IDirectMusicComposer::ComposeSegmentFromShape メソッドを使ってセグメントを作成するときに、アレンジ用のコード マップを設定する。詳細については、「スタイルの使い方」を参照すること。
セグメントを作成した後で、IDirectMusicComposer::ChangeChordMap メソッドを呼び出して、いつでもコード マップを変更できる。これにより、基本的なリズムやメロディを変えることなく、音楽の雰囲気が変更される。
各コード マップは、24 の音程から成る基調のスケールを持つ。IDirectMusicChordMap::GetScale メソッドを使って、スケールの音程を決定することができる。このメソッドの pdwScale パラメータで示される変数の下位 24 ビットは、対応する音程がスケールの一部になっているかどうかに応じてセットまたは消去される。上位 8 ビットは、スケールのルート音を、0 〜 23 の範囲 (低い C から中間の B) の整数で設定する。
DirectMusicComposer.ComposeSegmentFromTemplate または DirectMusicComposer.ComposeSegmentFromShape を使ってセグメントを作成するときに、アレンジ用のコード マップを設定する。詳細については、「スタイルの使い方」を参照すること。
セグメントを作成した後で、DirectMusicComposer.ChangeChordMap メソッドを呼び出して、いつでもコード マップを変更できる。これにより、基本的なリズムやメロディを変えることなく、音楽の雰囲気が変更される。