Open tillt opened 1 year ago
Need device-id for: S49 MK3 S61 MK3 S88 MK3
How can I help? I own an MK3. When starting KS it asks for the multiDevices.xml file location.
How can I help? I own an MK3. When starting KS it asks for the multiDevices.xml file location.
Awesome! Thanks for your kind offer. As is, KompleteSynthesia will not work in full with your controller.
As a first step it is however a good idea to configure Synthesia the "correct" way. multiDevices.xml
is the configuration file located in ~/Library/Application Support/Synthesia
. Locate and select it, that will do a major part of the configuration. See also https://github.com/tillt/KompleteSynthesia/blob/main/SETUP.md for information on the MIDI loopback configuration: https://github.com/tillt/KompleteSynthesia/blob/main/SETUP.md#creating-the-virtual-midi-interface
With those things out of the way, we will need to specifically support the MK3 device generation with...
1st: USB device id --- basic info needed to talk to HID or USB bulk interfaces 2nd: Lightguide control --- making the keys light up in the right color 3rd: Button control --- making additional buttons light up and function as expected (ie jogwheel or play/pause) 4th: Display control --- making the display show a mirrored copy of the Synthesia application window
To get the information needed for 1-4, we will need to reverse engineer what tools like ie KompleteKontrol do to talk to your MK3 controller.
The easiest way to get that done is using WireShark. Have you ever played with WireShark before? I would also be happy to lead you through the process.
@Bounga please see above -- I wasn't shure if you would get a notification without this mention.
For getting the device ID -- we can use the macOS System Report...
.
Navigate to the Apple-Menu on the top left of your screen:
Then select About This Mac
:
Click on More Info
:
At the bottom of the screen, click on System Report...
:
Now Navigate on the left hand side towards USB
. Then locate the Native Instruments Kontrol MK3 device and create a screenshot of the data needed -- showing what my Komplete Kontrol S88 MK2 shows as an example:
For supporting all the MK3 devices, we need the Product ID, the Vendor ID (for validation) and maybe the exact USB device name as displayed bold on the top of the bottom right part of the screen.
Hi @tillt! Here are the device id info
For the sake of info. KompleteSynthesia doesn't detect my keyboard after having loaded the multiDevice.xml
file. I do have created a LoopBe driver that I activated in Synthesia:
And by the way I know how to use wireskark, at least the basics.
@Bounga wohooooo - you rock!
Ive gone ahead and included your information in a new PR that will establish MK3 compatibility -- at least as much as we get done here. See https://github.com/tillt/KompleteSynthesia/pull/28
Now preparing an alpha version for your consideration. It won't magically do all the things but it may do something :D
Sounds good to me. I'll take a look at #28. If it only recognize the MK3 it will be a great step forward.
@Bounga Please try https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.1
Still have this message:
@Bounga interesting -- looking into that...
Oh, btw - the auto-updater will tell you that there are new versions available while that actually isnt true. This is a quirk of KS alpha versions that I will fix later. It would install the previous version again -- so hope that isnt our problem right now? :)
[edit after some time of looking closer]
actually there might have been good reasons for this to fail -- I suspect KS was trying to initialise the USB bulk transfer and failed at that point. That is only needed for screen mirroring and will most definitely not work for many other reasons on the MK3 atm - at least I have strong suspicion.
Disabled that USB bulk transfer for MK3 for now, that might get us further....
@Bounga please give https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.2 a shot!
Still have the same error screen. Maybe I did something wrong when configuring things…
Please share a screenshot, it should be slightly different;
No Native Instruments HID controller detected
or
No Native Instruments USB controller detected
is there any way to provide you more info about this init process?
You're right, that's not the same error:
is there any way to provide you more info about this init process?
Sure; the HID detection happens here: https://github.com/tillt/KompleteSynthesia/blob/a38e15987425c548f9aebfe9bfa18383fceb6b71/KompleteSynthesia/HIDController.m#L398
We try to get a list of all the HID devices currently connected. With that list we go through and filter for NI devices. NI devices (vendor match) then get their product ID compared to a list we created, showing all our supported devices.
Please run hidutil list
in your terminal and paste the output.
Please run
hidutil list
in your terminal and paste the output.
Services:
VendorID ProductID LocationID UsagePage Usage RegistryID Transport Class Product UserClass Built-In
0x0 0x0 0x49503173 65288 2 0x1000005df (null) AppleSMC PMU IP1s (null) 1
0x0 0x0 0x54503864 65280 5 0x100000460 (null) AppleSMC PMU tdev8 (null) 1
0x0 0x0 0x54503264 65280 5 0x1000004f0 (null) AppleSMC PMU tdev2 (null) 1
0x0 0x0 0x56506273 65288 3 0x1000005b1 (null) AppleSMC PMU VPbs (null) 1
0x0 0x0 0x4950336c 65288 2 0x1000004c2 (null) AppleSMC PMU ildo3 (null) 1
0x0 0x0 0x5650366c 65288 3 0x100000494 (null) AppleSMC PMU vldo6 (null) 1
0x0 0x0 0x54473043 65280 5 0x1000005e5 (null) AppleSMC gas gauge battery (null) 1
0x0 0x0 0x54503062 65280 5 0x100000466 (null) AppleSMC PMU tdie0 (null) 1
0x0 0x0 0x54503564 65280 5 0x1000004f6 (null) AppleSMC PMU tdev5 (null) 1
0x0 0x0 0x4950316c 65288 2 0x1000005b7 (null) AppleSMC PMU ildo1 (null) 1
0x0 0x0 0x4950366c 65288 2 0x1000004c8 (null) AppleSMC PMU ildo6 (null) 1
0x0 0x0 0x56503062 65288 3 0x10000049a (null) AppleSMC PMU vbuck0 (null) 1
0x0 0x0 0x54503362 65280 5 0x10000046c (null) AppleSMC PMU tdie3 (null) 1
0x0 0x0 0x54503864 65280 5 0x1000004fc (null) AppleSMC PMU tdev8 (null) 1
0x0 0x0 0x29 13 12 0x100000979 FIFO AppleMultitouchDevice Apple Internal Keyboard / Trackpad (null) 1
0x0 0x0 0x54473142 65280 5 0x1000005eb (null) AppleSMC gas gauge battery (null) 1
0x0 0x0 0x4950346c 65288 2 0x1000005bd (null) AppleSMC PMU ildo4 (null) 1
0x0 0x0 0x49503062 65288 2 0x1000004ce (null) AppleSMC PMU ibuck0 (null) 1
0x0 0x0 0x56503362 65288 3 0x1000004a0 (null) AppleSMC PMU vbuck3 (null) 1
0x0 0x0 0x54503662 65280 5 0x100000530 (null) AppleSMC PMU tdie6 (null) 1
0x5ac 0x8104 0x0 65280 3 0x100000561 SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x54503662 65280 5 0x100000472 (null) AppleSMC PMU tdie6 (null) 1
0x0 0x0 0x54503062 65280 5 0x100000502 (null) AppleSMC PMU tdie0 (null) 1
0x0 0x0 0x56503162 65288 3 0x100000592 (null) AppleSMC PMU vbuck1 (null) 1
0x0 0x0 0x4950616c 65288 2 0x1000005c3 (null) AppleSMC PMU ildo10 (null) 1
0x0 0x0 0x49503362 65288 2 0x1000004d4 (null) AppleSMC PMU ibuck3 (null) 1
0x5ac 0x8104 0x0 32 138 0x100000564 SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x56503662 65288 3 0x1000004a6 (null) AppleSMC PMU vbuck6 (null) 1
0x0 0x0 0x54503962 65280 5 0x100000536 (null) AppleSMC PMU tdie9 (null) 1
0x0 0x0 0x54503962 65280 5 0x100000478 (null) AppleSMC PMU tdie9 (null) 1
0x0 0x0 0x54503362 65280 5 0x100000508 (null) AppleSMC PMU tdie3 (null) 1
0x0 0x0 0x49503162 65288 2 0x1000005c9 (null) AppleSMC PMU ibuck1 (null) 1
0x0 0x0 0x49503662 65288 2 0x1000004da (null) AppleSMC PMU ibuck6 (null) 1
0x0 0x0 0x56503462 65288 3 0x10000059b (null) AppleSMC PMU vbuck4 (null) 1
0x0 0x0 0x56503962 65288 3 0x1000004ac (null) AppleSMC PMU vbuck9 (null) 1
0x0 0x0 0x54503173 65280 5 0x10000053c (null) AppleSMC PMU TP1s (null) 1
0x0 0x0 0x54503173 65280 5 0x10000047e (null) AppleSMC PMU TP1s (null) 1
0x0 0x0 0x49503462 65288 2 0x1000005cf (null) AppleSMC PMU ibuck4 (null) 1
0x0 0x0 0x5450305a 65280 5 0x100000450 (null) AppleSMC PMU tcal (null) 1
0x0 0x0 0x49503962 65288 2 0x1000004e0 (null) AppleSMC PMU ibuck9 (null) 1
0x0 0x0 0x56503762 65288 3 0x1000005a1 (null) AppleSMC PMU vbuck7 (null) 1
0x0 0x0 0x56503173 65288 3 0x1000004b2 (null) AppleSMC PMU VP1s (null) 1
0x0 0x0 0x54503267 65280 5 0x100000542 (null) AppleSMC PMU TP2g (null) 1
0x0 0x0 0x54503267 65280 5 0x100000484 (null) AppleSMC PMU TP2g (null) 1
0x0 0x0 0x49503762 65288 2 0x1000005d5 (null) AppleSMC PMU ibuck7 (null) 1
0x0 0x0 0x49503173 65288 2 0x1000004e6 (null) AppleSMC PMU IP1s (null) 1
0x0 0x0 0x5650346c 65288 3 0x100000576 (null) AppleSMC PMU vldo4 (null) 1
0x0 0x0 0x54503364 65280 5 0x100000456 (null) AppleSMC PMU tdev3 (null) 1
0x0 0x0 0x56506162 65288 3 0x1000005a7 (null) AppleSMC PMU vbuck10 (null) 1
0x0 0x0 0x56506273 65288 3 0x1000004b8 (null) AppleSMC PMU VPbs (null) 1
0x0 0x0 0x29 1 6 0x100000935 FIFO AppleHIDKeyboardEventDriverV2 Apple Internal Keyboard / Trackpad (null) 1
0x0 0x0 0x5650316c 65288 3 0x10000048a (null) AppleSMC PMU vldo1 (null) 1
0x0 0x0 0x544e306e 65280 5 0x100000818 (null) AppleANS3NVMeController NAND CH0 temp (null) 1
0x0 0x0 0x29 65280 11 0x100000938 FIFO AppleDeviceManagementHIDEventService Apple Internal Keyboard / Trackpad (null) 1
0x0 0x0 0x49506162 65288 2 0x1000005db (null) AppleSMC PMU ibuck10 (null) 1
0x0 0x0 0x54503664 65280 5 0x10000045c (null) AppleSMC PMU tdev6 (null) 1
0x0 0x0 0x5450305a 65280 5 0x1000004ec (null) AppleSMC PMU tcal (null) 1
0x0 0x0 0x0 65280 11 0x10000078b (null) AppleMesaShim (null) (null) 1
0x0 0x0 0x5650366c 65288 3 0x10000057c (null) AppleSMC PMU vldo6 (null) 1
0x0 0x0 0x56503273 65288 3 0x1000005ad (null) AppleSMC PMU VP2s (null) 1
0x0 0x0 0x4950316c 65288 2 0x1000004be (null) AppleSMC PMU ildo1 (null) 1
0x0 0x0 0x0 65280 255 0x10000054e SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x5 65280 4 0x10000057f SPU AppleSPUVD6286 (null) (null) 1
0x0 0x0 0x5650346c 65288 3 0x100000490 (null) AppleSMC PMU vldo4 (null) 1
0x5ac 0x8104 0x0 65280 5 0x100000551 SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x49503273 65288 2 0x1000005e1 (null) AppleSMC PMU IP2s (null) 1
0x0 0x0 0x5450316c 65280 5 0x100000462 (null) AppleSMC PMU tdie1 (null) 1
0x0 0x0 0x54503364 65280 5 0x1000004f2 (null) AppleSMC PMU tdev3 (null) 1
0x0 0x0 0x56506373 65288 3 0x1000005b3 (null) AppleSMC PMU VPcs (null) 1
0x0 0x0 0x4950346c 65288 2 0x1000004c4 (null) AppleSMC PMU ildo4 (null) 1
0x0 0x0 0x0 65292 5 0x100000554 SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x0 12 1 0x100000d5f Audio AppleUserHIDEventService Headset AppleUserHIDEventDriver (null)
0x0 0x0 0x5650616c 65288 3 0x100000585 (null) AppleSMC PMU vldo10 (null) 1
0x0 0x0 0x5650616c 65288 3 0x100000496 (null) AppleSMC PMU vldo10 (null) 1
0x5ac 0x8104 0x0 65280 9 0x100000557 SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x54473048 65280 5 0x1000005e7 (null) AppleSMC gas gauge battery (null) 1
0x0 0x0 0x54503664 65280 5 0x1000004f8 (null) AppleSMC PMU tdev6 (null) 1
0x0 0x0 0x54503162 65280 5 0x100000468 (null) AppleSMC PMU tdie1 (null) 1
0x0 0x0 0x4950326c 65288 2 0x1000005b9 (null) AppleSMC PMU ildo2 (null) 1
0x0 0x0 0x4950616c 65288 2 0x1000004ca (null) AppleSMC PMU ildo10 (null) 1
0x0 0x0 0x56503162 65288 3 0x10000049c (null) AppleSMC PMU vbuck1 (null) 1
0x0 0x0 0x54503462 65280 5 0x10000052c (null) AppleSMC PMU tdie4 (null) 1
0x0 0x0 0x5650306c 65288 3 0x10000055d (null) AppleSMC PMU vldo0 (null) 1
0x0 0x0 0x54473242 65280 5 0x1000005ed (null) AppleSMC gas gauge battery (null) 1
0x0 0x0 0x54503462 65280 5 0x10000046e (null) AppleSMC PMU tdie4 (null) 1
0x0 0x0 0x5450316c 65280 5 0x1000004fe (null) AppleSMC PMU tdie1 (null) 1
0x0 0x0 0x56503062 65288 3 0x10000058e (null) AppleSMC PMU vbuck0 (null) 1
0x0 0x0 0x4950356c 65288 2 0x1000005bf (null) AppleSMC PMU ildo5 (null) 1
0x0 0x0 0x49503162 65288 2 0x1000004d0 (null) AppleSMC PMU ibuck1 (null) 1
0x5ac 0x0 0x0 65280 23 0x100000710 (null) IOHIDSystem (null) (null) (null)
0x0 0x0 0x56503462 65288 3 0x1000004a2 (null) AppleSMC PMU vbuck4 (null) 1
0x0 0x0 0x54503762 65280 5 0x100000532 (null) AppleSMC PMU tdie7 (null) 1
0x0 0x0 0x54503762 65280 5 0x100000474 (null) AppleSMC PMU tdie7 (null) 1
0x0 0x0 0x54503162 65280 5 0x100000504 (null) AppleSMC PMU tdie1 (null) 1
0x0 0x0 0x4950626c 65288 2 0x1000005c5 (null) AppleSMC PMU ildo11 (null) 1
0x0 0x0 0x49503462 65288 2 0x1000004d6 (null) AppleSMC PMU ibuck4 (null) 1
0x0 0x0 0x56503262 65288 3 0x100000597 (null) AppleSMC PMU vbuck2 (null) 1
0x0 0x0 0x56503762 65288 3 0x1000004a8 (null) AppleSMC PMU vbuck7 (null) 1
0x0 0x0 0x54506162 65280 5 0x100000538 (null) AppleSMC PMU tdie10 (null) 1
0x0 0x0 0x54506162 65280 5 0x10000047a (null) AppleSMC PMU tdie10 (null) 1
0x0 0x0 0x49503262 65288 2 0x1000005cb (null) AppleSMC PMU ibuck2 (null) 1
0x0 0x0 0x49503762 65288 2 0x1000004dc (null) AppleSMC PMU ibuck7 (null) 1
0x0 0x0 0x56503562 65288 3 0x10000059d (null) AppleSMC PMU vbuck5 (null) 1
0x0 0x0 0x56506162 65288 3 0x1000004ae (null) AppleSMC PMU vbuck10 (null) 1
0x0 0x0 0x0 12 1 0x10000029f (null) AppleM68Buttons (null) (null) 1
0x0 0x0 0x54503273 65280 5 0x10000053e (null) AppleSMC PMU TP2s (null) 1
0x0 0x0 0x54503273 65280 5 0x100000480 (null) AppleSMC PMU TP2s (null) 1
0x0 0x0 0x49503562 65288 2 0x1000005d1 (null) AppleSMC PMU ibuck5 (null) 1
0x0 0x0 0x54503164 65280 5 0x100000452 (null) AppleSMC PMU tdev1 (null) 1
0x0 0x0 0x5650336c 65288 3 0x100000572 (null) AppleSMC PMU vldo3 (null) 1
0x0 0x0 0x49506162 65288 2 0x1000004e2 (null) AppleSMC PMU ibuck10 (null) 1
0x0 0x0 0x56503862 65288 3 0x1000005a3 (null) AppleSMC PMU vbuck8 (null) 1
0x0 0x0 0x56503273 65288 3 0x1000004b4 (null) AppleSMC PMU VP2s (null) 1
0x0 0x0 0x54503367 65280 5 0x100000486 (null) AppleSMC PMU TP3g (null) 1
0x0 0x0 0x54503367 65280 5 0x100000547 (null) AppleSMC PMU TP3g (null) 1
0x0 0x0 0x49503862 65288 2 0x1000005d7 (null) AppleSMC PMU ibuck8 (null) 1
0x0 0x0 0x54503464 65280 5 0x100000458 (null) AppleSMC PMU tdev4 (null) 1
0x0 0x0 0x49503273 65288 2 0x1000004e8 (null) AppleSMC PMU IP2s (null) 1
0x0 0x0 0x5650356c 65288 3 0x100000578 (null) AppleSMC PMU vldo5 (null) 1
0x0 0x0 0x56503073 65288 3 0x1000005a9 (null) AppleSMC PMU VP0s (null) 1
0x0 0x0 0x56506373 65288 3 0x1000004ba (null) AppleSMC PMU VPcs (null) 1
0x0 0x0 0x5650326c 65288 3 0x10000048c (null) AppleSMC PMU vldo2 (null) 1
0x0 0x0 0x54503764 65280 5 0x10000045e (null) AppleSMC PMU tdev7 (null) 1
0x0 0x0 0x54503164 65280 5 0x1000004ee (null) AppleSMC PMU tdev1 (null) 1
0x0 0x0 0x49503073 65288 2 0x1000005dd (null) AppleSMC PMU IP0s (null) 1
0x0 0x0 0x56506173 65288 3 0x1000005af (null) AppleSMC PMU VPas (null) 1
0x0 0x0 0x4950326c 65288 2 0x1000004c0 (null) AppleSMC PMU ildo2 (null) 1
0x0 0x0 0x5650356c 65288 3 0x100000492 (null) AppleSMC PMU vldo5 (null) 1
0x0 0x0 0x54473042 65280 5 0x1000005e3 (null) AppleSMC gas gauge battery (null) 1
0x0 0x0 0x5450326c 65280 5 0x100000464 (null) AppleSMC PMU tdie2 (null) 1
0x0 0x0 0x54503464 65280 5 0x1000004f4 (null) AppleSMC PMU tdev4 (null) 1
0x0 0x0 0x4950306c 65288 2 0x1000005b5 (null) AppleSMC PMU ildo0 (null) 1
0x0 0x0 0x4950356c 65288 2 0x1000004c6 (null) AppleSMC PMU ildo5 (null) 1
0x0 0x0 0x5650626c 65288 3 0x100000498 (null) AppleSMC PMU vldo11 (null) 1
0x0 0x0 0x54473056 65280 5 0x1000005e9 (null) AppleSMC gas gauge battery (null) 1
0x0 0x0 0x54503262 65280 5 0x10000046a (null) AppleSMC PMU tdie2 (null) 1
0x0 0x0 0x54503764 65280 5 0x1000004fa (null) AppleSMC PMU tdev7 (null) 1
0x0 0x0 0x5650626c 65288 3 0x10000058a (null) AppleSMC PMU vldo11 (null) 1
0x0 0x0 0x4950336c 65288 2 0x1000005bb (null) AppleSMC PMU ildo3 (null) 1
0x0 0x0 0x4950626c 65288 2 0x1000004cc (null) AppleSMC PMU ildo11 (null) 1
0x0 0x0 0x56503262 65288 3 0x10000049e (null) AppleSMC PMU vbuck2 (null) 1
0x0 0x0 0x54503562 65280 5 0x10000052e (null) AppleSMC PMU tdie5 (null) 1
0x0 0x0 0x54503562 65280 5 0x100000470 (null) AppleSMC PMU tdie5 (null) 1
0x0 0x0 0x5450326c 65280 5 0x100000500 (null) AppleSMC PMU tdie2 (null) 1
0x0 0x0 0x4950366c 65288 2 0x1000005c1 (null) AppleSMC PMU ildo6 (null) 1
0x0 0x0 0x49503262 65288 2 0x1000004d2 (null) AppleSMC PMU ibuck2 (null) 1
0x0 0x0 0x56503562 65288 3 0x1000004a4 (null) AppleSMC PMU vbuck5 (null) 1
0x0 0x0 0x54503862 65280 5 0x100000534 (null) AppleSMC PMU tdie8 (null) 1
0x0 0x0 0x54503862 65280 5 0x100000476 (null) AppleSMC PMU tdie8 (null) 1
0x0 0x0 0x54503262 65280 5 0x100000506 (null) AppleSMC PMU tdie2 (null) 1
0x0 0x0 0x49503062 65288 2 0x1000005c7 (null) AppleSMC PMU ibuck0 (null) 1
0x0 0x0 0x49503562 65288 2 0x1000004d8 (null) AppleSMC PMU ibuck5 (null) 1
0x0 0x0 0x5650316c 65288 3 0x100000568 (null) AppleSMC PMU vldo1 (null) 1
0x0 0x0 0x56503075 65288 3 0x100000448 (null) AppleSMC PMU VP0u (null) 1
0x0 0x0 0x56503362 65288 3 0x100000599 (null) AppleSMC PMU vbuck3 (null) 1
0x0 0x0 0x56503862 65288 3 0x1000004aa (null) AppleSMC PMU vbuck8 (null) 1
0x0 0x0 0x54503073 65280 5 0x10000053a (null) AppleSMC PMU TP0s (null) 1
0x0 0x0 0x54503073 65280 5 0x10000047c (null) AppleSMC PMU TP0s (null) 1
0x0 0x0 0x49503362 65288 2 0x1000005cd (null) AppleSMC PMU ibuck3 (null) 1
0x0 0x0 0x49503862 65288 2 0x1000004de (null) AppleSMC PMU ibuck8 (null) 1
0x0 0x0 0x5650326c 65288 3 0x10000056e (null) AppleSMC PMU vldo2 (null) 1
0x0 0x0 0x56503662 65288 3 0x10000059f (null) AppleSMC PMU vbuck6 (null) 1
0x0 0x0 0x56503073 65288 3 0x1000004b0 (null) AppleSMC PMU VP0s (null) 1
0x0 0x0 0x54503167 65280 5 0x100000540 (null) AppleSMC PMU TP1g (null) 1
0x0 0x0 0x54503167 65280 5 0x100000482 (null) AppleSMC PMU TP1g (null) 1
0x0 0x0 0x49503662 65288 2 0x1000005d3 (null) AppleSMC PMU ibuck6 (null) 1
0x0 0x0 0x54503264 65280 5 0x100000454 (null) AppleSMC PMU tdev2 (null) 1
0x0 0x0 0x49503073 65288 2 0x1000004e4 (null) AppleSMC PMU IP0s (null) 1
0x0 0x0 0x56503962 65288 3 0x1000005a5 (null) AppleSMC PMU vbuck9 (null) 1
0x0 0x0 0x56506173 65288 3 0x1000004b6 (null) AppleSMC PMU VPas (null) 1
0x0 0x0 0x0 65292 1 0x100000546 SPU AppleSPUHIDDriver (null) (null) 1
0x0 0x0 0x5650306c 65288 3 0x100000488 (null) AppleSMC PMU vldo0 (null) 1
0x0 0x0 0x49503962 65288 2 0x1000005d9 (null) AppleSMC PMU ibuck9 (null) 1
0x0 0x0 0x56503075 65288 3 0x1000004ea (null) AppleSMC PMU VP0u (null) 1
0x0 0x0 0x54503564 65280 5 0x10000045a (null) AppleSMC PMU tdev5 (null) 1
0x0 0x0 0x56503173 65288 3 0x1000005ab (null) AppleSMC PMU VP1s (null) 1
0x0 0x0 0x4950306c 65288 2 0x1000004bc (null) AppleSMC PMU ildo0 (null) 1
0x0 0x0 0x5650336c 65288 3 0x10000048e (null) AppleSMC PMU vldo3 (null) 1
Devices:
VendorID ProductID LocationID UsagePage Usage RegistryID Transport Class Product UserClass Built-In
0x5ac 0x0 0x0 65280 15 0x100000c7a USB (null) Keyboard Backlight (null) 1
0x5ac 0x8104 0x0 65280 5 0x100000521 SPU AppleSPUHIDDevice (null) (null) 1
0x0 0x0 0x0 65280 72 0x1000006ec SPMI AppleBTM BTM (null) (null)
0x17cc 0x2110 0x2100000 65281 0 0x100007ce1 USB AppleUserHIDDevice KONTROL S61 MK3 AppleUserUSBHostHIDDevice (null)
0x0 0x0 0x29 65280 11 0x10000092e FIFO AppleHIDTransportHIDDevice Apple Internal Keyboard / Trackpad (null) 1
0x4c 0x265 0x6decc13c 1 2 0x100001f1e Bluetooth AppleHSBluetoothHIDDriver Magic Trackpad (null) (null)
0x5ac 0x8104 0x0 65280 3 0x10000051f SPU AppleSPUHIDDevice (null) (null) 1
0x0 0x0 0x0 65292 1 0x100000522 SPU AppleSPUHIDDevice (null) (null) 1
0x4c 0x265 0x6decc13c 65280 13 0x100001f24 Bluetooth AppleHSBluetoothHIDDriver Magic Trackpad (null) (null)
0x0 0x0 0x29 65280 3 0x100000922 FIFO AppleHIDTransportHIDDevice Apple Internal Keyboard / Trackpad (null) 1
0x4c 0x265 0x6decc13c 0 1 0x100001f05 Bluetooth AppleHSBluetoothDevice Magic Trackpad (null) 0
0x0 0x0 0x0 65292 5 0x100000523 SPU AppleSPUHIDDevice (null) (null) 1
0x0 0x0 0x0 12 1 0x10000078e Audio (null) Headset (null) (null)
0x0 0x0 0x29 1 2 0x100000973 FIFO AppleHIDTransportHIDDevice Apple Internal Keyboard / Trackpad (null) 1
0x0 0x0 0x0 65280 255 0x100000516 SPU AppleSPUHIDDevice (null) (null) 1
0x5ac 0x8104 0x0 32 138 0x10000051e SPU AppleSPUHIDDevice (null) (null) 1
0x0 0x0 0x5 65280 4 0x100000524 SPU AppleSPUHIDDevice (null) (null) 1
0x4c 0x265 0x6decc13c 65280 3 0x100001f29 Bluetooth AppleHSBluetoothHIDDriver Magic Trackpad (null) (null)
0x0 0x0 0x29 65280 13 0x100000923 FIFO AppleHIDTransportHIDDevice Apple Internal Keyboard / Trackpad (null) 1
0x4c 0x265 0x6decc13c 65280 11 0x100001f0d Bluetooth AppleHSBluetoothHIDDriver Magic Trackpad (null) (null)
0x5ac 0x8104 0x0 65280 9 0x100000520 SPU AppleSPUHIDDevice (null) (null) 1
0x0 0x0 0x29 1 6 0x100000920 FIFO AppleHIDTransportHIDDevice Apple Internal Keyboard / Trackpad (null) 1
Seems like vendor id is 0x17cc and product id is 0x2110
Oh jeez - so sorry @Bounga but I just had a typo in the product id -- checked it multiple times and still did not see it. Guess that cold-medication I am currently on didn't help :D .....
New test-version coming.
@Bounga please try https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.9
Yeah! Keyboard is now detected! When I run the test program for light guides (in IAC Driver LoopBe preferences in Synthesia) it lights up but not the light guides over the keys. It activates the touch strip lights :D Better than nothing ;)
There's a side-effect which is a little bit annoying. Keys from the keyboard doesn't trigger midi notes anymore (no sound, no visual response in Synthesia)
Yeah! Keyboard is now detected! When I run the test program for light guides (in IAC Driver LoopBe preferences in Synthesia) it lights up but not the light guides over the keys. It activates the touch strip lights :D Better than nothing ;)
lol - ok - indeed progress! wohooo :)
When pressing a key (white or black) on the controller, does KS show anything in the log? If so, what? I suspect not. Likely cause the MK3 device needs a different initialising than the MK1 and 2 devices did.
When pressing a control (ie "Play/Pause" or moving the JogDial up/left/...) on the controller, does KS show anything in the log? If so what? Please try to remember what you pressed and share the
hid report: XX XX XX XX [...]
Gotta do some thinking and preparation so we can collaboratively dive into the heavy reverse engineering.
One major bummer, for WireShark to allow logging USB traffic, we will need to disable system integrity protection -- something I would generally not recommend doing unless you do it temporarily.
More later today....
When pressing a key (white or black) on the controller, does KS show anything in the log?
It does show logs in test mode for light guide but absolutely nothing in the log when I actually play on the hardware. White keys, black keys, jogwheel, play button, nothing.
@Bounga I created a short writeup on what we need as a first step; https://github.com/tillt/KompleteSynthesia/discussions/29
@Bounga I created a short writeup on what we need as a first step; #29
Thanks a lot. Gonna take a look at it as soon as possible and provide you needed info
We got the basic detection covered for S61MK3 but there is more work to do -- need your help, MK3 owners!
OK, S61 MK3 owner here. How can I help?
OK, S61 MK3 owner here. How can I help?
Ahoy TheDarthMail (what a handle :D) --- as a first step, please have a peek at https://github.com/tillt/KompleteSynthesia/discussions/29 and let me know if that generally makes sense to you or if you had further questions.
The major bummer is that we need to disable SIP for the time we reverse engineer the Komplete Kontrol software accessing your MK3 device. However, it is not THAT hard to get done and also not hard to undo later, when we are done.
Ahoy!
Attached is my capture according to #29. Hope it can help!

On 6. Jan 2024, at 16:46, Till Toenshoff @.***> wrote:
OK, S61 MK3 owner here. How can I help?
Ahoy TheDarthMail (what a handle :D) --- as a first step, please have a peek at #29 https://github.com/tillt/KompleteSynthesia/discussions/29 and let me know if that generally makes sense to you or if you had further questions.
The major bummer is that we need to disable SIP for the time we reverse engineer the Komplete Kontrol software accessing your MK3 device. However, it is not THAT hard to get done and also not hard to undo later, when we are done.
— Reply to this email directly, view it on GitHub https://github.com/tillt/KompleteSynthesia/issues/18#issuecomment-1879734376, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXCHXYSUD434PSRNF2VMOD3YNFWVZAVCNFSM6AAAAAA5GRNT4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZG4ZTIMZXGY. You are receiving this because you commented.
Ahoy! Attached is my capture according to #29. Hope it can help!  … On 6. Jan 2024, at 16:46, Till Toenshoff @.***> wrote: OK, S61 MK3 owner here. How can I help? Ahoy TheDarthMail (what a handle :D) --- as a first step, please have a peek at #29 <#29> and let me know if that generally makes sense to you or if you had further questions. The major bummer is that we need to disable SIP for the time we reverse engineer the Komplete Kontrol software accessing your MK3 device. However, it is not THAT hard to get done and also not hard to undo later, when we are done. — Reply to this email directly, view it on GitHub <#18 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AXCHXYSUD434PSRNF2VMOD3YNFWVZAVCNFSM6AAAAAA5GRNT4SVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZG4ZTIMZXGY. You are receiving this because you commented.
@thedarthmail it appears that attachment didn't work -- at least I can't see it. Feel free to send it directly to me via email: toenshoff@me.com
After having checked the capture I received from @thedarthmail and also the initial capture I received from @Bounga I can assert that the protocol used by MK3 devices is entirely different and much more involved from what we saw in MK1 and MK2 controllers. It appears that there is some elaborate handshaking going on. Need to do a lotta homework to get that covered. I may even need to play myself with such device, given the complexity of the protocol.
It appears that there is some elaborate handshaking going on. Need to do a lotta homework to get that covered. I may even need to play myself with such device, given the complexity of the protocol.
Hi @tillt. Happy new year and best wishes!
Doesn't sound like good news. If you need more info, more captures or anything I'll be more than happy to help. I understand that it gonna be difficult to reverse engine the protocol. Anyway don't put too much pressure on yourself.
Here is some fishing in the unknown...
Please give https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.19 a shot. Maybe it will at least not prevent the controller from sending MIDI data. The hope is that the "init" used keeps the controller in a useful mode of operation. It should NOT change any lighting.
Just gave it a shot. 2 interesting things:
1) MIDI note are now sent from the hardware (I can here it and it shows up in the logs) 2) lighting is not affected anymore, all stay the same as if KS was not running (in the previous KS version all lights were shut off). In light guide test mode, nothing happens anymore (ie: touch strip doesn't show the current note)
Excellent, now let's see if we can't figure out the lightguide protocol with more digging.... https://github.com/tillt/KompleteSynthesia/discussions/29#discussioncomment-8054271
@Bounga and @thedarthmail if you can, please have a peek at the above and see if you can add more captures.
@Bounga @thedarthmail please try https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.20
It should possibly, maybe, hopefully show some lightguide support -- totally speculative but full of hope
For transparency and progress;
Right now I am not really able to devote much time into this due to the sad fact that I am losing my day-job and need to find a new gig asap. Wanna help me? See my linked-in profile: https://www.linkedin.com/in/till-toenshoff-a483aa1/
@Bounga @thedarthmail please try https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.30
For testing, please start the application and then go into the menu to select Fuzzing MK3
. That should bring up a new window.
Start
Current Message
text field -- it will show the entire command string sent to the controller. The first displayed value is the actual command used. That value will quickly increase and run all the way until it hits FF. Stop
, raise the delay with that slider to something higher - like in the middle of the range. Press Start
again and try to see which exact value was changing anything lighting (lightguide and or button lighting). If you missed the exact point, dont worry - let it run through FF and overflow as it will use a new color in the next round, making the change obvious.Any command value that had any visible effect on the controller is interesting to me.
If run with an MK2 controller, we will see that 80 changes button lighting, 81 changes lightguide, A0 does something as well.
@tillt Tried the new version and it does make the lighting happen and the colours change. It works for the commands lighting and for keys lighting too.
For example this string:
82 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
turns the controls lighting (touchstrip, 4D encoder, wheels, etc) to orange / red.
F6 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
soften all the lights.
84 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
turns the lighting to yellow.
@Bounga turns the lighting to yellow
-- that is button lighting or lightguide lighting? Which command did affect the lightguide?
One more thing, if I remember correctly then with the way we currently initialise A0 00 00
your MK3 controller does not seem to send MIDI events when keys are pressed, right? That is, Synthesia won't receive anything and ignore your key presses?
that is button lighting or lightguide lighting?
This is the lightguides, the touchstrip, the lights on the two wheels and the ring around the 4D encoder.
Red lighting example attached:
You can't see it on the picture but the buttons above the screen are red too. The other button are using their own dedicated colours (white, green for play, red for rec).
One more thing, if I remember correctly then with the way we currently initialise
A0 00 00
your MK3 controller does not seem to send MIDI events when keys are pressed, right? That is, Synthesia won't receive anything and ignore your key presses?
Right, events are not sent when pressing keys on my keyboard
This is the lightguides, the touchstrip, the lights on the two wheels and the ring around the 4D encoder.
All at the exact same time, with the same command prefix? I would assume button lighting (including touch-strip and 4D encoder) using one command and then the lightguide using a different one -- that is how MK1 and MK2 work.
I'll try again with the biggest delay possible and watch carefully if there's a slight timing difference between buttons and lightguides
You were right. First the buttons on the upper half of the keyboard are enlightened:
81 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
as you can see touchstrip, wheels and buttons at the left are off. Lightguides too.
Then this:
82 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
turns on wheels, touchstrip and buttons from the left side.
Then this:
83 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06 06
turns on lightguides:
AWESOME!
That F6 06 06 06 06[...]
"softening/dimming the lights" is a suspiciously interesting reaction by the controller. That is a reaction I would expect from an init string resetting the device into something. I am contemplating currently on how we could test the init strings, giving you a chance to try sending key events to Synthesia. Maybe a "Pause" button would be good enough as then you could push keys when paused at F6 ....
. More tomorrow...
Right now KompleteSynthesia does not support MK3 devices. Information on their details are scarce. No open-source project seems to have reverse engineered the needed information from those. It should be very straight forward to do, though.
Does anyone with some WireShark experience own an MK3 device and would be willing for me to guide through the process of acquiring device-id, control codes, etc.