MIDI maskinkontroll

MIDI Machine Control , eller MMC, en delmängd av MIDI- specifikationen, tillhandahåller specifika kommandon för att styra inspelningsutrustning såsom flerspårsinspelare. MMC-meddelanden kan skickas med en standard MIDI-kabel för fjärrkontroll av funktioner som Play, Fast Forward, Rewind, Stop, Pause och Record. Dessa är " System Exclusive " (SysEx)-meddelanden, speciellt Real Time Universal SysEx-meddelanden.

MIDI Universal Real Time SysEx meddelandeformat

MIDI innehåller System Exclusive-meddelanden som är förlängningar av MIDI-formatet implementerat av MIDI-tillverkare. Några av tilläggen, de "Universella", är en uppsättning av samma funktioner som olika tillverkare kan implementera olika i detalj. Vissa av dem är icke-realtid, utan tillförlitlig leveranstid. Andra är realtid, inklusive MMC, så de levereras mer tillförlitligt när de förväntas. SysEx-meddelanden börjar med ( hexadecimal ) F0 och slutar med F7. Universal Real Time SysEx-meddelanden börjar med F0, följt av 7F, och inkluderar sedan andra fält före den avslutande F7.

Följande visar Universal Real Time SysEx-meddelandeformat (alla siffror hexadecimala):

F0 7F [ [ ]] F7

där Device-ID är:

MMC-enhetens ID#; värde 00-7F (7F = alla enheter); AKA "kanalnummer"

och Sub-ID#1: är ett av följande värden. De fetstilta värdena är relaterade till MIDI Machine Control:

01 = Long Form MTC
02 = MIDI Show Control
03 = Notationsinformation
04 = Device Control
05 = Real Time MTC Cueing
06 = MIDI Machine Control Command
07 = MIDI Machine Control Response
08 = Single Note Retune

MMC meddelandeformat

Ett MMC-meddelande är antingen ett MMC-kommando (Sub-ID#1=06) eller ett MMC-svar (Sub-ID#1=07). Som ett SysEx-meddelande är det formaterat (alla siffror hexadecimala):

F0 7F <Enhets-ID> <06|07> [<Sub-ID#2> [<parametrar>]] F7
Enhets-ID: MMC-enhetens ID#; värde 00-7F (7F = alla enheter); AKA "kanalnummer"
 Sub-ID#1: 06 = kommando Sub-ID#2: 01 Stopp 02 Spela 03 Uppskjuten uppspelning (spela upp efter inte längre upptagen) 04 Snabbspolning framåt 05 Spola bakåt 06 Spela in Strobe (AKA [[Punch in/out) |Punch In]]) 07 Record Exit (AKA [[Punch out (musik)|Punch out]]) 08 Record Pause 09 Paus (pausa uppspelning) 0A Eject (koppla ur mediabehållaren från MMC-enheten) 0B Chase 0D MMC Reset (till default/startup state) 40 Write (AKA Record Ready, AKA Arm Tracks) parametrar: <length1> 4F <length2> <track-bitmap-bytes> 44 Goto (AKA Locate) parametrar: <length>=06 01 <timmar> < minuter> <sekunder> <frames> <subframes> 47 Shuttleparametrar: <length>=03 <sh> <sm> <sl> (MIDI Standard Speed-koder) 
 Sub-ID#1: 07 = respons Sub-ID#2: svarstillståndsparametrar: värden som visar svarstillstånd 

MMC-kommandon

MMC-kommandon är antingen MMC-transportmeddelanden som innehåller en byte som representerar kommandot, eller andra typer som innehåller kommandobyten följt av parameterbyte. Vissa parametrar är längder på samlingar av byte i meddelandet, vissa parametrar är konstanter förknippade med kommandot, andra parametrar är variabla datavärden som anger kommandots exekvering.

Inspelningsklar

Meddelandet Record Ready (Arm Tracks) kommer att spela in spår. Den är formaterad (alla siffror hexadecimala):

 F0 7F <Device-ID> 06 40 <length1> 4F <length2> <track-bitmap> F7 
 length1: antal byte mellan length1 och F7 length2: antal byte i spåret bitmap track-bitmap: Varje spår tilldelas en bit i spårets bitmapp. 

För att ställa in ett spår måste du känna till både den byte som spårets bit bor i, och även den bit som motsvarar det spåret. Observera att varje byte bara kan innehålla 7 spår.

Spår 1: byte 1 + 0x20 Spår 2: byte 1 + 0x40 Spår 3: byte 2 + 0x01 Spår 4: byte 2 + 0x02 Spår 5: byte 2 + 0x04 Spår 6: byte 2 + 0x08 Spår 7: byte 2 + 0x10 8: byte 2 + 0x20 Spår 9: byte 2 + 0x40 Spår 10: byte 3 + 0x01 och så vidare.

Gå till/lokalisera

Goto-meddelandet (AKA Locate) signalerar inspelning eller uppspelning till en SMPTE- tid (en specifik timme, minut, sekund, SMPTE-bildnummer och delbildskod). Den är formaterad (alla siffror hexadecimala):

 F0 7F <Device-ID> 06 44 <length>=06 01 <hr> <mn> <sc> <fr> <ff> F7 
 Sub-ID#2 =44: LOCATE kommandolängd: 06 Antal databyte (alltid sex bytes) underkommando: 01 TARGET tim: timmar och typ (som med MTC Fullframe); värden 0-17 (= 0-23 decimaler) mn: minuter;  värden 0-3B (= 0-59 decimaler) sc: sekunder;  värden 0-3B (= 0-59 decimaler) fr: ramar;  värden 0-1D (= 0-29 decimaler) ff: delramar / bråkdelar (låt vara noll om osäker);  värden 0-63 (= 0-99 decimaler)  

(vissa tillverkare kodar underramsvärdet olika vid olika bildhastigheter för att indikera underram 0)

Shuttle

Både framåt- och bakåtöverföring delar samma MMC-meddelande; riktning kodas som ett teckenvärde. Den är formaterad (alla siffror hexadecimala):

F0 7F 06 47 F7 Notera: sh, sm och sl definieras som Standard Speed ​​i MIDI 1.0 Recommended Practice RP-013. sh = Nominell Heltalsdel av hastighetsvärdet: 0 g sss ppp g = tecken (1 = omvänd) sss = växling åt vänster (se nedan) ppp = mest signifikanta bitar av heltalsmultipel av spelhastighet sm = MSB av nominell bråkdel av hastighetsvärde: 0 qqqqqqq sl = LSB av nominell del av hastighetsvärdet: 0 rrrrrrr Hastighetsvärden per skift vänster räknar: BINÄR REPRESENTATION ANVÄNDBARA OMRÅDEN (DECIMAL) Heltalsmultipel Bråkdel Heltal Bråktal av spelhastighet ppp upplösning -000 qqqqqqqrrrrrrrr 0-7 1/16384 001 pppq - qqqqqqrrrrrrrr 0-15 1/8192 010 pppqq - qqqqqrrrrrrr 0-31 1/409 1/409 1/409 q 6qr 6qr 0-r 1/2048 100 pppqqqq - qqqrrrrrrr 0-127 1/1024 101 pppqqqqq - qqrrrrrrr 0-255 1/512 110 pppqqqqqq - qrrrrrrr 0-511 1/256 111 pppqqqqqqqq - rrrrrrrr 0-1023 1/128

externa länkar