DMUS_CURVE_PMSG

DMUS_CURVE_PMSG is a message structure that represents a curve (for example, a sequence of continuous controller events).

typedef struct DMUS_CURVE_PMSG {
    DMUS_PMSG_PART
    MUSIC_TIME mtDuration;
    MUSIC_TIME mtOriginalStart;
    MUSIC_TIME mtResetDuration;
    short      nStartValue;
    short      nEndValue;
    short      nResetValue;
    WORD       wMeasure;
    short      nOffset;
    BYTE       bBeat;
    BYTE       bGrid;
    BYTE       bType;
    BYTE       bCurveShape;
    BYTE       bCCData;
    BYTE       bFlags;
} DMUS_CURVE_PMSG;
 

Members

DMUS_PMSG_PART
Macro for common message members. See DMUS_PMSG.
mtDuration
How long the curve lasts.
mtOriginalStart
Must be set to either zero when this message is created or to the original time of the curve.
mtResetDuration
How long after the curve is finished until the reset value is set.
nStartValue
The curve's start value.
nEndValue
The curve's end value.
nResetValue
Curve's reset value, set after mtResetDuration or upon a flush or invalidation.
wMeasure
Measure in which this curve occurs.
nOffset
Offset from grid at which this curve occurs, in music time.
bBeat
Beat (in measure) at which this curve occurs.
bGrid
Grid offset from beat at which this curve occurs.
bType
Type of curve. This can be one of the following values:

DMUS_CURVET_PBCURVE
DMUS_CURVET_CCCURVE
DMUS_CURVET_MATCURVE
DMUS_CURVET_PATCURVE

bCurveShape
Shape of curve. This can be one of the following values:

DMUS_CURVES_LINEAR
DMUS_CURVES_INSTANT
DMUS_CURVES_EXP
DMUS_CURVES_LOG
DMUS_CURVES_SINE

bCCData
CC number if this is a control change type.
bFlags
Set to DMUS_CURVE_RESET if the nResetValue must be set when the time is reached or an invalidation occurs because of a transition. If 0, the curve stays permanently at the new value. All other bits are reserved.

QuickInfo

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
  Header: Declared in dmusici.h.

See Also

IDirectMusicPerformance::SendPMsg