Microsoft DirectX 8.0 (C++)

IDirectMusicPerformance8::MusicToMIDI

DirectMusic ミュージック値を MIDI ノートの値に変換する。

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

パラメータ

wMusicValue
変換するミュージック値。ミュージック値については、「DMUS_NOTE_PMSG」を参照すること。
pChord
ノートの変換で使用されるコードとキーの構造に関する情報を含む DMUS_CHORD_KEY 構造体のアドレス。これには、ベース コードのスケールも含まれる。たとえば、コードが CM7 の場合、ノートはルート音 C、メジャー 7 度のコード音程に照らして解釈される。この構造体は、DMUS_MAXSUBCHORD 平行サブコードを、それぞれのコード音程、ルート音、スケール、および転回フラグと共に保持する。また、全体的なキーのルート音も保持する。
bPlayMode
ミュージック値がコードにどのように関連するかを決定する演奏モード。値のリストについては、「DMUS_PLAYMODE_FLAGS」を参照すること。
bChordLevel
使用できるサブコードを定義するサブコード レベル。「DMUS_SUBCHORD」を参照すること。
pbMIDIValue
MIDI 値を受け取る変数のアドレス。0 〜 127 の範囲で指定する。

戻り値

成功した場合は、次のいずれかの値を返す。「注意」を参照すること。

S_OK
DMUS_S_OVER_CHORD
DMUS_S_DOWN_OCTAVE
DMUS_S_UP_OCTAVE

失敗した場合は、次のいずれかのエラー値を返す。

DMUS_E_CANNOT_CONVERT
E_INVALIDARG

注意

メソッドが失敗した場合または DMUS_S_OVER_CHORD を返す場合、*pwMIDIValue は変更されない。

ミュージック値がコードの最高音より高い位置にあるノートを持っているため、ノートが計算されない場合は、DMUS_S_OVER_CHORD を返す。これは、DMUS_PLAYMODE_NORMALCHORD 演奏モードだけに適用される。アプリケーションはノートに対して何の処理もしてはならない。ノートはこのコードに対して演奏されるものではない。

戻り値が DMUS_S_UP_OCTAVE または DMUS_DOWN_OCTAVE の場合、ノート変換では 0 未満または 128 以上のノートの値が生成されるため、0 〜 127 の適切な MIDI 範囲に収まるように、1 または複数オクターブ分だけ上または下に移動される。これは、DMUS_PLAYMODE_FIXED 以外の演奏モードを使うときに発生することがある。

動作環境

  ヘッダー : dmusici.h で宣言。

参照

IDirectMusicPerformance8::MIDIToMusicミュージック値と MIDI ノート