Last month I upgraded my computer with new parts. I kept my old DVD drive that I mainly use to rip CDs. I have now however run into an issue that has stumped me. When I tried to rip some used CDs I bought the resulting FLACs had a terrible crackle, making them unlistenable. So I started looking into the issue and tried different ripping programs and CD players. Trying to play a CD also produces a crackle with most players. Some players can’t even see my CD drive. I have installed rippers and players from distro repos and flatpaks and it makes no difference. I have even tried booting into live environments of different distros and the problem persists.
Now, the real kicker for me is that VLC (from flathub or distro repos) plays and rips the CDs with no issues. VLC is not a great tool for my purposes however. EDIT: Kaffeine flatpak also plays CDs without issue.
There are no error messages (aside from some players which can’t even see the drive) to go off of. Google has failed me. CD error correction makes no difference, just makes ripping terribly slow. Some attempts to fiddle with pipewire also produced no result. Encoders work fine when encoding from different sources, so they are probably not the problem, and the same issue happens when playing the CDs.
On my old setup this worked fine. I can also watch DVDs without trouble.
Does anyone have any idea where to go from here? If it wasn’t for VLC I’d think this is a hardware issue, but now I’ve no real idea. I’m currently on OpenSUSE Tumbleweed.
EDIT: Thanks to everyone who took their time to comment and make suggestions. I have been unable to make any headway into solving this. My uneducated guess is that this is some weird edge interaction between the optical drive, motherboard, and libcdio/cdparanoia. Purely speculating, this may be an issue with buffering/caching. It seems to me that applications that rely on libvlc do not have this issue. I tried using a portable USB DVD drive and it worked fine, as at least there was no crackle. I really don’t know how to proceed from here, so I’ll probably just use a USB drive for now. A commenter suggested getting a separate SATA card to bypass the SATA ports on the motherboard, and that sounds plausible, but I haven’t tried it. Any explanations are welcome!
Sounds to me like VLC and Kaffeine are using an audio system that other software is not, or they have vastly different settings to the others. Yes, this is entirely possible. Linux audio is an absolute hellscape of incompatible trash. Still. Fifteen years or so after I abandoned trying to get anything moving to improve it. Yay.
Bitter assholery aside, crackling sounds during playback, or generated in a burned file, are a classic symptom of a buffer underrun*. This can be either at the system settings level or software settings level since some software will override the system settings. I would check in the VLC settings, verify what sound system it’s using, and basically just compare all of the settings to the software that’s creating the problem. I’d be willing to wager that you’ll find some weirdness going on. Match the VLC settings as much as you can and go from there.
I highly doubt this is a hardware issue. It would make no sense for it to be if you can do the thing without problem in some software but not others.
*For anyone that doesn’t know, a buffer underrun is something that us poor CD-burning bastards had to deal with back in the 20th century. To a different extent it still exists with audio interfaces in a way that may be relevant here. To burn or play back the audio the system allocates a buffer, a small amount of memory that it reads the audio into, in an attempt to keep the device from running out of data to replicate (sort of… basically… it’s complicated, look it up). If the device was able to burn or read the data faster than the system could provide the data you’d get a buffer underrun, which ended up sounding like weirdass crackly noise but not in a good way since it was just digital garbage. You can get a similar effect now if you use an audio system that allows you to change the latency settings. This is essentially the same buffer, different day. The smaller the buffer the lower the latency, but you risk running out of buffer and generating a horrific crackle. Raise the latency, increase the buffer, you are less likely to create underruns.
Note that at some technical level everything I just said is probably incorrect, but it’s the best kind of incorrect… the kind that will get the problem fixed regardless of total accuracy.
This is actually somewhat in line with some of my suspicions. From the nature of the crackle, buffering could absolutely be an issue. Now if I could only figure out how to change the settings. Oh boy.
Yyyyup. Oh boy is just the beginning. By the end you’ll likely resemble a 2008 rage face, only with more blood and broken computer parts lodged in your spleen. Audio on Linux can be a bit… recalcitrant.