Преобразование MIDI клещей в фактические секунды воспроизведения

StackOverflow https://stackoverflow.com/questions/2038313

  •  19-09-2019
  •  | 
  •  

Вопрос

Я хочу знать, как преобразовать тика MIDI в фактические секунды воспроизведения.

Например, если MIDI PPQ (импульсы в квартал) составляет 1120, как бы я преобразовал его в секунды для воспроизведения в реальном мире?

Это было полезно?

Решение

Формула есть 60000 / (BPM * PPQ) (миллисекунды).

Где BPM - темп трассы (удары в минуту).

(т.е. на треке 120 ударов в минуту будет проведено время (60000 / (120 * 192)) или 2,604 мс для 1 тика.

Если вы не знаете BPM, вам сначала придется определить это. Миди времена полностью зависят от темпа трека.

Другие советы

Вам нужны две части информации:

  • Ппк (импульсы в четверть примечания), которая определена в заголовке MIDI -файла, один раз.
  • Темп (в микросекундах в четверть примечание), которая определяется «Установить темп» мета -события и может измениться во время музыкального произведения.

Клеки могут быть преобразованы в воспроизведение секунд следующим образом:

ticks_per_quarter = <PPQ from the header>
µs_per_quarter = <Tempo in latest Set Tempo event>
µs_per_tick = µs_per_quarter / ticks_per_quarter
seconds_per_tick = µs_per_tick / 1.000.000
seconds = ticks * seconds_per_tick

Обратите внимание, что PPQ также называется «подразделение» или «тика» в четверть примечания »в документ Связано выше.

Обратите внимание, что темп обычно представлен в BPM (частота), но RAW MIDI представляет его в µS в квартал (период).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top