official Linux Flash blog (OSS)

Lee Revell rlrevell at joe-job.com
Sun May 28 22:35:45 BST 2006


On Sun, 2006-05-28 at 21:59 +0100, Matthew Garrett wrote:
> > For example, the Maestro [multi-channel sound card] native OSS driver allows
> > multi-open and assigns each new connection to a pair of separate hardware
> > channels, until all of the hardware channels are exhausted.
> 
> Which is fine when the hardware actually supports multiple channels - 
> emu10k1 is another example of this. But, sadly, almost no new hardware 
> does.
> 

Just to be clear, ALSA's OSS emulation does support multiple open
of /dev/dsp if the device has hardware mixing like emu10k1.

> > The solution to making 'alsa-oss' support multi-open can either be done by
> > having the 'snd-pcm-oss' driver talk straight to dmix (internally within the
> > kernel), or by reflecting each connection back out to userspace---in the
> > same way that opening the '/dev/ptmx' multiplexer assigns and creates a new
> > '/dev/pts/*' pseudo-terminal.
> 
> kernel->userspace->kernel would add a significant quantity of latency, 
> and the kernel developers have made it clear that they don't want 
> in-kernel sound mixing. So while it's theoretically possible to manage 
> this, in practice it's not going to happen.

In-kernel sound mixing is a non-starter but kernel->userspace->kernel
may work.  Apps that care about latency will use ALSA or the JACK low
latency sound server.

Kernel->user->kernel is really the only option at this point - I suspect
the kernel developers might reconsider now that it's been 5 years and
the most popular apps like Skype, TeamSpeak, Enemy Territory, and Flash
still refuse to support ALSA correctly.  It's one of the biggest
problems holding back the Linux desktop.  Hang out on #alsa for a while
and you will see what I mean.

Of course, a miracle could happen in the meantime, and all these apps
might release a version with ALSA support...

Lee




More information about the sounder mailing list