Help - Search - Members - Calendar
Full Version: dual channel solution: use skype along with xmms
Skype Community > English > Linux
doublehp_
every one had this problem: how to use skypa long with other linux sound aaaplications.

if you have a poor sound card, that is just impossible, due to the DSP lock problem.

That was the case in VIA82cxxx chipset (most integratef snd cards into laptops, as well as desktops.)

Things evoluate when owning better card, like the basic sound blaster PCI 128 which I bought 20 euros by 2002. es1370 compliant chipset.

this kind of card has two processors.

The deal is to dedicate one to skye, and one to other applications.

I will call them dsp0 and dsp1.

If you put dsp0 as alsa, and dsp1 as pure OSS, that is going to lead to problems with some OSS applications. I tried that for you, and it is a bad idea.

What work is:
- load the alsa driver for you card
- load snd_pcm_oss snd_mixer_oss

up to here, I tell nothing that is not in other Skype tutos ... but other tutos dont tell what to do next when esddsp and artsdsp failed, or core dumped.

I wanted to configure something that, once installed does not need any maintainance.

I previously tried (successfully) multi card configuation ... one as OSS, one as ALSA, and link sound output to input of other card.

Since I recovered my old SB128, I now try to do it without external link:

set up the card as ALSA:
$ modprobe es1370

set up OSS emulation:
$ modprobe snd_pcm_oss
$ modprobe snd_mixer_oss

write the following content in the user file ~/.asoundrc
CODE


pcm.dmix0 {

       type dmix

       ipc_key 13759

       slave {

               pcm "hw:0,0"

               period_time 0

               period_size 128

               buffer_size 2048

               format S16_LE

               rate 48000

       }

}



pcm.dmix1 {

       type dmix

       ipc_key 13760

       slave {

               pcm "hw:0,1"

               period_time 0

               period_size 128

               buffer_size 2048

               format S16_LE

               rate 48000

       }

}



pcm.!default {

       type            asym

       capture.pcm     "dsnoop1"

       playback.pcm    "dmix1"

}

ctl.!default {

       type hw

       card 0

}



pcm.dsp0 {

       type            asym

       capture.pcm     "dsnoop0"

       playback.pcm    "dmix0"

}

ctl.dsp0 {

       type hw

       card 0

}

ctl.mixer0 {

       type hw

       card 0

}



###



pcm.asym0 {

       type            asym

       capture.pcm     "dsnoop1"

       playback.pcm    "dmix1"

}



pcm.dsnoop0 {

       type            dsnoop;

       ipc_key         13778;

       ipc_key_add_uid yes

       slave {

               pcm "hw:0,0"

               period_time 0

               period_size 128

               buffer_size 2048

               format S16_LE

               rate 48000

       }

}



pcm.dsnoop1 {

       type            dsnoop;

       ipc_key         13778;

       ipc_key_add_uid yes

       slave {

               pcm "hw:0,1"

               period_time 0

               period_size 128

               buffer_size 2048

               format S16_LE

               rate 48000

       }

}




this sets up two things:
it declares each ressource with a uniq identifier, then it binds some of them into dedicated devices:
PCM0 is binded to (physical) dsp0+microphone
PCM1 is binded to dsp1

start Skype, and tell it to use /dev/dsp0

now start artsd, and it will automatically fall down to next free ressource: PCM1.

From now, tell gaim to use arts, and xmms to use ressource ALSA 0:1

In fact, every thing is likely to work at once without any conf, since the section
pcm.!default {
type asym
capture.pcm "dsnoop1"
playback.pcm "dmix1"
}

already defines PCM1 as THE DEFAULT RESSOURCE ...

Most other apps will try alsalib before OSS, and thus will try PCM1 first, what will succeed since it is shared with ALSA.

In order t get this work, you need to make sure most you aps ARE ALSA compliant. Especially, default selection under Debian will give you OSS versions of esd and arts. You will have to force manually selection of alsa version of libesound and artsdaemon, other wise esd and arts will try first /dev/dsp (OSS), and will be concurrent with Skype ... only the first wins.

NOTE: altering asoundrc could mix up physical dsp0 to /dev/dsp1 and dsp1 to /dev/dsp0 ... if you feel like playng ...

other of my experiences:
- on single DSP card, I have never been able to use esddsp or artsdsp above pure ALSA.
- ISA cards seems to bug a lot with skype.
- you can sucecssfully use (in a desktop) the via modo dsp as OSS device for skype, and add an ISA card for ALSA ... then buy a dual Jack 3.5mm wire, and link one output to the input of the other card ... just configure the VIA as OSS, the ISA one as ALSA, and you can forget about my .asoundrc ....

Enjoy. See you.
doublehp_
CODE
pcm.dsnoop1 {

       type            dsnoop;

       ipc_key         13779;

       ipc_key_add_uid yes

       slave {

               pcm "hw:0,0"

               period_time 0

               period_size 128

               buffer_size 2048

               format S16_LE

               rate 48000

       }

}
doublehp_
if you use artsd for apps like gaim, you can use
artsd -a alsa

but do NOT use -d
unless you have two sound cards, or two microphone inputs on your card ... (not my case)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.