Skip to content

Instantly share code, notes, and snippets.

@zewelor
Last active June 19, 2025 07:24
Show Gist options
  • Select an option

  • Save zewelor/5c0c159cf71200059ffbae7556dced8a to your computer and use it in GitHub Desktop.

Select an option

Save zewelor/5c0c159cf71200059ffbae7556dced8a to your computer and use it in GitHub Desktop.

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:

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.

@agraef
Copy link

agraef commented Apr 15, 2025

I'm afraid that I haven't done any work on that front since then either. My Maschine Mk3 controller has been gathering dust ever since. Which is a shame, since the controller is quite nice, but not having it work at least as a class-compliant MIDI device out of the box is a major PITA.

I did get it working with a fork of Harry's ctrla (https://github.com/agraef/openAV-Ctlra/tree/mapping_v1-daemonx), to the point that it could be used as an emulated Mackie-compatible device (at least in conjunction with my midizap program), see the README in https://github.com/agraef/openAV-Ctlra/tree/mapping_v1-daemonx/examples/daemonx for details. But that code is from 2018, so it probably needs quite a bit of work. I might give it another go some time, but usually I'm just too busy with other things.

As for the Ardour support, I tried to get into Ardour's controller interface a while ago, but never got to grips with it. I'd love to be able to write my own controller interfaces for it, as I have lots of old and new MIDI controllers lying around that might benefit from that. It would help tremendously if there was some documentation walking through the steps necessary to add support for a new controller in Ardour from start to finish. Robin, maybe we can talk about this at LAC @ Lyon this summer? Will you be there?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment