IDirectMusicPerformance::MusicToMIDI

This method converts a DirectMusic music value to a MIDI note value.

HRESULT MusicToMIDI(
  WORD wMusicValue,
  DMUS_CHORD_KEY* pChord,
  BYTE bPlayMode,
  BYTE bChordLevel,
  BYTE* pbMIDIValue
);

Parameters

  • wMusicValue
    Music value to convert. For information about music values, see DMUS_NOTE_PMSG.
  • pChord
    Address of a DMUS_CHORD_KEY structure containing information about the chord and key structure to be used in translating the note. This includes the underlying scale. For example, if the chord is a CM7, the note is interpreted against the chord positions for root note C, chord intervals of a major seventh. The structure carries up to eight parallel subchords, with chord intervals, root, scale, and inversion flags for each. It also carries the overall key root.
  • bPlayMode
    Play mode determining how the music value is related to the chord. For a list of values, see DMUS_PLAYMODE_FLAGS.
  • bChordLevel
    Subchord level, defining which subchords can be used. For more information, see DMUS_SUBCHORD.
  • pbMIDIValue
    Address of a variable to receive the MIDI value, in the range from 0 through 127.

Return Values

If the method succeeds, the return value is one of the following. See Remarks.

S_OK
DMUS_S_OVER_CHORD
DMUS_S_DOWN_OCTAVE
DMUS_S_UP_OCTAVE

If it fails, the method can return one of the following error values:

DMUS_E_CANNOT_CONVERT
E_INVALIDARG

Remarks

If the method fails or returns DMUS_S_OVER_CHORD, *pwMIDIValue is not changed.

The method returns DMUS_S_OVER_CHORD if no note has been calculated because the music value has the note at a position higher than the top note of the chord. This applies only to DMUS_PLAYMODE_NORMALCHORD play mode. The caller should not do anything with the note, which is not meant to be played against this chord.

If the return value is DMUS_S_UP_OCTAVE or DMUS_DOWN_OCTAVE, the note conversion generated a note value that is less than 0 or greater than 127, so it has been bumped up or down one or more octaves to be in the proper MIDI range of 0 through 127. This can occur when using any play mode except DMUS_PLAYMODE_FIXED.

Requirements

OS Versions: Windows CE .NET 4.0 and Windows CE .NET 4.1.
Header: Dmusici.h.
Link Library: Dmusic.lib.

See Also

Music Values and MIDI Notes | IDirectMusicPerformance::MIDIToMusic | DMUS_CHORD_KEY | DMUS_NOTE_PMSG | DMUS_PLAYMODE_FLAGS | DMUS_SUBCHORD

 Last updated on Monday, April 12, 2004

© 1992-2002 Microsoft Corporation. All rights reserved.