Arturia KeyLab Essential mk3 on Linux

Has anyone used the Arturia KeyLab Essential mk3 on Linux? If so, do you like it?

I use one with Mac OS and love it but there are no MIDI bindings for it in Ardour so I might have to get inventive with General MIDI or something … In Logic It’s great, especially as you can remap anything you like using ā€˜Controller Assignments’.

MIDI keymaps are very easy to do. We have guides on that. If you don’t want to make one yourself, I can make one for you, I just need you to use the MIDI Monitor built into Ardour and tell me what CCs it sends from all controls in both DAW and Arturia modes.

Many thanks for this and the YouTube video you sent me. Very useful and I didn’t realise it was that easy. I’ll have a go at this tomorrow.

Thanks again

Best regards

Paul

1 Like

One more thing(!) I mistakenly posted my original enquiry in the Linux section of the discourse. Any differences for a Mac user eg directory for storing MIDI Maps?

I don’t have a Mac in my household, but I’m guessing it should be placed inside $HOME/Library/Preferences/Ardour8/midi_maps/ or some such folder (the midi_maps part of the path is not created by default).

Ah yes, thanks. I assumed it was like that. The Ardour directory doesnt contain a MIDI maps directory so I’ll just create one.

In your Midi Maps tutorial, what text editor did you use? I used Mac’s Text app and I’m wondering if Ardour can make sense of the format (RTF) of the file Text app creates. So that method didn’t work as Ardour doesn’t see the midi maps file. (I put the file in /Application Support/Ardour/(midi_maps) as well as /library/Preferences/Ardour/(midi_maps))

Also I tried MIDI learn (using your tutorial) but that didn’t work either as the tooltip to ā€˜operate controller now’ didn’t appear - probably something to do with CTRL-middle-click on a Mac.

Also Midi Tracer can’t see the KL … Midi port but can see the MCU/HUI port where it sees note ons & offs as well as CCs. If I use General MIDI port It sees just the CCs.

So I’m stumped, and confused!

If I use Mackie Control with my KL Essential 49 mk3 I get transport and keys etc. but no faders or encoders. That would do I suppose but I’d love to get full control if that’s possible.

In Logic, although a bit clunky I can map any control to pretty much anything so I have all sorts of exotic settings like using encoders 1-4 for Bus [1…4] sends and encoder 9 as Pan, all for ā€˜Selected Track’; Faders 1-8 (bankable) for channel faders 1-8/9-16 etc. And Fader 9 for Master.

Sorry to ramble on!

In Mac’s Text Editor, you need to go in the menu to Format>Make Plain Text. RTF (the default for TextEdit) will not work.

Seablade

Ah, thanks. I thought as much. Will try again tomorrow.

Hello
I have an Arturia mk3 essential with Ardour and Linux Debian 12 KDE.
I installed with Wine ā€œArturia Software Centerā€ and ā€œAnalog Labā€ but I couldn’t install ā€œMIDI Control Centerā€. I only managed to get this one to work with a virtual machine. So I’ll have to try the native windows software mentioned above.
With ardour, I created a mid_map script that works quite well. I integrated all the keyboard’s transport functions as well as the knobs and fader of the keyboard. The only element I couldn’t configure was the rotary encoder of the keyboard.
I use the Kate software as a text editor which is very good. Here is the script for the example…


<?xml version="1.0" encoding="UTF-8"?>
<ArdourMIDIBindings version="1.0.0" name="Arturia Keylab essential 49 mk3">

<!-- Works with device's factory settings. Transport control is available through MMC. -->

  <DeviceInfo bank-size="7"/>

  <!-- arturia switch mode DAW -->

<!-- Gain controls. Faders are mapped to faders. -->
  <Binding channel="1" ctl="105" uri="/route/gain S1"/>
  <Binding channel="1" ctl="106" uri="/route/gain B1"/>
  <Binding channel="1" ctl="107" uri="/route/gain B2"/>
  <Binding channel="1" ctl="108" uri="/route/gain B3"/>
  <Binding channel="1" ctl="109" uri="/route/gain B4"/>
  <Binding channel="1" ctl="110" uri="/route/gain B5"/>
  <Binding channel="1" ctl="111" uri="/route/gain B6"/>
  <Binding channel="1" ctl="112" uri="/route/gain B7"/>
  <Binding channel="1" ctl="113" uri="/bus/gain master"/>

<!-- Pan controls. All encoders except the 2 on the right are mapped to pan direction. -->
  <Binding channel="1" ctl="96" uri="/route/pandirection S1"/>
  <Binding channel="1" ctl="97" uri="/route/pandirection B1"/>
  <Binding channel="1" ctl="98" uri="/route/pandirection B2"/>
  <Binding channel="1" ctl="99" uri="/route/pandirection B3"/>
  <Binding channel="1" ctl="100" uri="/route/pandirection B4"/>
  <Binding channel="1" ctl="101" uri="/route/pandirection B5"/>
  <Binding channel="1" ctl="102" uri="/route/pandirection B6"/>
  <Binding channel="1" ctl="103" uri="/route/pandirection B7"/>

<!-- Pan width. Upper right encoder is mapped to the pan width of the selected track -->
  <Binding channel="1" ctl="104" uri="/route/pandirection S1"/>




  <Binding channel="1" ctl="46" action="Editor/select-prev-route"/>
  <Binding channel="1" ctl="47" action="Editor/select-next-route"/>



  <!-- Transport controls -->
  <Binding channel="1" ctl="24" function="loop-toggle"/>
  <Binding channel="1" ctl="25" action="Transport/Rewind"/>
  <Binding channel="1" ctl="26" action="Transport/Forward"/>
  <Binding channel="1" ctl="20" function="transport-stop"/>
  <Binding channel="1" ctl="21" function="transport-roll"/>
  <Binding channel="1" ctl="22" function="toggle-rec-enable"/>

  <Binding channel="1" ctl="40" action="Common/Save"/>
  <Binding channel="1" ctl="42" action="Editor/undo"/>
  <Binding channel="1" ctl="43" action="Editor/redo"/>
  <Binding channel="1" ctl="41" action="Editor/quantize"/>
  <Binding channel="1" ctl="27" action="Transport/ToggleClick"/>
  <Binding channel="1" ctl="23" action="Editor/edit-current-tempo"/>



  <Binding channel="1" ctl="116" action="Editor/select-next-route"/>

  <Binding channel="1" ctl="45" action="Editor/track-solo-toggle"/>
  <Binding channel="1" ctl="44" action="Editor/track-mute-toggle"/>


</ArdourMIDIBindings>

So there remains this rather frustrating problem of the rotary encoder…
Finally to talk about the keyboard, I find it very good (even if I have some criticisms about the touch of the keyboard) and I am satisfied that the Analog Lab software works perfectly with Wine. So it works with ardour…

I just installed SysEx Controls (which is the native version of Arturia’s midi control) and it works. On the other hand, I installed the flatpack version because there was a failure for the build version.
So, it’s almost perfect with arturia mk3 and linux. (while regretting once again that these manufacturers don’t directly do native linux)

Wow, thanks. I’ll have a look at this later but I recognise some of the bindings’ parameters from when I was fiddling yesterday. It looks like I was on the right track but the fact that I was saving it as an RTF file from Mac’s TextEdit was screwing it up. I think I’ll be able to get it to work now.

Thanks again

Best regards

Paul

The script I put is just an example that I use. I’m glad it can be used .You will have to adapt it.
the line about the rotary encoder (ctl=116) is bad (it was a test…I’ll have to delete it from my script)
Mapping this encoder remains a mystery so I don’t use it on Ardour.
it’s frustrating…

Thanks again. I will adjust as necessary. I’ll also do battle with the encoders and see if I can’t make sense of them.

As you say it’s frustrating but fun in a masochistic sort of way!

Best regards

Paul

For the encoders try setting the control type to enc-2 (or enc-l or enc-r depending on the type).

See Midi Binding Map for AKAI APC Key 25 Mk2 for how I set up it for another device but likely the same type knobs.

For reference I’m using a Mac Studio with OS 15.5.

Re: midi bindings: I tried every method trying to get a midi bindings file to work with no success so had to give up. Something to do with either the format of the MIDI maps filename, where I put it - /Library/Application Support/Ardour/midi_maps (or MIDI Maps) and /Library/Preferences/Ardour8/midi_maps (or MIDI Maps). I even restarted my Mac but still no joy.

Re: midi learn: However, having realised that my mouse’s middle button was set (via Steermouse) to CMND-W - d’oh! I added Ardour to Steermouse and remapped middle click to be CTRL-middle click and midi learn worked! Having set 8 faders and a master monitor fader I was about to set the encoders for pans but discovered they already worked. (This was with Ardour set with Mackie Control/Keylab Essential 49 mk3 to give me transport control.)

So unless I have a brainwave at some point I think I’ll stick to that method and just build a session template. If not then setting them up per session is pretty quick anyway.

Now I need to make it aware of banks