Platform SDK: DirectX

DMUS_NOTE_PMSG

DMUS_NOTE_PMSG 構造体は、音楽の音符イベント用のデータによって構成されている。

typedef struct DMUS_NOTE_PMSG {
    DMUS_PMSG_PART
    MUSIC_TIME mtDuration;
    WORD       wMusicValue;
    WORD       wMeasure;
    short      nOffset;
    BYTE       bBeat;
    BYTE       bGrid;
    BYTE       bVelocity;
    BYTE       bFlags;
    BYTE       bTimeRange;
    BYTE       bDurRange;
    BYTE       bVelRange;
    BYTE       bPlayModeFlags;
    BYTE       bSubChordLevel;
    BYTE       bMidiValue;
} DMUS_NOTE_PMSG;
DMUS_PMSG_PART
共通のメッセージメンバに展開されるマクロ。DMUS_PMSG を参照すること。
mtDuration
音符の持続時間。
wMusicValue
音符の記述。ほとんどの演奏モードでは、以下に示すように、パックされた 4 ビット値の配列である。
オクターブ
-2 〜 14 の範囲。この音符は、1 オクターブの 12 倍で上下に転調される。
コード位置
0 〜 15 の範囲だが、3 を超えてはならない。コード内の最初の位置は 0 である。
スケール位置
0 〜 15 の範囲。通常は 0 〜 2 の範囲だが、1 音符のコードにし、コードの上のすべてをスケール位置として解釈することも可能。
変化音
-8 〜 7 の範囲だが、通常は -2 〜 2 の範囲。これは、スケールから音符を取り出すオフセットを表す。

固定演奏モードでは、ミュージック値は 0 〜 127 の範囲にある MIDI 音符の値である。

wMeasure
音符が発生する小節。
nOffset
音符が発生するグリッドからのオフセット。ミュージック タイムで表される。
bBeat
この音符が発生する (小節内での ) 拍。
bGrid
この音符が発生する拍からのグリッド オフセット。
bVelocity
音符のベロシティ
bFlags
DMUS_NOTEF_FLAGS を参照すること。
bTimeRange
ランダム時間の範囲。
bDurRange
持続時間をランダム化する範囲。
bVelRange
ベロシティをランダム化する範囲。
bPlayModeFlags
ミュージック値がコードとサブコードにどのように関連するかを決定する演奏モード。値のリストについては、「DMUS_PLAYMODE_FLAGS」を参照すること。
bSubChordLevel
音符が使うサブコード レベル。「DMUS_SUBCHORD」を参照すること。
bMidiValue
wMusicValue から変換された、MIDI 音符の値。

注意

音符を演奏するとき、DMUS_NOTE_PMSG はグラフ、グラフ内のあらゆるツールを経由して、最終的な MIDI 出力ツールに到達する。bFlags メンバが DMUS_NOTEF_NOTEON に設定されていることをツールが認識すると、ツールは MIDI ノートオン メッセージを (DMUS_PMSG パートの dwPChannel メンバに従って) 適切なポートに送信する。次にこのフラグを消去し、タイム スタンプに mtDuration を加え、メッセージを要求する。その結果、適切なタイムに音符は終了する。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicPerformance::SendPMsgミュージック値と MIDI 音符