Following the great work from anykey who came up with a first version for Komplete Kontrol MK1, Jason Bret who figured out more details on KK mk2 USB protocol, and Nicholas's support for custom lighting schemes, I wrote Synthesia Kontrol to use Synthesia in conjunction with Native Instruments Komplete Kontrol keyboards and their light guides.
I did this is for my son who started to be interested in keyboard playing through Synthesia Youtube videos!
It supports:
- Guiding lights during playback and different learn modes
- Different colors for left / right hands
- Different color for thumb
There are still rough edges and bugs here and there, which I probably need to work on with Nicholas, but you can see work in progress and code here:
I'm looking for testers for Komplete Kontrol MK2 25 and 88 keys, as well as KK MK1. Just reach out in this thread.
I don't expect MK2 25 or 88 keys to work yet. Nor KK MK1: I need to work on that. This is why I'd need testers...
Posted: 07-27-18 8:38 am
by a1vv
I have a KK S88 mk1, and I've been looking for a way to have the lights on my keyboard only light up when I press on the corresponding keys - as in having all the keys black except the ones I'm pressing down. I've tried both yours and Anykey's Synthesia-Kontrol, although I haven't gotten them to work. When I run anykey's 'komplete.py' it simply returns "No komplete device found", even though the keyboard is plugged in and works. Even if I were to get it to work with my KK, both of these programs are built to work with synthesia, which I don't use. It seems to me like it would/should be possible to write something that allows for the keylights to be triggered by the MIDI notes sent out by the keyboard.
I would love to help test SynthesiaKontrol out on my kk mk1 though, if that would be helpful. I'll mess around a bit and see if I can get something to work for me, but I'm not that good at python so we'll so how that goes.
EDIT: I found the product key for my keyboard (1410) and changed the product ID in anykey's code to 0x1410. Now it recognizes my keyboard when I run komplete.py.
I'll see if I can get your code to work for my keyboard, I think I'd only have to change the offset and the way it sends colors, but I'll give it a shot.
Also, I think I figured out how to calculate the note offset, (offset=108-numkeys+1). The offset for my S88 was 21, and the offset for a S61 was 48. 108-88+1=21, 108-61+1=48. Could be useful when making a program like this easier to use, instead of finding out the offset yourself you'd only have to input the number of keys on the keyboard.
Posted: 08-12-18 6:58 am
by a1vv
I got it to work! I modified your code and made a version that should work with all MK1 keyboards, as long as you change the product id and input the right number of keys.
Thank you so much for developing this! It is wonderful, omg!
I have the S88 Mk2, here's the HID addresses incase anyone else wanted them :
device.open(0x17cc, 0x1630)
and the offset :
offset = -21 # To change when keyboard is not 88 keys
Anyone else with an 88 keyboard will need to search the code and replace "61" with "88"
Additionally, I've been trying to learn & play claire de lune with this script. Its immensely helpful and frustating at the same time (because, debussy was a god among mortals)
The reason why it's frustrating is because the 'note-off' message from the MIDI Keyboard triggers the lights off on the keyboard -- even If the upcoming synthesia chord has the notes of the previous chord in it. In claire de lune, sometimes all 10 fingers are on the keyboard, but during a chord change, the releasing of some of the notes triggers the notes off, even though the upcoming chord has those notes? Does that make sense? Im wondering if you can help me come up with a solution! Otherwise, this script is amazing !
Posted: 03-24-19 6:52 pm
by ojacques
Thank you all for the very nice feedback and the willingness to help. a1v, nabume, your comments / your code helped me for a new release.
Hello,
I really appreciate there is a solution to create lights for Synthesia on the Kontrol keyboard.
I'm looking for help to get this feature working. I've come to a problem i need to solve. Presently stuck at the "pip install hidapi" stage. Attached screenshot. Terminal response says -bash: pip: command not found
Can anyone help?
Regards
Nathan
Posted: 03-31-20 10:04 am
by Naycin
I found success by adding 3 on the command line to make "pip3 install hidapi"
Posted: 01-13-23 10:12 pm
by tillt
Here is another project supporting the Komplete Kontrol S-series; Komplete Synthesia.
Komplete Synthesia works on macOS 11.0 and beyond.
SynthesiaRunning.png (43.85 KiB) Viewed 1539 times
Oh, now it additionally supports Synthesia application window mirroring onto the Komplete Kontrol LCD screens.
See it in action;
Posted: 02-09-23 2:41 pm
by Nicholas
Wow, I didn't realize they offered so much control (kontrol? ) over the device to do that sort of mirroring. Nice work on all of that!
Posted: 04-12-23 2:31 pm
by Fannon
Really impressed with the screen mirroring. Just curious - how did that work? For sure not via MIDI interface
Thanks for putting this script out there. I used to have a Komplete Kontrol Mk2 (sold it recently) and used this a bit. But now I've got a LinnStrument and took your project as inspiration to create something similar for it.