NIControl is a small program that maps the Control events of the Native Instruments Audio Kontrol 1 to MIDI compliant signals under Linux. The sound card is well supported
through the ALSA project
and the driver produces kernel input events for the controls on top of the sound card. These input events are keyboard events for the buttons and joystick events for the wheel. With most of the music software needing a MIDI compliant controller the kernel events can hardly be used to control these programs. Therefore I have written the small program NIControl
which maps the kernel events to MIDI compliant signals.
You can download the latest version of NIControl and its source here. An Ubuntu package will be provided soon. The program uses the RtMidi library
for generating real time MIDI events. The library (which is very small) is included in the NIControl package and its sources are provided so that no further dependency has to be dealt with.
The source package provides a configure script and a makefile which can be used to compile NIControl:
tar xzvf nicontrol.tar.gz
For successfully compiling it you need to have the development files of the shared library for ALSA applications (which is a dependancy of the used RtMidi library) installed. On Ubuntu therefore you have to install the libasound2-dev
package (sudo apt-get install libasound2-dev
NIControl needs to have read access to the /dev/input/event* file that is provided by the kernel driver of the sound card. Be sure that you have the right permissions to this file on your system. You can set the correct permissions by creating a udev rule as described in this tutorial.
Then simply start the MIDI daemon with:
When everything works, the LEDs of the three buttons will blink for a moment and then turn off. When you press a button or turn the wheel the according LED will turn on.
You can find additional information on this sound card under Linux on this page
. It is possible to control the LEDs manually (for example with scripts) and to use all four output channels with ALSA as well as JACK.