Platform SDK: DirectX

DMUS_NOTE_PMSG

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

Type DMUS_NOTE_PMSG
    beat as Byte
    durRange As Byte
    flags As Byte
    grid As Byte
    measure As Integer
    midiValue As Byte
    mtDuration As Long
    musicValue As Integer
    offset As Integer
    playModeFlags As Byte
    subChordLevel As Byte
    timeRange As Byte
    velocity As Byte
    velRange As Byte
End Type

メンバ

beat
この音符が発生する (小節内の) 拍数。
durRange
ランダム持続時間の範囲。
flags
DMUS_NOTEF_NOTEON に設定しなければならない。「注意」を参照すること。
grid
この音符が発生する拍からのグリッド オフセット。
measure
音符が発生する小節。
midiValue
musicValue から変換された MIDI 音符の値。
mtDuration
音符の持続時間。
musicValue
音符の記述。ほとんどの演奏モードでは、以下に示すように、パックされた 4 ビット値の配列である。

-2 〜 14 の範囲のオクターブ。この音符は、1 オクターブの 12 倍で上下に転調される。

0 〜 15 の範囲のコード位置。ただし、3 を超えてはならない。コード内の最初の位置は 0 である。

0 〜 15 の範囲のスケール位置。通常は 0 〜 2 の範囲だが、1 音符のコードにし、コードの上のすべてをスケール位置として解釈することも可能。

-8 〜 7 の範囲の変化音。通常は -2 〜 2 の範囲。これは、スケールから音符を取り出すオフセットを表す。

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

offset
音符が発生するグリッドからのオフセット。ミュージック タイムで指定する。
playModeFlags
ミュージック値がコードとサブコードにどのように関連するかを決定する演奏モード。値のリストについては、「CONST_DMUS_PLAYMODE_FLAGS」を参照すること。
subChordLevel
音符が使用するサブコード レベル。
timeRange
ランダム時間の範囲。
velocity
音符のベロシティ。
velRange
ベロシティをランダム化する範囲。

注意

音符メッセージを送信するアプリケーションは、flagsmidiValuemtDuration、および velocity の各メンバだけに値を提供しなければならない。その他のメンバはツールだけによって利用される。ツールは DirectX for Visual Basic でサポートされていない。

アプリケーションは通常、flags を DMUS_NOTEF_NOTEON に設定する。アプリケーションはノートオフ メッセージを送信する必要はない。DirectMusic 出力ツールは、DMUS_NOTE_PMSG を受け取り、DMUS_NOTEF_NOTEON が設定されていることを認識すると、フラグを消去し、タイム スタンプに mtDuration を加え、メッセージを要求する。その結果、適切なタイムに音符は終了する。

ただし、アプリケーションは、flags が 0 にセットされた同じチャンネル上の同じ音符を送信することによって、音符を途中で停止することができる。

参照

DirectMusicPerformance.SendNotePMSGミュージック値と MIDI 音符