stringtranslate.com

MIDI-таймкод

Временной код MIDI ( MTC ) включает ту же информацию о времени, что и стандартный временной код SMPTE , в виде серии небольших MIDI- сообщений «четверть кадра». В стандартных сообщениях тайм-кода MIDI не предусмотрены пользовательские биты, и вместо этого для передачи этой информации используются сообщения SysEx . Сообщения четверти кадра передаются последовательностью из восьми сообщений, таким образом, полное значение тайм-кода указывается каждые два кадра. Если поток MIDI-данных почти полностью заполнен, данные MTC могут поступать немного с опозданием по графику, что приводит к появлению небольшого дрожания. Чтобы избежать этого, идеально использовать совершенно отдельный MIDI-порт для данных MTC. Полнокадровые сообщения большего размера, которые инкапсулируют тайм-код в одном сообщении, используются для определения времени, когда тайм-код не работает.

В отличие от стандартного тайм-кода SMPTE, четвертькадровые и полнокадровые сообщения тайм-кода MIDI содержат двухбитовое значение флага, которое идентифицирует скорость тайм-кода, определяя его как:

MTC различает скорость пленки и скорость видео только по скорости продвижения тайм-кода, а не по информации, содержащейся в сообщениях тайм-кода; таким образом, пропуск кадров 29,97 кадров/с представлен как пропуск кадров 30 кадров/с при понижении уровня 0,1%.

MTC позволяет синхронизировать секвенсор или DAW с другими устройствами, которые могут синхронизироваться с MTC, или чтобы эти устройства были «подчиненными» ленточному устройству с чередованием SMPTE. Для этого необходимо использовать преобразователь SMPTE в MTC. Магнитофон может синхронизироваться с сигналом MTC (если он преобразован в SMPTE), если магнитофон может «подчиняться» входящему тайм-коду посредством управления двигателем, что является редкой функцией.

Формат тайм-кода

Временной код MIDI имеет длину 32 бита, из которых 24 используются, а 8 бит не используются и всегда равны нулю. Поскольку сообщения постоянного кода требуют, чтобы старшие биты каждого байта были равны нулю (действительные байты MIDI-данных), на самом деле имеется только 28 доступных битов и 4 запасных бита.

Как и большинство аудиовизуальных тайм-кодов, таких как тайм-код SMPTE , он кодирует только время суток, повторяясь каждые 24 часа. Время указывается в часах, минутах, секундах и кадрах . Может быть 24, 25 или 30 кадров в секунду.

В отличие от большинства других тайм-кодов, компоненты кодируются в прямом двоичном, а не в двоично-десятичном формате .

Каждому компоненту назначается один байт:

Байт 0
0rrhhhhh: Скорость (0–3) и час (0–23).
Байт 1
00mmmmmm: Минута (0–59)
Байт 2
00ssssss: Второй (0–59)
Байт 3
000fffff: Кадр (0–29 или меньше при более низкой частоте кадров )

Код на полный рабочий день

При скачке тайм-кода для синхронизации подключенного оборудования отправляется единый штатный код. Это принимает форму специального глобального системного эксклюзивного сообщения:

F0 7F 7F 01 01 hh mm ss ff F7

Идентификатор производителя 7Fуказывает на универсальное сообщение в реальном времени, канал указывает 7Fна глобальное вещание. Следующий идентификатор 01идентифицирует, что это сообщение типа временного кода, а второй 01указывает, что это сообщение с постоянным кодом. Далее следуют 4 байта временного кода. Хотя MIDI обычно имеет прямой порядок байтов, 4 байта тайм-кода следуют в порядке с прямым порядком байтов, за которыми следует F7байт «конец эксклюзивного».

После перехода таймер останавливается до тех пор, пока не будет получено первое следующее сообщение четверти кадра.

Сообщения в четверти кадра

Когда время идет непрерывно, 32-битный временной код разбивается на 8 4-битных частей, и одна часть передается в каждой четверти кадра. Т.е. 96—120 раз в секунду, в зависимости от частоты кадров. Поскольку для полного сообщения временного кода требуется восемь четвертей кадров, полное время SMPTE обновляется каждые два кадра. Сообщения четверти кадра состоят из байта состояния 0xF1, за которым следует одно 7-битное значение данных: 3 бита для идентификации фрагмента и 4 бита частичного временного кода. Когда время идет вперед, номера частей увеличиваются от 0 до 7; время передачи фрагмента 0 является моментом кодирования, а остальные фрагменты передаются позже.

Если поток MIDI-данных перематывается, номера частей отсчитываются в обратном направлении. Опять же, часть 0 передается в закодированный момент.

Временной код делится с прямым порядком байтов следующим образом:

Смотрите также

Внешние ссылки