MIDI-таймкод
Тайм-код MIDI ( MTC ) включает в себя ту же информацию о синхронизации, что и стандартный тайм-код SMPTE, в виде серии небольших MIDI- сообщений «четверть кадра». В стандартных сообщениях тайм-кода MIDI не предусмотрены пользовательские биты, и SysEx вместо этого для передачи этой информации используются сообщения . Сообщения четверти кадра передаются последовательностью из восьми сообщений, таким образом, полное значение тайм-кода указывается каждые два кадра. Если поток MIDI-данных почти заполнен, данные MTC могут поступать немного с опозданием по графику, что приводит к появлению небольшого дрожания. Чтобы избежать этого, идеально использовать совершенно отдельный MIDI-порт для данных MTC. Полнокадровые сообщения большего размера, которые инкапсулируют тайм-код в одном сообщении, используются для определения времени, когда тайм-код не работает.
В отличие от стандартного тайм-кода SMPTE, четвертькадровые и полнокадровые сообщения тайм-кода MIDI содержат двухбитовое значение флага, которое идентифицирует скорость тайм-кода, определяя его как:
- 24 кадра/с (стандартная скорость для кинопроизводства )
- 25 кадров/с (стандартная скорость для PAL ) видео
- 29,97 кадра/с (тайм-код с пропуском кадров для NTSC ) видео
- 30 кадров/с (тайм-код без пропуска для видео NTSC)
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).rr = 00
: 24 кадра/сrr = 01
: 25 кадров/сrr = 10
: 29,97 кадров/с ( таймкод с пропуском кадров SMPTE )rr = 11
: 30 кадров/с
- Байт 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 передается в закодированный момент.
Временной код делится с прямым порядком байтов следующим образом:
Кусок # | Обмен данными | Значение |
---|---|---|
0 | 0000 ffff |
Номер кадра lsbits |
1 | 0001 000f |
Номер кадра мбит |
2 | 0010 ssss |
Второй lsbits |
3 | 0011 00ss |
Второй мбит |
4 | 0100 mmmm |
Минутные биты |
5 | 0101 00mm |
Минутные мбит |
6 | 0110 hhhh |
лсбит часа |
7 | 0111 0rrh |
Скорость и час мбит |
См. также
[ редактировать ]- Встроенный тайм-код AES-EBU
- Записанный тайм-код
- тайм-код CTL
- DIN-синхронизация
- Линейный тайм-код
- MIDI-бит тактового сигнала
- Перезаписываемый потребительский тайм-код
- Тайм-код вертикального интервала