On Sat, 27 Apr 2019 at 14:20:32 -0000, Christian Weisgerber wrote: > However, as in this example, I think you will only get a few generic > controls. > > It is my theoretical understanding that USB audio gadgets typically > come with a uhid(4) device, as does yours above, and you would use > usbhidctl(1) to list and manipulate the available controls. > > In practice, I only get some variant of > > usbhidctl: USB_GET_REPORT (probably not supported by device): Input/output > error > > when I try this. So either I'm mistaken or there is a problem > somewhere.
Some devices just don't supply hardware volume controls, so it must be done in software on the sending device. With sndiod, you can use aucatctl to change the software volume per-application (or the master volume). It's all kind of complicated though. If you plug in a new USB audio device like this, you have to restart sndiod and pass in a new device name, then use aucatctl to adjust the volume. But if you unplug the USB device, you have to restart sndiod again to use the default audio device and use mixerctl instead.