Código de tiempo MIDI

ImprimirCitar
El código de tiempo MIDI (MTC) incorpora la misma información de tiempo que el código de tiempo SMPTE estándar como una serie de pequeños 'cuartos de fotograma' mensajes MIDI. No hay provisión para los bits de usuario en los mensajes de código de tiempo MIDI estándar y, en su lugar, se utilizan mensajes SysEx para transportar esta información. Los mensajes de un cuarto de fotograma se transmiten en una secuencia de ocho mensajes, por lo que se especifica un valor de código de tiempo completo cada dos fotogramas. Si el flujo de datos MIDI está funcionando cerca de su capacidad, los datos MTC pueden llegar un poco retrasados, lo que tiene el efecto de introducir una pequeña cantidad de fluctuación. Para evitar esto, es ideal usar un puerto MIDI completamente separado para datos MTC. Los mensajes de cuadro completo más grandes, que encapsulan un cuadro de código de tiempo en un solo mensaje, se utilizan para ubicar un tiempo mientras el código de tiempo no se está ejecutando.

A diferencia del código de tiempo SMPTE estándar, los mensajes de fotograma completo y cuarto de fotograma del código de tiempo MIDI llevan un valor de indicador de dos bits que identifica la velocidad del código de tiempo, especificándolo como:

  • 24 frame/s (tipo estándar para el trabajo cinematográfico)
  • 25 frame/s (valor estándar para video PAL)
  • 29.97 frame/s (drop-frame timecode for NTSC video)
  • 30 frame/s (código de tiempo sin goteo para video NTSC)

MTC distingue entre la velocidad de la película y la velocidad del video solo por la velocidad a la que avanza el código de tiempo, no por la información contenida en los mensajes del código de tiempo; por lo tanto, el dropframe de 29,97 fotogramas/s se representa como dropframe de 30 fotogramas/s con un pulldown del 0,1 %.

MTC permite la sincronización de un secuenciador o DAW con otros dispositivos que pueden sincronizarse con MTC o para que estos dispositivos sean 'esclavos' a una máquina de cinta que está rayada con SMPTE. Para que esto suceda, es necesario emplear un convertidor de SMPTE a MTC. Es posible que una máquina de cintas se sincronice con una señal MTC (si se convierte a SMPTE), si la máquina de cintas es capaz de 'esclavizar' al código de tiempo entrante a través del control del motor, que es una característica poco común.

Formato de código de tiempo

El código de tiempo MIDI tiene una longitud de 32 bits, de los cuales se utilizan 24, mientras que 8 bits no se utilizan y siempre son cero. Debido a que los mensajes de código de tiempo completo requieren que los bits más significativos de cada byte sean cero (bytes de datos MIDI válidos), en realidad solo hay 28 bits disponibles y 4 bits de repuesto.

Como la mayoría de los códigos de tiempo audiovisuales, como el código de tiempo SMPTE, codifica solo la hora del día y se repite cada 24 horas. El tiempo se da en unidades de horas, minutos, segundos y fotogramas. Puede haber 24, 25 o 30 fotogramas por segundo.

A diferencia de la mayoría de los otros códigos de tiempo, los componentes están codificados en binario directo, no en decimal codificado en binario.

A cada componente se le asigna un byte:

Byte 0
0rrhhhhh: Tasa (0–3) y hora (0–23).
  • rr = 00: 24 marcos/s
  • rr = 01: 25 marcos/s
  • rr = 10: 29.97 marcos/s (SMPTE drop-frame timecode)
  • rr = 11: 30 marcos/s
Byte 1
00mmmmmm: Minuto (0-59)
Byte 2
00ssssss: Segundo (0-59)
Byte 3
000fffff: Marco (0–29, o menos a tasas de marcos inferiores)

Código de tiempo completo

Cuando hay un salto en el código de tiempo, se envía un solo código de tiempo completo para sincronizar el equipo conectado. Esto toma la forma de un mensaje especial exclusivo del sistema global:

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

La identificación del fabricante de 7F indica un mensaje universal en tiempo real, el canal de 7F indica que es una transmisión global. El siguiente ID de 01 identifica que este es un mensaje de tipo de código de tiempo, y el segundo 01 indica que es un mensaje de código de tiempo completo. Siguen los 4 bytes del código de tiempo. Aunque MIDI es generalmente little-endian, los 4 bytes del código de tiempo siguen en orden big-endian, seguidos de un F7 "fin de exclusivo" byte.

Después de un salto, el reloj de tiempo se detiene hasta que se recibe el primer mensaje de un cuarto de fotograma siguiente.

Mensajes de cuarto de fotograma

Cuando el tiempo transcurre continuamente, el código de tiempo de 32 bits se divide en 8 partes de 4 bits y se transmite una parte cada cuarto de fotograma. Es decir. 96—120 veces por segundo, dependiendo de la velocidad de cuadro. Dado que se necesitan ocho cuartos de fotogramas para un mensaje de código de tiempo completo, el tiempo SMPTE completo se actualiza cada dos fotogramas. Un mensaje de un cuarto de cuadro consta de un byte de estado de 0xF1, seguido de un único valor de datos de 7 bits: 3 bits para identificar la pieza y 4 bits de código de tiempo parcial. Cuando el tiempo avanza, los números de pieza aumentan de 0 a 7; con el tiempo que se transmite la pieza 0 es el instante codificado, y el resto de piezas se transmiten más tarde.

Si el flujo de datos MIDI se está rebobinando, los números de pieza cuentan hacia atrás. Nuevamente, la pieza 0 se transmite en el momento codificado.

El código de tiempo se divide en little-endian de la siguiente manera:

Piezas de código de tiempo MIDI
PiezaDatos byteSignificado
0 0000 ffffFrame number lsbits
1 0001 000fFrame number msbit
2 0010 ssssSegundo lsbits
3 0011 00ssSegundo msbits
4 0100 mmmmMinute lsbits
5 0101 00mmMinute msbits
6 0110 hhhhHora lsbits
7 0111 0rrhTasa y msbit hora

Contenido relacionado

Nadar

X10 (estándar de la industria)

Doctor Edgerton

Más resultados...
Tamaño del texto:
Copiar