accessing native ALSA directly while pulseaudio is running

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux