DirectX SDK

DMUS_PLAYMODE_FLAGS

The DMUS_PLAYMODE_FLAGS are used in various structures for the basic play modes. The play mode determines how a music value is transposed to a MIDI note.

typedef enum enumDMUS_PLAYMODE_FLAGS {
    DMUS_PLAYMODE_KEY_ROOT          = 1,
    DMUS_PLAYMODE_CHORD_ROOT        = 2,
    DMUS_PLAYMODE_SCALE_INTERVALS   = 4,
    DMUS_PLAYMODE_CHORD_INTERVALS   = 8,
    DMUS_PLAYMODE_NONE              = 16,
} DMUS_PLAYMODE_FLAGS;
DMUS_PLAYMODE_KEY_ROOT
Transpose over the key root.
DMUS_PLAYMODE_CHORD_ROOT
Transpose over the chord root.
DMUS_PLAYMODE_SCALE_INTERVALS
Use scale intervals from a scale pattern.
DMUS_PLAYMODE_CHORD_INTERVALS
Use chord intervals from a chord pattern.
DMUS_PLAYMODE_NONE
No mode. Indicates that the parent part's mode should be used.

Remarks

The following defined values represent combinations of play mode flags:

DMUS_PLAYMODE_ALWAYSPLAY
Combination of DMUS_PLAYMODE_SCALE_INTERVALS, DMUS_PLAYMODE_CHORD_INTERVALS, and DMUS_PLAYMODE_CHORD_ROOT. If it is desirable to play a note that is above the top of the chord, this mode finds a position for the note by using intervals from the scale. Essentially, this mode is a combination of the normal and melodic playback modes, in which a failure in normal mode causes a second try in melodic mode.
DMUS_PLAYMODE_FIXED
Interpret the music value as a MIDI value. This is defined as 0 and signifies the absence of other flags. This flag is used for drums, sound effects, and sequenced notes that should not be transposed by the chord or scale.
DMUS_PLAYMODE_FIXEDTOCHORD
Same as DMUS_PLAYMODE_CHORD_ROOT. The music value is a fixed MIDI value, but it is transposed over the chord root.
DMUS_PLAYMODE_FIXEDTOKEY
Same as DMUS_PLAYMODE_KEY_ROOT. The music value is a fixed MIDI value, but it is transposed over the key root.
DMUS_PLAYMODE_MELODIC
Combination of DMUS_PLAYMODE_CHORD_ROOT and DMUS_PLAYMODE_SCALE_INTERVALS. The chord root is used, but the notes only track the intervals in the scale. The key root and chord intervals are ignored. This is useful for melodic lines that play relative to the chord root.
DMUS_PLAYMODE_NORMALCHORD
Combination of DMUS_PLAYMODE_CHORD_ROOT and DMUS_PLAYMODE_CHORD_INTERVALS. This is the prevalent playback mode. The notes track the intervals in the chord, which is based on the chord root. If there is a scale component to the music value, the additional intervals are pulled from the scale and added. If the chord does not have an interval to match the chord component of the music value, the note is silent.
DMUS_PLAYMODE_PEDALPOINT
Combination of DMUS_PLAYMODE_KEY_ROOT and DMUS_PLAYMODE_SCALE_INTERVALS. The key root is used, and the notes only track the intervals in the scale. The chord root and intervals are ignored. This is useful for melodic lines that play relative to the key root.

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 dmusici.h.

See Also

IDirectMusicPerformance::MIDIToMusic, IDirectMusicPerformance::MusicToMIDI, DMUS_NOTE_PMSG, DMUS_IO_STYLENOTE, DMUS_IO_STYLEPART, Music Values and MIDI Notes