Giter Site home page Giter Site logo

goaskin / qkontrol Goto Github PK

View Code? Open in Web Editor NEW
53.0 11.0 3.0 1.62 MB

a tool to make NI Komplete Kontrol MK2 controllers more usable on Linux - and an alternative solution for macOS

License: GNU Lesser General Public License v2.1

C++ 99.01% QMake 0.99%
komplete-kontrol native-instruments midi-controller midi-device midi-keyboard qt5 human-interface-device libhidapi linux macos

qkontrol's Introduction

qKontrol is a Linux / macOS application to configure Native Instruments Komplete Kontrol MK2 keyboards.

With this software it is possible to configure MIDI CCs assigned to all knobs, buttons, sliders, wheels and pedals, to split the keyboard into zones and to display assignments, CC values and custom images on the two displays. Furthermore, it offers a possibility to communicate with Bitwig Studio (incl. the Linux version) and maybe other DAWs the start and stop playback and recording, to turn on and of looping and the metronome and to fetch and display information about the currently selected track and plugin names as well as the song position.

Device LCDs

qKontrol is an open 3rd party application. It does not depend on any drivers or software provided by Native Instruments and comes with it's completely own codebase.

Native Instruments is not responsible for this software in any way. If you need to get support, please ask the community!

SYSTEM REQUIREMENTS:

To run this program on Linux, the following dependencies need to be installed:

  • the QT toolkit
  • parts of libQXT (included)
  • libusb
  • libhidapi

On Ubuntu, Debian and Raspbian, run 'apt-get install libqt5gui5 libqt5test5 libhidapi-libusb0 libusb-1.0' to install all the dependencies!

The Mac version comes as application bundle which includes all dependencies. There is no additional software required.

BUILD INSTRUCTIONS:

Ubuntu Linux:

1.) install the following packages from the repositories:

  • sudo apt-get install qtbase5-dev-tools qtbase5-dev build-essential libhidapi-dev:amd64 libhidapi-libusb0 libusb-1.0-0-dev

2.) dive into the source directory of the program and execute the following commands:

  • /usr/lib/x86_64-linux-gnu/qt5/bin/qmake
  • make
  • strip qkontrol

Mac OS X:

1.) install the developer tools from apple using the app store

2.) download the QT open source edition from https://www.qt.io/ and install it

3.) open a terminal to install libhidapi and libusb using brew:

4.) start the program "QT creator" from your recently installed QT distribution, open the .pro file from the qkontrol source and build the program using the menus

5.) (optionally) if you want to give your build to others which don't have QT installed theirselves, then locate the tool 'macdeployqt' from your QT installation. When found, then open a terminal and go into the folder where QT creator placedi the executable app bundle. Execute /the/folder/where/you/can/find/macdeployqt qkontrol.app.

Windows:

1.) De-install the Komplete Kontrol Software and the NI Host Agent if installed. This software cannot coexist on Windows.

2.) Visit https://www.native-instruments.com/de/support/downloads/drivers-other-files/ , download and install the Komplete Kontrol MK2 drivers.

3.) Download ZADIG from https://zadig.akeo.ie/ and start this tool. Research for USB devices and select "Komplete Kontrol MK2 BD". When selected, replace the driver! This is necessary because we cannot interact with the original Native Instruments driver. The prior installation is only necessary for MIDI.

4.) Visit https://www.msys2.org/ . There, download and install MSYS2. After the installation, a shell opens and we need to install the dependencies by typing in these commands:

  • pacman -S mingw-w64-x86_64-hidapi
  • pacman -S mingw-w64-x86_64-libusb

5.) download the QT open source edition from https://www.qt.io/ and install it

6.) start the program "QT creator" from your recently installed QT distribution, open the .pro file from the qkontrol source and build the program using the menus. Use minGW 64 bit as toolchain because others won't work. After the program has been compiled, it doesn't start through the QT creator. That is normal at this point. Ignore this!

7.) Locate the place of your freshly compiled qkontrol.exe and run the program! It does just list a lot of missing DLLs. Notice the names, locate them on your harddisk and copy them all into this directory.

8.) run the program again to check if it works now.

9.) if you want to redistribute the compiled windows vesion, it is a good idea to pack all the DLLs into the archive and maybe also the driver you created with ZADIG.

KNOWN ISSUES:

  • On Linux, this program only runs with root permissions because the Linux kernel does not grant any device permissions to normal users. If you want to use the program as normal user, move the file '79-udev-komplete.rules' into the directory /etc/udev/rules.d/ and reboot!

  • On macOS, three system services need to be terminated before this program can access the device properly. The software asks on startup, if it should do it for you.

  • The current CC values are only displayed while a MIDI application is opened which receives MIDI data from the Komplete Kontrol. This is because the keyboard does only send the HID messages containing the CC values while MIDI data is beeing requested

  • At last, this software is usable with the Komplete Kontrol MK2 only. This includes all Komplete Kontrol keyboards with two displays on it. Like the first edition of the Komplete Kontrol keyboards, the models M32, A25, A49 and A61 are also different hardware and not compatible.

  • Sometimes, the left and right key send their key codes continously instead of one time per touch.

LICENSE:

You are permitted to use, modify and distribute this software under the terms and conditions of the LGPL license. Please read the LICENSE file for more details! LGPL was chosen because some dependencies of this software are also released under the terms and conditions of the LGPL license. I would really prefer to waive the copyright protection but that is not possible.

This software comes with the source code of two 3rd party widgets from the libQXT project. The source files you will find in the widget/ subdirectory. These widgets, you may also use under the terms and conditions of the CPL license. For more details, read the LICENSE file in the widgets/ subdirectory!

qkontrol's People

Contributors

goaskin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qkontrol's Issues

Doesn't find device (KK S88 MK2)

Hi there ...
First off, thanks very much for your work on this. It's really fantastic to see. I came across this via your thread on the old NI forums.

I have installed this on a MacBook Air M1. I have a NI KK S88 MK2 keyboard installed and working.

When I run qKontrol it tells me no device is found ("No Komplete Kontrol MK2 keyboard could be found. Please check if the device is turned on and connected to the PC! The program will be closed now").

Do you have any suggestions? Is it that this doesn't work on M1 / Silicon devices? Or anything else you can suggest?

Thanks so much...
Jonathan

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.