clementine-player / Clementine

:tangerine: Clementine Music Player
https://www.clementine-player.org/
GNU General Public License v3.0
3.7k stars 671 forks source link

Playback does not work on USB DAC with 1.3 and 1.3.1 #5352

Open SamuelGilbert42 opened 8 years ago

SamuelGilbert42 commented 8 years ago

Before posting

Please follow the steps below and check the boxes with [x] once you did the step.

Please provide information about your system and the version of Clementine used.

After selecting the my DAC (NuForce USB Audio Analog Stereo) from Tools->Preferences->Playback->Audio Output, I should be able to hear music play with the headphones connected to my DAC.

It worked yesterday, but it does not work today. My guess is that Clementine isn't using the proper end-point. My DAC has 2 (Analog and SPDIF). With the old interface in Clementine 1.2.3, I could write the proper ALSA device name (hw:Audio,0), but with this new interface, I can no longer specify nor select the end-point.

I confirmed that it's not the DAC or an hardware problem since playback works with VLC and mplayer.

Steps to reproduce the problem (only for bugs)

  1. Select "NuForce USB Audio Analog Stereo" from Tools->Preferences->Playback->Audio Output
  2. Start playback of a track
  3. Hear nothing, while seeing the song scroll-bar advance. The issue isn't systematic. It worked yesterday. clementine_output_selection_bug
ghost commented 8 years ago

Maybe a compilation issue? With Clementine from arch "extra" repo it works for me (I have a HRT Musicstreamer II+). Anyway I agree with your "not possible to specify alsa output" rant.

Ferroin commented 8 years ago

It could just as easily be poor hardware design (I've seen USB audio cards that have both analogue and optical digital outputs, and put the optical output first in enumeration), or even something with Pulseaudio (or ALSA) picking the wrong default output device (which I have regularly recurring issues with).

SamuelGilbert42 commented 8 years ago

Maybe a compilation issue?

I don't think so since I was able to replicate the issue with 1.3 (Arch), 1.3.1 (https://builds.clementine-player.org/), and git.

It could just as easily be poor hardware design

I don't think that's the case since I always got the analog output with ALSA device string "hw:Audio,0". In the same manner, "hw:Audio,1" has always been the SPDIF output.

From my point of view, even if the interface is now easier to use for most people who don't know about audio sink providers, it's still is a regression since I can no longer specify the output provider (ALSA, OSS, Pulse, etc) nor the exact sink.

I think we could inspire ourselves of VLC's configuration interface. It's also not perfect since you can not distinguish which sink is selected, but at least, you can select all of them to find the one that works. (See the screenshot) vlc_audio_output_config

Ferroin commented 8 years ago

The root issue is that they eliminated all the ability to specify output devices, it's not just an ALSA thing (it can't be done for JACK or OSS either). The functionality was actually useful, and was along the type of thing you could say 'If you need to ask what this is for, you don't need it' to regular users. Last I looked on Windows, you always get a full list of sound devices (similar to what you get in VLC, but without the channel selection options, which really are useless to a significant majority of people for music), and therefore this is a feature that's now missing on Linux.

Now, that said, the fact that the S/PDIF output is getting selected as the default by Pulseaudio (or whatever else Clementine is routing through) is itself an issue, and I regularly see rather stupid default device selection happen with all kinds of audio software.

SamuelGilbert42 commented 8 years ago

I though the output might have gone to a different end-point on my USB DAC, but that isn't the case. Even when I select my DAC in the preferences, the output is still routed the my laptop's built-in sound-card.

ghost commented 8 years ago

"I regularly see rather stupid default device selection happen with all kinds of audio software."

My God, this x1000. Getting applications to automatically select a sane audio output is a nightmare on my rig. This is also almost never a problem as I can just point most applications manually to a sane output like with vlc. Needless to say, I need the "select audio output" feature to even be able to use Clementine in any meaningful way. I frankly don't even understand why they would take the feature away, it was useful and anyone who doesn't need it shouldn't be bothered by it. I've tried downgrading but there's some major compatability problems if I do.

SamuelGilbert42 commented 8 years ago

I don't think it's much an issue of selecting a sane default output. By default, to output went to my built-in sound-card which is probably what 95% of user want. However, the real issue is that selecting another output sink in the configuration is not honoured.

I've started looking at the code, but it will take a while since I don't have much time to dedicate to this and I need to learn GStreamer.

ghost commented 8 years ago

I've tried using Rhythmbox, which uses GStreamer, and it works just fine. I'm assuming that the problem is related to the autoselected output which can't be changed as I've had quite a bit of personal grief with that before on this setup. Thank you for looking into this, I really like Clementine.

On 05/03/2016 08:43 AM, SamuelGilbert42 wrote:

I don't think it's much an issue of selecting a sane default output. By default, to output went to my built-in sound-card which is probably what 95% of user want. However, the real issue is that selecting another output sink in the configuration is not honoured.

I've started looking at the code, but it will take a while since I don't have much time to dedicate to this and I need to learn GStreamer.

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/clementine-player/Clementine/issues/5352#issuecomment-216571023

Moilleadoir commented 8 years ago

Just ran into this issue experimenting with sending 192/24 audio to a receiver over HDMI. Works perfectly in Deadbeef though.

more10 commented 8 years ago

This thread might help: https://groups.google.com/forum/#!searchin/clementine-player/bit$20perfect/clementine-player/1gT81kq0dvc/fNh_SOkjDAAJ

more10 commented 8 years ago

I would very much appreciate a checkbox "Bit perfect" output. Only compatible devices should be shown. Also there should be no EQ settings available.

more10 commented 8 years ago

Bit perfect output works with mpd.