MIDI Machine Control , o 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 " Exclusivos del sistema " (SysEx), específicamente mensajes SysEx universales en tiempo real.
Formato de mensaje SysEx en tiempo real universal MIDI
MIDI incluye mensajes System Exclusive que son extensiones del formato MIDI implementado por los fabricantes de MIDI. Algunas de las extensiones, las "Universales", son un conjunto de las mismas funciones que diferentes fabricantes pueden implementar de manera diferente en detalle. Algunos de ellos son en tiempo no real , sin un tiempo de entrega confiable. Otros son en tiempo real, incluido MMC, por lo que se entregan de manera más confiable cuando se espera. Los mensajes SysEx comienzan con ( hexadecimal ) F0 y terminan con F7. Los mensajes SysEx en tiempo real universal comienzan con F0, seguido de 7F, luego incluyen otros campos antes de la terminación F7.
A continuación, se muestra el formato de mensaje SysEx en tiempo real universal (todos los números hexadecimales):
F0 7F
[ #1>[ #2>]] F7
donde Device-ID
esta:
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:
01 = MTC de formato largo |
02 = Control de espectáculo MIDI |
03 = Información de notación |
04 = Control de dispositivo |
05 = Señalización MTC en tiempo real |
06 = Comando de control de la máquina MIDI |
07 = Respuesta del control de la máquina MIDI |
08 = Sintonización de una nota |
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 está formateado (todos los números hexadecimales):
F0 7F
<06|07> [ [ #2>]] 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 Jugar 03 Juego diferido (jugar después de que ya no esté ocupado) 04 Avance rápido 05 Rebobinar 06 Estroboscópico de grabación (AKA [[Punch in / out | Punch In]]) 07 Salida de grabación (AKA [[Punch out (música) | Punch out]]) 08 Pausa de grabación 09 Pausa (pausa la reproducción) 0A Expulsar (desenganchar el contenedor de medios del dispositivo MMC) 0B persecución 0D MMC Reset (al estado predeterminado / de inicio) 40 escritura (AKA Record Ready, AKA Arm Tracks) parámetros:4F 44 Goto (también conocido como localizar) parámetros:= 06 01 47 Lanzadera parámetros:= 03 (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 respuesta
Comandos MMC
Los comandos MMC son mensajes de transporte MMC que contienen un byte que representa el comando u otros tipos que contienen el byte del comando seguido de bytes de parámetros. Algunos parámetros son longitudes de colecciones de bytes en el mensaje, algunos parámetros son constantes asociadas con el comando, otros parámetros 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 pistas. Está formateado (todos los números hexadecimales):
F0 7F06 40 4F F7
length1: número de bytes entre length1 y F7length2: número de bytes en el mapa de bits de la pistamapa de bits de la pista: a cada pista se le asigna un bit en el mapa de bits de la pista.
Para configurar una pista, debe conocer tanto el byte en el que vive el bit de la pista como el bit correspondiente a esa pista. Tenga en cuenta que cada byte solo puede contener 7 pistas.
Pista 1: byte 1 + 0x20Pista 2: byte 1 + 0x40Pista 3: byte 2 + 0x01Pista 4: byte 2 + 0x02Pista 5: byte 2 + 0x04Pista 6: byte 2 + 0x08Pista 7: byte 2 + 0x10Pista 8: byte 2 + 0x20Pista 9: byte 2 + 0x40Pista 10: byte 3 + 0x01y así.
Ir a / localizar
El mensaje Goto (AKA Locate) indica la grabación o reproducción a una hora SMPTE (una hora, minuto, segundo, número de trama SMPTE y código de subtrama específicos). Está formateado (todos los números hexadecimales):
F0 7F06 44 = 06 01 F7
Sub-ID # 2 = 44: comando LOCATElongitud: 06 Número de bytes de datos (siempre seis bytes)subcomando: 01 TARGEThr: horas y tipo (como con 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: marcos; valores 0-1D (= 0-29 decimal)ff: subtramas / tramas fraccionales (déjelo en cero si no está seguro); valores 0-63 (= 0-99 decimal)
(algunos fabricantes codifican el valor de la subtrama de manera diferente a diferentes velocidades de cuadro para indicar la subtrama 0)
Lanzadera
Tanto el traslado hacia adelante como hacia atrás comparten el mismo mensaje MMC; la dirección se codifica como un valor de signo. Está formateado (todos los números hexadecimales):
F0 7F06 47 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 = reverso) sss = recuento de desplazamiento a la izquierda (ver más abajo) ppp = bits más significativos del múltiplo entero de la velocidad de reproducciónsm = MSB de la parte nominal fraccionaria del valor de velocidad: 0 qqqqqqqsl = LSB de la fracción nominal del valor de velocidad: 0 rrrrrrrValores de velocidad por turno izquierdo recuento:RANGOS UTILIZABLES DE REPRESENTACIÓN BINARIA (DECIMAL)Entero múltiplo Fraccional Parte Entero Fraccionalsss de velocidad de reproducción de resolución de rango de velocidad de reproducción000 ppp - qqqqqqqrrrrrrr 0-7 1/16384001 pppq - qqqqqqrrrrrrr 0-15 1/8192010 pppqq - qqqqqrrrrrrr 0-31 1/4096011 pppqqq - qqqqrrrrrrr 0-63 1/2048100 pppqqqq - qqqrrrrrrr 0-127 1/1024101 pppqqqqq - qqrrrrrrr 0-255 1/512110 pppqqqqqq - qrrrrrrr 0-511 1/256111 pppqqqqqqq - rrrrrrr 0-1023 1/128F7