Articulo de referencia

Código de tiempo MIDI

El código de tiempo MIDI ( MTC ) incorpora la misma información de temporización que el código de tiempo SMPTE estándar como una serie de pequeños mensajes MIDI de "cuarto de cu...

El código de tiempo MIDI ( MTC ) incorpora la misma información de temporización que el código de tiempo SMPTE estándar como una serie de pequeños mensajes MIDI de "cuarto de cuadro" . No hay ninguna disposició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 cuarto de cuadro se transmiten en una secuencia de ocho mensajes, por lo que se especifica un valor de código de tiempo completo cada dos cuadros. Si el flujo de datos MIDI se está ejecutando cerca de su capacidad máxima, 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 utilizar un puerto MIDI completamente separado para los 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 localizar un momento en el que el código de tiempo no se está ejecutando.

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

  • 24 cuadros por segundo (velocidad estándar para trabajos cinematográficos )
  • 25 cuadros por segundo (velocidad estándar para vídeo PAL )
  • 29,97 cuadros/s (código de tiempo de eliminación de cuadros para vídeo NTSC )
  • 30 cuadros por segundo (código de tiempo sin pérdida para video NTSC)

MTC distingue entre velocidad de película y velocidad de 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, una caída de 29,97 cuadros/s se representa como una caída de 30 cuadros/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 que estos dispositivos se "esclavicen" a una máquina de cinta que esté conectada a SMPTE. Para que esto suceda, se debe utilizar un conversor de SMPTE a MTC. Es posible que una máquina de cinta se sincronice con una señal MTC (si se convierte a SMPTE), si la máquina de cinta puede "esclavizarse" al código de tiempo entrante a través del control del motor, lo 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 24 se utilizan, 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.

Al igual que la mayoría de los códigos de tiempo audiovisuales, como el código de tiempo SMPTE , codifica únicamente la hora del día y se repite cada 24 horas. El tiempo se expresa 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: Tarifa (0–3) y hora (0–23).
Byte 1
00mmmmmm: Minuto (0–59)
Byte 2
00ssssss: Segundo (0–59)
Byte 3
000fffff: Fotogramas (0–29, o menos a velocidades de fotogramas más bajas )

Código de tiempo completo

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

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

El ID del fabricante de 7Findica un mensaje universal en tiempo real, el canal de 7Findica que es una transmisión global. El siguiente ID de 01identifica que se trata de un mensaje de tipo código de tiempo y el segundo 01indica que es un mensaje de código de tiempo completo. A continuación, se muestran los 4 bytes del código de tiempo. Aunque MIDI generalmente es little-endian, los 4 bytes del código de tiempo siguen en orden big-endian, seguidos por un F7byte de "fin de exclusivo".

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

Mensajes de cuarto de marco

Cuando el tiempo transcurre de forma continua, el código de tiempo de 32 bits se divide en 8 fragmentos de 4 bits, y se transmite un fragmento cada cuarto de trama, es decir, entre 96 y 120 veces por segundo, según la velocidad de trama. Como se necesitan ocho cuartos de trama para un mensaje de código de tiempo completo, el tiempo SMPTE completo se actualiza cada dos tramas. Un mensaje de un cuarto de trama consta de un byte de estado de 0xF1, seguido de un único valor de datos de 7 bits: 3 bits para identificar el fragmento y 4 bits de código de tiempo parcial. Cuando el tiempo transcurre hacia delante, los números de los fragmentos se incrementan de 0 a 7; con el tiempo en que se transmite el fragmento 0 es el instante codificado, y los fragmentos restantes se transmiten más tarde.

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

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

Véase también

  • Información del código de tiempo MIDI
  • Especificación del código de tiempo MIDI 12 de febrero de 1987
  • Guía de especificaciones del software MIDI
Retrieved from "https://en.wikipedia.org/w/index.php?title=MIDI_timecode&oldid=1237188420"