Hi,
I've started to reverse engineer the 18i6 mixer protocol and came up with a proof-of-concept test script which includes documentation:
https://github.com/x42/scarlettmixer
Except for a few fixed controls and switches, the 18i6's mixer and router is [likely] too complex to be exposed via ALSA's mixer interface. AFAICT it'll require a dedicated control application - like hdspmixer - in order to make full use of it.
The current proof-of-concept uses pyUSB to send URB control messages and therefore requires root access. It will also not work while the device is in use (by snd-usb-audio). A dedicated ioctl interface - similar to SNDRV_HDSP_ - should be added to ALSA. However, it is yet unclear to me how much of the protocol should be moved to kernel-space.
Anyway, the script can be used to configure the device, save settings to it and subsequently use those settings with snd-usb-audio and Martin's patch.
Thoughts, comments? robin
PS. the same protocol may apply to other Focusrite Scalett USB2 devices such as the 8i6 - some of the factory-reset traces hint at that, but I would not know.