[pulseaudio-discuss] accessing native ALSA directly while pulseaudio is running

Luke Yelavich themuso at ubuntu.com
Tue Oct 12 15:25:05 PDT 2010


On Wed, Oct 13, 2010 at 09:09:42AM EST, Ng Oon-Ee wrote:
> On Tue, 2010-10-12 at 22:47 +0200, Christoph Groth wrote:
> > Hello,
> > 
> > Since a few weeks I'm running pulseaudio on my machines and it works
> > nicely.  I especially like the ability to send audio though the
> > network.
> > 
> > However, I need to run a program (aeolus) which works with plain ALSA
> > but not with pulseaudio's ALSA emulation (It complains that "the
> > playback interface doesn't support mmap-based access").  I had set up
> > /etc/asound.conf to default to pulse as recommended.
> > 
> > Now I wonder, is it possible to have some applications accessing the
> > native ALSA device while pulseaudio is running?  I would have imagined
> > that something like this would work:
> > 
> > ALSA_CARD=NVidia aeolus -A
> > 
> > but it doesn't.  I get the "mmap-based access" error.
> > 
> > Also killing pulseaudio doesn't help, as it is restarted when a program
> > is trying to access ALSA.  A solution would be to modify
> > /etc/asound.conf (or it's user-local equivalent), kill pulseaudio, and
> > then run the program, but this is very inconvenient.
> > 
> > Any ideas?
> > 
> > thanks,
> > Christoph
> > 
> Basically, no, the sound-card cannot be shared that way. Perhaps if you
> use dmix, but apps which use mmap don't play well with that either I
> think.

Alternatively, there is the PulseAudio dbus hand-off. Jack2 uses dbus to talk to pulse, to request the device. Pulse lets go of the device whilst jack2 uses it, and then grabs it again once jack2 is done.

Aeolus can use jack, at least according to the package metadata in front of me for Ubuntu 10.10. You could use jack2, which get the alsa device from Pulse, and use aeolus that way.

Luke



More information about the pulseaudio-discuss mailing list