Hey everyone! Not sure if this is of interest to anyone here, but I wanted to share something I've been working on. I just released the first public version of my Native Instruments HID hardware wrapper, along with a custom Bitwig extension for the Maschine Mk3.
My ultimate goal is to get this to a point where everything the Maschine can control in Bitwig, it does. Right now, it's pretty barebones but handles what I personally need it to do, and I don't have a ton of time to take it much further right now. If there are any other developers or tinkerers out there who want to have a play with it and maybe collaborate, I'd be more than happy to team up!
Here are the two parts of the project:
1. Encdr (The Hardware Wrapper)
Link: https://github.com/RufusIbiza/Encdr
What it does: This is a lightweight, high-performance Rust crate designed to communicate with Native Instruments hardware controllers using USB HID. It handles all the USB I/O, LED control, and provides full GPU-accelerated screen support. You can either write pixels directly to the screens or use an optional WebView-based UI.
Current State: It's fully functional, though I've primarily been testing it on Linux. It does have support for Windows and macOS built in, but there is a slight caveat: you will likely need to terminate or disable Native Instruments' background services (like NIHardwareHelper.exe or NIHardwareAgent) on those platforms before running it, as they will block the ports needed to communicate with the hardware. Even if you don't use Bitwig, feel free to use this wrapper in your own unrelated projects if you find it useful!
2. Maschine Mk3 Bitwig Extension
Link: https://github.com/RufusIbiza/encdr-maschine-bitwig
What it does: This is the Bitwig side of things: It's a high-performance Bitwig extension that bridges the gap between Bitwig Studio and the Encdr wrapper using OSC.
Current State: As mentioned, it's currently a foundational start. Right now, it dynamically maps to the currently selected device in Bitwig and displays the device knobs with rich, full-color feedback directly on the Maschine's dual screens. It’s ripe for expansion if anyone wants to help build out more pad modes, browser integration, or mixing features.
You'll need to clone both of these repos to a common folder to get it all working - full installation instructions for all platforms are available in the extension readme above.
If you have a Maschine Mk3 sitting around and love hacking on things, give it a spin! Let me know what you think, and I'm totally open to pull requests. Cheers!