/SynthesiaKontrol

:musical_keyboard: Use Native Instruments Komplete Kontrol mk2 light guide in Synthesia

Primary LanguagePythonMIT LicenseMIT

Synthesia Kontrol Guide

Use Native Instruments Komplete Kontrol mk2 light guide in Synthesia to learn keyboard.

Synthesia Kontrol

This is a project for my son, which you may find useful.

This program listens to light events from Synthesia sent to a virtual LoopBe1 midi port and lights the keys on Komplete Kontrol keyboard accordingly.

Install

Pre-requisites

  • Install LoopBe1 virtual midi port driver.
  • In Synthesia:
    • Go to settings/Music Devices
    • Select "nerds.de LoopBe1" from "Music Output"
    • In Keylight section of that output, select "Finger-based channel" (the last mode after 'channel 16')

SynthesiaKontrol

Windows

  • Download the Windows package locally on your PC from releases
  • Extract in a new folder
  • Run SynthesiaKontrol

Linux, MAC

Use the Developer method.

Developer

If you want to contribute to the project, you need to setup your Python environment.

SynthesiaKontrol

  • Install Python's module:
pip install hidapi
pip install mido
  • Run the program:
python SynthesiaKontrol.py
  • Build executable:
python setup.py build

Result is in build directory.

Status

  • Proof of concept: light keys from Komplete Kontrol MK2 S61
  • Figure out all the possible colors - see color_scan.py
  • Python app to listen to midi events from Synthesia and light keys - see SynthesiaKontrol.py
  • Leverage finger based channel light mode from Synthesia, introduced in r4376 to show left and right hands on KK
  • Address issue where notes are turned off too quickly (Forum post here)
  • Package as simple executable
  • All notes off
  • Customizable note colors
  • Rainbow mode: when playing a note, make a rainbow on that note
  • Simpler / better instructions
  • Support all Komplete Kontrol MK2 keyboard sizes (currently only S61)
  • Support Komplete Kontrol MK1 keyboards
  • Use different colors per channel

Getting help

I prefer GitHub issues. Otherwise, there is a Synthesia forum thread here.

Acknowledgements

Thanks to

  • Nicholas Piegdon for his dedication to Synthesia, and the great help he provides for his user community
  • AnykeyNL to figure out an initial scheme for Komplete Kontrol MK1 USB protocol as well as the structure of an app
  • Jason Bret to have figured out the MK2 version, and the 0x81 endpoint which I use.