Hi, I know that this question has been answered before but I didn’t quite
understand the answer. I’m having the same problem with the marc marm (the
one who asked this question before). Peter Mulholland answered that the
problem was the backend that was used (ESD or Arts). Well, I don’t know
what ESD or Arts is. I don’t even know what a backend or a frontend is.
My question is how do I choose the backend for SDL_Mixer?
BTW, I’m using Fedora Core 5 with KDE.
KDE uses arts, Gnome uses esound.
In some cases, arts/esound is hogging your sound card (even if it’s not
making any sound at the moment, or ever), which prevents other apps from
using it. The idea is that every app feeds sound data to arts, which
mixes it and sends it to the sound card, so no one has to hog the device
but arts itself.
This is a terrible idea, though, largely because it adds a ton of delay
and inefficiency to the equasion.
If the sound card will let multiple processes use it simultaneously, you
can tell SDL to use a different backend. Backends are the lowlevel part
of SDL that actually feeds the audio data to the hardware. The backend
takes care of the specific details so the rest of the system (from the
rest of SDL to the app on up to the user) don’t generally have to care
about how the audio gets played, just that it does.
On Linux, there are several different backends, for various device
driver interfaces, plus these things like arts, etc.
Now that you have the background information, here are the answers to
your questions:
Disabling esd and arts:
http://icculus.org/lgfaq/#esdarts
Choosing a specific SDL backend:
http://icculus.org/lgfaq/#setthatdriver
(you probably want “alsa” … but killing artsd is probably enough)
–ryan.