DirectX SDK

DMUS_IO_STYLEPART

The DMUS_IO_STYLEPART structure contains information about a musical part. It is used in the Style Form.

typedef struct _DMUS_IO_STYLEPART {
    DMUS_IO_TIMESIG  timeSig;
    DWORD            dwVariationChoices[32];
    GUID             guidPartID;
    WORD             wNbrMeasures;
    BYTE             bPlayModeFlags;
    BYTE             bInvertUpper;
    BYTE             bInvertLower;
} DMUS_IO_STYLEPART;
timeSig
DMUS_IO_TIMESIG structure containing a time signature to override the style's default time signature.
dwVariationChoices
Each WORD corresponds to one of 32 possible variations. The flags set in each WORD indicate which types of chord are supported by that variation (see Remarks). The following flags are defined:
DMUS_VARIATIONF_MAJOR
Seven positions in the scale for major chords.
DMUS_VARIATIONF_MINOR
Seven positions in the scale for minor chords.
DMUS_VARIATIONF_OTHER
Seven positions in the scale for other chords.
DMUS_VARIATIONF_ROOT_SCALE
Handles chord roots in the scale.
DMUS_VARIATIONF_ROOT_FLAT
Handles flat chord roots (based on scale notes).
DMUS_VARIATIONF_ROOT_SHARP
Handles sharp chord roots (based on scale notes).
DMUS_VARIATIONF_TYPE_TRIAD
Handles simple chords for triads.
DMUS_VARIATIONF_TYPE_6AND7
Handles simple chords for 6 and 7.
DMUS_VARIATIONF_TYPE_COMPLEX
Handles complex chords.
DMUS_VARIATIONF_DEST_TO1
Handles transitions to the 1 chord.
DMUS_VARIATIONF_DEST_TO5
Handles transitions to the 5 chord.
DMUS_VARIATIONF_MODES
DMUS_VARIATIONF_IMA25_MODE
DMUS_VARIATIONF_DMUS_MODE
One of these flags is set to indicate the mode. For DirectMusic, this value should always be DMUS_VARIATIONF_DMUS_MODE.
guidPartID
Unique identifier of the part.
wNbrMeasures
Length of the part, in measures.
bPlayModeFlags
Flags to define the play mode. For a list of values, see DMUS_PLAYMODE_FLAGS.
bInvertUpper
Upper limit of inversion.
bInvertLower
Lower limit of inversion.

Remarks

The flags in dwVariationChoices determine the types of chords supported by a given variation in DirectMusic mode. The first seven flags (bits 1 through 7) are set if the variation supports major chords rooted in scale positions. For example, if bits 1, 2, and 4 are set, the variation supports major chords rooted in the tonic, second, and fourth scale positions. The next seven flags serve the same purpose, but for minor chords, and the following seven flags serve the same purpose for chords that are not major or minor (for example, SUS 4 chords). Bits 22, 23, and 24 are set if the variation supports chords rooted in the scale, chords rooted sharp of scale tones, and chords rooted flat of scale tones, respectively. For example, to support a C# minor chord in the scale of C major, bits 8 (for tonic minor) and 24 (for sharp) must be set. Bits 25, 26, and 27 handle chords that are triads, sixth or seventh chords, and chords with extensions, respectively. Bits 28 and 29 handle chords that are followed by tonic and dominant chords, respectively.

Requirements

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