I found the issue. The following line in .asoundrc was causing the
error:
pcm.!default {
type plug
slave.pcm "clone_output"
}
As far as I can tell because the above is a "plug" inside another
"plug" (from here):
pcm.clone_output {
type plug
slave.pcm "4channel_expander"
}
The attached .asoundrc works perfectly for me. Without the need to use
"plughw:" as the device (inside "multi_pcm_device") because
"clone_output" is already a "plug" and takes care of format conversions
necessary.
I also added some comments to explain what's going on (as I understand
it).
Cheers!
/Rune
#----
# based on Loto_Bak's version from http://forum.xbmc.org/showthread.php?t=96138
#
# .asoundrc file designed to expand 2 channels
# to output 2 channels to two devices ('slaves.a.pcm' and 'slaves.b.pcm')
# ie. take two channel audio, and output it to two stereo devices simultaneously
#
# caveats : no mixed output (no crossfading, no multiple applications) also
# sync will drift between the devices (rarely do i see mine drift though)
#
# Use "aplay -L|egrep -A 2 ^hw" to find device names. they should start with "hw:". (IEC958 is digital)
#
#----
pcm.!default {
type plug
slave.pcm "4channel_expander"
}
pcm.multi_pcm_device {
type multi;
#this creates a virtual four-channel sound device.
slaves.a.pcm "hw:CARD=Intel,DEV=0";
slaves.a.channels 2;
slaves.b.pcm "hw:CARD=T71Space,DEV=0";
slaves.b.channels 2;
#channel 0 and 1 of "slave a" is, respectively, channel 0 and 1 of the virtual device
bindings.0.slave a;
bindings.0.channel 0;
bindings.1.slave a;
bindings.1.channel 1;
#channel 0 and 1 of "slave b" is, respectively, channel 2 and 3 of the virtual device
bindings.2.slave b;
bindings.2.channel 0;
bindings.3.slave b;
bindings.3.channel 1;
}
ctl.multi_pcm_device {
type hw;
card 0;
}
pcm.4channel_expander {
type route;
slave.pcm "multi_pcm_device";
slave.channels 4;
#map channel 0 of the audio stream being played to channel 0 and 2 of the virtual device
#map channel 1 of the audio stream being played to channel 1 and 3 of the virtual device
ttable.0.0 1;
ttable.1.1 1;
ttable.0.2 1;
ttable.1.3 1;
}
ctl.4channel_expander {
type hw;
card 0;
}
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Alsa-user mailing list
Alsa-user@xxxxxxxxxxxxxxxxxxxxx
https://lists.sourceforge.net/lists/listinfo/alsa-user