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