View Single Post
Old 04-22-2020, 01:12 PM   #27
brummbear
Human being with feelings
 
brummbear's Avatar
 
Join Date: May 2016
Location: out west
Posts: 301
Default The Mk1 story

@Stevie @Dr Frankencopter

Basically, @terminar summed it up nicely in his earlier response (thanks for that!).

I would like to add a few things for clarity though:

* The MCU protocol has always been supported by the Mk1 (the Mk2 initially did not, but NI added a rudimentary MCU protocol at a later point also to the Mk2). When you switch on the keyboard (Mk1 or Mk2) and NIHIA is launched by your operating system the default MIDI language on the DAW port is the MCU protocol. BUT: The MCU protocol as implemented by NI does not help much for real DAW integration on the Mk2. The problem is that NI only implemented a few basics like transport control. The more interesting stuff does not work with MCU on the Mk2. On the Mk1 maybe they added some proprietary stuff even to MCU to at least make instance focus work (I don't know, but suspect that this could be the case).

* For advanced DAW integration NI introduced a new, proprietary MIDI protocol based on CC and SysEx messages. Let's call it the "NI DAW MIDI" protocol to distinguish it from ordinary MCU. In order to use this mode you have to tell NIHIA first that you want to speak this protocol rather than MCU. This is done via the HELLO command (see this thread further above). NIHIA respond with the HELLO command and the protocol version of the connected keyboard to acknowledge that it has switched to the NI DAW MIDI protocol and disabled the MCU protocol for that session. You do not need a fancy extension to test any of this: You can simply use a MIDI tool like MIDIOX or whatever and just send the HELLO command to NIHIA (well, you send it to "KOMPLETE KONTROL DAW -1" or whatever your MIDI port name is, but it ends up in NIHIA). The nice thing is that when you do this you can simply watch all the MIDI messages when you press buttons on your keyboard etc. This is what I did to reverse engineer it in conjunction with DBM sources by Jürgen.

* ReaKontrol never worked with the Mk1 although James Teh tried. The problem for him and for me always was that we do not have a Mk1 and it is terribly inefficient to code anything if you do not have the HW. This is by the way also the reason why the A and M series - while being supported - may show some tiny issues such as not 100% correctly scaled levels in Mixer mode. The A and M series use slightly different subflavors of the "NI DAW MIDI" protocol (there are 3 flavors). But all in all they are close enough to work with what has been implemented and tested for the Mk2 S series.

Since you have a Mk1 it should not be overly hard to debug what James tried early on (which I commented out and removed eventually). Once you have solved it it should be fairly easy to bring it back into ReaKontrol.

PS: The IPC communication that terminar is looking into is unrelated to Mk1 specifics. It is rather an attempt to check if we can make ReaKontrol even fancier by not just relying on the "NI DAW MIDI" protocol which was meant for DAW integration. Rather we may be able to additionally mimic being akin to a Komplete Kontrol software or Maschine software and thus gaining much more control over the buttons, screens, light guides etc. But this is still an early investigation, might turn out to be to complex... It would go way beyond just "simple" deep DAW integration.

Last edited by brummbear; 04-22-2020 at 01:23 PM.
brummbear is offline   Reply With Quote