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 音符