Maschine MK3 as a MIDI controller in Linux

icaria36
icaria36 Member Posts: 3 Member
edited July 2022 in Maschine

The Maschine MK3 is a great Bitwig controller. Bitwig is a great DAW, and it supports Linux officially. However, the Maschine won't even listen or talk to Linux. I wonder what could be technically possible in the hacking / unofficial space.

As a MIDI controller, the Maschine has most of its buttons assigned to CC values. Native Instruments offers a powerful and beautiful Controller Editor that happens to run without problems in Linux with WINE. I mean, Controller Editor works, but it won't be able to see the Maschine connected to the Linux system via USB, so it becomes a beautiful and useless application. :)

There is nothing proprietary in MIDI signals and USB connections. The problem can't be there.

Perhaps the communication between Controller Editor and the Maschine is proprietary. Having no UI, how hard would it be to have a binary wrapped (?) or the communication reverse-enginnered?

Then there are the displays. OK, perhaps this is harder. However, as a midi controller the functionality of the displays is quite secondary. Most of the values displayed can be seen in the DAW anyway. Even if they were black screens, the midi controller still would be damn good.

I mean, this little piece of software that allows the Maschine to send and receive MIDI can't be critical to NI's IP. This is not another request to support the Maschine software, Komplete, etc, on Linux. And this is definitely not another discussion about Linux market share, the OS of Maschine+, etc. 😏 Other people might find interesting to run this beautiful hardware as a controller on Linux just because it would be cool, and that's it.

Maschine & Bitwig: https://www.bitwig.com/learnings/new-integration-for-ni-controllers-142/

The documentation (PDF): https://www.bitwig.com/pery/download/28/

Comments

  • GoaSkin
    GoaSkin Member Posts: 28 Member

    The communication bethween the NI Hardware and your computer is neither "top secret" nor proprietary.

    More or less, HID is used to configure the current behavior of all knobs, buttons and sliders and any button illumination:

    https://en.wikipedia.org/wiki/Human_interface_device

    To change the content of the two LCD screens, RGB16 bulk data is sent to another USB subdevice.

    A few years ago, I wrote the qKontrol program that opens some functionality of the Komplete Kontrol keyboards on Linux: https://github.com/GoaSkin/qKontrol/

    The program also works on Mac OS and Windows as long as neither device drivers are installed, nor any NI services accessing the devices are running. It is a completely independant solution that handles any USB communication by it's own and does not depend on any NI software.

    I don't own a Maschine, therefore I will not provide a simular solution for Maschine. But the devices are almost similar. They use different USB IDs and the HID arrays to be sent address different knobs and buttons; they may be shorter or longer.

    If anybody wants to code a Linux tool based on C++ and QT, (s)he may create a fork.

  • darkwaves
    darkwaves Member Posts: 342 Guru

    Do something like that for android (or ios, I suppose) and let me throw all the 99 cents at you.

Back To Top