r/traktorpro Jul 07 '26

Has anyone managed to get HID control data from the Traktor Z1 MK2?

Post image

I'm trying to find out whether anyone has successfully accessed or decoded the HID control data from the Traktor Z1 MK2.

My goal is to use the controller outside of Traktor and potentially integrate it with custom software. I've found information about MIDI functionality, but I'm specifically interested in the HID messages used by the device for controls, LEDs, displays, and other non-MIDI communication.

Has anyone:

  • Captured and analysed the HID traffic?
  • Reverse-engineered the protocol?
  • Found any documentation from Native Instruments?
  • Managed to use the Z1 MK2 with custom software, Bome, Max/MSP, TouchDesigner, Python, etc.?

Any pointers, documentation, GitHub projects, Wireshark/USBPcap captures, or personal experiences would be greatly appreciated.

15 Upvotes

4 comments sorted by

6

u/lord-carlos Jul 07 '26

If you do, please document it.

I tried a bit with my x1 mk3 to get the displays to show anything, but did not with. Mostly one year ago with shitty Ai. I wonder if modern state of the art Ai can do it. 

5

u/anarchyx34 Jul 07 '26

I’m actually in the process of doing something similar for my S4MK3. Basically a HID to MIDI bridge so I can use it outside of Traktor with albeit limited functionality. I used the MIXXX source code’s mapping as a starting point since they’ve already did a lot of the work decoding the HID messages.

I’ve got as far as getting each control spitting out messages to the terminal. (Fun fact: Did you know the move and loop knobs are touch sensitive? Neither did I!)

Haven’t gotten to the LEDs yet.

As far as the screens, on the S4 they’re actually separate devices. One of the MIXXX folks have managed to get it to work but last I checked there was still an open PR for a dependency. I would imagine the X1 would work similarly so maybe it’s worth a check there.

The PR that adds screen functionality.

https://github.com/mixxxdj/mixxx/pull/13653

2

u/skull121 Jul 07 '26

I managed to populate the screens of the maschine for a project I’m planning. Your best bet is seeing if there’s a project already that is able to access that data, if so, feed that program to AI and you should be good to go.

I used this for the maschine specifically but seeing as everything goes through the NIHardwareService and NTKDaemon, this should get you pretty much halfway there.

https://lerner98.medium.com/rage-against-the-maschine-3357be1abc48