MIDI таймкод - MIDI timecode - Wikipedia

Временной код 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
0ррххххх: Скорость (0–3) и час (0–23).
Байт 1
00мммммм: Минута (0–59)
Байт 2
00сссссс: Второй (0–59)
Байт 3
000fffff: Рамка (0–29 или меньше в нижнем частота кадров )

Полный код времени

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

F0 7F 7F 01 01 чч мм сс фф F7

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

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

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

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

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

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

Части временного кода MIDI
Кусок #Байт данныхЗначимость
00000 ффффКоличество кадров лсбит
10001 000fНомер кадра msbit
20010 ssssВторой лсбит
30011 00ссВторой мбит
40100 ммммМинутные биты
50101 00 ммМинутные биты
60110 чхххЧас лсбит
70111 0rrhСкорость и час msbit

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

внешняя ссылка