PDA

View Full Version : Soundblaster Live + alsa + quake3


Peter
16-01-2003, 23:34
Hi,

ok here is the story =). I've been running TeamSpeak fine on my SuSE distro, with the oss drivers. Now I installed gentoo, and decided to give alsa a go. Thats where to problems began.

TS and q3 using /dev/sound/dsp (standard)
TeamSpeak works fine, quake3 hangs on sound initialisation, if TS is running, else quake3 works fine.

TS using /dev/sound/adsp q3 using /dev/sound/dsp

TS doest work (in + out muted)
TSclient.log:
16-01-03 23:28:34,29655,ERROR,All,TOSSioThread.Initialize,E xception EOSSException: OSS error in OpenSoundDevice (/dev/sound/adsp): No such device
quake3 works fine

quake3 using /dev/sound/adsp, TS using /dev/sound/dsp

TS works fine, quake3 starts, but doesnt give any sound.


So, whats the deal, what am I doing wrong ??
pwk.linuxfan

Peter
17-01-2003, 15:41
common guys, dont give up on me please

DuF
17-01-2003, 19:14
I can't help you, but I've never can use ALSA and TeamSpeak (but I've read the FAQ on this forum). You say that you can use ALSA and TeamSpeak, I'm interesting in how you could do that, if you have any tips :)
Because the only solution that I have to use teamspeak and play => use OSS kernel driver for my sblive but I will do the max to can use ALSA !

NB : <troll> I use also the fabulous gentoo linux :) </troll>

GNU
18-01-2003, 01:57
this might work
adsp is a play back only device. hence, you need to make games use it, and teamspeak to use the playback and record one. how i hear you cry ? -- do a symlink from /dev/dsp --> /dev/sound/adsp and /dev/adsp --> /dev/sound/dsp job done.

Peter
18-01-2003, 16:17
as I said in my post, using /dev/sound/adsp causes quake3 to stop issuing sound at all. Players like xmms or zinf also can't play on it....Dont know why that is though.

pwk.linuxfan

GNU
19-01-2003, 00:19
quake 3 uses the dsp thats then linked to adsp. yes?

Peter
19-01-2003, 02:06
Well, =)

luckily I asked the alsa experts not only you guys =). I got my problem fixed thanks to a guy there. In hope to aid people comming I will post the entire message here.


Re: [Alsa-user] snd-emu10k1 + TeamSpeak + Quake3
Von: Jaroslav Kysela <perex@suse.cz>
An: Peter Kirk <pwk.linuxfan****.de>
Kopie: "alsa-user@lists.sourceforge.net" <alsa-user@lists.sourceforge.net>

On Sat, 18 Jan 2003, Peter Kirk wrote:

> Hi,
>
> im having trouble with alsa using quake3 together with teamspeak on my
> soundblaster live. With oss/free this works though.
>
> So, TeamSpeak is a voice-communication tool (www.teamspeak.org), which allows
> you to speak to a group of people while e.g. gaming. Since it is used so much
> with games, it is not unusuall to try and launch quake3 while TeamSpeak is
> running. The Problem is: quake cant load up if I try so, at "sound
> initialization" it hangs up. With the oss/kernel modules it workes fine
> (quake3 can open /dev/dsp although TeamSpeak has already done so)... The
> problem seems to be, that both try and open /dev/dsp for read AND write
> (TeamSpeak has to do so, of course, why quake does it this way i dont know).
> Somewhere I read about /dev/adsp being a playback only device, so I thought I
> could force quake3 to use that, and have /dev/dsp for TeamSpeak. The Problem
> is: /dev/adsp doesnt seem to work at all, all programms I tell to use it
> (xmms, zinf, xine...) tell me my sound setup is broken, or /dev/adsp no such
> device (yes /dev/adsp exists).
>
> Why does quake3 load fine with oss/free but not on alsa0.9 ?
> Whats the matter with /dev/adsp ? Is there no such thing with snd-emu10k1 ?
> How should I go about to fix this problem (without reverting to use oss/free)
> ?

There's not an easy fix. This example shows exactly the broken API design
as OSS. We don't know at open time, if application requests the device for
read or write or duplex operation, so we assume that all directions are
wanted. There is no /dev/adsp device for EMU10K1.

Anyway, we have proc interface where you can tell to driver that only
playback is wanted. Try this:

% echo "quake 0 0 direct" > /proc/asound/card0/pcm0p/oss
% echo "quake 0 0 disable" > /proc/asound/card0/pcm0c/oss

Replace quake with real application name (use ps command to determine it
at runtime).

Jaroslav


So, what I did was put those to commands (quake3.x86 instead of quake) in my local.start bootup script, and voila, now alsa knows that quake3 will not come along and request full duplex or something during runtime. Works fine !!

pwk.linuxfan

PS: emu10k1 doest have /dev/adsp

GNU
19-01-2003, 10:55
yea im on a SB128PCI, soz

DuF
21-01-2003, 03:05
thx a lot for the information, I will try it asap !

FatBoy666
27-04-2003, 22:02
Originally posted by GNU
yea im on a SB128PCI, soz
Did you get Quake3 and TS2 running on your sbpci128?
Allthough I have tested the mentioned method, too, there's no way to use one device twice.
That means I have still a problem with using both, a Quake3-engine game and teamspeak.

Brubeck
20-05-2003, 00:19
% echo "quake 0 0 direct" > /proc/asound/card0/pcm0p/oss
% echo "quake 0 0 disable" > /proc/asound/card0/pcm0c/oss

i have do this modification and after i can launch ts2 & rtcw. +But i have no sound in rtcw.
need help plse.