[alsa-devel] Focusrite Scarlett 18i6 mixer
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.
On 01/18/2013 05:05 AM, Robin Gareus wrote:
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.
OK. I'll eat my words on that. While a dedicated app will certainly be more appropriate to access the 18x6 mixter matrix and routing schema. The whole interface can be exported as standard ALSA mixer:
The patch is rather large, please view it on github: https://github.com/x42/alsa-driver/commit/3d9c17a3a0a8f4d86489fe9ff8ddff53dd...
It is based on the latest git.alsa-project.org/alsa-driver.git but rebases cleanly onto vanilla and rt linux. Tested on debian/wheezy with linux 3.2.35-2-rt.
Comments and feedback are welcome.
Cheers! robin
participants (1)
-
Robin Gareus