Microsoft DirectX 8.1 (Visual Basic)

DMUS_CURVE_PMSG

The DMUS_CURVE_PMSG type contains information about a curve message.

Syntax

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 transpose, pitch bend, volume, expression, pan, filter, mod wheel, chorus, and reverb 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