Microsoft DirectX 8.0 (C++)

コードマップの使い方

コードマップ オブジェクトは、基礎となる和音構造と音楽の雰囲気を提供するコードのコレクションを表す。コードマップには、多くの関連するコードによるいくつかのパスが含まれ、コンポーザ エンジンが音楽のピースのコード進行を決定する際に、さまざまな選択が可能となる。

概念については、「コードマップ」を参照すること。

オーサリングされたセグメントの場合、通常、アプリケーションはコードマップに関与する必要はない。コードマップは、固定コード進行を作成するために、オーサリングの段階で使用される。ただし、コードマップを使って、実行時にセグメントを作成したり、既存のセグメントのコード進行を変更することもできる。

スタイルの一部としてコードマップ参照をオーサリングした場合は、IDirectMusicStyle8::GetChordMap メソッドに (オーサーが割り当てた) コードマップの名前を渡して、IDirectMusicChordMap8 インターフェイスへのポインタを取得することができる。IDirectMusicStyle8::EnumChordMap メソッドを使って、特定のコードマップを検索することもできる。また、IDirectMusicStyle8::GetDefaultChordMap メソッドを使って、スタイルのデフォルト コードマップへのポインタを取得することもできる。

  DirectMusic Producer では、スタイル ファイルへのコードマップ参照のオーサリングはサポートされていない。

IDirectMusicComposer8::ComposeSegmentFromTemplate または IDirectMusicComposer8::ComposeSegmentFromShape メソッドを使ってセグメントを作成するときに、アレンジ用のコードマップを設定する。詳細については、「スタイルの使い方」を参照すること。

セグメントを作成した後で、IDirectMusicComposer8::ChangeChordMap メソッドを呼び出して、いつでもコードマップを変更できる。これにより、基本的なリズムやメロディを変えることなく、音楽の雰囲気を変更する効果がある。

各コードマップは、24 の音程から成る基調のスケールを持つ。IDirectMusicChordMap8::GetScale メソッドを使って、スケールの音程を決定することができる。このメソッドの pdwScale パラメータで示される変数の下位 24 ビットは、対応する音程がスケールの一部になっているかどうかに応じて設定または消去される。上位 8 ビットは、スケールのルート音を、0 〜 23 の範囲 (低い C から中間の B) の整数で設定する。