Re: Using "plughw" in .asoundrc: snd1_pcm_hw_param_get_min: Assertion `!snd_interval_empty(i)' failed.

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

 



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

[Index of Archives]     [ALSA Devel]     [Linux Audio Users]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]

  Powered by Linux