Old thread, but I just recently started learning this.
I looked at a Python application written by dewert. Interestingly, the data that Nocturn emits is actually MIDI, although it is not registered as a USB MIDI device.
But, looking at the actual data coming from the device, it actually gives out messages about the change of control (controller value 0xB0) for everything. Also, the control commands that are sent to it are also messages about the change of control, although only bytes of data, since Nocturn seems to support the state of work in MIDI (that is, when sending several messages of a change of control, there is no need to repeat the byte of data).
Indeed, looking at the magic data of initialization, this is actually just a bunch of control changes: it starts with 0xb0, and from there the data comes in twice. For example, the last two bytes in the initialization string are 0x7f 0x00, which simply turn off the LED for the rightmost direct access button. (Something subtle happens as a result of sending the initialization, because Nocturn sometimes emits some messages that appear to be some form of timeout events, and this behavior changes depending on whether the initialization string was sent or not. )
Using MIDI-like messages makes sense, since Novation will know the MIDI protocol well, so it would be easier to use it for communication, even if the device is not strictly a MIDI device.
Note that incrementers simply send the values ββ1 or 127, i.e. +1 or -1 step, so even with some trivial matching software this is not very useful as it is. (In fact, if you turn quickly, you can get 3 or 125, for example 125, corresponding to -3.) The only controller that sends a continuous value is a slider that emits an 8-bit value when moved.