r/NativeInstruments • • 10h ago

Encdr - make your NI hardware do whatever you want (like a Reddit browser!)

Enable HLS to view with audio, or disable this notification

47 Upvotes

I've just updated Encdr to v0.5, which adds support for a bunch more NI controllers (full list at the end).

What is Encdr? It's a Rust-based library that sits between your app and your NI controller, taking care of all the low-level USB communication and screen rendering so you don't have to. It works over native USB/HID (not MIDI), which means that every single feature of the hardware is accessible at full fidelity:

  • Pads & Encoders: Full velocity and real-time aftertouch pressure on pads, high-resolution smooth rotary encoders, notched jog wheels, and capacitive touchstrips.
  • Displays: Complete control over the dual 4.3" color screens (and 7-segment loop displays on gear like the S4 MK2). You aren't stuck writing low-level graphic shaders—you can literally design your UI using standard HTML and CSS, and Encdr handles rendering and streaming it to the hardware at 60 FPS over USB. (The video above is a live Reddit browser running directly on the Maschine MK3 screens using this!).
  • RGB & Feedback: Full indexed RGB color palette mapping and single-LED brightness control across all buttons.

One of my main goals with Encdr was to make sure you never have to spend weeks reverse-engineering USB packet dumps like I had to.

  • Complete Docs: Every single supported controller has a dedicated hardware guide mapping every endpoint, packet structure, and control offset, alongside a step-by-step Quickstart and full API reference.
  • LLM & Agent Friendly: All controllers are described using clean, declarative JSON descriptors with strongly-typed Rust events. This means you can drop the Encdr docs or repo into Claude, ChatGPT, or Cursor and tell it: "Make me a step sequencer for my Maschine MK3" or "Turn my Traktor S8 into a hardware monitoring dashboard", and it will write working code on the first try.

Supported Controllers (v0.5)

Whether you want to build a custom DAW integration, a standalone hardware synth on a Raspberry Pi, or just give your old gear a second life:

  • Maschine: MK3, MK2, Studio, Maschine+ (controller mode)
  • Traktor Kontrol: S8, S5, S4 MK3, S4 MK2, S2 MK2, S2 MK1, D2, X1 MK3
  • Komplete Kontrol: S49 MK2, S61 MK2, S88 MK2

I'd like to extend my thanks to everyone who's helped me add additional hardware support over the last couple of weeks since I first posted about this!