タイミング情報
MIDI イベントのタイミング情報は、MIDIEVENT 構造体の dwDeltaTime メンバーに格納されます。 標準 MIDI ファイル 1.0 仕様で定義されているように、時間はティック単位で指定されます。 ティックの長さは、時間形式と、ストリームに関連付けられているテンポによって定義されます。 ストリームの詳細については、「 MIDI ストリーム」を参照してください。
ティックは、4 分の 1 のノートあたりのマイクロ秒または SMPTE (映画テレビエンジニア協会) 時間のティックとして表されます。 MIDI メッセージを個別に送信するアプリケーションや、未処理の MIDI メッセージを使用するアプリケーションでは、4 分の 1 のノート時間とテンポ情報を使用してティックの継続時間を決定します。 MIDI メッセージを前処理するアプリケーションでは、使用されている SMPTE ユニットの数として経過時間を格納できます。
4 分の 1 のノート時間は、時間除算ワードの上位ワード ビット (ビット 15) にゼロで示されます。 単語の残りの部分には、四半期ごとの目盛りが含まれています。 MIDI データのストリームに関連付けられたテンポは、 Standard MIDI Files 1.0 仕様と一致する単位 (4 分の 1 あたりのマイクロ秒) 単位で保持されます。 たとえば、4/4 時間の 4 分の 1 のノートで、1 分あたり 500,000 マイクロ秒のテンポを使用すると、1 分あたり 120 回の速度で再生されます。
SMPTEの時間分割フォーマットは、テンポ情報を必要とせずにティックの長さを完全に指定します。 SMPTE 時間形式を使用する場合、MIDI シーケンスは、ビデオやストライプ オーディオなどの他の SMPTE イベントと同期できます。 SMPTE 時刻は、時間除算ワードの上位ビット (ビット 15) に 1 を付けた状態で示されます。 最上位バイトの残りの部分では、使用中の SMPTE 形式を負の値として指定します。 サポートされている SMPTE 形式とそれに対応する値 (かっこ内) は、24 (-24)、25 (-25)、30 (-30)、および 30 ドロップ (-29) です。 時間除算ワードの下位バイトは、SMPTE フレームあたりのティック数を指定します。