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 Record Ready 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 an 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