Following the advice from @falkTX, I git-cloned the nooice project to compile and test it natively on my linux box.
While with ordinary game joysticks it worked as expected, I soon ran into some trouble when trying to use it with Rig Kontrol Hardware...
Shortly, the reason is nooice tries to use the joystick api for handling input events, which sends joystick axis movements and button pressings as individual separate input events of type "js_event".
Although UDEV in my system automatically creates an input node /dev/input/jsX when Rig Kontrol Hardware is connected, this can only capture the expression pedal movements ( as if they were absolute axis movements of a joystick's hat) , but not the events when a stomp-switch is actuated ( because, sadly, they don't emulate a joystick button, but sends a keyboard key code instead ).
So, the Rig Kontrol behaves more like a combined mouse-keyboard input device than a game joystick.
You can compare the output of this two known utilities ( "jstest" and "eventest") to see what I mean:
In other words, when you press a footswitch, it sends a numeric keyboard key code input event, and when you act over the pedal ( in fact any of them three: "pedal 1" - 1/4" jack input, "pedal 2" - 1/4" jack input , or the built-in expression "pedal 3" ) it sends absolute movement events ( axis X for "pedal 1", axis Y for "pedal 2", and axis Z for the built-in "pedal 3" ).
From above, it turns out it's not enough to use only the jsX as input arguement for nooice, because it only catches the axis movement events, but not the footswitches pressing and releasing, which still appears as numeric key strokes on the console, not captured by the nooice jack client at all.
So the logical step seemed to modify nooice source code to use the "input_event" type instead of "js_event", while using not /dev/input/js1 but the eventXX command-line arguement instead:
I dont want to go further and get too technical here, but let me just say that using nooice code as the starting point to register the jack client and midi output port, I then wrote the callback routine to process and translate the Rig Kontrol input events into midi CC messages. This is the result when monitoring MIDI messages using jack_midi_dump utility :
Here is a full sample of all MIDI CC generated when actuating over each of the three pedals and 8 footswitches in RigKontrol Hardware:
Though the above example may prove it is possible to translate RigKontrol inputs into CC MIDI messages ( all in the realtime context provided by JACK Server ), for me there are some questions that still need to be answered before even trying to merge the support for RigKontrol as a new jack-midi device like the others already supported in the current nooice project ( mostly oriented to handle game joysticks ).
So I kindly ask @falkTX for some guidance here :
Would it be a good idea to merge RigKontrol support into nooice GitHub project ?
I personally find it a bit difficult to do it without substantial modification to the actual nooice.cpp source, but you wrote it so you know it better and may find a simple way to do it...
Would it be better instead to do some kind of fork of Nooice project in order to adapt it to devices that use the "input_event" type , like keyboards, mice and possibly other NI interfaces ?
And more important: Can I contact you by private mailbox to pass the source code I tested and discuss some details about the original nooice source code ?