MIDI Machine Control - MIDI Machine Control

MIDI Machine Control neboli MMC, podmnožina specifikace MIDI , poskytuje specifické příkazy pro ovládání záznamového zařízení, jako jsou vícestopé rekordéry. Zprávy MMC lze odesílat pomocí standardního kabelu MIDI pro dálkové ovládání funkcí jako Play, Fast Forward, Rewind, Stop, Pause a Record. Jedná se o zprávy „ System Exclusive “ (SysEx), konkrétně zprávy Universal Time SysEx v reálném čase.

MIDI univerzální formát zprávy SysEx v reálném čase

MIDI zahrnuje zprávy System Exclusive, které jsou rozšířením formátu MIDI implementovaného výrobci MIDI. Některá rozšíření, „univerzální“, jsou sadou stejných funkcí, které mohou různí výrobci podrobně implementovat odlišně. Některé z nich jsou v reálném čase bez spolehlivého načasování doručení. Jiné jsou v reálném čase, včetně MMC, takže jsou spolehlivější, když se očekávají. Zprávy SysEx začínají ( hexadecimálně ) F0 a končí F7. Univerzální zprávy SysEx v reálném čase začínají F0, poté 7F, poté obsahují další pole před ukončovací F7.

Následující ukazuje univerzální formát zprávy SysEx v reálném čase (všechna čísla šestnáctková):

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

kde Device-IDje:

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

a Sub-ID#1:je jednou z následujících hodnot. Tučné hodnoty souvisí s MIDI Machine Control:

01 = MTC dlouhé formy
02 = MIDI Show Control
03 = Informace o notaci
04 = Ovládání zařízení
05 = CTC v reálném čase
06 = MIDI Machine Control Command
07 = MIDI Machine Control Response
08 = Přeladění jedné poznámky

Formát zprávy MMC

Zpráva MMC je buď příkaz MMC (Sub-ID # 1 = 06), nebo odpověď MMC (Sub-ID # 1 = 07). Jako zpráva SysEx je naformátovaná (všechna čísla šestnáctková):

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

Příkazy MMC

Příkazy MMC jsou buď dopravní zprávy MMC obsahující jeden bajt představující příkaz, nebo jiné typy obsahující bajt příkazu následované bajty parametrů. Některé parametry jsou délky sbírek bajtů ve zprávě, některé parametry jsou konstanty spojené s příkazem, jiné parametry jsou hodnoty proměnných dat specifikující provedení příkazu.

Záznam připraven

Zpráva Record Ready (Arm Tracks) zaznamená stopy umožňující záznam. Je formátován (všechna čísla šestnáctkově):

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.

Chcete-li nastavit stopu, musíte znát jak bajt, ve kterém bit stopy žije, tak i bit odpovídající této stopě. Všimněte si, že každý bajt může obsahovat pouze 7 stop.

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.

Přejít / vyhledat

Zpráva Goto (AKA Locate) nasměruje nahrávání nebo přehrávání na čas SMPTE (konkrétní hodinu, minutu, sekundu, číslo rámce SMPTE a kód podrámce). Je formátován (všechna čísla šestnáctkově):

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)

(Někteří výrobci kódují hodnotu podrámce odlišně při různých snímkových frekvencích, aby označili podrámeček 0)

Kyvadlová doprava

Přesměrování vpřed i vzad sdílí stejnou zprávu MMC; směr je zakódován jako hodnota znaménka. Je formátován (všechna čísla šestnáctkově):

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

externí odkazy