Status of KeyLab mk3 & Analog Lab on Linux

I know pretty much nothing about windows stuff (internals of a DLL, etc), but when I type file winmm.dll against the one from the midi_rename project and the one coming from Wine itself, I get a difference that may be of relevance:

winmm.dll: PE32+ executable (DLL) (GUI) x86-64, for MS Windows, 6 sections

winmm.dll: PE32+ executable (DLL) (console) x86-64, for MS Windows, 20 sections

Just a guess, but it could be the winmm.dll from the midi rename project is only overriding a few instructions from the whole instruction set of the default one (6 vs 20 sections). And maybe replacing the system32 one with a limited winmm.dll is not going to work as it is missing important sections. I could be completely off the mark though.

I just looked at the discussion thread in the winmm_midi_rename. It looks like kernel 6.15 will at least solve this issue thanks to Paul Davis who also got plagued by it:

https://lists.linaro.org/archives/list/linux-stable-mirror@lists.linaro.org/message/SXXKGOMLMGL6MMNBU4X43G67XUSIMV6F/

The discussion thread about Paul’s patch is actually interesting to read: Making sure you're not a bot!

1 Like

Yep, that’s great news indeed ! That was a bit awkward to add a winmm.dll wrapper, that’s a surprising timing it gets fixed at the same time as my experiment :slight_smile:

I patched the usb/midi.c kernel file with the kernel patch linked in the winmm_midi_rename thread. It works perfectly now :slight_smile:

1 Like

For the Keylab Essential it is a slightly different story:

They are all named: KL Essential 49 mk3 KL Essentia

→ Transparently queried the device #3 properties for interface query. Found device:
name: KL Essential 49 mk3 KL Essentia
man id: 255
prod id: 1
driver version: 1
→ No match, returning native result.

when winmm is used it is matched 4 times:

kernel 6.15 is out, I just checked the patch and the midi port name fix is in.

Kernel MIDI port name patch back-ported to kernel 6.14.9. I know that liquorix provides this kernel for debian based distributions as of this writing.

And it also got into 6.12.31.

1 Like

the keylab essential mk3 also works better now with the 6.12.32 kernel. winmm is not needed anymore

As of today, I get the exact same performance with “emulated” Arturia instruments through WINE and native stuff (Bitwig, Pianoteq). See my results here : Linux [Feature Request] - #86 by Bidinou

(my switch to a “Pro Audio” profile and to 96 KHz helped a lot)

The other day, I was rehearsing with the Keylab mkII plugged to my laptop trying to drive Analog Lab plugin from Bitwig (laptop runs debian 13 “unstable”): the Analog Lab mode on the KeyLab did not work at all (complete lack of control).

Funnily enough, when I switched to DAW mode, I could control Bitwig and the KeyLab display showed me track names, etc. But I don’t care about DAW mode (I have other controllers for that). When standalone, I can control Analog Lab (or other Arturia s/w like Minimoog or Augmented Strings.

In Windows, I believe that when selecting the Bitwig track with the Arturia plugin for playing live, the DAW mode should shift to Analog Lab mode and let you control the plugin in the same way as the standalone app. When selecting another track, the mode should shift to DAW automatically, correct ? Anybody got this working in linux ?

PS:
By the way, I found a way to monitor MIDI traffic between Bitwig and the h/w controller when looking into setting up a Morningstar MC8 Pro (footswitch) for controlling the Bitwig clip launcher from my foot. I could successfully get proper MIDI feedback to the footswitch controller so that it could be sync’ed if I did some extra action from another controller (I also use an Akai APC40). The MIDI traffic monitoring was close to impossible before due to Bitwig taking exclusive ownership of all MIDI devices detected by the ALSA layer. Being able see what’s going to and coming out from Bitwig is very helpful. Let me know if you’d like me to describe the method I came up with.