/SynthesiaKontrol

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

Primary LanguagePythonMIT LicenseMIT

Synthesia Kontrol Guide

Use Native Instruments Komplete Kontrol MK1 and 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.

    💡 On Mac, you can use the built in "IAC Driver" - open "Audio midi setup" to create a device named "LoopBe" as explained by D-One

    🆕New: Since January 2023, check out KompleteSynthesia: a MAC native project from @tillt

  • In Synthesia:

    • Go to settings/Music Devices
    • Select "LoopBe Internal MIDI" 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 only works with Python3. One of the symptom when using Python2 is that you will get an error message saying that the keyboard is not supported yet.

SynthesiaKontrol

  • Install Python's module:
pip3 install -r requirements.txt
  • Run the program:
python3 SynthesiaKontrol.py
  • Build executable (Windows)

    • Install cx_Freeze: pip3 install cx_Freeze
    • Run build
      python3 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.
  • a1vv for the fork, and figuring out the changes for MK1 - which allowed me to create a version with support of MK1 and MK2
  • Nabume for the S88 MK2 info.
  • KompleteSynthesia: a MAC native project from @tillt