At 16 August, 2003 Jorge Almeida wrote:
> On Sat, 16 Aug 2003, Alec Berryman wrote:
> > When getting something abnormal like this (XMMS ought to be able to do
> > XMMS), the first thing I'd try would be run it in a console.  Does it
> > give any signifigant output?  Next, do a quick recompile with more
> > conservative options.  Try -O2 instead of -O3, take out the "fast" math,
> > and all that fun stuff.  I bet that fixes it, but if it doesn't, and
> > you're feeling adventurous, get 'strace' and run 'strace xmms file.wav'
> > and see if anything interesting comes up.
> > 
> > I bet the recompile will do it, but there's an endless amount of fun to
> > be had.
> > 
> It works now, with no recompiling! Go figure... The documentation of xmms 
> is better than average, but still it is difficult to get the big picture. 
> I think I can guess (more or less) what happened: I use KDE, and the aRts 
> server is started at login and suspended if inactive for 60 seconds. Since 
> I tried to start artsd from the command line (without -s option), the 
> server remained active indefinitelly. It seems that xmms cannot interact 
> with the aRts server (I suppose that is what the xmms-arts plugin is for, 
> but it is masked), whence the trouble (it shouldn't just freeze, 
> though...). I don't understand what reset the normal state (I opened the 
> KDE sound control panel, but could that be enough to  restart the aRts 
> server with the 60 sec. option?)
> Also, I'm guessing that xmms has a built-in server (or something like 
> that) that works when nothing else holds the hardware yet... Could this be 
> wright?

Yep. The problem lies in Linux's unusual approach(es) to handling sound
output:

-  OSS sound. This is still the "standard" method (though it's being
   supplanted by kernel ALSA) -- programs access /dev/dsp directly. Only
   one program can use this at a time. OSS is generally only used by
   full-screen games and other programs requiring quick response.

-  ESD sound server. A single "server" program accesses /dev/dsp and
   accepts connections through a UNIX domain socket to "mix" sound
   together. Good idea, but ESD is fundamentally broken -- it introduces
   large delays (sometimes as much as 1/2 second) in the process. ESD is
   used primarily by GNOME.

-  Userland ALSA. Similar to ESD, even with similar problems. I don't
   know much about ALSA, really, because it's used primarily by KDE.

-  Kernel-space ALSA. Since the kernel can preëmpt user programs, it's a
   fine choice of a place to put the sound mixer. Still quite
   experimental, as I understand it. But this is still a good choice, if
   you can get it.

Some sound servers support "shims" to allow the use of programs written
for one server under another -- for example, ESD has esddsp, which will
reroute accesses to /dev/dsp into ESD. Hopefully, something similar
exists for ALSA.

To get back to your question, XMMS actually supports both OSS and ESD
sound, and apparently ALSA as well (through a masked plugin). You could
try emerging the plugin to see if it works, though...

-- 
Andrew Farmer
[EMAIL PROTECTED]

Attachment: pgp00000.pgp
Description: PGP signature

Reply via email to