Articulo de referencia

Control de máquina MIDI

MIDI Machine Control (MMC), un subconjunto de la especificación MIDI , proporciona comandos específicos para controlar equipos de grabación como grabadoras multipista. Los mensa...

MIDI Machine Control (MMC), un subconjunto de la especificación MIDI , proporciona comandos específicos para controlar equipos de grabación como grabadoras multipista. Los mensajes MMC se pueden enviar a través de un cable MIDI estándar para el control remoto de funciones como Reproducir, Avance rápido, Rebobinar, Detener, Pausar y Grabar. Estos son mensajes " System Exclusive " (SysEx), específicamente mensajes SysEx universales en tiempo real.

Formato de mensaje MIDI Universal Real Time SysEx

MIDI incluye mensajes exclusivos del sistema (SysEx), que son extensiones del formato MIDI implementadas por los fabricantes de MIDI. Algunas de estas extensiones, las "Universales", son un conjunto de las mismas funciones que los distintos fabricantes pueden implementar de forma diferente en detalle. Algunas no son en tiempo real , con una sincronización de entrega fiable. Otras sí lo son, como MMC, por lo que se entregan de forma más fiable cuando se esperan. Los mensajes SysEx comienzan con F0 ( hexadecimal ) y terminan con F7. Los mensajes SysEx universales en tiempo real comienzan con F0, seguidos de 7F, e incluyen otros campos antes del F7 final.

A continuación se muestra el formato de mensaje SysEx universal en tiempo real (todos los números en formato hexadecimal):

F0 7F <Device-ID> <Sub-ID#1> [<Sub-ID#2> [<parameters>]] F7

dónde Device-IDes:

MMC device's ID#; value 00-7F (7F = all devices); AKA "channel number"

y Sub-ID#1:es uno de los siguientes valores. Los valores en negrita están relacionados con el control de máquina MIDI:

Formato de mensaje MMC

Un mensaje MMC es un comando MMC (Sub-ID#1=06) o una respuesta MMC (Sub-ID#1=07). Como mensaje SysEx, tiene el siguiente formato (todos los números en hexadecimal):

F0 7F <Device-ID> <06|07> [<Sub-ID#2> [<parameters>]] F7
Device-ID: MMC device's ID#; value 00-7F (7F = all devices); AKA "channel number"
Sub-ID#1: 06 = comando Sub-ID#2: 01 Parada 02 Reproducir 03 Reproducción diferida (reproducir después de que ya no esté ocupado) 04 Avance rápido 05 Rebobinar 06 Grabación estroboscópica (también conocida como [[Punch in/out|Punch In]]) 07 Salida de registro (también conocido como [[Punch out (música)|Punch out]]) 08 Grabar Pausa 09 Pausa (pausar la reproducción) 0A Expulsar (desconectar el contenedor de medios del dispositivo MMC) 0B Chase Restablecimiento de la MMC 0D (al estado predeterminado/de inicio) 40 Escritura (también conocido como Grabar listo, también conocido como Activar pistas) parámetros: <longitud1> 4F <longitud2> <bytes de mapa de bits de pista> 44 Ir a (también conocido como Localizar) Parámetros: <longitud>=06 01 <horas> <minutos> <segundos> <fotogramas> <subfotogramas> 47 Lanzadera Parámetros: <length>=03 <sh> <sm> <sl> (Códigos de velocidad estándar MIDI) 
Sub-ID#1: 07 = respuesta Sub-ID#2: estado de respuesta parámetros: valores que detallan el estado de la respuesta 

Comandos MMC

Los comandos MMC son mensajes de transporte MMC que contienen un byte que representa el comando, o bien, otros tipos que contienen el byte del comando seguido de bytes de parámetros. Algunos parámetros son longitudes de conjuntos de bytes en el mensaje, otros son constantes asociadas al comando y otros son valores de datos variables que especifican la ejecución del comando.

Listo para grabar

El mensaje Record Ready (Arm Tracks) habilitará la grabación de las pistas. Tiene el siguiente formato (todos los números en hexadecimal):

F0 7F <ID del dispositivo> 06 40 <longitud1> 4F <longitud2> <mapa de bits de pista> F7 
longitud1: número de bytes entre longitud1 y F7 longitud2: número de bytes en el mapa de bits de la pista mapa de bits de pista: A cada pista se le asigna un bit en el mapa de bits de pista. 

Para configurar una pista, debe conocer tanto el byte que contiene el bit de la pista como el bit correspondiente a dicha pista. Tenga en cuenta que cada byte solo puede contener 7 pistas.

Pista 1: byte 1 + 0x20 Pista 2: byte 1 + 0x40 Pista 3: byte 2 + 0x01 Pista 4: byte 2 + 0x02 Pista 5: byte 2 + 0x04 Pista 6: byte 2 + 0x08 Pista 7: byte 2 + 0x10 Pista 8: byte 2 + 0x20 Pista 9: byte 2 + 0x40 Pista 10: byte 3 + 0x01 etcétera. 

Ir a/Localizar

El mensaje Goto (también conocido como Locate) indica la grabación o reproducción a una hora SMPTE (una hora, minuto, segundo, número de fotograma SMPTE y código de subfotograma específicos). Tiene el siguiente formato (todos los números en hexadecimal):

F0 7F <ID del dispositivo> 06 44 <longitud>=06 01 <hr> <mn> <sc> <fr> <ff> F7 
Sub-ID#2 =44: Comando LOCALIZAR Longitud: 06 Recuento de bytes de datos (siempre seis bytes) subcomando: 01 OBJETIVO hr: horas y tipo (como en MTC Fullframe); valores 0-17 (= 0-23 decimal) mn: minutos; valores 0-3B (= 0-59 decimal) sc: segundos; valores 0-3B (= 0-59 decimal) fr: fotogramas; valores 0-1D (= 0-29 decimal) ff: subfotogramas / fotogramas fraccionarios (dejar en cero si no se está seguro); valores 0-63 (= 0-99 decimal) 

(Algunos fabricantes codifican el valor del subfotograma de forma diferente a distintas velocidades de fotogramas para indicar el subfotograma 0).

Lanzadera

Tanto el desplazamiento hacia adelante como hacia atrás comparten el mismo mensaje MMC; la dirección se codifica como un valor de signo. Tiene el siguiente formato (todos los números en hexadecimal):

F0 7F <Device0ID> 06 47 <length=03> <sh> <sm> <sl> F7 Nota: sh, sm y sl se definen como Velocidad estándar en la práctica recomendada MIDI 1.0 RP-013. sh = Parte entera nominal del valor de velocidad: 0 g sss ppp g = signo (1 = inverso) sss = número de desplazamientos a la izquierda (ver más abajo) ppp = bits más significativos del múltiplo entero de la velocidad de reproducción sm = MSB de la parte fraccionaria nominal del valor de velocidad: 0 qqqqqqq sl = LSB de la parte fraccionaria nominal del valor de velocidad: 0 rrrrrrr Valores de velocidad por turno restante: REPRESENTACIÓN BINARIA: RANGOS UTILIZABLES (DECIMAL) Múltiplo entero Parte fraccionaria Entero Fraccionario sss de velocidad de juego de rango de velocidad de juego resolución 000 ppp - qqqqqqqrrrrrrr 0-7 1/16384 001 pppq - qqqqqqrrrrrrr 0-15 1/8192 010 pppqq - qqqqqrrrrrrr 0-31 1/4096 011 pppqqq - qqqqrrrrrrr 0-63 1/2048 100 pppqqqq - qqqrrrrrrr 0-127 1/1024 101 pppqqqqq - qqrrrrrrr 0-255 1/512 110 pppqqqqqq - qrrrrrrr 0-511 1/256 111 pppqqqqqqq - rrrrrrr 0-1023 1/128