Microsoft DirectX 8.0 (C++)

DMUS_NOTE_PMSG

MIDI ノートのメッセージ データを保持する。

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;
    char       cTranspose;
} DMUS_NOTE_PMSG;
DMUS_PMSG_PART
共通のメッセージ メンバに展開されるマクロ。「DMUS_PMSG」を参照すること。
mtDuration
ノートの持続時間。
wMusicValue
ノートの記述。ほとんどの演奏モードでは、以下に示すように、パックされた 4 ビット値の配列である。
Octave
− 2 〜 14 の範囲。このノートは、1 オクターブの 12 倍で上下に転置される。
Chord position
0 〜 15 の範囲だが、3 を超えてはならない。コード内の最初の位置は 0 である。
Scale position
0 〜 15 の範囲。通常は 0 〜 2 の範囲だが、1 ノートのコードにし、コードの上のすべてをスケール位置として解釈することも可能。
Accidental
− 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 ノートの値。
cTranspose
wMusicValue からの変換後に bMidiValue に追加する転調。

注意

出力ツールが bFlags の DMUS_NOTEF_NOTEON でメッセージを受け取る場合は、MIDI ノートオン メッセージがシンセサイザに送られる。次に DMUS_NOTEF_NOTEON フラグを消去し、タイム スタンプに mtDuration を加え、メッセージを要求する。その結果、適切なタイムにノートは終了する。

動作環境

  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicPerformance8::SendPMsgミュージック値と MIDI ノート