Arturia Keylab 61 MkII in Debian Linux


Arturia Keylab 61 MkII works in Linux USB-connection, at least with Debian 10.7 and Debian 10.12 (kernel version 4.19). I published this short page for the knowledge of Linux community people.

Naturally this keyboard controller can be used with old MIDI connector via e.g. Roland UM-ONE USB interface (works also in Debian Linux).

Since Ubuntu Linux and Linux Mint are smaller sets from Debian Linux I assume Arturia will work also under them.

NOTE that in Linux the DAW programs will not work of course.

In my own sampling program Arturia shows like in the following picture:
screenshot1.png

Midi CC mappings (Analog lab mode):

Keyboard: C2 - C7
Pad rows: C3 - D#3, A#2 - H2, E2 - G2, C2 - C#2 (all overlapping in keyboard range but in Midi channel 10) with pressure information
Category: Control 116, values 0 and 127
Preset: Control 117, values 0 and 127
<-: Control 28, values 0 and 127
->: Control 29, values 0 and 127
Selector CW: Control 114, value 64 + Control 114 value 65 -sequence
Selector CCW: Control 114, value 64 + Control 114 value 63 -sequence
Part1: Control 22, values 0 and 127
Part2: Control 23, values 0 and 127
Part3: Control 24, values 0 and 127
Slider CH1: Control 73, values 0 - 127
Slider CH2: Control 75, values 0 - 127
Slider CH3: Control 79, values 0 - 127
Slider CH4: Control 72, values 0 - 127
Slider CH5: Control 80, values 0 - 127
Slider CH6: Control 81, values 0 - 127
Slider CH7: Control 82, values 0 - 127
Slider CH8: Control 83, values 0 - 127
Slider Master: Control 85, values 0 - 127
Knob 1: Control 74, values 0 - 127
Knob 2: Control 71, values 0 - 127
Knob 3: Control 76, values 0 - 127
Knob 4: Control 77, values 0 - 127
Knob 5: Control 93, values 0 - 127
Knob 6: Control 18, values 0 - 127
Knob 7: Control 19, values 0 - 127
Knob 8: Control 16, values 0 - 127
Knob 9: Control 17, values 0 - 127
Select 1: Control 30, values 1 and 0 (button pressed and released)
Select 2: Control 30, values 3 and 2
Select 3: Control 30, values 5 and 4
Select 4: Control 30, values 7 and 6
Select 5: Control 30, values 9 and 8
Select 6: Control 30, values 11 and 10
Select 7: Control 30, values 13 and 12
Select 8: Control 30, values 15 and 14
Multi btn: Control 30, values 17 and 16

User mode as in C-syntax

enum eMIDIArturiaCommonControllers {		// when in 'User' mode
	eMIDIArturiaCC_ModulationWheel = 1,
	eMIDIArturiaCC_SustainPedal = 11,
	eMIDIArturiaCC_Pedal2 = 12,
	eMIDIArturiaCC_Pedal3 = 13,
	eMIDIArturiaCC_Pedal4 = 14,
	eMIDIArturiaCC_Left = 28,
	eMIDIArturiaCC_Right = 29,
	eMIDIArturiaCC_Knob1 = 74,
	eMIDIArturiaCC_Knob2 = 71,
	eMIDIArturiaCC_Knob3 = 76,
	eMIDIArturiaCC_Knob4 = 77,
	eMIDIArturiaCC_Knob5 = 93,
	eMIDIArturiaCC_Knob6 = 18,
	eMIDIArturiaCC_Knob7 = 19,
	eMIDIArturiaCC_Knob8 = 16,
	eMIDIArturiaCC_Knob9 = 17,
	eMIDIArturiaCC_Selector = 114,	// CW = value 65, CCW = 63
	eMIDIArturiaCC_Category = 116,
	eMIDIArturiaCC_Preset = 117,
	eMIDIArturiaCC_Solo = 52,
	eMIDIArturiaCC_Mute = 53,
	eMIDIArturiaCC_Record = 54,
	eMIDIArturiaCC_Read = 55,
	eMIDIArturiaCC_Write = 56,
	eMIDIArturiaCC_Save = 57,
	eMIDIArturiaCC_In = 58,
	eMIDIArturiaCC_Out = 59,
	eMIDIArturiaCC_Metro = 60,
	eMIDIArturiaCC_Undo = 61,
	eMIDIArturiaCC_Slider1 = 73,
	eMIDIArturiaCC_Slider2 = 75,
	eMIDIArturiaCC_Slider3 = 79,
	eMIDIArturiaCC_Slider4 = 72,
	eMIDIArturiaCC_Slider5 = 80,
	eMIDIArturiaCC_Slider6 = 81,
	eMIDIArturiaCC_Slider7 = 82,
	eMIDIArturiaCC_Slider8 = 83,
	eMIDIArturiaCC_Slider9 = 85,
	eMIDIArturiaCC_SelectButton1 = 22,
	eMIDIArturiaCC_SelectButton2 = 23,
	eMIDIArturiaCC_SelectButton3 = 24,
	eMIDIArturiaCC_SelectButton4 = 25,
	eMIDIArturiaCC_SelectButton5 = 26,
	eMIDIArturiaCC_SelectButton6 = 27,
	eMIDIArturiaCC_SelectButton7 = 28,
	eMIDIArturiaCC_SelectButton8 = 29,
	eMIDIArturiaCC_SelectButton9 = 30,
} eMIDIArturiaCommonControllers;

Transport buttons' sysex

// Here's already the SysEx I was able to retrieve to switch the Arturia Keylab 61 MkII Transport buttons to the "MMC" mode:
// Output to Arturia:  F0  00  20  6B  7F  42  02  00  40  52  0A  F7  |  Sysex
// amidi -p hw:3,0,1 -S "F000206B7F42020040520AF7"	// example from command line if Arturia is in hw:3,0
// after this Keylab 61 sends the following SystemExclusive Messages from Transport buttons:

// const BYTE		pbtRewind[]    = { 0xF0, 0x7F, 0x7F, 0x06, 0x05, 0xF7 };
// const BYTE		pbtForward[]   = { 0xF0, 0x7F, 0x7F, 0x06, 0x04, 0xF7 };
// const BYTE		pbtStop[]      = { 0xF0, 0x7F, 0x7F, 0x06, 0x01, 0xF7 };
// const BYTE		pbtPlay[]      = { 0xF0, 0x7F, 0x7F, 0x06, 0x09, 0xF7 };
// const BYTE		pbtPause[]     = { 0xF0, 0x7F, 0x7F, 0x06, 0x02, 0xF7 };
// const BYTE		pbtRecordOn[]  = { 0xF0, 0x7F, 0x7F, 0x06, 0x06, 0xF7 };
// const BYTE		pbtRecordOff[] = { 0xF0, 0x7F, 0x7F, 0x06, 0x07, 0xF7 };

// for some reason 'Loop' button does not send anything.

3/2023, PU. Finland. Last updated 3/2023