MIDI Machine Control

From Wikipedia, the free encyclopedia

MIDI Machine Control, or MMC, a subset of the MIDI specification, provides specific commands for controlling recording equipment such as multi-track recorders.

MMC messages can be sent along a standard MIDI cable for remote control of such functions as Play, Fast Forward, Rewind, Stop, Pause, and Record. These are "System Exclusive" (SysEx) messages.

Contents

[edit] MIDI Universal Real Time SysEx Commands

All numbers are in hexadecimal notation. SysEx message format:

F0, 7F, nn, sub-ID, data, F7 
nn = channel number, 00 to 7F; 7F = global 
sub-IDs: 
01 = Long Form MTC 
02 = MIDI Show Control 
03 = Notation Information 
04 = Device Control 
05 = Real Time MTC Cueing 
06 = MIDI Machine Control Command 
07 = MIDI Machine Control Response 
08 = Single Note Retune

[edit] MMC messages

An MMC message (that is sent to, or generated by, an MMC device) is:

F0 7F deviceID 06 command F7
The third byte is the Device ID.
The fifth byte is the command:
01 Stop 
02 Play 
03 Deferred Play 
04 Fast Forward 
05 Rewind 
06 Record Strobe (Punch In) 
07 Record Exit (Punch out) 
08 ??
09 Pause
0A Eject
0F MMC Reset
40 Write 
44 Locate/Go to

[edit] The Goto MMC message

The Goto message cues recording or playback to a SMPTE time (a specific hour, minute, second, SMPTE frame number, and subframe number):

F0 7F deviceID 06 44 06 01 hr mn sc fr ff F7

[edit] The Record Ready MMC message

The Record Ready (Arm Tracks) message will record-enable tracks:

F0 7f deviceID 06 40 L1 4F L2 track bitmap F7

L1 equals the number of bytes between L1 and F7. L2 equals the number of bytes in the track bitmap. Each track is assigned a bit in the track bitmap. To set a track, you must know both the byte in which the track's bit lives, and also the bit corresponding to that track. Note that each byte can only hold 7 tracks.

 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.

[edit] Identity Request

Query an MMC device to find out its identity. Identity Request message (note that this is equal to a 'stop' message):

F0 7E channel 06 01 F7

The reply is device/manufacturer specific. For example, a tape recorder will return the following System Exclusive message:

F0, 7E, channel, 06 02 ID fc1 fc2 fn1 fn2 v1 v2 v3 v4 F7 

parameters:

ID - Device's ID 
fc1 fc2  - Device's family code 
fn1 fn2  - Device's family number 
v1 v2 v3 v4 - Software Version

[edit] Notes

MIDI Standard Document