Поделиться через


Сведения о времени

Сведения о времени для события MIDI хранятся в элементе dwDeltaTime структуры MIDIEVENT . Время задается в тактах, как определено в спецификации Standard MIDI Files 1.0 . Длина такта определяется форматом времени и, возможно, темпом, связанным с потоком. Дополнительные сведения о потоках см. в разделе Потоки MIDI.

Тик выражается либо в виде микросекунд на квартал записки, либо в виде тактов времени SMPTE (Общество кино- и телевизионных инженеров). Приложения, которые отправляют сообщения MIDI по отдельности или используют необработанные сообщения MIDI, используют сведения о времени заметок за квартал и темпе для определения длительности деления. Приложения, которые предварительно обрабатывают сообщения MIDI, могут хранить затраченное время как количество используемых единиц SMPTE.

Время квартальной ноты обозначается нулем в бите верхнего слова (бит 15) слова с разделением времени. Оставшаяся часть слова содержит такты за квартал. Темп, связанный с потоком данных MIDI, хранится в единицах (микросекундах на квартал) в соответствии со спецификацией Standard MIDI Files 1.0 . Например, квартальная нота в 4/4 времени, использующая темп 500 000 микросекунд на четверть ноты, играет со скоростью 120 ударов в минуту.

Форматы деления времени SMPTE полностью указывают длину деления без необходимости в данных о темпе. При использовании форматов времени SMPTE последовательности MIDI можно синхронизировать с другими событиями SMPTE, такими как видео или чередующееся аудио. Время SMPTE обозначается 1 в бите высокого порядка (бите 15) слова деления времени. Остальная часть наиболее значимого байта указывает формат SMPTE, используемый в качестве отрицательных значений. Поддерживаемые форматы SMPTE и соответствующие им значения (в скобках) — 24 (–24), 25 (–25), 30 (–30) и 30 drop (–29). Низкий байт слова деления по времени указывает количество тактов на кадр SMPTE.