ValveSoftware / SteamOS

SteamOS community tracker
1.6k stars 70 forks source link

Loud audio crackles and static with HDMI #144

Open sircrowbar opened 10 years ago

sircrowbar commented 10 years ago

I've installed SteamOS on a new PC(ASRock FM2A88X-ITX+ with a AMD A10-7850K Kaveri APU) and I'm having pretty good success with it so far. The only major issue that I'm having has to do with static and crackling heard anytime sound is playing anywhere. Using a standard audio jack works just fine, but the HDMI audio experience is ruined. I suspect that this is a PulseAudio issue itself, but the standard fixes I've found for it do not work.

Modifying /etc/pulse/default.pa's load-module module-udev-detect line to include tsched=0 did nothing for it.

No differences in changing the resampling method in daemon.conf either. I've tried to reinstall PulseAudio and experimented with the AMD Beta drivers and it seems like the issue was not resolved with either. I have restored back to the standard SteamOS with beta repos.

For reference, the problem are similar to the ones mentioned in this Bug Report: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1188406. I understand that this one is in particular dealing with Ubuntu, but it highlights the same issues that I am experiencing under SteamOS.

iroll commented 10 years ago

I have the exact same hardware, and the exact same problem. Analog audio is fine, but HDMI audio is cracking to the point of being unusable, whether or not I'm in big picture mode.

Unlike the Ubuntu bug report, I saw the same problem when trying to use VLC from desktop mode.

Thanks!

sircrowbar commented 10 years ago

Yeah, I can confirm this as well with VLC. It seems to be a general problem throughout the system, actually, though it is definitely most apparently when using a media application like VLC or Steam itself.

Nocturnal42 commented 10 years ago

I have the same mother board, but an A10-7700K CPU. I get the same issue over hdmi, and while analogue audio works fine for a while after, it to develops crackling after a while.

200Puls commented 10 years ago

I also have an A10-7700K CPU on a GA-F2A88XN-WIFI motherboard and am experiencing the same issues with hdmi sound. Interestingly it doesnt always crackle as e.g. when streaming from my windows box the sound is fine. Also when playing Portal 2 the sound is mostly fine whereas in BigPictureMode and game like SeriousSam3 or SyderArcade the sound is pretty horrible.

Nocturnal42 commented 10 years ago

I've spent hours streaming, and I still get crackle (HDMI audio is unusable, analogue is managable). Certain sounds are more likely to trigger crackling (and once triggered it happens with previously fine sounds), such as using instinct in Tomb Raider.

Portal 2 won't launch for me, so I can't compare with your experience there until I get that sorted.

ghost commented 10 years ago

I have this problem too. Same setup as OP(ASRock FM2A88X-ITX+ with a AMD A10-7850K Kaveri APU)

Tele42 commented 10 years ago

For those using AMD graphics and HDMI, does setting something like: default-fragment-size-msec = 125 in /etc/pulse/daemon.conf improve the audio quality?

NOTE: I am not an AMD graphics user, and this hint is scrapped from an unreliable source.

Nocturnal42 commented 10 years ago

Can't tell. Something killed my steamos install (not this), and I can't get a new install to work either.

ghost commented 10 years ago

Seems Im in the excact same situation as you Nocturnal42. Had sound problem, downloaded newest version of SteamOS, installed and now I just get a black screen when I start steamos. Guess ill wait for the next version of the installer.

Nocturnal42 commented 10 years ago

Well I seem to have got SteamOS running again (no idea how, perhaps they coincidentally pushed an update while I was fiddling)

Changing the default_fragment_size_msec seems to have little to no effect on the audio. I did come across this article which details how to calculate suitable values. I'll give it a try sometime in the next few days.

http://www.techrepublic.com/blog/linux-and-open-source/pulseaudio-an-achilles-heel-that-needs-repair/#.

What I did notice was that once when I ctrl-alt-f2 to get a shell, the steam audio continued to play, but without the static. returning to steam brought the static back.

Plagman commented 10 years ago

Is everyone affected by this issue running on an AMD chip? Are they all APUs or does the issue happen with their discrete graphics as well?

iroll commented 10 years ago

I believe all of the people in this thread (myself included) are running AMD APUs.

However, it is my understanding that HDMI audio crackle is a common problem and usually solved by tinkering with pulseaudio settings. With my analog audio working, I haven't felt like diving in to try and fix the HDMI. If you have any specific ideas, let me know and I'll be happy to test them.

On Tue, May 6, 2014 at 4:16 PM, Pierre-Loup A. Griffais < notifications@github.com> wrote:

Is everyone affected by this issue running on an AMD chip? Are they all APUs or does the issue happen with their discrete graphics as well?

— Reply to this email directly or view it on GitHubhttps://github.com/ValveSoftware/SteamOS/issues/144#issuecomment-42371706 .

200Puls commented 10 years ago

For me it's an APU (kaveri) too. I recently reinstalled SteamOS and it is worse than ever. On my old install I had updgraded Pulse to version 4 and tweaked the settings a bit which let me at least use Streaming and play some games like Portal 2. But now with the stock SteamOS settings it is basically unussable...

sircrowbar commented 10 years ago

Hmm, well, that's disconcerting. It sounds like its a common enough problem with Pulse to mean that a fix could happen in the near future.

I've installed Win 8 on the Kaveri APU PC in the mean time and I haven't had any issues with it (Mostly for a sanity check with the new hardware at the time.) but I'm still keeping tabs. I may try to reinstall SteamOS soon and experiment with it some more. If I come up with anything, I'll post it here!

erikbadman commented 10 years ago

I have this as well. FX 8350 and R9 290. I have only tried audio over HDMI -> Receiver -> Projector.

nord73 commented 10 years ago

I have this as well with an APU: A10-7850K. Works fine in Windows 8.1. HDMI => Receiver => Any external HDMI destination.

ghost commented 10 years ago

I tried installing Ubuntu 14.04 Desktop and installing Steam on that. Same problem. Then I tried modifying /etc/pulse/default.pa. Added "tsched=0" to the "load-module module-udev-detect" line. That worked. Fixed the sound problem.

I tried installing SteamOS again and did that same modification. But didnt work. Anyone know what version of Pulse, SteamOS and Ubuntu 14.04 are using?

Balderick commented 10 years ago

@bakertt The difference between steamos pulseaudio (pulseaudio_2.0-6.1+steamos9+bsos1) and ubuntu 14.04 pulseaudio (pulseaudio 1:4.0-0ubuntu11) is the difference between working sound and not for you.

Every linux distribution has a database of packages that come with that distro. i.e. http://repo.steampowered.com/steamos/pool/main/p/pulseaudio/ and http://www.ubuntuupdates.org/package/core/trusty/main/base/pulseaudio

Ubuntu 14.04 uses version 4.0 pulseaudio and SteamOS uses 2.0 pulseaudio. The most recent available stable release of pulseaudio is 5.0. http://www.freedesktop.org/wiki/Software/PulseAudio/

Some more reading: http://en.wikipedia.org/wiki/PulseAudio http://steamcommunity.com/groups/steamuniverse/discussions/1/648814843807695993/#c648816743259744181 If you do not have time to research you could have just http://askubuntu.com/questions/21521/what-is-the-command-to-know-my-pulseaudio-version

ghost commented 10 years ago

Thanks Balderick. Great Info.

jesmiatka commented 10 years ago

Same issue on an Intel NUC, setting the audio mode to 5.1 screws up the audio quality big time. Also the default upscaling to 5.1 is stupid, I do not want to hear the content for a center speaker on the back left and right.

Nocturnal42 commented 10 years ago

This is no longer an issue for me.

200Puls commented 10 years ago

Hey Nocturnal, did you do something to solve this? Are you still using the Kaveri APU?

Nocturnal42 commented 10 years ago

Hardware is still the same. I assumed valve had changed something. Last thing i recall doing was poking around in the bios for unrelated reasons. I could try going back to factory settings on the bios to see if that is what fixed it, if you are still having issues.

cptmandingo commented 10 years ago

I too have a Kaveri APU, and am experiencing the same issue

deri82 commented 10 years ago

I have r9 290 and this issue too.

jcs224 commented 10 years ago

I also have crackly audio. Ubuntu 14.04.1, latest Steam update, AMD APU A10-7850K. I am using audio through the HDMI port.

What is particularly odd about this is it only does it when I use Steam Big Picture (and steam games), and no other program, so there must be something Valve can do to fix this?

I was ALMOST able to completely fix it, but it still pops a tiny bit every 30-45 seconds or so. The "fix" was simply opening up my /etc/pulse/default.pa file and finding the line:

load-module module-udev-detect

with

load-module module-udev-detect tsched=0

Games, such as Borderlands 2, only pop every couple minutes and it's so short and quiet when it does that I barely notice it.

Don't use SteamOS right now, but maybe this will put you on the right track? Cheers!

mdeguzis commented 9 years ago

Found this issue to say I have the same issue too. Is it going to break my install if I upgrade pulse audio?

gusthe commented 9 years ago

I upgraded from a a8-6600k to an a10-7850k, and I now also get crackles and static through HDMI. None of my other components were changed only the APU was upgraded. I'm running Ubuntu 14.10 x64.

deri82 commented 9 years ago

I think this is somehow multicore issue. I have noticed that if i watch youtube and keep vlc player open playing dvd I have awesome clear sounds, but if i play just the other i get sound issues.

phren0logy commented 9 years ago

Same problem here; AMD 5150 APU, motherboard has a Realtek ALC887 chip, but sound out through HDMI.

This change suggested above:

load-module module-udev-detect tsched=0

did not work. Thanks, hope to see this fixed soon.

fpilote commented 9 years ago

same issue (crackles/static) with the following setup :

audio from hdmi (didn't try audio from audio jack)

looks like debian is still using pulseaudio 2.0 (wheezy stable) https://packages.debian.org/wheezy/pulseaudio

deri82 commented 9 years ago

I think this issue could be somehow related into multicore. If you close some of your cpu cores, the crackling could decrease.

I noticed that if I watch youtube video and play dvd via vlc same time, there is no sound issue. But if I pause the other. The issue is there.

Fixing this issue happens with audio fragment size and the other setting next to it. Changing the values until the audio works.

ghost commented 8 years ago

load-module module-udev-detect tsched=0

Confirming as a working fix for audio static/crackle when streaming from Windows 10 to Ubuntu 15.10 using HDMI audio. Games launched on the Linux machine worked normally, just the streaming had audio issues. All gone!

ELLIOTTCABLE commented 8 years ago

So, I'm not on an AMD CPU, like everybody else in this thread; but I'm experiencing a similar (the same?) issue.

My crackling etc is:

Disabling PulseAudio's timer-scheduling (tsched=0) did not help, unfortunately.

Hardware:

Alienware Alpha
Intel Core i7 4785T (Quad-Core, 3.20GHz)
NVIDIA GeForce GTX GPU 2GB GDDR5

Here's a recording I made, to make sure this is same sort of ‘crackling’ experienced by all you AMD folk: http://ell.io/i1cGq8+

ELLIOTTCABLE commented 8 years ago

Gaaaaaaaack. Even worse, in some games, this only occurs sometimes.

For instance, in Borderlands 2: The Pre-Sequel, I reproducibly get no stuttering on the game menu, but I do during the launch cut-scene. WTF?

ghost commented 7 years ago

I've been hunting down this issue for nearly a year thanks to my Serbia Illuminated V2 USB headset but finally fixed it. Here's the long story short, there are 2 reasons I know of that your audio device sounds awful in games, and here are 4 fixes I've found. After trying each of these (one at a time), reboot. If the issue is not fixed, roll back the change and then apply the next (in order from top to bottom). If any of these work for you, please give this a :+1: so others can find it.

The first, and most common, seems to be firmware with poor/no support for timer based audio scheduling/multiplexing (thus only handling the older interrupt based). This is solved by editing /etc/pulse/default.pa, finding the line that reads load-module module-udev-detect and changing it to load-module module-udev-detect tsched=0. This is the most likely issue, especially if your device is connected over HDMI.

The second, and the issue I had (and by the sounds of it, you too @ELLIOTTCABLE (same issue with Borderlands, but mine was 2, haven't played the prequel)), is that your digital audio device may have a small data buffer. This fix is not going to be easy. You need to change 2 lines in /etc/pulse/daemon.conf. Specifically, you need to manually configure default-fragments and default-fragment-size-msec. First remove the ; from the beginning of these options (; is the comment character). You now need to calculate what values you need here. To do this, run pactl list sinks. This will give you lots of output like this for every card. Find your card by looking at the Description of each Sink.

Sink #1
    State: RUNNING
    Name: alsa_output.pci-0000_00_1b.0.analog-stereo
    Description: Built-in Audio Analog Stereo
    Driver: module-alsa-card.c
    Properties:
    ...
        device.buffering.buffer_size = "352800"
        device.buffering.fragment_size = "176400"
    ...

Now you get to manually calculate using the two lines I included above from Properties. You need to calculate the length and number of the fragments your device can handle. You do this with the magic number 1411200. That's the number of bits per second stereo audio requires (44100Hz 16 bits 2 channels). So:

device.buffering.buffer_size = "352800" => 352800/1411200 = 0.25
device.buffering.fragment_size = "176400" => 176400/1411200 = 0.125

To calculate the number of fragments, you divide the buffer_size by the fragment_size. This example is 0.25/0.125 = 2. The fragment size in miliseconds is just the fragment_size we calculated times 1000. So in this example, you would set these lines to:

default-fragments = 2
default-fragment-size-msec = 125

I have seen a third fix but have no idea what it fixes or why it works. You just set the launch option of the problematic game to PULSE_LATENCY_MSEC=30 under the game properties menu. Seems to be something to do with slow processing in the device? Probably more cargo cult than actual solution, but I don't know. Note that this will desync the audio by 30 milliseconds.

There is also a fourth possible fix, but this is only for games that use OpenAL as their sound library. You can force a playback bitrate by editing /etc/openal/alsoft.conf and setting frequency = 48000. I haven't seen anyone comment that this fixed the issue for them, but did notice it in guides around troubleshooting PulseAudio problems, so I'll suggest it here anyways.

mjtorn commented 7 years ago

I have this problem with some games. Everything works and maybe I grab some gold in Shovel Knight or do something else and the sound falls apart. I also installed Space Quest Incinerations from https://steam.nysv.org/ (as I built the package etc :D) and it has another problem where sometimes the sound slows down and starts to crackle. I'm thinking it's a bitrate/sample rate issue maybe.

I'll try the tsched hack, but will it or others beak upgrades? I'm not sure how SteamOS will do the next dist-upgrade, but it'd suck to have a graphical mode saying "Installing updates" while dpkg is in the background waiting to see if I want the current version or the package maintainer's version.

Is there any detriment to these fixes, so could Valve start preconfiguring these fixes if they work? I'm ok with running Crossover Games and such in desktop mode on my Steam Machine, and I know how to do things, but having to play around with Pulseaudio really breaks the illusion...

deri82 commented 7 years ago

I haven't had this issue for a long time. It could be somehow distro depend issue. Mint 18.2 and pulseaudio 8, all default settings here.

mjtorn commented 7 years ago

@deri82 what do you suggest to do here wrt SteamOS? Enable beta updates?

The real WTF is of course that Pulseaudio is used here. Even if it wasn't the culprit of these problems, ALSA would be more than enough to output Steam's and its games' audio with a much thinner stack.

mjtorn commented 7 years ago

I tried the tsched=0 fix, and the audio turned into static and crackle after a while of Shovel Knight.

Maybe I'll try the other fixes, but what a sad day for open source, that buying a gaming setup that should Just Work and advance gaming on Linux, makes you use the time you'd be playing into debugging HDMI and Nvidia and Pulseaudio and whatnot :(

mjtorn commented 7 years ago

I tried calculating the fragments. I got the default-fragment-size-msec value of 23.2199... so I just configured it with 23. default-fragments = 2.

The buffer size is 65536 and fragment size 32768.

Sound broke down in the game, again.

@Nycroth Did this fix ever work for anyone? If so, what was the problem?

@ELLIOTTCABLE are you still suffering the pain? Because it seems we share it.

mjtorn commented 7 years ago

I upped it to 24, rounding it up, and so far sound has not died on me. ~I'll edit this comment if it does.~

And there it went, just as I commented here. It took longer for it to break, but this may be coincidental. Sometimes this is triggered by a new sound in the game but often, like now, I didn't really do anything obvious.

Other good ideas?

ghost commented 7 years ago

@mjtorn, It works great for me. Haven't had an issue since. Can't say for anyone else though. I have read a number of people online who fixed this type of issue with the methods I've listed for both Steam and Linux in general.

However, my issue was never a problem starting mid way through a game though. If a game started with good sound it never became an issue. It would also rarely fix itself if I left it a few minutes waiting at the menu of the game, after which the sound would be fine.

Games that used to have the issue included Octodad, Don't Starve, World of Goo, and Psychonauts.

ELLIOTTCABLE commented 7 years ago

I haven't touched my Steam Machine since my last post here (what, a solid year?) due to this issue, so I honestly have no idea.

Been having too much fun with my Vive / eGPU / Macbook setup, which has been treating me far superior anyway. ;)

(If I get a chance to play with it, I'll report back whether the mentioned fix works for me!)

mjtorn commented 7 years ago

I bought a new TV, for unrelated reasons, and I still experience this problem so this is definitely something on the Steam side of things.

Could this be a problem with Shovel Knight? That game has this problem a lot.

I did notice that I had lost tsched=0 in an update, so that invalidates any earlier findings, as I have no record of when things have happened.

My apologies.

I will try to play as much as possible and keep track of updates in the future.

EDIT: didn't take long for the crackling and hissing to start. I'll double-check my PA sinks and see if there's something to be done about chunk sizes. Sigh.

mjtorn commented 7 years ago

Any tips for rounding errors?

There has to be a better way than desync my audio, which I didn't even try, and hard-coding a random frequency sucks as well.

Just to be clear, with the OP and everyone else, is the loud crackling and static intermittent or constant?

Because in my case, there may be the occasional crack, but the real problem is when the audio deteriorates completely into nothing but static and crackle. Broken Age sometimes recovered from this, I may remember Shovel Knight getting itself together maybe once, but in general, some games are doomed.

The HDMI comes off a GeForce GTX 960 4GB.

mjtorn commented 6 years ago

I forgot to report that I sort of gave up on this.

In case anyone has this problem, here's what worked for me:

Still working on the last item.