Microsoft DirectX 8.0 (Visual Basic)

DMUS_CURVE_PMSG

Contains information about a curve message.

Type DMUS_CURVE_PMSG
    beat As Byte
    ccData As Byte
    curveShape As Byte
    endValue As Integer
    flags As Byte
    grid As Byte
    measure As Integer
    MergeIndex As Integer
    mtDuration As Long
    mtOriginalStart As Long
    mtResetDuration As Long
    offset As Integer
    ParamType As Integer
    resetValue As Integer
    startValue As Integer
    type As Byte
End Type

Members

beat
Beat count (within a measure) at which this curve occurs.
ccData
Controller number, if type is DMUS_CURVET_CCCURVE.
curveShape
Shape of the curve. This can be one of the values from the CONST_DMUS_CURVES enumeration.
endValue
End value of the curve.
flags
Flags. Can be 0 or one or more constants from the CONST_DMUS_CURVE_FLAGS enumeration.
grid
Grid offset from a beat at which this curve occurs. In application-created messages, should be 0.
measure
Measure in which this curve occurs. In application-created messages, should be 0.
MergeIndex
Merge index. Supported for pitch bend, volume, and expression controllers. See Remarks.
mtDuration
How long the curve lasts. This value is in music time unless DMUS_PMSGF_LOCKTOREFTIME is present in the flags parameter of DirectMusicPerformance8.SendCurvePMSG, in which case it is in milliseconds and is unaffected by a change in tempo.
mtOriginalStart
Original start time, in music time. In application-created messages, must be 0.
mtResetDuration
Length of time after the end of the curve during which a reset can take place in response to an invalidation. Ignored if DMUS_CURVE_RESET is not in the flags member. This value is in music time unless DMUS_PMSGF_LOCKTOREFTIME is present in the flags parameter of DirectMusicPerformance8.SendCurvePMSG, in which case it is in milliseconds and is unaffected by a change in tempo.
offset
Offset from a grid at which this curve occurs, in music time.
ParamType
MIDI parameter number. See Remarks.
resetValue
Value to set after a flush or invalidation.
startValue
Start value of the curve.
type
Type of curve. This can be one of the values from the CONST_DMUS_CURVET enumeration.

Remarks

An RPN or NRPN curve type in ParamType is stored as two bytes with seven significant bits. For example, if the MSB is 0x23 and the LSB is 0x74, the value in ParamType is 0x2374.

Data in startValue, endValue, and resetValue is limited to 14 bits. For MIDI data consisting of two seven-bit bytes, the value is stored as a word with the upper two bits empty.

All curves with MergeIndex of 0 override each other. If the merge index is another value, the values generated by the curve are added to the values for merge index 0. For example, if an application uses curves with indexes of 0 and 3, the 0 curves always replace each other but add to the 3 curves, and the 3 curves also always replace each other and add to the 0 curves.

See Also

DirectMusicPerformance8.SendCurvePMSG