support older Native Instruments controllers on GNU/Linux

Bug #1432442 reported by Be
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mixxx
Won't Fix
Wishlist
Unassigned

Bug Description

The snd-usb-caiaq driver for Linux supports the Audio 2/4/6/8 series of audio interfaces and the audio interfaces built into Native Instruments DJ controllers. However, Native Instruments controllers use a proprietary protocol called NHL (Native Hardware Layer) for the controller signals, which AFAIK, no one outside of Native Instruments knows much about. For all we know, different NI controllers could use completely different protocols. On Windows and OS X, somehow these controllers can be switched to a MIDI mode, but AFAIK no one has managed to do this on GNU/Linux. It is unclear whether this is done by the drivers or the Native Instruments Controller Editor program. At least one of these pieces of software is required because pressing the buttons on the controller when it is plugged into a PC running GNU/Linux does not change anything. Hopefully, the software simply sends a signal to the controller which switches the controller firmware to sending MIDI messages over USB. It may be the case that NHL signals are translated to MIDI signals in software on the PC, which would mean the NHL protocol would have to be reverse-engineered by someone with an NI controller and a lot of knowledge about USB signals.

I have tried running the Controller Editor program with WINE on GNU/Linux but it did not detect a Traktor Kontrol S4. I do not remember whether I had the driver for that controller installed with WINE though.

See also:
http://mixxx.org/forums/viewtopic.php?f=7&t=3131&p=11843

Be (be.ing)
description: updated
description: updated
Revision history for this message
Be (be.ing) wrote :

Take a look at the source code for the caiaq Linux driver (sound/usb/caiaq/input.c in the Linux source tree), it appears the S4 and X1 as well as the Maschine are already supported by presenting the controller signals as Linux input events. I think the best way to support these controllers on GNU/Linux would be to create a library to translate these Linux input events to MIDI. That way, one Mixxx mapping could be used to support these controllers across GNU/Linux, OS X, and Windows.

Be (be.ing)
tags: added: nativeinstruments
Revision history for this message
Be (be.ing) wrote :

Apparently, only the older NI controllers use NHL. The new ones use HID and should be mappable like any other HID controller. The HID controllers only have drivers provided by NI for Windows, but OS X handles generic HID devices natively (see http://www.native-instruments.com/en/support/downloads/drivers-other-files/ ). According to an interview with NI (http://djworx.com/kontrol-s8-follow-native-instruments/ ) and testing by myself and hile, it is the Windows and OS X drivers that translate NHL to MIDI, not the Controller Editor program.

NHL controllers:
S2 Mk1
S4 Mk1*
S8
X1 Mk1*
Maschine**
Rig Kontrol 2**
Rig Kontrol 3**

*Supported by caiaq driver with Linux input events. Mixxx has a MIDI mapping for the X1 Mk1, but this is only supported by using the OS X or Windows drivers to translate NHL to MIDI.
**Not intended for DJing, but also supported by caiaq driver with Linux input events

HID controllers:
S2 Mk2
S4 Mk2
X1 Mk2
F1***
Z1
Z2

*** Already has an HID mapping in Mixxx.

Revision history for this message
Be (be.ing) wrote :

The caiaq driver does not seem to support the audio interface in the Z1 or Z2.

Be (be.ing)
summary: - support Native Instruments controllers on GNU/Linux
+ support older Native Instruments controllers on GNU/Linux
Revision history for this message
Be (be.ing) wrote :

According to http://www.native-instruments.com/en/support/knowledge-base/show/1925/i-cannot-find-the-driver-for-my-ni-device-on-the-website-mac-os-x/ , the following device are class-compliant:
S2 Mk2
S4 Mk2
Z1
Z2
F1
X1

Hopefully that means that both the HID and audio interface functionalities of the devices need no special driver for use with Linux. All of those on that list except the F1 and X1 have integrated audio interfaces.

Revision history for this message
Harry van Haaren (harryhaaren) wrote :

Just to note that this topic is being discussed on the Ctlra issue here:
https://github.com/openAVproductions/openAV-Ctlra/issues/19

I have access to an S2 Mk2 and Z1, both of which are indeed class-compliant. This means that on Linux the snd-usb-audio driver provides audio-hardware access via ALSA, while USB HID endpoints make the buttons / faders available.

RJ Skerry-Ryan (rryan)
Changed in mixxx:
importance: Undecided → Wishlist
status: New → Confirmed
tags: removed: nativeinstruments
Revision history for this message
Be (be.ing) wrote :

I am closing this as Won't Fix because it's unlikely anyone will do this work for such old devices anymore. If someone does step up to do this, that would be great and we can reopen this.

Changed in mixxx:
status: Confirmed → Won't Fix
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/7905

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.