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.