Gist to gather found info about using Native Instruments Maschine in Linux. Idea is to document found code samples, to make better experience using NI Hardware in Linux. I own Maschine Mikro MK3 and couldn't find anything how to work with it.
Maschine mikro MK3, and Maschine MK3, and probably others(?), have "Midi mode", but its not read midi mode. Its emulated using virtual midi device. In other words, device in "midi mode" still doesn't send any midi messages over usb. It only gets colored different, and screen says "Midi Mode". It still sends the same messages as in non Midi Mode, only software (driver) emulates it to use as midi.
After some searching found these projects, which has some support for NI hardware:
- https://github.com/openAVproductions/openAV-Ctlra
- Has working example with midi bridge. You can use your controller ( if its supported ) and get Midi messages !
- My fork it and added support for Mikro MK3, tested by myself looks like its working fine.
- Found extended midi bridge code here ( probably optimized to Maschine MK3? ). It also has "Mackie control protocol" support
- https://github.com/shaduzlabs/cabl
- https://github.com/styyle14/cabl fork with Maschine Mikro MK3 support.
- I can see some debug messages there. When rotating encoder leds are being colored in different colors. Couldn't get midi messages to be sent.
- Found some extended (documentation)[https://github.com/Drachenkaetzchen/cabl/tree/develop/doc/hardware/maschine-mk3] about Maschine MK3
- https://github.com/wrl/maschine.rs
- Has support for Mikro MK2. Tried with my Mikro MK3 and pads were almost no responsive. Has example with midi messages being sent, but could get them only when hitting pads very stronly. Also I'm not familiar with rust, so skipped looking into it more.
TLDR: Clone https://github.com/openAVproductions/openAV-Ctlra or my fork ( for mikro mk3 ). Build and run examples/daemon to get midi messages from supported hardware.