Hi,
I'd like to suggest changing the snd-usb-caiaq driver module to send MIDI messages instead of emulating an input device. This proposal more precisely refers to the Native Instruments Rig Kontrol 3 which I personally own. It's a 2in/2out USB sound card in a pedalboard housing with 8 footswitches and an expression pedal.
To me it makes more sense to use MIDI as the device is built for that purpose. The configuration software provided by the manufacturer obviously doesn't work on Linux; but what it does is mapping the physical switches to MIDI messages. On linux, as is the device emulates an input device that sends 1-9 keystrokes for the footswitches and reports a 3 axis joystick for the onboard pedal + the 2 external pedal inputs. The onboard leds and 4 digits 7-segments display are available as controls (as listed by eg. amixer -c0 controls), this could also be changed to using MIDI as well.
I am hoping for this to be approved and am open to suggestions regarding the implementation details. More specifically if it makes more sense to use Note On/Off messages or Controller Change messages, as well as the naming for the rawmidi inputs. The device will have two pairs of MIDI ports, one for the external I/O MIDI connectors and one for the "virtual" input reporting the button presses.
I have already started working on it and I have a very rough POC of this proposal, adding an extra MIDI device and sending a CC message when the switches are pressed. It is available here: https://framagit.org/Simon-L/snd-usb-caiaq This has been discussed on #lad @ Libera.chat, I am registered as FergusL there.
Thanks!
SL