View Single Post
Old 03-31-2020, 11:07 PM   #99
brummbear
Human being with feelings
 
brummbear's Avatar
 
Join Date: May 2016
Location: out west
Posts: 301
Default

Tested with a Maschine Mikro Mk2 controller and a KK S88 MK2 keyboard on Windows 10:

Tests with a) Maschine Stand Alone SW, b) Komplete Kontrol Stand Alone SW and c) Reaper hosting both Komplete Kontrol VST and Maschine VST.

Results:

* NIHardwareService: In charge of the entire communication between Maschine Mikro Mk2 controller and Maschine SW (stand alone and VST)

* NIHostIntegrationAgent: In charge of the entire communication between KK S88 MK2 keyboard and Komplete Kontrol SW (stand alone and VST) and Maschine SW (stand alone and VST)

This can easily be tested by killing one or the other service:

* Killing NIHardwareService simply knocks out the Maschine contoller but keeps KK keyboard entirely unaffected (all functions, not just MIDI work fine. That is why ReaKontrol is also not affected).

* Killing NIHostIntegrationAgent simply knocks out the KK keyboard but keeps the Maschine controller entirely unaffected (all functions work fine).

Note: Since the Maschine SW can communicate with both, Maschine Controller and KK keyboard it also communicates via both NIHardwareService and NIHostIntegrationAgent. I.e. if you kill just one of the two services Maschine SW keeps on running fine - only you can use just one of the two controllers.
In contrast, Komplete Kontrol SW only communicates with the KK keyboard and hence only communicates via NIHostIntegrationAgent.

All of the above is confirmed when checking corresponding HW references within the two services:

NIHardwareService:
Audio Kontrol 1
Kore Controller 1
Kore Controller 2
Maschine MK1
Maschine MK2
Maschine MK3
Maschine Jam
Rig Kontrol 2
Rig Kontrol 3
Traktor Kontrol D2
Traktor Kontrol Fl
Traktor Kontrol Z1
Traktor Kontrol Z2
Traktor Kontrol S2
Traktor Kontrol S22 MK2
Traktor Kontrol S22 MK3
Traktor Kontrol S3
Traktor Kontrol S4
Traktor Kontrol S4 MK2
Traktor Kontrol S4 MK3
Traktor Kontrol S5
Traktor Kontrol S8
Traktor Kontrol X1
Traktor Kontrol X1 MK2

NIHostIntegrationAgent:
Komplete Kontrol S series MK1
Komplete Kontrol S series MK2
Komplete Kontrol A series
Komplete Kontrol M series
Maschine MK1
Maschine MK2
Maschine MK3
Maschine Jam

Conclusion:
To figure out how to get control over the missing Maschine specific buttons on the KK keyboard (and later on maybe also displays, lightguide etc) we need to understand how the Maschine SW communicates with NIHostIntegrationAgent.

ToDo:
It is quite probable that NI did not re-invent the wheel and uses the same or very similar IPC communication between the Maschine SW and NIHostIntegrationAgent as already reverse engineered for NIHardwareService (= NIHardwareAgent) by Sam Lerner using HookCase on OSX.
On Windows it appears that the IPC method used could be Winsock (Windows Sockets 2), possibly using the ports mentioned above. But it could also be other ports, as the ones above are or were used for OSC messages.

Last edited by brummbear; 04-01-2020 at 01:13 AM.
brummbear is offline   Reply With Quote