[LAU] Alsa to jack bridge and asoundrc

Robin Gareus robin at gareus.org
Tue Oct 18 23:27:22 UTC 2011


Hi Fons, *

On 10/19/2011 12:43 AM, Fons Adriaensen wrote:
> On Tue, Oct 18, 2011 at 05:46:12PM -0400, S. Massy wrote:
> 
>> http://alsa.opensrc.org/Jack_and_Loopback_device_as_Alsa-to-Jack_bridge
> 
> Interesting page !
>  
>> I compiled the aloop module and it works fine, but when I try setting up
>> the asoundrc as described, and use the device, I get.
>> ALSA lib pcm_dmix.c:1018:(snd_pcm_dmix_open) unable to open slave
>> aplay: main:654: audio open error: Invalid argument
>>
>> Does anyone know what this uninformative error mean? 
I don't.

>> Has anybody ever
>> had luck with a similar setup?

yes, aloop + alsa_in/alsa_out work just fine here since over a year.

I only use the snd-aloop module from the alsa-drivers. All other alsa
kernel stuff is from the original kernel.

The only problem is: the device needs to be closed during
suspend/resume; otherwise the systems hangs on resume. I've added
killall alsa_in alsa_out; kill -HUP `lsof -t /dev/snd/pcmC1D*`; and
restart commands to /etc/pm/sleep.d/ for that.  I can't use `alsa
force-unload` because that'd kill jackd, too.

> I get similar errors, except that the second one is
> 'Device or resource busy' instead of 'Invalid argument'.

The loopback devices 'ploop', 'cloop' can only be accessed by one
process at a time. If you try to start multiple processes accessing them
you'll get a 'Device or resource busy'. Maybe the device-order changed
with the aloop module being loaded during boot and your jackd is using
on it.. that happened to me at first.

Multiple clients can connect to -dLoopback to play/record via dmix.

  jackd -d alsa -d hw:2
  alsa_out -j ploop -dploop
  aplay -dLoopback some_file.wav &
  aplay -dLoopback some_other_file.wav &

The .asoundrc from the alsa-wiki, configures -dLoopback as default.
so `aplay some_file.wav` works just the same.

> Maybe it's the dmix on top of all the rest. I've seen
> other cases where dmix wouldn't mix (pun not intended)
> with its peers.

you must mean /selected peers/. I'm not one of them :-p

The .asoundrc from the page works fine without modifications:
http://alsa.opensrc.org/Jack_and_Loopback_device_as_Alsa-to-Jack_bridge#asoundrc_definition

Cheers!
robin


More information about the Linux-audio-user mailing list