Alesis MMT-8 Service Manual 1.00 8
11.00 MIDI Implementation
The following information is provided as a guide for programmers wishing to modify the data
received via MIDI from the MMT-8 for the purpose of interchanging parts from separate block dumps,
modification of part names, MIDI channel assignments, etc. Great care must be taken to insure that all
modified addresses are valid, since one incorrect value (the length of a part, for example) could result in all
data being lost in the MMT-8. These errors may not show up immediately, since the incorrect values may not
be accessed by the MMT-8 until a particular part or song is selected. Therefore, it is recommended that any
data manipulation programs be thoroughly tested after loading into the MMT-8 by selecting and recording on
many parts before assuming that the data is valid.
A system exclusive MIDI data dump from the MMT-8 is initiated by holding the TAPE button
down, pressing (and releasing) the PAGE DOWN button once, and then pressing the RECORD button. The
data sent out MIDI is in the following format:
HEX COMMENTS
F0H SYSTEM EXCLUSIVE STATUS BYTE
00H
00H
0EH ALESIS I.D. NUMBER
00H MMT-8 I.D. NUMBER
Following the above 5 bytes will be a block of data representing the contents of the MMT-8's memory. In
order to optimize the data transfer, 8 MIDI bytes are used to transmit each block of 7 MMT-8 data bytes. If
the 7 data bytes are looked at as one 56-bit word, the format for transmission is eight 7-bit words beginning
with the most significant bit of the first byte, as follows:
SEVEN MMT-8 BYTES:
0: A7 A6 A5 A4 A3 A2 A1 A0
1: B7 B6 B5 B4 B3 B2 B1 B0
2: C7 C6 C5 C4 C3 C2 C1 C0
3: D7 D6 D5 D4 D3 D2 D1 D0
4: E7 E6 E5 E4 E3 E2 E1 E0
5: F7 F6 F5 F4 F3 F2 F1 F0
6: G7 G6 G5 G4 G3 G2 G1 G0
TRANSMITTED AS:
0: 0 A7 A6 A5 A4 A3 A2 A1
1: 0 A0 B7 B6 B5 B4 B3 B2
2: 0 B1 B0 C7 C6 C5 C4 C3
3: 0 C2 C1 C0 D7 D6 D5 D4
4: 0 D3 D2 D1 D0 E7 E6 E5
5: 0 E4 E3 E2 E1 E0 F7 F6
6: 0 F5 F4 F3 F2 F1 F0 G7
7: 0 G6 G5 G4 G3 G2 G1 G0
In order to use the data properly, it must be decoded properly into MMT-8 byte format. The following list
gives the data locations within the "unpacked" (decoded) block of data, starting with the first byte of the
block being 000. NOTE: All absolute addresses must have an offset of 400H added to them (e.g., an
absolute pointer to a part that starts at 35AH should have the pointer value 75AH).