-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MK3 support? #18
Comments
Need device-id for: |
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. 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 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. |
Hi @tillt! Here are the device id info For the sake of info. KompleteSynthesia doesn't detect my keyboard after having loaded the And by the way I know how to use wireskark, at least the basics. |
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 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;
or
|
is there any way to provide you more info about this init process? |
Sure; the HID detection happens here:
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 |
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. |
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) |
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
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.... |
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. |
We got the basic detection covered for S61MK3 but there is more work to do -- need your help, MK3 owners! |
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
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:
turns the controls lighting (touchstrip, 4D encoder, wheels, etc) to orange / red.
soften all the lights.
turns the lighting to yellow. |
@Bounga One more thing, if I remember correctly then with the way we currently initialise |
Right, events are not sent when pressing keys on my keyboard |
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:
as you can see touchstrip, wheels and buttons at the left are off. Lightguides too. Then this:
turns on wheels, touchstrip and buttons from the left side. Then this:
turns on lightguides: |
AWESOME! |
That |
https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.41 might do some help here. |
Hi @tillt. What do you want me to do with this release? I saw you added a pause button. |
@Bounga thanks for asking and sorry for not supplying more info right away. Didn't get to it until now... Please see #35 (comment) |
No problem, I'll take a look at it. |
You are a RockStar @Bounga -- can't thank you enough |
@Bounga had a chance to take a look? |
@tillt not really. just gave it a quick try but nothing was working as expected so I want to be sure to give it a real focused try before getting back to you |
@Bounga what a bummer -- sorry that nothing seems to work as hoped. Rather confusing results indeed for me atm. Thanks for all your support and patience. |
I'll take a deep dive this weekend, I may have miss something. |
Maybe we got the command for light guide slightly wrong - maybe not 83 but ie 84 or something like that |
If I understand correctly I should see lighting on the controller lightguide in test mode, without doing anything special, right? If it's not the case, I can play with the init sequence of the fuzzing tool? or is it only to test key events received by Synthesia? |
@Bounga correct, it should show lighting in Synthesia test mode -- no need to do anything special (no need for Fuzzing dialog). Quick explanation on that "init sequence / init command": The MK1 and MK2 controllers need to be set into a mode of operation by an init sequence. Once that init sequence had been sent to the controller it should be able to send key events via MIDI to whatever is listening (ie Synthesia). Additionally, that init sequence needs to allow for the controller to receive lighting commands (lightguide as well as buttons). KompleteKontrol sends an For triggering the lightguide after the init was done, MK2 controllers "understand" When you tested the fuzzing dialog before, it seemed like the MK3 controllers "understand" We have two initial problems that need solving; 1: Which init command does allow for lighting changes as well as MIDI commands being sent. Given that (1) influences (2), we have a complex problem to solve. With your observations, we were led to believe that the init https://github.com/tillt/KompleteSynthesia/releases/tag/v0.74.0.41 should be using --- test 1 --- --- test 2 --- --- test 3 --- |
@Bounga ping ;) |
Hi. Sorry, I was into something else lately. I’ll have a look at it tomorrow. Hope I can find something relevant and heplful. |
Heya @tillt, I'm a software developer with some outdated (old job) iOS ObjC/Swift knowledge. I have an S88 MK3 and am curious if I can be of help. I am new to MIDI protocol but am reading up on it in case it's of help debugging. Per your test 1,2,3 above: --- test 1 --- --- test 2 --- 81 12 ... yellow top Photos of the above 81 -> 82 -> 83 progression while having passed the 06 (red) color sequence, approaching the yellow (12) transition:
--- test 3 --- |
Allright, thanks a bunch for confirming @skylerwshaw. That means I did screw up somehow as Test1 should really do at this point, using What worries me more is that so far, we did not find any way to allow for the keyboard to do both; transmit regular MIDI events as well as allow for color changes. That is likely a problem of an incorrect init command. As mentioned before, currently we are attempting Coming weekend I will dive back into the issues and maybe I have some new results then. Until then, please stay tuned and thanks a bunch for offering your help @skylerwshaw - much appreciated. |
@tillt I do have an old MacBook on which I can disable SIP. Would this allow me to sniff the traffic that Komplete Kontrol is sending to the device and identify color commands? Looking into wireshark capabilities. |
Totally @skylerwshaw - I guess you saw #29 |
No progress - issue is still open and help is needed. Try the latest beta and tell me what the things do for you on your MK3 device. |
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.
The text was updated successfully, but these errors were encountered: