Microsoft DirectX 8.0 (C++) |
DirectMusic スタイル内のパターンのノートは、固定されたノートではない。これらのノートは、現在の演奏モードとサブコード レベルに応じて現在のコードに転置されたときにだけ実際のノートとなる、ミュージック値である。
ミュージック値は、ノートの意図的な役割を表すものである。たとえば、ミュージック値で、ノートをコードの 2 番目の位置、1 つ上のスケールで演奏するように指定することができる。このミュージック値が特定のコードに適用されると、そのコードの 2 番目で、1 つ上のスケールの適切な MIDI ノートに変換される。
コードに対してノートがどのように解釈されるかは、演奏モードによって異なる。たとえば、モードが DMUS_PLAYMODE_NORMALCHORD の場合、ノートはコードのルート音に基づいて、コードとスケールの音程として解釈される。モードが DMUS_PLAYMODE_FIXEDTOKEY の場合、ノートは線形な値として解釈される。
複数の並行するコード進行を使って複雑な和音を可能にするために、DirectMusic コードは複数のサブコードで構成できる。サブコード レベルは 0 〜 31 の値で、ミュージック値の確立に使用できるコードのサブコードを決定する。各サブコードは、オーサーの定義に従って、1 つまたは複数のレベルで有効である。DirectMusic Producer は、1 つのコードに対して最高 4 つのサブコードをサポートする。
セグメントが演奏されるときに、各ノートはメッセージ構造体にカプセル化される。この構造体は、元のミュージック値および最終的な MIDI ノートと共に、転調で使用される演奏モードとサブコード レベルを指定する。ほとんどのアプリケーションはノートメッセージを直接処理しないが、ツールを使ってこのメッセージを処理し、ノートを変更することができる。たとえば、ツールは特定の演奏モードで転置されるノートを割り込んで取得したり、演奏モードを変更したり、メッセージが渡される前に新しい MIDI 値を計算することができる。
ミュージック値、演奏モード、コード、およびサブコードについては、次のトピックを参照すること。