What about alsactl? Set the mixers once, then call "alsactl store". Does that help?
Yes it does. however.. nothing in userspace calls alsactl restore on device hotplug.
is this a udev/distribution problem or alsa's problem?
Basically "alsactl init" then "alsactl restore" should initialize to a sane state. But in the case of usb-audio, many things are still missing.
The usb-audio driver doesn't initialize the mixer states unlike other drivers, and alsactl init seems assuming that the mixers are all muted / cleared when it's called. So, partly a problem of alsactl init.
So alsactl store Ultra after setting all the controls and then running alsactl restore works..
BUT.. I'm still stuck with a very similar problem in that nothing seems to call alsaclt restore when the device is hotplugged.
Grant.