Opa- / x1-mk1-usb2midi

Rust application that read Traktor Kontrol X1 Mk1 USB events and convert them to MIDI
Apache License 2.0
24 stars 0 forks source link

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 :poop: 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

Features

Roadmap

Contributing

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

Development Requirements