Computer Audio Players

Discussion in 'Computer Audiophile: Software, Configs, Tools' started by JoshMorr, Oct 4, 2015.

  1. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    Couldn't speak to the specifics of OSX... I haven't used a Mac since the early 90s. Nonetheless, I certainly understand that Linux can be quite daunting in regards to its usage. Despite many of the distributions becoming very user friendly such as Ubuntu, Mint, and etc., sometimes finding how to do something can be incredibility difficult. Documentation can be lacking or inaccurate. What can you expect for free? I was even trying to look up the defaults for pulseaudio, and I couldn't find a definitive answer as to what the developers use as their default sample rate. Unfortunately, it is a freedesktop app, and they typically have poor documentation. I did find that some distributions do default to 44.1kHz, so that would explain why dubiousmike sees the 44.1kHz LED light on his Yggdrasil if he is using a default configuration.
     
    Last edited: Jan 5, 2016
  2. julian67

    julian67 Facebook Friend

    CBC
    Joined:
    Oct 5, 2015
    Likes Received:
    229
    Trophy Points:
    43
    Location:
    England (Proper England - Vilayet).
    If you object to free then you can always buy a commercial license/support package and ring up the help desk. For example Red Hat, Oracle, Ubuntu and others all offer 24/7 phone and email support.

    There isn't a universal default, as you've found. It's up to the distributions to set one. Invariably it will be 44100 or 48000. I don't run pulseaudio (ALSA works fine for my situation) but I just downloaded Debian's pulseaudio package and checked the defaults (it's all in plain text so no mystery). On a Debian system with pulseaudio you would see the following in the file /etc/pulse/daemon.conf

    Code:
    ## Configuration file for the PulseAudio daemon. See pulse-daemon.conf(5) for
    ## more information. Default values are commented out.  Use either ; or # for
    ## commenting.
    .....
    ...
    ; default-sample-format = s16le
    ; default-sample-rate = 44100
    ; alternate-sample-rate = 48000
    ; default-sample-channels = 2
    ; default-channel-map = front-left,front-right
    .....
    ...
    It's as easy as it looks to edit that and have it behave as you prefer. For more info you would run 'man pulse-daemon.conf' in a terminal, or consult the Debian Wiki at https://wiki.debian.org/PulseAudio.

    This is rather undermined by the very good documentation at https://wiki.freedesktop.org/www/Software/PulseAudio/Documentation/

    The official Pulse Audio page linking to those docs is the top result I get when searching "pulse audio" on google or duckduckgo.
     
  3. Thad E Ginathom

    Thad E Ginathom Friend

    Pyrate
    Joined:
    Sep 27, 2015
    Likes Received:
    14,298
    Trophy Points:
    113
    Location:
    India
    Is there? I'm not so sure. If you want, yes you can tinker. I had to tinker a lot to try and get firewire working, a few years back, until I actually found a setup that had done all the tinkering for me: KXStudio.

    I still use it, because stuff like audio process priorities and interrupt balancing is taken care of, which is stuff I can look at (Linux often has that option, whereas W holds its cards close to its chest) but don't really understand, so I'm glad others have cleared the road ahead.

    Even if I didn't still use parts of KX, added to my Linux Mint, I strongly suspect that all the tinkering required is [example as per Deadbeef] to choose the output plugin, ALSA, and the device, Blah Audio without any conversions. That's it. Taken care of in the media player's gui interface just as it would be on any other gui platform.

    So no, I don't think there is a lot of tinkering involved when Linux is involved. In fact, I think that would be Windows: necessary proprietary drivers, ASIO (or whatever it is called) and all that sort of stuff. The reality is (with some hardware exceptions, because they don't conform to standards and won't work without their drivers) that Linux is more plug and play than Windows is.

    I have no experience of Apple.
     
  4. dubiousmike

    dubiousmike Friend

    Pyrate
    Joined:
    Sep 27, 2015
    Likes Received:
    269
    Trophy Points:
    63
    Location:
    Los Angeles
    Thanks for the further info and explanation re pulseaudio! One follow up question: if the default sample rate in /etc/pulse/daemon.conf is 44100 in elementary (I haven't actually confirmed this, but it seems as though it must be), will I get a bit perfect out through audio players that do not allow me to select ALSA, or are there other changes that pulse makes to the output?

    Archimago has an interesting post with various measurements of ALSA vs. pulse outputs, but he has tweaked the bit depth, sample rate and apparently the filter employed to do the resampling: http://archimago.blogspot.com/2015/10/measurements-look-at-linux-audio-alsa.html It would be interesting to see if pulse matched ALSA if these settings were left alone.
     
  5. julian67

    julian67 Facebook Friend

    CBC
    Joined:
    Oct 5, 2015
    Likes Received:
    229
    Trophy Points:
    43
    Location:
    England (Proper England - Vilayet).
    In any OS while the audio is being routed through the system's software mixer then there are no guarantees that it will be bit perfect. Sometimes it could be, often it won't be. It depends not just on the system mixer's default sample rate/number of channels etc. but also on what other audio streams are being handled; this might include playback apps and browser plug-ins i.e. flash which are in an apparently paused or stopped state.

    If bit perfect output is vital then you need to be sure that your audio player software has exclusive control of the audio hardware. Like I said earlier I'm not a pulse audio user (I find ALSA simpler for this use case) but I think you can use the tool pasuspender to bypass pulse audio and give your app exclusive control of the audio hardware.
     
  6. Psalmanazar

    Psalmanazar Most improved member; A+

    Pyrate Slaytanic Cliff Clavin
    Joined:
    Sep 27, 2015
    Likes Received:
    5,345
    Trophy Points:
    113
    Link the rant?
     
  7. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    I personally wasn't objecting to free. I should have been more clear in that I feel that you get a heck of lot for Linux being free, and yes I know some distributions do provide support. Although, typically that is more for commercial offerings. I'm sure there might be some individuals that sign up, but I have a feeling more just abandon Linux if they can't figure out what they want to do. I have been running Linux at home for quite a while and worked on several Linux/Unix systems over the last few decades, and over the last couple of years I use it exclusively at home.

    I think that is a matter of opinion. The problem I have with freedesktop, and I guess my opinion is colored because I also develop applications and freedesktop is too high level typically to be useful for me. I also use the Arch Linux documentation because they have better documentation even though I don't use the Arch distribution. In fact, the current Debian project leader commented on how much better the Arch documentation is than his own distribution's.
     
    Last edited: Jan 6, 2016
  8. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    I'll have to respectively disagree. For instance, when communicating directly with ALSA to a USB device you might need to make sure the sound card level is at -0dB. It took a while for me to find that one... This does prevent bit perfect data being sent to the DAC. There might be an ALSA configuration file that does that somewhere, but I had to change that in the alsamixer (CLI only) program typically. If you have a Schiit USB DAC, it doesn't seem like it is needed. Both my Modi and Bifrost do not have have those settings, but my other USB DACs do. Yes, there are some nice plug and play systems, but I bet there might be more going on underneath than you might be aware of when trying to do bit perfect to your DAC. Pulseaudio does provide an abstraction layer to make everything play nice and provide plug and play, but it isn't always the best solution when trying to achieve a bit perfect data transmission.
     
  9. dubiousmike

    dubiousmike Friend

    Pyrate
    Joined:
    Sep 27, 2015
    Likes Received:
    269
    Trophy Points:
    63
    Location:
    Los Angeles
  10. julian67

    julian67 Facebook Friend

    CBC
    Joined:
    Oct 5, 2015
    Likes Received:
    229
    Trophy Points:
    43
    Location:
    England (Proper England - Vilayet).
    Yes, you have to set the level with some USB DACs. It took me little while to realise that some have an adjustable level that goes well beyond 0dB. Clipping prompted investigation and the discovery that in alsamixer you just adjust the level back until the bars are no longer a scary red colour. Pretty good clue imo. Save the settings with "#alsactl store" and you are free to return to browsing freedesktop.org documentation to your heart's content.

    btw there are several GUI apps for alsamixer, such as alsamixergui, gnome-alsamixer, qasmixer and so on.
     
  11. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    From my perspective, that is harder to say. There are obviously differing opinions flying around, and that might make it more difficult to determine who you trust. I have been doing software development on Unix/Linux based systems for decades, so I might have a little more incite or maybe not. Nonetheless, it really comes down to convenience versus effort. Every layer of software that you push your audio stream through has the chance for bugs and the potential to modify your audio stream. The goal of pulseaudio is to be an abstraction layer to which it communicates with the native sound system which is typically ALSA on most every Linux distribution, and this abstraction layer is to provide mixing and rate sampling for all applications. If you are playing a 44.1kHz file through an application communicating with pulseaudio, pluseaudio is defaulting to 44.1kHz, and ALSA is set to -0dB for that USB device (if needed), then chances are good that you are bit perfect. I personally like to bypass the pulseaudio layer, but that does limit the number of audio players that can be used because many are designed for pulseaudio only. The audiophile and software engineer in me feels there is less of a chance for software mistakes (configuration, bugs, and etc) if you go directly to ALSA. For some, this might be too problematic or inconvenient...
     
    Last edited: Jan 6, 2016
  12. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    Fairly accurate too. I have been frustrated with Windows for years, and I finally broke free a couple of years ago with running Linux exclusively at home. Nonetheless, as Mike alluded to in his rant, Redbook in Linux works "just fine" out of the box, but you should note the wordage because it was not a ringing endorsement for all configurations and uses... Sometimes some tweaks are necessary. Ubuntu, Mint, and etc are really geared towards the plug and play crowd, and to a large extent those work pretty well. I use to run Ubuntu for several years on a few of my boxes. I no longer use that distribution, but it is one of the few truly easy ones to run and install. For instance, Ubuntu includes non-free software components including device drivers where other distributions you have to install those separately or point to separate non-free depositories and etc.
     
    Last edited: Jan 6, 2016
  13. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    Yes, but my point was that requires tinkering and knowledge of the Linux system, so in short tinkering is required for some more advanced operations unless you are content to stay within the plug and play realm of software usage. Also, typically the ALSA system just reduces the volume level of the USB card, and it isn't always easy to hear that it is doing something to your audio. I finally heard something wrong, and it took a while for me to find that ALSA was actually reducing the volume level by default (the plug and play setting) in software without my knowledge.
     
    Last edited: Jan 6, 2016
  14. julian67

    julian67 Facebook Friend

    CBC
    Joined:
    Oct 5, 2015
    Likes Received:
    229
    Trophy Points:
    43
    Location:
    England (Proper England - Vilayet).
    I hadn't really considered that moving a level slider might count as tinkering. I live and learn.
     
  15. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    Like a lot of things, it is a matter of perspective... I consider it tinkering if I have to change configuration files, GUI configurations especially hidden ones (there are those in Linux as well - i.e. the pulse audio configuration app is not usually installed by default and many GUI's have tweak apps too that are not installed by default), and etc. I have very few pieces of software that do not require some configuration and tinkering to override the plug and play stuff.... In addition, if you are not familiar with Linux, who is going to tell you about ALSA and oh by the way there is this app that you need to change the setting of in the CLI or a specific GUI app that is not installed by default. This is where some of the Linux plug and play stuff gets in the way a bit. If you are very familiar with Linux, then you will think nothing of it... I'm not knew to Unix or Linux, but that one caught me by surprise several years ago...
     
  16. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    I whole heartily agree, and that's why I recommended bypassing pulseaudio if you can. Although, I do understand that people less familiar with Linux might want to stick with the plug and play capabilities because it is easier for many.
     
  17. dubiousmike

    dubiousmike Friend

    Pyrate
    Joined:
    Sep 27, 2015
    Likes Received:
    269
    Trophy Points:
    63
    Location:
    Los Angeles
    I just like the GUI's on lollypop and tomahawk, but neither allows you to specify an alsa output. Oh well, deadbeef and clementine are perfectly fine. I should also try banshee and rythmbox at some point since I think they support alsa? I did try the jriver trial a couple of days ago, but it clearly is not stable in elementary.
     
  18. IndySpeed

    IndySpeed Friend

    Pyrate
    Joined:
    Nov 19, 2015
    Likes Received:
    120
    Trophy Points:
    43
    Location:
    Indianapolis
    Home Page:
    I believe both Banshee and Rhythmbox are designed to use freedesktop's GStreamer framework. In fact, a list of GStreamer applications are at this link: http://gstreamer.freedesktop.org/apps/ I believe you can redirect GStreamer from pulseaudio to ALSA directly. Since Elementary is based on Ubuntu, this link my be useful: http://www.webupd8.org/2010/03/how-to-switch-to-alsa-or-oss-instead-of.html Nonetheless, GStreamer is a fairly sophisticated framework used to integrate a variety of capabilities (audio, video, and etc.), so if the goal is bit perfect I'm not entirely sure it is better. In short, if you use an application that can directly communicate with ALSA, you are probably likely to achieve a bit perfect solution. Whether you can use an application that communicates with pulseaudio or GStreamer (even with it bypassing pulseaudio) to achieve a bit perfect solution is probably possible, but it might not be as easy to guarantee. For instance, what happens during the next software update and a new bug is introduced in any of the several software layers or a configuration parameter gets flipped? In fact, I was having a problem recently with a video application that uses GStreamer causing severe banding, so I bypassed it by using VLC, an app that is not based on GStreamer, and it worked much better. In short, your mileage might vary.
     
    Last edited: Jan 6, 2016
  19. Psalmanazar

    Psalmanazar Most improved member; A+

    Pyrate Slaytanic Cliff Clavin
    Joined:
    Sep 27, 2015
    Likes Received:
    5,345
    Trophy Points:
    113
  20. Smitty

    Smitty Too good for bad vodka - Friend

    Pyrate
    Joined:
    Sep 28, 2015
    Likes Received:
    562
    Trophy Points:
    93
    Location:
    Ca$hburn, NoVA
    You might remember that this was basically the problem I had at CAF last year. That was such a pain in the ass...
     

Share This Page