I’m hearing a peculiar crackling problem with all my programs that use
SDL. Everything is fine until one of the following happens:
- the program gets bogged down (in I/O, for example)
- I change the current virtual terminal
- I suspend the program momentarily and then resume it
Once the cracking start, it stays until the program is restarted.
I’ve been hearing this problem for a while, and I’m afraid I can’t
remember all the changes in kernel or userspace since everything was
last ok. I tried to narrow it down and discovered that it only happens
with SDL’s ALSA backend, and only with my SBLive card; my motherboard
has a built-in nVidia CK8S audio chipset, and if I modify my ~/.asoundrc
to use that card, it sounds ok. To summarize:
SBLive + ALSA + SDL: crackles
SBLive + ALSA: works fine
SBLive + OSS (emulation) + SDL: works fine
CK8S + ALSA + SDL: works fine
At this point, I really can’t tell where the bug lies, but I’m hoping
somebody here might be able to point me in the right direction.
The cracking itself is a series of regularly-spaced clicks (about
32/second); when the sound is quiet, the clicks are quiet; when the
sound is loud, the clicks are loud. Left and right channels click
independently. Here’s a sample clip where I suspend and then resume
mplayer after approximately 6 seconds:
I’m running Debian Sid on an Athlon64 3400+, with a 64-bit kernel. This
happens with both 64-bit and 32-bit userspace. I can reproduce the
problem with Debian’s packaged SDL or with SDL I compiled myself.
1.2.13, 1.2.12, 1.2.11, and 1.2.10 all show the same problem; older
versions don’t compile for me.
I should note that I’m fairly sure this isn’t due to SDL bug 649:
Compiling SDL with --disable-assembly makes no difference.
Does this sort of problem sound familiar to anyone? I can file a bug
report if that would be preferable, but I don’t even know if this is an
SDL problem yet… I’d appreciate any help or ideas.
$ uname -a
Linux bugfood 18.104.22.168 #1 Tue Jan 27 18:28:48 PST 2009 x86_64 GNU/Linux
$ lspci | grep EMU
02:0b.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 08)