Recently on this very list, Paul Barton-Davis proposed that one could build a driver for a USB audio device entirely in user space. I think this is an interesting idea, as I own an Edirol UA-5 USB audio device. Naturally I would like to use it with ALSA to acheive the best performance and lowest latency.
I hope someone on this list can describe how such a driver would work. I am not aware of any user-space drivers for ALSA. If there is one, that would be a nice example. Would the driver take the form of a userspace daemon? How would the ALSA library communicate with the daemon? Or, would the driver instead take the form of a shared library which ALSA libraries would load? In the daemon case, I have trouble imagining that a userspace implementation would acheive low latency. The client application, say a mixing board program, would have to write some data to the ALSA PCM handle, then wait for the daemon to get scheduled. The latency would be all over the place. In the case of a library that ALSA loads, that scheduling problem would not exist. In any case, it seems almost MORE straightforward to write an kernel driver like the other supported output devices use. A 24-bit/96KHz stereo audio stream requires driving the USB bus at nearly full throttle. I doubt a userspace implementation could deal with it. Thoughts? -jwb PS: even at 16-bit/48KHz the USB audio device driver in Linux 2.4.18 taxes the CPU significantly. _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel