ojacques / SynthesiaKontrol

:musical_keyboard: Use Native Instruments Komplete Kontrol mk2 light guide in Synthesia
MIT License
111 stars 21 forks source link

S88 MK1 Keyboard user here working but with issues #22

Open cjuggernaut opened 4 years ago

cjuggernaut commented 4 years ago

I have it working, kinda, but I have to have Komplete Kontrol open, disable light guide in preferences. Also sometimes the lights do not light up... Well actually alot of the time. Only some notes decide to light up when I am playing a song in synthesia. I'm on a Mac OS MOjave. Any suggestions? It's not very usable as is.

ojacques commented 3 years ago

@cjuggernaut, I don't have to have Komplete Kontrol opened myself. In fact, having KK opened causes issues. What happens if you don't have it opened?

Xample commented 1 year ago

I confirm, it's not working alone without Komplete Kontrol to be opened. My understanding is that KK init the Hid properly, and then only the tool can use it. Thank you @cjuggernaut to have pointed this, I tried using WebHID for a cross platform independent POC and since KK was not opened, none of my attempts did work.

Xample commented 1 year ago

Ok I sniffed the usb data sent, and the init pattern is "a00000" and NOT "a0" I did not try in python but try replacing device.write([0xa0]) with device.write([0xa0,0x00,0x00]) No need then to open Komplete Kontrol to make it work

Xample commented 1 year ago

Here is a working poc with a Kontrol S88 Mk1

ojacques commented 1 year ago

Thanks for this @Xample ! I have released a new version with your suggested changes. If you have the opportunity to test, I would appreciate it.

Xample commented 1 year ago

@ojacques the CoolDemoSweep is now working, but the script crashed right after:

Opening LoopBe input port Traceback (most recent call last): File "/Users/xample/Downloads/SynthesiaKontrol-master 3/SynthesiaKontrol.py", line 238, in ports = mido.get_input_names() File "/Users/xample/Library/Python/3.9/lib/python/site-packages/mido/backends/backend.py", line 169, in get_input_names devices = self._get_devices(*self._add_api(kwargs)) File "/Users/xample/Library/Python/3.9/lib/python/site-packages/mido/backends/backend.py", line 162, in _get_devices if hasattr(self.module, 'get_devices'): File "/Users/xample/Library/Python/3.9/lib/python/site-packages/mido/backends/backend.py", line 42, in module self.load() File "/Users/xample/Library/Python/3.9/lib/python/site-packages/mido/backends/backend.py", line 58, in load self._module = importlib.import_module(self.name) File "/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.9/lib/python3.9/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1030, in _gcd_import File "", line 1007, in _find_and_load File "", line 986, in _find_and_load_unlocked File "", line 680, in _load_unlocked File "", line 850, in exec_module File "", line 228, in _call_with_frames_removed File "/Users/xample/Library/Python/3.9/lib/python/site-packages/mido/backends/rtmidi.py", line 8, in import rtmidi File "/Users/xample/Library/Python/3.9/lib/python/site-packages/rtmidi/init.py", line 4, in from ._rtmidi import # noqa ImportError: dlopen(/Users/xample/Library/Python/3.9/lib/python/site-packages/rtmidi/_rtmidi.cpython-39-darwin.so, 0x0002): tried: '/Users/xample/Library/Python/3.9/lib/python/site-packages/rtmidi/_rtmidi.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/xample/Library/Python/3.9/lib/python/site-packages/rtmidi/_rtmidi.cpython-39-darwin.so' (no such file), '/Users/xample/Library/Python/3.9/lib/python/site-packages/rtmidi/_rtmidi.cpython-39-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')) xample@Mac-mini-242 SynthesiaKontrol-master 3 %

I'm on arm64