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]
pgp00000.pgp
Description: PGP signature