Controle MIDI Machine - MIDI Machine Control
MIDI de controle da máquina , ou MMC, um subconjunto do MIDI especificação, fornece comandos específicos para controlar o equipamento de gravação, tais como gravadores de vias múltiplas. Mensagens MMC podem ser enviadas ao longo de um cabo MIDI padrão para controle remoto de funções como play, avançar, retroceder, parar, pausar, e Record. Estes são " System Exclusive " mensagens (SysEx), especificamente reais mensagens Tempo Universal SysEx.
Conteúdo
Formato MIDI Universal Tempo real SysEx Mensagem
MIDI inclui mensagens System Exclusive, que são extensões do formato MIDI implementados pelos fabricantes MIDI. Algumas das extensões, os "universal" queridos, são um conjunto das mesmas funções que diferentes fabricantes podem implementar de forma diferente em detalhe. Alguns deles são Non Tempo real , sem prazos de entrega confiável. Outros são Tempo real, incluindo MMC, então eles estão mais confiável entregue quando o esperado. Mensagens SysEx começar com ( hexadecimal ) F0 e terminam com F7. Mensagens Tempo Universal real SysEx começar com F0, seguido por 7F, em seguida, incluir outros campos antes do F7 terminar.
O seguinte mostra Universal Tempo real formato de mensagem SysEx (todos os números hexadecimal):
F0 7F <Device-ID> <Sub-ID#1> [<Sub-ID#2> [<parameters>]] F7
onde Device-ID
é:
MMC device's ID#; value 00-7F (7F = all devices); AKA "channel number"
e Sub-ID#1:
é um dos seguintes valores. Os valores em negrito estão relacionados MIDI Machine Control:
01 = formulário longo MTC |
02 = MIDI Mostrar Controlo |
03 = Informação Notation |
04 = Dispositivo de Controlo |
05 = Tempo real MTC Cueing |
06 = MIDI Comando de controlo de máquina |
07 = MIDI Response Controle da Máquina |
08 = única nota retune |
MMC Message Format
Uma mensagem MMC seja um comando MMC (Sub-ID # 1 = 06) ou uma resposta MMC (Sub-ID # 1 = 07). Como uma mensagem de SysEx ele é formatado (todos os números 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 = command Sub-ID#2: 01 Stop 02 Play 03 Deferred Play (play after no longer busy) 04 Fast Forward 05 Rewind 06 Record Strobe (AKA [[Punch in/out|Punch In]]) 07 Record Exit (AKA [[Punch out (music)|Punch out]]) 08 Record Pause 09 Pause (pause playback) 0A Eject (disengage media container from MMC device) 0B Chase 0D MMC Reset (to default/startup state) 40 Write (AKA Record Ready, AKA Arm Tracks) parameters: <length1> 4F <length2> <track-bitmap-bytes> 44 Goto (AKA Locate) parameters: <length>=06 01 <hours> <minutes> <seconds> <frames> <subframes> 47 Shuttle parameters: <length>=03 <sh> <sm> <sl> (MIDI Standard Speed codes)
Sub-ID#1: 07 = response Sub-ID#2: response state parameters: values detailing response state
Comandos MMC
Comandos MMC MMC são ou mensagens de transporte contendo um byte , representando o comando, ou de outros tipos que contenham o byte de comando seguido por bytes de parâmetros. Alguns parâmetros são comprimentos de coleções de bytes na mensagem, alguns parâmetros são constantes associadas com o comando, outros parâmetros são valores de dados variáveis especificando a execução do comando.
Record Ready
A mensagem Record Ready (ARM Tracks) irá gravar habilitar faixas. É formatado (todos os números hexadecimal):
F0 7F <Device-ID> 06 40 <length1> 4F <length2> <track-bitmap> F7
length1: number of bytes between length1 and F7 length2: number of bytes in the track bitmap track-bitmap: Each track is assigned a bit in the track bitmap.
Para definir uma faixa, você deve saber tanto o byte no qual pouco da faixa vive, e também o bit correspondente a essa faixa. Note que cada byte só pode conter 7 faixas.
Track 1: byte 1 + 0x20 Track 2: byte 1 + 0x40 Track 3: byte 2 + 0x01 Track 4: byte 2 + 0x02 Track 5: byte 2 + 0x04 Track 6: byte 2 + 0x08 Track 7: byte 2 + 0x10 Track 8: byte 2 + 0x20 Track 9: byte 2 + 0x40 Track 10: byte 3 + 0x01 and so on.
Goto / Localize
O Goto (AKA Localizar) mensagem cues de gravação ou de reprodução para uma SMPTE tempo (uma hora, minuto, segundo, SMPTE número de quadro, e código subtrama específica). É formatado (todos os números hexadecimal):
F0 7F <Device-ID> 06 44 <length>=06 01 <hr> <mn> <sc> <fr> <ff> F7
Sub-ID#2 =44: LOCATE command length: 06 Data byte count (always six bytes) subcommand: 01 TARGET hr: hours and type (as with MTC Fullframe); values 0-17 (= 0-23 decimal) mn: minutes; values 0-3B (= 0-59 decimal) sc: seconds; values 0-3B (= 0-59 decimal) fr: frames; values 0-1D (= 0-29 decimal) ff: sub-frames / fractional frames (leave at zero if un-sure); values 0-63 (= 0-99 decimal)
(Alguns fabricantes de codificar o valor subtrama de forma diferente em diferentes taxas de frame para indicar subtrama 0)
Transporte
Ambos frente e para trás vaivém share a mesma mensagem MMC; direção é codificado como um valor de sinal. É formatado (todos os números hexadecimal):
F0 7F <Device0ID> 06 47 <length=03> <sh> <sm> <sl> F7 Note: sh, sm and sl are defined as Standard Speed in the MIDI 1.0 Recommended Practice RP-013. sh = Nominal Integer part of speed value: 0 g sss ppp g = sign (1 = reverse) sss = shift left count (see below) ppp = most significant bits of integer multiple of play-speed sm = MSB of nominal fractional part of speed value: 0 qqqqqqq sl = LSB of nominal fractional part of speed value: 0 rrrrrrr Speed values per shift left count: BINARY REPRESENTATION USABLE RANGES (DECIMAL) Integer multiple Fractional part Integer Fractional sss of play speed of play speed range resolution 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