MIDIEVENT 構造体 (mmeapi.h)
MIDIEVENT 構造体は、ストリーム バッファー内の MIDI イベントを表します。
構文
typedef struct midievent_tag {
DWORD dwDeltaTime;
DWORD dwStreamID;
DWORD dwEvent;
DWORD dwParms[1];
} MIDIEVENT;
メンバー
dwDeltaTime
前のイベントと現在のイベントの間の MIDI ティック単位の時間。 ティックの長さは、時間形式と、ストリームに関連付けられているテンポによって定義されます。 (定義は、標準 MIDI ファイルのティックの仕様と同じです)。
dwStreamID
予約;は 0 である必要があります。
dwEvent
イベント コードとイベント パラメーターまたは長さ。 この情報を解析するには、 MEVT_EVENTTYPE マクロと MEVT_EVENTPARM マクロを使用します。 「解説」を参照してください。
dwParms[1]
dwEvent がMEVT_F_LONGとバッファーの長さを指定する場合、このメンバーには イベントのパラメーターが含まれます。 DWORD 値の整数が格納されるように、このパラメーター データにゼロを埋め込む必要があります。 たとえば、イベント データの長さが 5 バイトの場合は、3 つのパッド バイトが合計 8 バイトのデータの後に続く必要があります。 この場合、 dwEvent の下位 24 ビットには値 5 が含まれます。
dwEvent でMEVT_F_SHORTが指定されている場合は、ストリーム バッファーでこのメンバーを使用しないでください。
注釈
dwEvent の高バイトには、フラグとイベント コードが含まれています。 MEVT_F_LONG または MEVT_F_SHORT フラグを指定する必要があります。 MEVT_F_CALLBACK フラグは省略可能です。 次の表では、これらのフラグについて説明します。
フラグ | 説明 |
---|---|
MEVT_F_CALLBACK | イベントが実行されるときに、システムによってコールバックが生成されます。 |
MEVT_F_LONG | イベントは長いイベントです。 dwEvent の下位 24 ビットには、dwParms に含まれるイベント パラメーターの長さが含まれています。 |
MEVT_F_SHORT | イベントは短いイベントです。 イベント パラメーターは、dwEvent の下位 24 ビットに含まれています。 |
上位バイトの残りの部分には、次のいずれかのイベント コードが含まれています。
イベント コード | 意味 |
---|---|
MEVT_COMMENT | Long イベント。 イベント データは無視されます。 このイベントは、ストリーム データをストリーム形式のファイルに格納する場合にプログラムまたはシーケンサーを作成するのに役立つ可能性があるストリームに関する解説情報を格納することを目的としています。 このデータのバッファーでは、0 バイトはコメント クラスを識別し、後続のバイトにはコメント データが含まれます。 |
MEVT_LONGMSG | Long イベント。 イベント データは逐語的に送信されます。 イベント データはシステム排他データと見なされます。つまり、イベントが実行されると実行中の状態がクリアされ、以前のイベントからの実行中の状態は、イベント データ内のチャネル イベントには適用されません。 このイベントを使用してチャネル メッセージのグループを同時に送信することはお勧めしません。代わりに、デルタ時間が 0 のMEVT_SHORTMSG イベントのセットを使用する必要があります。 |
MEVT_NOP | 短いイベント。 このイベントはプレースホルダーです。それは何もしません。 下位 24 ビットは無視されます。 dwEvent で MEVT_F_CALLBACKが設定されている場合でも、このイベントはコールバックを生成します。 |
MEVT_SHORTMSG | 短いイベント。 dwEvent の下位 24 ビットのデータは、MIDI ショート メッセージです。 (短いメッセージを DWORD 値にパックする方法の説明については、midiOutShortMsg 関数を参照してください)。 |
MEVT_TEMPO | 短いイベント。 dwEvent の下位 24 ビットのデータには、イベントをフォローするための新しいテンポが含まれています。 テンポは、MIDI ファイル内のテンポ変更メタイベントの場合と同じ形式で指定されます。つまり、1/4 ノートあたりマイクロ秒単位です。 (ストリームに指定された時刻形式が SMPTE 時刻の場合、このイベントは無効になります)。 |
MEVT_VERSION | Long イベント。 イベント・データには、MIDISTRMBUFFVER 構造体が含まれている必要があります。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
Header | mmeapi.h (Windows.h を含む) |
こちらもご覧ください
MIDI (Musical Instrument Digital Interface : 楽器デジタル インターフェイス)