計時資訊
MIDI 事件的計時資訊會儲存在 MIDIEVENT 結構的 dwDeltaTime 成員中。 時間是以滴答為單位,根據 標準 MIDI 檔案 1.0 規範所定義。 刻度的長度是由時間格式決定的,並且可能與數據流相關的節奏有關。 如需串流的詳細資訊,請參閱 MIDI 資料流。
刻度可以表示為四分音符的每微秒或 SMPTE (電影和電視工程師協會)時間的刻度。 個別傳送 MIDI 訊息或使用未處理的 MIDI 訊息的應用程式會使用四分音符時間和節奏資訊來判斷節拍持續時間。 預先處理 MIDI 訊息的應用程式可以將經過的時間儲存為所使用的 SMPTE 單位計數。
四分音符時間是以時間分割字的高位元組中的位元 15 為零來表示。 此詞的其餘部分包含每節拍音符的刻度。 與 MIDI 數據流相關聯的速度會以每四分音符的微秒為單位,符合 標準 MIDI 檔案 1.0 規格。 例如,在 4/4 拍子中,每四分音符使用 500,000 微秒的速度,則以每分鐘 120 拍的速度演奏。
SMPTE 時間分割格式完全指定刻度長度,而不需要速度資訊。 在使用 SMPTE 時間格式時,MIDI 序列可以與其他 SMPTE 事件同步處理,例如影片或已加時碼的音訊。 SMPTE 時間是以時間分割字的高位元(位元 15)中的 1 來表示。 其餘的高位元組指定目前使用的SMPTE格式為負值。 支援的 SMPTE 格式及其對應值(括號內表示)為 24(-24)、25(-25)、30(-30),以及 30 drop(-29)。 時間劃分字的低位組會指定每個SMPTE框架的脈衝數目。