I know that audio software in Linux can be a bit complicated - pulse, alsa, oss etc. I am a bit confused. For some reason there seems to be some difference in audio quality between those options. Can someone please explain what’s the way to go for an idiot like me?
Also I am looking for a nice foobar-like player and some equalizer software. I would like to avoid using wine if possible because I am not sure how wine affects audio quality. Any suggestions?
More than likely, you will be using pulse audio and that should be fine as long as your hardware uses a standard codec that has good kernel drivers.
The only think that will affect audio quality is the capability of the audio device and the features that it exposes.
In regards to audio players, used adacious. It is like Winamp classic, xmms, foobar, and the like. You can even go to new interface that looks like Gnome Music, Rhythmbox, and those types.
I currently use Rythmbox now just because I use Gnome3 and the dependencies for Adacious were just getting annoying (Debian SID) versus Rythmbox was built into the Gnome dependencies. Now Gnome is going to Gnome Music. I may be forced to switch again if the dependencies for Rythmbox become annoying.
In regards to music player to recommend, I say Lollypop is easily the best for me. Its functionality (que, hear youtube, radio ect) and design (dark theme) make me a happy camper. No EQ, although I heard it could be done on the OS level.
There are many debates about this. People seem to claim differences in audio reproduction between ALSA + Pulse and ALSA without Pulse for example, or ALSA vs OSS or ALSA + JACK etc. For some reason my headphones sound much cleaner on Linux than on Windows.
I think Lollypop is too heavy. I like the minimalistic approach where you only add the features you need. For example I don’t want my player to be like Windows Media Player with various internet syncing, podcast features etc. I just want to listen to my flac records and have a decent EQ.
On Linux I like DeaDBeeF. It’s pretty minimalistic but it was easy for me to find a setup I liked. Doesn’t sync to phones, but my phone fucks up any file over MTP anyway so I have to do it by hand with adb. I still think there’s no Linux substitute for MusicBee. Gnome Music looked good but you can’t change the music library location (at least I couldn’t do it). Symlink to my library in ~/Music didn’t work.
I would just keep trying new library managers until you find one you like.
I will say that this is mostly do to people being sheep and hating Poettering and any thing he makes.
Also, there were somethings that you could only do with ALSA that pulse or Jack could not do due to driver issues.
Again, it really matters about the underlying hardware and not ALSA, Pulse, or Jack.
ALSA is the lowest layer. If your audio device cannot support more than one stream, you will need Jack or Pulse. You really do not need to mess with anything at this level unless you are trying to break it or your audio device is so new that the driver is incomplete or has quirks.
Pulse is general purpose. You use this by default and after 10 years, there should not be any real issue here. Handles down sampling and up sampling so that you get sound no matter the sample rate of the source audio. Also exposes the mixer attributes in a nice GUI.
Jack is for audio/video producion. Reduces latency, allows you to redirect sound to different devices and software. Allows you to deal with individual streams. You would never use this for daily driver situations unless you are opposed to Pulse or you are a masochist. Also you get the best mileage here by having a real time kernel the universal pre-emptive flags compiled in the standard kernel do an adequate job, but if you are going to go down this path, you might as well custom roll your own RT kernel to get the full benefit.
The basics is that you can set hard interrupts and their guaranteed maximum response time. You can set poll scheduling to a guaranteed maximum, buffer sizes and etc. This is a carry over from embedded devices that had limited hardware and resource. It is also important for system critical devices that cannot fail or must fail in a predictible way. If you know what you max operating envelope needs to be, then you design for the worst case scenary. This is a gross generalization. See the below wiki for a full read on the RT kernal and what you can do with it. Then extrapolate that to jack and why you would need this in a real time audio/video rig (ex OBS).