On Mon, 1 Jul 2024, Asahi Lina wrote:
[...]
The problem is that the device has a 66x34 matrix mixer, with up to 2048 cross points enabled at once. Exposing each cross point as an ALSA mixer control (similar to how mixer_scarlett2.c does it) would mean 2244 controls just for the mixer... which seems like a bit too much.
On top of that there is also VU meter feedback for all the inputs/outputs, as well as general fader controls for each output and global output configs and status. I'm not sure about the VU meters, but everything else sounds like it would map fine to normal mixer controls.
Is there some recommended way to expose this kind of matrix mixer interface to userspace?
I don't know if it's recommended practice, but the echo3g driver may be a prior art as it has a working matrix mixer for the Layla, and the corresponding echomixer in alsa-tools.
I think for something like this you pretty much have to rely on device-specific tools to make the UX manageable
For a full UX, perhaps. But the concept of a matrix mixer itself is general enough.
Perhaps there could be a UI tool which is self contained with one purpose, to control a 'standard' matrix mixer. It could be invoked alongside alsamixer or other mixer tool, and multiple times if there are multiple matrix mixers on a piece of hardware.