Le Sun, 04 Jan 2009 12:02:44 +0100,
Tobias Gödderz <[email protected]> a écrit :
> Hi!
>
> I have a laptop and use an Aureon 5.1 USB card from Terratec at home,
> and my internal sound card if I'm on the road. I am, of course, too lazy
> to switch the default soundcard manually, so I wonder if there is a way
> to either
>
> i) make the USB soundcard the default, and automatically use the other
> if the USB card isn't available
> or
> ii) use a multi device to dupe the audio stream to both cards that
> doesn't fail if one card isn't available, but silently ignores that
> and just plays on the other one.
>
> Of course I could write a script that changes my ~/.asoundrc if the USB
> card is available or not, if there is no sane way to do it with alsa.
>
It must be also possible to use udev. I am no an expert, but I know that, if
udev load your usb sound card before alsasound, no matter what is
in /etc/modprobe.conf, the usb sound card will be the first one, that imply the
default card.
Most users do not want that and blacklist usb_snd_audio
in /etc/modprobe,d/blacklist.
> At the moment, I have a setup like in ii), but currently it fails if the
> USB card isn't plugged in. My ~/.asoundrc follows.
>
> pcm.!default plug:both
>
> ctl.!default {
> type hw
> card ICH6
> }
>
> # This creates a 2-channel interleaved pcm stream based on
> # two 2-channel slave devices.
>
> pcm.both {
> type route;
> slave.pcm {
> # create a virtual 4-channel device from two sound devices
> type multi;
> slaves.a.pcm "intel8x0";
> slaves.b.pcm "aureon";
> slaves.a.channels 2;
> slaves.b.channels 6;
> bindings.0.slave a;
> bindings.0.channel 0;
> bindings.1.slave a;
> bindings.1.channel 1;
>
> bindings.2.slave b;
> bindings.2.channel 0;
> bindings.3.slave b;
> bindings.3.channel 1;
> bindings.4.slave b;
> bindings.4.channel 2;
> bindings.5.slave b;
> bindings.5.channel 3;
> bindings.6.slave b;
> bindings.6.channel 4;
> bindings.7.slave b;
> bindings.7.channel 5;
> }
>
> # Map two channels of input to four channels of output
> ttable.0.0 1;
> ttable.1.1 1;
>
> ttable.0.2 1;
> ttable.1.3 1;
> ttable.0.4 1;
> ttable.1.5 1;
> ttable.0.6 0.5;
> ttable.1.6 0.5;
> ttable.0.7 0.5;
> ttable.1.7 0.5;
> }
>
> # Some programs will be unhappy if there is no mixer to talk to,
> # so we set this to one of the cards.
>
> ctl.both {
> type hw;
> card ICH6;
> }
>
> pcm.aureon {
> type dmix
> ipc_key 1024
> slave {
> pcm "hw:1"
> period_time 0
> period_size 2048
> # buffer_size 8192
> buffer_size 65536
> buffer_time 0
> periods 128
> rate 48000
> channels 6
> }
> bindings {
> 0 0
> 1 1
> 2 4
> 3 5
> 4 2
> 5 3
> }
> }
>
> pcm.intel8x0 {
> type dmix
> ipc_key 2048
> slave {
> pcm "hw:0"
> period_time 0
> period_size 2048
> # buffer_size 8192
> buffer_size 65536
> buffer_time 0
> periods 128
> rate 48000
> channels 2
> }
> bindings {
> 0 0
> 1 1
> }
> }
>
> ctl.aureon {
> type hw
> card "Audio"
> }
>
> ctl.intel8x0 {
> type hw
> card "ICH6"
> }
>
> Tobias
>
------------------------------------------------------------------------------
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user