Use Native Instruments Komplete Kontrol MK1 and MK2 light guide in Synthesia to learn keyboard.
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 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
-
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')
- Download the Windows package locally on your PC from releases
- Extract in a new folder
- Run SynthesiaKontrol
Use the Developer method.
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.
- 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.
- Install cx_Freeze:
- 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
I prefer GitHub issues. Otherwise, there is a Synthesia forum thread here.
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.