New to Linux, How can I make Bazzite audio sound as good as Windows 10?

Just switched to Bazzite from Windows 10 a month ago but can’t seem to figure out how to make the audio sound as good.

According to this site, Bazzite uses Pipewire, PulseAudio, and ALSA. I do not understand how all three work.

After searching through forums and messing with the .conf files of Pipewire and PulseAudio, I still cannot make the audio on Bazzite sound as good as Windows 10 using ASIO.

Computer Specs:
OS: Bazzite (bazzite-nvidia-open:stable)
CPU: Intel i5-13600KF @ 5.10 GHz
GPU: Nvidia GeForce RTX 4070
DAC: Topping DX3 Pro+ (via. USB)

pactl info output (after messing with .conf):
Server Name: PulseAudio (on PipeWire 1.4.9)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 96000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.usb-Topping_DX3_Pro_-00.HiFi__Headphones__sink
Default Source: easyeffects_source

~.config/pipewire/pipewire.conf:
default.clock.rate = 96000
default.clock.allowed-rates = [ 44100 48000 88200 96000 ]
default.clock.min-quantum = 16

/etc/pulse/daemon.conf:
high-priority = yes
realtime-scheduling = yes
resample-method = soxr-vhq
avoid-resampling = yes
flat-volumes = no
default-sample-format = float32le
default-sample-rate = 96000
alternate-sample-rate = 48000
default-sample-channels = 2

First time posting, I apologize in advance if I missed something.

I have zero issues with sound quality using Fedora. Also you can install Easy Effects and try that out. Has all kind of things that you can use to manipulate the sound.

You know honestly I have been listening to music all night. Started out with internet radio and then headed over to YouTube for some MC5 videos. It has been sounding very good. I don’t have an external DAC like you and I don’t know if that DAC uses any DSP or anything. But I also did play with alsamixer from the command line. Then hit F6, go to your sound card and you get a few more sliders to play with. Right now I am listening to XRDS from Clarksdale, MS and it sounds wonderful. All using the DAC on the motherboard, which I feel is pretty good. I’m not even using Easy Effects right now but I have used it in the past to tweak some concert videos with less than stellar audio quality. Won’t make bad audio good but can help.

Never messed with any files. Never had the need to do that.

What app are you running that has poor sound?

Can you be more specific in what way it sounds worse? That could give us a clue to the source of the issue.

I have the exact same setup (DX3 Pro+ connected via USB) and it sounds great. I am on Fedora 43 with KDE, though, not Bazzite. Have you tried connecting it via SPDIF to see if there is an issue with your USB controller?

That would have been my next question.

Yes, the audio sounds less crisp and the bass sounds a bit muffled.

I don’t have a S/PDIF cord unfortunately.

The whole computer sounds this way, it is not exclusive to an app.

It is system wide, not just one app.

Yes, I have EasyEffects installed. The only effect I use is EQ which has the same settings as I had previously on Windows 10.

1 Like

Most of the time I don’t use EQ unless I come upon a bad sounding video that could use some adjustment. But the tool is effective.

Just tried alsamixer but it only had one slider… Linux is a bit strange so far, there are so many command lines that I’ve never heard of (alsamixer was new to me). Where did you learn about this command?

I did the same until I found out about oratory1990’s EQ settings. They make headphones sound their best. Unfortunately, I’ve grown to be very picky when it comes to how audio sounds on my PC…

When you are in alsamixer you can hit F6 and then scroll down to your sound card. That brings up a different set of sliders. I just figured that out the other day. LOL.

Do you listen to headphones all of the time. I listen on a small Labtec 2.1 system that I got a while back from a friend. It sounds pretty damn good for such a cheap setup. I wouldn’t know what to recommend for headphones. You can always travel over to AudioKarma and check out this page. People over there are a lot more geeky when it comes to desktop sound…

No worries, now that you have described your issue, I don’t think the USB connection is your problem.

In short, the frequency response is not what you would expect. This means that something must be modifying the audio samples before they are sent to the DAC. (If the DAC sees the same audio samples, it reproduces the same sound. If not, it’s broken.)

Since you use an EQ on both systems to modify frequency response, and it is probably a different implementation between systems, this is where I would start to investigate.

I take it you weren’t using Easy Effects on Windows but some other software instead?

In both Windows and Linux, the sound subsystem should pass audio samples to the DAC mostly unmodified, unless it has a reason to modify them, like an equalizer to apply, a sample rate conversion, or playing multiple sources that it needs to mix. All of these are quite well understood operations, and I doubt anything goes wrong in Pipewire here.

Just to be certain, I suggest you exclude them one by one. Can you boot your system into a live environment (a Fedora KDE live system would be closest to Bazzite, I think), set the audio system to the sample rate of your music, and play only a single audio stream? This should get rid of the three potential causes I listed above (a clean live system without an EQ installed, feeding the DAC the same sample rate that your files already have, and not playing anything else so it doesn’t have to mix streams). From this clean starting point, you can select 96kHz and check if the sound changes. Then install Easy Effects, listen for changes again, etc. And finally, compare the unmodified sound output to the same thing on Windows, just to make sure you are comparing the same thing.

Anyway, if you cannot do this, my best bet is that you are using different EQ software on Windows and Linux and they give a different frequency response. Can you compare the sound without EQ on both operating systems?

I wouldn’t insult my Topping D10s with pipewire or pulseaudio as their latency is too much for accurate sound.

I use alsa directly for d10s music playback (flac) , everything else uses the PC builtin sound card via pipewire.

Could you elaborate? I don’t see how a constant delay (which is what latency is) could affect accuracy. Even if Pipewire introduced something ridiculous like a 2s latency (which it does not, just as an extreme example), the same sequence of samples would still reach the DAC (just 2s later) and result in the same audio being produced by it.

Of course, a high audio latency makes anything that relies on audio and video being in sync a pretty bad experience, but that is different from “accurate sound”.

Yes, I’ve hit F6 and selected my DAC, but still there is only one slider unfortunately.

I only use headphones and only intend on using headphones. Currently using the Hifiman Edition XS. They’re amazing. Thank you for site suggestion.

Yes, on Windows 10 I used Foobar2000 with the MathEQ plugin. On Linux, I am using Fooyin with EasyEffects. But I don’t think the problem really lies with the EQ as even if the EQ is disabled, the audio still sounds off like I described (not very crisp, muffled bass).

I’m a bit confused as to your live boot suggestion as I’ve only just started using Linux and am not sure how to use a live Linux distro on a USB to change settings like you mentioned… I will do some research on that.

In all honesty, I am not really enjoying my experience with Linux audio thus far. It is way too complicated and even just restarting Pipewire (systemctl --user restart pipewire) results in EasyEffects refusing to launch… With Windows it was as simple as installing ASIO4ALL and selecting ASIO in FB2K.

After purchasing a Topping DX3 Pro+, I was really hoping to get the most out of it, so this is very helpful. Am curious though, how do you directly use ALSA? A flowchart example of Linux audio found online:

The red line would seem to have the least amount of processing, but as for how to configure a single app for this, I have no idea.