DAW mode provides DAWs and DAW-like software functionality to realise intuitive user interfaces on the Launchkey’s surface. The capabilities described in this chapter are only available once DAW mode is enabled.
All functionality described in this chapter is accessible through the DAW In/Out (USB) interface.
Enable DAW Mode:
Hex: 9fh 0Ch 7Fh Dec: 159 12 127
Disable DAW Mode:
Hex: 9Fh 0Ch 00h Dec: 159 12 0
When the DAW or DAW-like software recognises the Launchkey and connects to it, it should first enter DAW mode (send 9Fh 0Ch 7Fh), and then, if necessary, enable the feature controls (see the “Launchkey MK4 feature controls” section of this document).
When the DAW or DAW-like software exits, it should exit from DAW mode on the Launchkey (send 9Fh 0Ch 00h) to return it to Standalone (MIDI) mode.
In DAW mode, contrary to standalone (MIDI) mode, all buttons, and surface elements not belonging to performance features (such as the Custom Modes) can be accessed and will report on the DAW In/Out (USB) interface only. The buttons except for those belonging to the Faders are mapped to Control Change events as follows:
The Control Change indices listed are also used for sending colour to the corresponding LEDs (if the button has any), see Colouring the surface.
Once in DAW mode, the following additional modes become available:
-
DAW mode on the pads.
-
Plugin, Mixers, Sends & Transport on the encoders.
-
Volume on the faders (Launchkey 49/61 only).
When entering DAW mode, the surface is set up in the following manner:
-
Pads: DAW.
-
Encoders: Plugin.
-
Faders: Volume (Launchkey 49/61 only).
The DAW should initialise each of these areas accordingly.
The modes of the pads, encoders, and faders can be controlled by MIDI events and are reported back by the Launchkey whenever it changes mode due to user activity. These messages are important to capture, as the DAW should follow them when setting up and using the surfaces as intended based on the selected mode.
Pad mode changes are reported or can be changed by the following MIDI event:
-
Channel 7 (MIDI status: B6h, 182), Control Change 1Dh (29)
The Pad modes are mapped to the following values:
-
01h (1): Drum layout
-
02h (2): DAW layout
-
04h (4): User Chords
-
05h (5): Custom Mode 1
-
06h (6): Custom Mode 2
-
07h (7): Custom Mode 3
-
08h (8): Custom Mode 4
-
0Dh (13): Arp Pattern
-
0Eh (14): Chord Map
Encoder mode changes are reported or can be changed by the following MIDI event:
-
Channel 7 (MIDI status: B6h, 182), Control Change 1Eh (30)
The encoder modes are mapped to the following values:
-
01h (1): Mixer
-
02h (2): Plugin
-
04h (4): Sends
-
05h (5): Transport
-
06h (6): Custom Mode 1
-
07h (7): Custom Mode 2
-
08h (8): Custom Mode 3
-
09h (9): Custom Mode 4
Fader mode changes are reported or can be changed by the following MIDI event:
-
Channel 7 (MIDI status: B6h, 182), Control Change 1Fh (31)
The fader modes are mapped to the following values:
-
01h (1): Volume
-
06h (6): Custom Mode 1
-
07h (7): Custom Mode 2
-
08h (8): Custom Mode 3
-
09h (9): Custom Mode 4
The DAW mode on pads is selected on entering DAW mode, and when the user selects it by the Shift menu. The pads report back as note (MIDI status: 90h, 144) and aftertouch (MIDI status: A0h, 160) events (the latter only if Polyphonic Aftertouch is selected) on Channel 1, and can be accessed for colouring their LEDs by the following indices:
The Drum mode on pads can replace the Drum mode of standalone (MIDI) mode, providing a capability to the DAW to control its colours and receive the messages on the DAW MIDI port. This is done by sending the below message:
Hex: B6h 54h 01h Dec: 182 84 1
Drum mode can be returned to standalone operation with the below message:
Hex: B6h 54h 00h Dec: 182 84 0
The pads report back as note (MIDI status: 9Ah, 154) and Aftertouch (MIDI status: AAh, 170) events (the latter only if Polyphonic Aftertouch is selected) on Channel 10, and can be accessed for colouring their LEDs (see “Colouring the Surface”) by the following indices:
The Encoders in the following modes provide the same set of Control Changes on Channel 16 (MIDI status: BFh, 191):
-
Plugin
-
Mixer
-
Sends
The Control Change indices provided are as follows:
If the DAW sends them position information, they automatically pick that up.
The Transport Mode uses the relative output mode with the following Control Changes on Channel 16 (MIDI status: BFh, 191):
In Relative mode, the pivot value is 40h(64) (no movement). Values above the pivot point encode clockwise movements. Values below the pivot point encode anticlockwise movements. For example, 41h(65) corresponds to 1 step clockwise and 3Fh(63) corresponds to 1 step anticlockwise.
If Continuous Control Touch events are enabled, the Touch On is sent as a Control Change event with Value 127 on Channel 15, while the Touch Off is sent as a Control Change event with Value 0 on Channel 15. For example, the leftmost Pot would send BEh 55h 7Fh for Touch On, and BEh 55h 00h for Touch Off.
The Faders, in Volume mode, provide the following set of Control Changes on Channel 16 (MIDI status: BFh, 191):
If Continuous Control Touch events are enabled, the Touch On is sent as a Control Change event with Value 127 on Channel 15, while the Touch Off is sent as a Control Change event with Value 0 on Channel 15. For example, the leftmost Fader would send BEh 05h 7Fh for Touch On, and BEh 05h 00h for Touch Off.
For all controls except the Drum mode, a note, or a control change matching those described in the reports can be sent to colour the corresponding LED (if the control has any) on the following channels:
-
Channel 1: Set stationary colour.
-
Channel 2: Set flashing colour.
-
Channel 3: Set pulsing colour.
For the Drum mode on Pads, Once the DAW has taken control of the mode, the following channels apply:
-
Channel 10: Set stationary colour.
-
Channel 11: Set flashing colour.
-
Channel 12: Set pulsing colour.
The colour is selected from the colour palette by the note event’s Velocity or the control change’s value.
Monochrome LEDs can have their brightness set using a CC on channel 4, the CC number is the LED index, the value is the brightness.
e.g.
Hex: 93h 73h 7Fh Dec: 147 115 127
When providing colours by MIDI notes or control changes, the colours are chosen according to the following table, decimal:
The same table with hexadecimal indexing:
When sending flashing colour, the colour flashes between that set as static or pulsing colour (A), and that contained in the MIDI event setting flashing (B), at 50% duty cycle, synchronized to the MIDI beat clock (or 120bpm or the last clock if no clock is provided). One period is one beat long.
The colour pulses between dark and full intensity, synchronised to the MIDI beat clock (or 120bpm or the last clock if no clock is provided). One period is two beats long, using the following waveform:
Pads and fader buttons can also be set to a custom colour using the following SysEx
Regular SKUs:
Hex: F0h 00h 20h 29h 02h 14h 01h 43h <padID> <R> <G> <B> F7h Dec: 240 0 32 41 2 20 1 67 <padID> <R> <G> <B> 247
Mini SKUs:
Hex: F0h 00h 20h 29h 02h 13h 01h 43h <padID> <R> <G> <B> F7h Dec: 240 0 32 41 2 19 1 67 <padID> <R> <G> <B> 247
-
Stationary display: A default display which is shown unless any event requires a different display to be temporarily shown above it.
-
Temporary display: A display triggered by an event, persisting for the length of the display timeout user setting.
-
Parameter name: Used in association with a control, showing what it is controlling. Unless provided by messages (SysEx), typically this is the MIDI entity (such as note or CC).
-
Parameter value: Used in association with a control, showing the current value of it. Unless provided by messages (SysEx), this is the raw value of the MIDI entity controlled (such as a number in range 0 - 127 in case of a 7 bits CC).
Regular SKUs:
Hex: F0h 00h 20h 29h 02h 14h 04h <target> <config> F7h Dec: 240 0 32 41 2 20 4 <target> <config> 247
Mini SKUs:
Hex: F0h 00h 20h 29h 02h 13h 04h <target> <config> F7h Dec: 240 0 32 41 2 19 4 <target> <config> 247
Once a display is configured for a given target, it can be triggered.
-
00h (0) - 1Fh (31): Temp. display for Analogue controls (same as CC indices, 05h-0Dh: Faders, 15h-1Ch: encoders)
-
20h (32): Stationary display
-
21h (33): Global temporary display (can be used for anything unrelated to the Analogue controls)
-
22h (34): DAW pad mode's displayed name (Field 0, empty: default)
-
23h (35): DAW Drum pad mode's displayed name (Field 0, empty: default)
-
24h (36): Mixer encoder mode's displayed name (Field 0, empty: default)
-
25h (37): Plugin encoder mode's displayed name (Field 0, empty: default)
-
26h (38): Sends encoder mode's displayed name (Field 0, empty: default)
-
27h (39): Transport encoder mode's displayed name (Field 0, empty: default)
-
28h (40): Volume fader mode's displayed name (Field 0, empty: default)
The <config> byte sets up the arrangement and operation of the display. 00h and 7Fh are special values: It cancels (00h) or brings up (7Fh) the display with its current contents (as MIDI Event, it is a compact way to trigger display).
-
Bit 6: Allow Launchkey to generate Temp. Display automatically on Change (default: Set).
-
Bit 5: Allow Launchkey to generate Temp. Display automatically on Touch (default: Set; this is the Shift + rotate).
-
Bit 0-4: Display arrangement
Display arrangements:
-
0: Special value for cancelling display.
-
1-30: Arrangement IDs, see table below.
-
31: Special value for triggering display.
ID |
Description |
Num |
Fields |
F0 |
F1 |
F2 |
---|---|---|---|---|---|---|
1 |
2 lines: Parameter Name and Text Parameter Value |
No |
2 |
Name |
Value |
- |
2 |
3 lines: Title, Parameter Name and Text Parameter Value |
No |
3 |
Title |
Name |
Value |
3 |
1 line + 2x4: Title and 8 names (for encoder designations) |
No |
9 |
Title |
Name1 |
... |
4 |
2 lines: Parameter Name and Numeric Parameter Value (default) |
Yes |
1 |
Name |
- |
- |
Note
The arrangement is ignored for targets only setting names (22h(34) – 28h(40)), however for changing triggerability, it needs to be set non-zero (since the value 0 for these still acts for cancelling the display).
Once a display is configured, the following message can be used to fill in the text fields.
Regular SKUs:
Hex: F0h 00h 20h 29h 02h 14h 06h <target> <field> <text…> F7h Dec: 240 0 32 41 2 20 6 <target> <field> <text…> 247
Mini SKUs:
Hex: F0h 00h 20h 29h 02h 13h 06h <target> <field> <text…> F7h Dec: 240 0 32 41 2 19 6 <target> <field> <text…> 247
The text uses the standard ASCII character mapping in the range 20h (32) – 7Eh (126) with the addition of the below control codes, which have been reassigned to provide additional non-ASCII characters.
-
Empty Box - 1Bh (27)
-
Filled Box - 1Ch (28)
-
Flat Symbol - 1Dh (29)
-
Heart - 1Eh (30)
Other control characters should not be used as their behaviour may change in the future.
The screen can also display custom graphics by sending a bitmap to the device.
Regular SKUs:
Hex: F0h 00h 20h 29h 02h 14h 09h <target> <bitmap_data> 7Fh Dec: 240 0 32 41 2 20 9 <target> <bitmap_data> 127
Mini SKUs:
Hex: F0h 00h 20h 29h 02h 13h 09h <target> <bitmap_data> 7Fh Dec: 240 0 32 41 2 19 9 <target> <bitmap_data> 127
The <target> can be either the Stationary display (20h(32)) or the Global temporary display (21h(33)). There is no effect on other targets.
The <bitmap_data> is of fixed 1216 bytes, 19 bytes for each pixel row, for a total of 64 rows (19 × 64 = 1216). The 7 bits of the SysEx byte encode pixels from left to right (highest bit corresponding to the leftmost pixel), the 19 bytes covering the 128 pixels width of the display (with five unused bits in the last byte).
Upon success, there is a response to this message, which is suitable for timing fluid animations (once receiving it, the Launchkey is ready to accept a next Bitmap message):
Regular SKUs:
Hex: F0h 00h 20h 29h 02h 14h 09h 7Fh Dec: 240 0 32 41 2 20 9 127
Mini SKUs:
Hex: F0h 00h 20h 29h 02h 13h 09h 7Fh Dec: 240 0 32 41 2 19 9 127
The display can be cancelled by either cancelling it explicitly (using the Configure Display SysEx or MIDI Event), or triggering the normal display (whose parameters are preserved while the bitmap is displaying).
Note
The firmware can only hold one bitmap in its memory at once.