[alsa-devel] Echo Fireworks control protocol (was Re: Sample program for hwdep interface)

Jonathan Woithe jwoithe at just42.net
Sun Feb 9 23:29:27 CET 2014


On Sun, Feb 09, 2014 at 03:51:45PM +0100, Stefan Richter wrote:
> Sure, definitely; my point was that the kernel ABI which userspace mixer
> applications are going to use could be
>   a) the ALSA hwdep interface, or
>   b) the ALSA hwdep interface together with firewire-core's firewire-cdev
>      interface,
> but I understood that b) is the first choice.  Specifically, provide in
> ALSA hwdep only the absolutely necessary interfaces and do as much as
> possible via firewire-cdev.

Agreed.

> In contrast, it can't be firewire-cdev alone because of streaming on/off
> state influences what can be controlled, and because some devices embed
> status into the isochronous stream (MotU? RME?) ...

MOTU to a certain extent (although we don't make direct use of that at this
point because the information is quite low level and isn't required to use
the device successfully).  Hardware meter values (which don't really
constitute status data) are sent by the RMEs as part of the iso stream but
again we're not making use of that yet either.

> ... and because some devices (which ones?) may have write-only registers,
> of which both streaming driver and mixer application want to know what is
> being written there.

RME is the primary example in this case.

> Furthermore, it can't be a kernel interface like sysfs or configfs because
> of the complexity and variety of control protocols of FireWire audio
> devices.

At this stage I don't believe a universal interface is possible because I
expect this will end up being a case of chasing one's tail (a list of basic
conventions will be fine though).  As you know, the physical features and
setup of each interface family can be very different and trying to come up
with a single interface which works across devices will be the stuff of
nightmares.  For example, some things needed by one interface may be of no
concern at all to others.  I imagine the device-specific userspace mixer
panels which need to will access their relevant kernel interface. 
Consequently, for the relatively small number of interface models which are
affected, an interface for each device through sysfs or configfs might work. 
Mixer and control for most devices will work fine with just the basic list
of information which can be made available via hwdep.  The most important
one of these is the streaming status, but it could be useful to include a
small number of other things which are common to all devices, such as sample
rate.

Regards
  jonathan


More information about the Alsa-devel mailing list