Appendix 1 – ZeroMKII Button LED Commands: ............................................................32
Appendix 2 – Hex Byte to Decimal Value Table ................................................................ 33
Page 2 of 33
SLMKII MIDI Programmer’s Reference
1. Overview
This manual is for anyone who is familiar with MIDI communications, and who wants
to have an understanding of the various Automap MIDI messages used by the SLMKII
Keyboard Controller – possibly with a view to monitoring or controlling an SLMKII,
or other Novation units which use all or part of the Automap Protocol.
The protocol was originally devised for use with the RemoteSL unit. This was the first
Novation unit which had two large LCD displays – which could be set by an
application program.
A major part of the protocol was the ability of the unit to load one of 8 special
configuration tables, called Templates, when an application sent an ONLINE sysex
message. An application program would then receive predetermined MIDI CC
messages whenever specific RemoteSL controls were operated – and act accordingly.
Originally the RemoteSL had 6 special Templates which it responded to. These
Templates were initially for certain popular DAW programs, such as Reason, Logic,
Ableton Live and a HUI simulation. There was also a general purpose special
Template – which has evolved into the Automap Template.
Most of the special Templates have been absorbed into using the ‘universal’ Automap
Template. The one, currently, remaining exception being Ableton Live.
The Protocol has been extended, at various stages, as new Novation units have been
developed. The following units use part or most of the Automap protocol:
RemoteSL
Compact
SLMKII
Nocturn Keyboard
Most of this document describes Automap operation with respect to the SLMKII
Controller Keyboard – because it uses most of the Automap protocol- however , the
same principals of operation apply to the other units.
This document describes the various parts and operation of the Automap protocol.
IMPORTANT: In Automap mode, most of the SLMKII control information is normally
handled by a ‘hidden’ USB port – any control information can, however, usually be
sent to one of the other normal ports – and still have the same effect. Control
Information emanating from the unit in Automap mode, cannot normally be ‘seen’ by
Page 3 of 33
SLMKII MIDI Programmer’s Reference
host programs; as this is normally transmitted on the hidden port – special steps have
to be taken by any application program in order to ‘see’ control changes etc. The
Ableton Template is an exception to this, in that the hidden-Port is not used, and
control is normally done on Port2.
Most of the control operations described also apply to the Zero units – it’s just that the
Zeros have no Keyboard, no Touchpad, no Pitch-bend, no Mod-wheel, no Row-select
buttons – and the buttons and controls are laid out differently. The ZeroMKII has
additional controls: the Cross-fader and the Preview button, which is used in
combination with other controls, to perform certain SLMKII operations such as RowSelects etc.
HEX v DECIMAL NOTATION:
Unless otherwise indicated, byte values are in hex – for those of you who think in
decimal there is a Hex to decimal table in the Appendix.
2. General
The SLMKII Keyboard Controller main functions are:
1. To send ‘tactile’ control changes to DAWs or other MIDI equipment.
2. To display control settings, and other information, on the LCD.
3. To have a number of Configurations, or Templates, customised for specific
equipment or DAWs.
4. To respond to the special Automap Protocol – which is a key feature of the units.
5. To indicate various states or setting by LEDs.
6. To have a number of Global Configuration settings – ie independent of Templates.
7. As a basic or advanced Ivory Keyboard.
AUTOMAP MODE:
The SLMKII is capable of holding 32 major customisable configuration tables called
Templates – plus a fixed Template – called the Automap Template. Even though the
Automap Template can be altered at the SLMKII, it should NOT be altered as it is used
in conjunction with the Automap Server host program – in order to follow the
established communication protocol between the two.
AUTOMAP PROTOCOL:
This protocol uses specific CC and sysex messages to do the following general things:
1.
Report Control and Value Changes
2. Allow a Host Program to turn ON/OFF any LED
Page 4 of 33
SLMKII MIDI Programmer’s Reference
3. Allow a Host Program to Set the LCD Text
4. Sends Alerts to the Host.
5. Allow the Host to Request and Change Global Data
6. Allow the Host to Request and Change Template Data
7. Perform Certain High-Level Operations
8. Allow a Host Program to Request the current LCD Text **
9. Allow a Host Program to Request the State of All the LEDs **
10. Allow the unit to respond to Requests for information from a host application.
*Alerts refers to the SLMKII informing the Automap server that certain changes have
occurred. Such as a change of Octave setting at the unit itself.
** Currently only used for Test purposes.
ABBREVIATIONS USED:
AMSAutomap Server
RSRow-Select
LHLeft Hand
RHRigh Hand
MSMost-Significant
LSLeast-Significant
CWClockwise
ACWAnti-Clockwise
T-LockTransport-Lock
Page 5 of 33
SLMKII MIDI Programmer’s Reference
3. Automap CC Messages
BFCCVV
All CC (Continuous-Controller) MIDI messages used, to and from the unit in
Automap mode follow the above format.
MIDI-CHANNEL NUMBER: All Automap CC messages are sent on MIDI channel #16
ie ‘BF’ (Ableton uses MIDI channel #1 ie ‘B0’.)
CONTROLLER NUMBER: Generally, the CC number indicates a specific SLMKII
Control or , in some cases, a particular control group. CC numbers range from 00h to
7Fh.
Please note: the CC protocol control organization, does NOT follow any ‘standard’
MIDI CC allocations – instead, it is generally a linear allocation of CC numbers of
particular SLMKII control groups eg all the Pot CCs are grouped together.
CONTROL VALUE: The value for a particular CC message varies, depending on the
type of control and the direction of the message – ie to or from the unit. Some
messages have a continuous range of 00-7Fh (eg pots and sliders); some have 00h or
01h, to indicate OFF or ON; some use bit-6 to indicate OFF or ON, or even ‘touched, of
‘untouched’ – some values have single and/or multiple bit fields.
See the individual sections for the exact value usage.
SLMKII PORTS USAGE:
PORT1: This port should be used normally for Keyboard Note/Aftertouch/PitchBend etc messages. Note: Messages received by the unit can be made to route directly,
across the unit, to the M1-Out Port. (Useful for passing on MIDI-clocks to MIDI
instruments attached to the MIDI port.)
PORT2: This port can be used for MIDI-clock messages to the unit, or to a dedicated
PC application – such as Ableton Live
PORT3: Generally, Automap CC messages are sent and received on this ‘hidden’ port
of the SLMKII . The Automap Template is configured to send control events out on the
hidden port. Some events, such as the Speed-dial, Transport-lock events etc are ‘hardcoded’ to use the hidden port only.
Automap messages should be sent to the ‘hidden’ port, but in general, can be sent to
one of the exposed MIDI ports of the unit – and have the same effect.
Page 6 of 33
SLMKII MIDI Programmer’s Reference
4. Sysex Headers and Commands
There are three special sysex header groups for controlling and retrieving information
from the SLMII:
1. The Original Automap Sysex Header.
2. The Data-Block Change/Request Sysex Header.
3. The TEST ‘Simulation’ Sysex Header.
The Automap commands are directly associated with special Templates, such as the
Main Automap Template, and the Ableton Template.
The Data-Block commands are three pairs of Request and Change memory block
commands for retrieving and manipulating Global, Template header and Control
data.
The Simulation sysex header is primarily concerned with operations for simulating
physical control changes at the SLMKII, mainly for TEST purposes – and is NOT part
of the normal operation of the unit. By sending this header to the unit, with additional
command numbers and values – the unit is made to behave as if a user had actually
operated a physical control. Accompanying these simulation commands are request
commands; for requesting the current LCD text, all LED states and memory blocks at
specific addresses.
Data-Block and Simulation commands do NOT require a Special-Template to be
loaded on the unit.
AUTOMAP SYSEX HEADER:
Novation MIDI-IdAutomapVersn - BetaTmplSpareData
F00020290303VVBb0200. . . .F7
All Automap sysex messages have the header above.
VERSION-BETA: these two bytes indicate the main and beta version numbers of the
SLMKII when the particular version of the protocol was introduced – currently they
should be set to 12h : 00h – and are expressed in BCD form.
(12:00 = New (LEDs) Live Version)
SPECIAL TEMPLATE NUMBER: for Automap specific messages this is set to 02.
Originally there were 8 ‘special’ Templates – eg 04h is the Ableton Template – all
other special Template numbers are now redundant.
DATA: The Data section will have a Command byte followed by zero or more header
and/or data bytes.
Page 7 of 33
SLMKII MIDI Programmer’s Reference
MAIN AUTOMAP SYSEX COMMANDS:
Cmd
01Online + Offline Commands
02LCD Text Commands
03Globals Data Download to RAM
04Prepare unit for OS Download
05Tell unit to Upload Globals
06Globals Data Download to RAM + Flash
07Tell unit to Upload a Template / All Templates
08Tell unit to Upload OS
See the Automap Sysex Commands Descriptions section below for details of the
various command operations.
These two sets of commands actually have the same Sysex header – but have a
different range of commands. Note: a Special-Template does NOT have to be loaded
for these commands to operate.
NOTE the 03:05 difference from the Automap sysex header.
VERSION-BETA: these two bytes indicate the main and beta version numbers of the
SLMKII when the particular protocol was introduced – currently they should be set to
12h : 00h.
SPECIAL TEMPLATE NUMBER: Currently this is set to 00h for Data-Block and
Simulation commands.
DATA: The Data section will have a Command byte followed a Sub-Command,
followed by zero or more header and/or data bytes.
See the Data-Block and Simulation sections below for descriptions of the individual
sets of commands.
Page 8 of 33
SLMKII MIDI Programmer’s Reference
5. SLMKII Control CC Events to PC
EXP
M1
M1
M1
IN
OUT
THRM2IN
SUS
41
USB
40
58
59
18
50
51
52
53
54
24- 2Bh* Drumpad Note Numbers
30 -35h* Butto ns-D: sends CC48 -4Dh
when T ranspo rt-lock is ON
19
1A
1B
78
79
7A
7B
20
21
22
23
08
24*
PB
44
46
0A
09
25*
01
E0
MW
45
47
26*
0B
27*
LCDLCD
1C
1D
1E
1F
7C
7D
7E
24
0C
28*
25
0D
29*
26
0E
2A*
7F
27
0F
4F
2B*
66
65
44
ZERO MKII: CROSSF ADER
10
2829
*30
11
*31
12
2A
*32
5C
020 2
5C
13
2B
*33
48
KEYS + AFTERTOUCH
SLMKII to PC AUTOMAP EVENT CC MIDI MESSAGES
14
2C
*34
5A
5B
55
15
2D
*35
4A
49
17
16
2E
36
4B
56
2F
57
37
4C
4D
The above diagram indicates the various MIDI CC numbers used for messages sent by
the SLMKII, on the hidden port3, when the specific controls are operated – when in
Automap mode.
The actual values sent for the different type of control are indicated below:
1. EncodersBF 78-7Fh 0n / 4nhBit6: 0=CW ; 1=ACW ; n = number of clicks
eg 02h / 41h
** Implemented to varying extents on the different units – NOT present on the
RemoteSL.
NOTES:
1. The Ableton Live Template sends CC38-3Fh for Encoder1-8 changes.
2. On the RemoteSL and ZeroSL there are NO dedicated Automap buttons for Learn,
View etc.
3. On the RemoteSL and ZeroSL the dedicated Transport buttons use the SAME CC
event messages as the SLMKII Automap buttons.
BF 65 00/01h00= Speed-dial released ; 01 = Speed-dial
pushed in.
Page 11 of 33
SLMKII MIDI Programmer’s Reference
6. Miscellaneous SLMKII Events to PC
Here is a list of Miscellaneous Automap CC Messages sent to the PC:
CC
* Originally designed for the Reason Special-Template.
Purpose
4FTransport-Lock status
5EMS Tempo Setting
5FLS Tempo Setting
63Echo CC Message Response *
67Parameter Request Response
6AEncoders-D Row-Select – Compact unit only
6BCC Off/OnLine Message.
Transport-Lock status:
BF4F00Transport-Lock is OFF
BF4F01Transport-Lock is ON
This message is sent:
1. Whenever the Transport-Lock button is pressed.
2. In response to a Parameter Request+Transport-Lock status Request from a host.
Tempo CC Change Pair:
BF5E0-7FMSB Tempo setting
BF5F0-7FLSB Tempo setting
This pair of CCs are sent:
1. As one of the last operations performed when the unit powers-up.
2. Whenever the current Tempo setting is changed.
The pair of values combine to give a 14-bit value of the current Tempo setting with a
range of 20-320 BPM (0014h to 0240h).
Page 12 of 33
SLMKII MIDI Programmer’s Reference
Echo CC Message Response:
BF6300-7Fh
This command was originally used by the Reason LUA script to simulate an externally
triggered event. All it does is to echo back the received CC message and value.
Parameter Request Response:
BF67RR
This CC is sent to the PC in response to a Parameter Request (RR) sent to unit.
Currently there are two Parameter Request values that can be sent to the SLMKII:
BF6700Request the Unit-Product-Type
BF6701*Request the Transport-Lock State
*Not implemented on the RemoteSL+ZeroSL
A Request for the Unit-Product-Type responds as follows:
BF6700If unit is a RemoteSL/SLMKII
BF6701If unit is a ZeroSL/ZeroMKII
BF6702If unit is a Compact
A Request for the Transport-Lock status responds as follows:
BF4F00Transport-Lock is OFF
BF4F01Transport-Lock is ON
Off/OnLine CC Message from the SLMKII:
BF6B00The last special-template has been unloaded
BF6B01A special-template has been Loaded
This command supplement s the off/online sysex commands, and is sent to the
current control-ports.
Page 13 of 33
SLMKII MIDI Programmer’s Reference
7. Miscellaneous Automap CCs to the SLMKII
Here is a list of Miscellaneous Automap CC Messages sent to the SLMKII:
CC
Purpose
4ETurn OFF ALL LEDs *
60LH Row-Select LEDs Bit-map
61RH Row-Select LEDs Bit-map
63Echo CC Message Request **
67Parameter Request
68Available Row-Select 1-5 bits **
69Available Row-Select 6-8 bits **
6AEncoders-D Row-Select – Compact unit only
*NOT implemented on the RemoteSL or ZeroSL
** Originally designed for the Reason Special-Template – no longer used.
Turn OFF ALL LEDs:
BF4E00Turns OFF ALL Button + RS + Ring LEDs
Echo CC Message Response:
BF6300-7Fh
This command was originally used by the Reason LUA script to simulate an externally
triggered event. All it does is to echo back the received CC message and value.
Currently there are two Parameter Request values that can be sent to the SLMKII:
BF6700Request the Unit-Product-Type
BF6701*Request the Transport-Lock State
*Not implemented on the RemoteSL+ZeroSL
See above for the Parameter Request Response.
Page 14 of 33
SLMKII MIDI Programmer’s Reference
LH Row-Select LEDs Bit Map:
BF6001RS1(Encoders) LED bit = ON
BF6000RS1(Encoders) LED bit = OFF
BF6004RS3(Buttons-B) LED bit = ON
BF6010hRS5(Drumpad) LED bit = ON
BF6012hRS2+RS5 LED bits = ON – all others =OFF
RH Row-Select LEDs Bit Map:
BF6101RS6(Sliders) LED bit = ON
BF6100RS6(Sliders) LED bit = OFF
BF6102RS7(Buttons-C) LED bit = ON
BF6104RS5(Buttons-D) LED bit = ON
BF6106RS7+RS8 LED bits = ON – all others =OFF
These commands are a more efficient alternative to the 8, individual, RS LED
commands.
CC60 + CC61h BIT-MAPPED ROWSELECT + ‘OTHER’ VALUE BITS:
LH RS: BF 60 bbb7b6b5b4b3b2b1b0
0--RS5RS4RS3RS2RS1
RH RS: BF 61 bbb7b6b5b4b3b2b1b0
0**-RECRS8RS7RS6
REC = Record LED Bit
* Allocated of Reason operation – redundant.
Page 15 of 33
SLMKII MIDI Programmer’s Reference
8. Button LED Commands to SLMKII
The following diagram shows the specific CC messages which are sent to the SLMKII
to turn ON/OFF specific button LEDs:
58
59
18
7071
20
78
19
21
79
50
51
52
53
54
LCDLCD
1A1B1C1D
72
22232425
7A
74
73
7C
7B
1E
1F
75
76
77
26
27
28
29
30
4F
67*
7D
7E
Set Indiv Encod er
7F
Ring Display mode.
31
PC to SLMKII AUTOMAP LED MIDI MESSAGES
Button LED ON/OFF Messages :
BFCC00/0100=LED OFF; 01 = LED ON
2A
32
5A
5B
55
2C
2B
33
4F
67
2D
2E
34
35
36
48
Set Transp ort Loc k Mode
Request Tr ansport Lock Mode
4A
49
4B
2F
37
4C 4D
56
57
NOTES:
1. On the RemoteSL and ZeroSL the Record LED CC message is the same as on the
SLMKII ie 4Ch.
2. On the RemoteSL and ZeroSL the Row-Select LED CC messages are the same as on
the SLMKII ie 50-57h.
3. CC 70-77h and CC78-7Fh: see ‘Encoder LED-Ring CC Commands’ section below.
Page 16 of 33
SLMKII MIDI Programmer’s Reference
9. Encoder LED-Ring CC Commands to SLMKII
There are two sets of CC commands for controlling the 8 Encoder LED-Rings:
1. 8 commands for setting the Display-Mode of each LED-Ring.
2. 8 commands for setting the value of each LED-Ring – based on its current Display-
Mode.
Encoder Ring #CCMode value
1BF78h mode
2BF79h mode
3BF7Ah mode
4BF7Bh mode
5BF7Ch mode
6BF7Dh mode
7BF7Eh mode
8BF7Fh mode
Ring
Display-Mode
00h0-11 Continuous Band (CW)
10h11-0 Continuous Band (ACW)
20hL/R Centred Band
30hDouble Centred Band
40h0-11 Single LED (CW)
Ring LED pattern
Page 17 of 33
SLMKII MIDI Programmer’s Reference
00h
10h
20h
30h
40h
00
00
00
00
00
01
01
01
01
01
02040608
02040608
02040608
02040608
02040608
10
10
1011
10
10
11
11
11
11
Example Ring-LED Modes v Values
Note: Sending a value of Zero always turns OFF all Ring-LEDs wahtever the mode.
ENCODER RING-LED VALUE COMMANDS:
Encoder Ring #CCRing value
1BF70h 00-0Bh
2BF71h00-0Bh
3BF72h 00-0Bh
4BF73h00-0Bh
5BF74h00-0Bh
6BF75h00-0Bh
7BF76h00-0Bh
8BF77h00-0Bh
Page 18 of 33
SLMKII MIDI Programmer’s Reference
10. Touch Sensor Reports
The following diagram show the CC message numbers and values sent by the SLMKII
when a specific Touch sensitive control is touched or ‘untouched’:
LCDLCD
6C
6D
BF 6C n0-n7
BF 6D n0-n7
BF 6E n0-n7
00
01
02
0001
Encode r Touch Eve nt: n=1 =Touched ; n=0= UnTouche d
Pot Touc h Event: n=1=T ouched ; n=0= UnTouched
Slider Touch Event: n=1=Touc hed ; n=0= UnTouched
02
04
03
03
04
05
06
07
06
05
SLMKII to PC AUTOMAP TOUCH MIDI MESSAGES
07
BF 6F n0
6E
00
01
6F
Speed- Dial Touch Even t: n=1= Touched ; n= 0=UnTouche d
Zer o Cross-Fader Touc h Event: n=1= Touched ; n= 0=U nTouchedBF 6F n1
03
02
04
07
06
05
The Touch-Sensor events are indicated in four groups of CC messages; with the CC
number indicating the group; and the least significant nibble value indicating the
individual control number in the group (0-7); if bit-6 of the value is set, then the
control has just been Touched, if the value is clear then the control has just been
‘unTouched’.
Currently only ONE sensor is considered ‘Touched’ at a time – even if more than one
is actually touched. While the Speed-dial is being touched, no other touch sensor can
cause a ‘Touched’ message.
After the Text sysex header, a series of commands and data will follow relating to the
type of text operation to be performed. It is possible for multiple commands to be
performed in the Text sysex message eg a cursor-addressing command could be
followed by a text string etc.
Commands will be followed by zero or more associated data bytes.
Most commands have an ‘inherent’ length based on the command type.
IMPORTANT: Even though the SLMKII etc have only one LCD – text for BOTH the
LEFT and RIGHT set of controls should still be sent to the unit. This is because the unit
AUTOMATICALLY switches the LH/RH LCD text displayed to match the last LH or
RH control operated – of course there is no need for switching on the RemoteSL, as
this has two LCDs.
Text Sub- Commands:
00End of Text String
01Cursor Address.
02Clear Text Command
03Cursor Blinking Command*
04Text String
F7End of Sysex
*NOT implemented
01 Cursor Addressing:
This is a 2 byte command for setting the current cursor position on the LCDs:
First byte Column Position: 00 – 71
Second byte LCD line number : 01-04
01 Left LCD - Top Line
02 Right LCD - Top Line
03 Left LCD - Bottom Line
04 Right LCD - Bottom Line
eg 01 23 02 (Hex ) – will position the cursor in the middle of the top line of the Right LCD.
Page 21 of 33
SLMKII MIDI Programmer’s Reference
0071
00
0071
00
LEFT LCD
01
03
LEFT LCD
CHARACTER POSITIONS (X)
LINE NUMBERS (Y)
02 Clear LCD Display Functions:
These are 1 or 2 byte sub-commands for clearing sections of the LCDs.
01 Clear both displaysSet cursor to Top-Left of Left LCD
02 Clear the entire Top-Line of both LCDsSet cursor to Top-Left of Left LCD
0071
71
71
00
0071
00
RIGHT LCD
02
04
RIGHT LCD
71
71
Cursor position after clear cmd:
03 Clear the entire Bottom-Line of both LCDs Set cursor to the Bottom -Left of Left LCD.
04 Clear the entire Left LCDSet cursor to its Top-Left of Left LCD.
05 Clear the entire Right LCDSet cursor to the Top-Left of Right LCD.
06 Clear the Top-Line of the Left LCD Set cursor to its Top-Left of Left LCD.
07 Clear the Bottom-Line of the Left LCDSet cursor to the Bottom-Left of Left LCD.
08 Clear the Top-Line of the Right LCD Set cursor to its Top-Left of Right LCD.
09 Clear the Bottom-Line of the Right LCDSet cursor to the Bottom-Left of Right LCD.
10Clear from the current cursor address for the
number of character positions in byte #2
Go back to the original cursor position.
** Two-Byte sub-command.
Eg:
02 0A 10 = clear 16 characters from the current
cursor position.
03 Cursor Blinking Command:
** NOT implemented
04 Variable Length Text:
This can be a null terminated string of ASCII text, and will be a maximum of 144
characters long.
Automatic character wrapping will occur from the extreme top-right of the Right LCD
to the extreme bottom-left of the Left LCD.
Characters placed beyond the extreme bottom-right of the Right LCD– will be ignored.
The Data payload has to be the EXACT number of bytes for the particular unit.
ALL Data payload bytes have bit-7 clear.
04 Prepare unit for OS Download:
Novation MIDI-IdAutomapVersn - BetaTmplSpareCmd
F00020290303VVbbnn0004F7
This command is normally used by the Automap Server to put a unit into a state for
receiving an Operating System download update – using the hidden Port3.
The message ‘Waiting for OPERATING SYSTEM UPDATE via USB 3’ will be
displayed. Note: the unit must be re-powered to exit this state.
05 Tell unit to Upload Globals:
Novation MIDI-IdAutomapVersn - BetaTmplSpareCmd
F00020290303VVbbnn0005F7
This command causes the unit to put the entire 256/1024 bytes of Global data in RAM.
The response is exactly the same as command #3 – only it comes from the unit.
06 Globals Data Download to RAM + Flash:
Novation MIDI-IdAutomapVersn - BetaTmplSpareCmd
F00020290303VVbbnn0006F7
This is identical to command 03 – except that the received Global data goes to BOTH
the RAM and is saved to immediately to FLASH.
Page 24 of 33
SLMKII MIDI Programmer’s Reference
07 Tell unit to Upload a Template / All Templates:
This command makes the unit UPLOAD ALL or ONE Template from Flash – in
exactly the same way as if the Globals Template Upload option had been used – except
for the uploading of the current Template in RAM.
TT = 00 = Upload ALL Templates.
TT = 01 - 33 = Upload specific SINGLE Template (includes Automap Template).
08 Tell unit to Upload OS
Novation MIDI-IdAutomapVersn - BetaTmplSpareCmd
F00020290303VVbbnn0008F7
This command puts the unit directly into a state where it the OS firmware can be sent
to a PC – by pressing the PROCEED button – ONLY to the MIDI1-Ouput Port.
68h0DataRangeDataControl-Data- Change command to unit
68h1DataRangeDataTemplate-Header - Change command to unit
68h2DataRangeDataGlobal–Change command to unit
68h3DataRangeControl Data Request.
68h4DataRangeTemplate-Header Request
68h5DataRangeGlobal Request
DATA REQUEST BLOCK CMDS:
69h3DataRangeDataResponse from the unit to a Control-Data
Request
69h4DataRangeDataResponse from the unit to a Template-Header
Data Request.
69h5DataRangeDataResponse from the unit to a Global-Data
Request
Three PAIRS of Sysex Commands have been added for the SLMKII units
– there are three commands for requesting single or multiple data bytes FROM the
unit, and three for sending single or multiple blocks of data TO the unit.
The three types of data are for:
1. Individual or consecutive bytes to / from a specific Control in RAM.
2. Individual or consecutive bytes to / from the Template Header currently in RAM
3. Individual or consecutive bytes to / from the Global data area in RAM.
With the Data Request commands, the host sends the unit a sysex message; and the
unit Responds by sending back a sysex message, with an identical front end, but with
an additional number of data bytes copied from the requested area.
** WARNING: Altering Data-Blocks incorrectly can cause the unit to CRASH !!
Page 26 of 33
SLMKII MIDI Programmer’s Reference
With the Data Change commands, the host sends the unit a similar sysex message to
the Request message plus additional single or multiple data bytes to be copied into
the particular data area, at the specified offset into the area – there is NO Response
message.
GENERAL DATA-BLOCK REQUEST FORMAT:
The general format for the Template-Header and Global Data Requests are:
Currently the above EXACT Request message must be used: The X+Y+Length
parameters – have NOT been fully implemented. This Request ALWAYS returns the
the FULL set of text on BOTH LCDs.
06 SAMPLE LED BITMAP REQUEST + RESPONSE:
F0 00 20 29 03 05 10 05 00 00 66 06 00 00 20 F7
F0 00 20 29 03 05 00 00 00 00 66 07 00 00 14
The Response is a copy of the 20 LED 8-bit bytes in the unit – split into 20 7-bit values
plus 3 7-bit bytes with the status of the MS-bits of the 20 LED bytes, plus a spare byte.
The 20 bytes contain ALL Button and ALL 88 Ring-LED ON/OFF statuses.
Page 31 of 33
SLMKII MIDI Programmer’s Reference
Appendix1 – ZeroMKII Button LED Commands:
EXP
M1
M1
78
OUT
M1
THRM2IN
79
7A7B7C7D
IN
51
SUS
41
USB
40
LCDLCD
7E
7F
0809
53
24*
54
50
18
20
52
0A
0B
26*
27*
19
1A
1B
21
22232425
0C
28*29* 2A*
1C
prev
0D
1D
59
0E
1E
26
5B
0F
2B*25*
1F
27
58
5A
66
65
4F
44
crossfader
10
28
*30
11
29
*31
auto
12
2A
*32
48
1314
2B
*33
49
2C
*34
4A
15
2D
*35
4B
2E
36
16
4C
2F
17
37
4D
55
56
57
-page+
(BLUE = S LMKII CC+ LED CODES)
ZeroMKII to PC AUTOMAP EVENT CC MIDI MESSAGES
Notes:
1. Generally speaking, the same Event and LED CC codes are used on the ZeroMKII
as on the SLMKII – it’s just that the controls are physically swapped around.
2. Row-Selects are sent when the Preview Button is held down and : an Encoder or
Pot or Slider is Touched; a MIDI Control Button is pressed – the same as pressing a
Row-select on an SLMKII.
3. Holding the Preview button down, causes the Page buttons to operate in RH mode,
instead of the normal (Preview button up) LH Page Button mode.