Skip to content

Rust application that read Traktor Kontrol X1 Mk1 USB events and convert them to MIDI

License

Notifications You must be signed in to change notification settings

Opa-/x1-mk1-usb2midi

Repository files navigation

X1 Mk1 USB2MIDI

Rust

Buy Me a Coffee at ko-fi.com

Native Instruments discontinued the support for the Traktor Kontrol X1 MK1 since MacOS Catalina see here. This means that the controller is not recognized by MacOS nor Traktor anymore and it's not possible to use it as a MIDI controller because Native Instruments doesn't want to develop a proper driver.

Note that a nicer way of doing this would be to develop a real driver. But in order to use Apple's DriverKit, you need to enroll for Apple Developer Program for $99 a year.

This program aims to 💩 on NI's planned obsolescence and expensive Apple Dev Program by providing a way to use the X1 MK1 as a MIDI controller with the software of your choice.

Thanks to @joherold repository for all the findings joherold/traktor_x1

Disclaimer: This is my first Rust program, use at your own risks :)

So far, it has been tested with 2 X1 MK1 against Traktor Pro 3.11.0 44 on a Apple M2 Pro running MacOS Ventura 13.6.4 (22G513).

Install (macOS)

Grab the latest release and run the App, it should launch in the Dock and you should have an icon in the menu bar as well, listing all currently connected X1 Mk1.

The first time you run the app, macOS will not run it, saying it's from an unidentified developer. You need to go in System Settings > Privacy & Security, scroll down and click "Open Anyway".

A basic mapping is also available on the release page DeckAB.tsi. You can import it into Traktor (created with Traktor 3, not sure about Traktor 2 compatibility). The application creates virtual MIDI ports using the serial number of the controller as the name so you should put it as both Input and Output like this :

If you need additional controller, just duplicate the device, assign the In-Port & Out-Port to the other X1 Mk1 serial number and click on Edit -> AB > CD to convert the mapping :

Here's a video if needed for the later step.

If you want to do your own mapping, you can simply use the "Learn" feature of Traktor and click on the buttons 😉

🫵 Your feedback is essential to enhance/fix this app. Feel free to report any feedback or any issue you could encounter in the discussions tab or the issues tab.

Known issues

  • The <| BEAT and BEAT |> buttons can only be used as "Hold" button types. All other buttons can only be used as "Toggle" button types.

Features

  • No limit on the number of controllers
  • Hotplug support
  • LED support
  • SHIFT button support
  • HOTCUE button support
  • macOS menu bar integration

Roadmap

  • Document which MIDI channels and CC are used for each knob/button/encoder
  • Linux
  • Windows 11
  • GUI configuration

Contributing

Feel free to contribute to the project by posting an issue, a thread in the discussions tab or directly a PR.

Development Requirements

About

Rust application that read Traktor Kontrol X1 Mk1 USB events and convert them to MIDI

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published