a-da A/DA MP-2 Midi Sysex

ADA
MP-2
System exclusive specification v1.1
Bernard Escaillas - 2011

1 Conventions

Values appearing in this specification in bold black mono type face are shown in hexadecimal. Byte values are displayed on 7bits (00 to 7F, then 0100 to 017F, etc...) Examples: 02, 20, 0123 Note: as explained in section 3, third value of the example will be noted as 42 01 23.
Values appearing in standard font are the decimal representation. Examples (same intrinsic values as in example above): 2, 32, 163

2 Message generic format

F0 SOX: Start Of eXclusive 0D ADA: Manufacturer ID 00 CHN: channel number 00-0F (correspond to value 1-16 as set in global settings)
?? MID: message id (see section 5) ?? DAT: zero or more 'data word' (see section 3) ... ?? CHK: checksum (see section 4) F7 EOX: End Of eXclusive

3 Data format

Reading 'data word' format: If value between 00 and 3F: direct data If value = 41: data is the following byte If value = 42: data is the two following bytes, MSB then LSB If value = 7F: special case for program#, designate edit buffer
Writing 'data word' format: If value between 00 and 3F: write data byte If value between 40 and 7F: 41 then data byte If value between 0100-7F7F: 42 then 7 bits MSB byte then 7 bits LSB byte If value is edit buffer #: 7F

4 Checksum

The sum of all bytes including checksum between F0 and F7 (not included) should give a value where 7 lower bits are zero. In other words, the equation is:
( ADA + CHN + mID + DAT1 + DAT2 + ... + checksum ) and 7F = 0
or
checksum= ( 80 - ( ( ADA + CHN + mID + DAT1 + DAT2 + ... ) and 7F ) ) and 7F

5 Message IDs

Table below gives layout example. The response part noted [ID] appears only if a response is expected.
ID
Name Description
[Data 1] Description [Data 2] Description
Message example
[ID]
Response Description
[Data 1] Description [Data 2] Description
Response example
01
Reset! Resets command (side effect: switches to user bank)
F0 0D 00 01 72 F7
02
Test! Runs diagnostic command
Test# Test number 00-03
F0 0D 00 02 01 70 F7
03
Result? Requests diagnostic result of the last ran test
F0 0D 00 03 70 F7
00 03
Result Diagnostic result
Code 00 = no error, > 00 = error code
F0 0D 00 00 03 42 01 00 2D F7 error 128
04
Channel! Changes Midi channel
Channel {00-0F}={channel 1-16}
F0 0D 00 04 01 6E F7 change from channel #1 to #2
00 04
Channel
Channel {00-0F}={channel 1-16}
F0 0D 00* 00 04 01 6E F7 set to channel 2.
(*) message header is formed with channel number before change…
05
Offline! Changes Midi channel to ‘Off’
F0 0D 00 05 6E F7 Note: channel must be set back manually because the MP-2 will not be able to receive any further midi message…
06
Values! Set some parameter values for one program
Prog# { 00-3F, 4140-417F, 7F 7F }={ 1-64, 65-128, edit buffer } Count Number of values { 01-42010C }={1-140}
Address Address of first value { 00-42010B }={0-139}
F0 0D 00 06 00 02 00 30 31 0A F7 change two first letters of program name with characters '0' and '1'.
00 06
Result
Code 0=no error, >0=error code
F0 0D 00 00 06 00 6D F7 no error
07
Values? Request some parameter values for one program
Prog# { 00-3F, 4140-417F, 7F 7F }={ 1-64, 65-128, edit buffer } Count Number of values { 01-42010C }={1-140}
Address Address of first value { 00-42010B }={0-139}
F0 0D 00 07 00 01 00 6B F7 program #1, 1 value starting at address 0 (first letter of program #1 name).
00 07
Values Send some parameter values for one program
Prog# { 00-3F, 4140-417F, 7F }={ 1-64, 65-128, edit buffer } Count Number of values { 01-42010C }={1-140}
Count time Data word
F0 0D 00 00 07 00 01 20 4B F7 : first letter is a space
08
Program? Request program data (note: response is message ID 09)
Format { 03 }={ ? }
Prog# { 00-3F, 4140-417F, 7F }={ 1-64, 65-128, edit buffer }
F0 0D 00 08 03 41 7F 28 F7 : request prog #128 F0 0D 00 08 03 7F 69 F7 : request edit buffer
09
Program! Send program data (same message both ways)
Format { 03 }={ ? }
Prog# { 00-3F, 4140-417F, 7F }={ 1-64, 65-128, edit buffer }
Data 140 data words (see map in section 6)
0A
All? Request all data (note: response is message ID 0B)
Format { 03 }={ ? }
F0 0D 00 0A 03 66 F7
0B
All! Send all data (same message both ways)
Format { 03 }={ ? }
Map 128 words for program change table (map)
? ? words
CC# Tuning mute controller # { 00-3F, 4140-417F }={ 1-127 } CC# Pedal controller # { 00-3F, 4140-417F }={ 1-127 } CC# Stereo volume controller # { 00-3F, 4140-417F, 421000 }={ 1-127, INT }
128 time 140 data words (see map in section 6)
Note: MP-2 replies to Program request (08) with program # above 128 (like 420100) but I don’t know what kind of data it is. Does not look like preset data… what else? Firmware data? Garbage?

6 Program data map

idx type description
0
0
16 chars Name characters 1 to 16 {20417B}={space,...,z}
...
16
10
item Tube voicing {00...09}
17
11
% Drive level {00...41 64} = {0...100}
18
12
% Overdrive level {00...41 64} = {0...100}
19
13
% Master level {00...41 64} = {0...100}
20
14
bool Compression {00,01} = {off, on}
21
15
% Treshold level {00...41 64} = {0...100}
22
16
% Gain level {00...41 64} = {0...100}
23
17
item Ratio {00...08}
24
18
item Eq Low {00...0C} = {-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12}
25
19
item Eq Mid {00...0C} = {-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12}
26
1A
item Eq High {00...0C} = {-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12}
27
1B
item Eq Pres {00...0C} = {-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12}
28
1C
9 items Eq 100,170,280,470,800,1.3,2.2,3.8,6.3 {00...0C} = {-12,-10,-8,-6,-4,-2,0,2,4,6,8,10,12}
...
37
25
bool Noise gate {00,01} = {off,on}
38
26
item Mode {00,01} = {fader,gate}
39
27
% Gate Treshold {00...41 64} = {0...100}
40
28
% Fader Treshold {00...41 64} = {0...100}
41
29
bool Tremolo {00,01} = {off,on}
42
2A
% LFO depth {00...41 64} = {0...100%}
43
2B
Hz/10 LFO freq {00...41 64} = {0.0...10.0Hz}
44
2C
item LFO waveform {00...02} = {sin,tri,surf}
45
2D
bool Wah filter {00,01} = {off,on}
46
2E
item Mode {00...02} = {pedal,trigger,auto}
47
2F
% Pedal amount (in pedal mode) / Start point (in trigger mode) / ignored (in auto mode)
48
30
% Trigger sensitivity {00...41 64} = {0...100}
49
31
% Trigger delay {00...41 64} = {0...100}
50
32
% LFO depth {00...41 64} = {0...100%}
51
33
Hz/10 LFO freq {00...41 64} = {0.0...10.0Hz}
52
34
% LFO End point
53
35
item LFO waveform {00,01} = {sin,tri}
54
36
bool Chorus {00,01} = {off,on}
55
37
% LFO depth {00...41 64} = {0...100%}
56
38
Hz/10 LFO freq {00...41 64} = {0.0...10.0Hz}
57
39
bool Effect loop {00,01} = {off,on}
58
3A
% Mix A {00...41 64} = {0...100% wet}
59
3B
% Mix B {00...41 64} = {0...100% wet}
60
3C
16 items Slot 1 to 16 CC# { 0041 7F, 42 01 00 } = {0...127,off}
...
76
4C
16 items Slot 1 to 16 destination {00...24}
...
92
5C
16 items Slot 1 to 16 direction {00,01} = {forward,reverse}
...
108
6C
16 8bits Slot 1 to 16 min {00...42 01 7F} = {0...100%} note: values 0-255 are mapped to 0-100%.
...
124
7C
16 8bits Slot 1 to 16 max {00...42 01 7F} = {0...100%} note: values 0-255 are mapped to 0-100%.
...
Tube voicing Ratio Destination 1812N-R status
00crystal clean 001.5 00unassigned 1913gate treshold 11spanky clean 112 11drive 2014fader treshold 22fat clean 223 22od 2115tremolo status 33vintage brown 334 33master 2216tremolo depth 44warm vintage 446 44comp status 2317tremolo rate 55dynamic vintage 558 55tone low 2418wah pedal 66warm hi gain 6610 66tone mid 2519wah sensitivity 77dynamic hi gain 7715 77tone hi 261Awah start pt. 88ultimate hi gain 8830 88tone pres 271Bwah delay 99fat hi gain 99band 1 281Cwah depth
10Aband 2 291Dwah rate 11Bband 3 301Ewah end pt. 12Cband 4 311Fchorus depth 13Dband 5 3220chorus rate 14Eband 6 3321loop A mx 15Fband 7 3422loop B mix 1610band 8 3523FX send mute 1711band 9
Loading...