Audio output at 44.1k despite Hi-Res input file/stream - a bug or not implemented Hi-Res support?
-
I am running Strawberry 1.0.17 on Windows 10. It downsamples all high resolution files. No matter of the source - streaming nor local file. No matter WASAPI nor DirectSound.
For example if I play local FLAC file 24/96 control panel of my USB DAC shows the DAC was open at 44.1kHz only.I know GStreamer has hi-res support. What about Strawberry? Is it lacking? Or there's a bug?
-
I believe it is caused by not using WASAPI's exclusive mode. Wouldn't it be easy to add it? GStreamer wasapisink() function needs exclusive mode flag to be set (if this is indeed the function being used to output audio).
-
Make sure the equalizer, bs2b and replay gain is off in the backend settings, they cause resampling.
Other than that I think the limitation is the driver.
At least on the DACs I've tested you have to set a fixed sample rate and bit depth in the driver settings. For example here are settings for Mcintosh:
Test with VLC, does it output at the same rate?I've tested exclusive mode, it crashes with some DACs but works with others. I think it's buggy in gstreamer.
-
Thanks for your reply.
I have all the 3 settings disabled. As long as WASAPI is used in non-exclusive mode every soundcard or DAC is opened with its default system settings, whereas in the exclusive mode app which opens the DAC can set them.
So as a workaround I have started playback, checked sampling rate, stopped, changed Windows default sampling rate for my DAC to match the sample rate of my audio files. The sound improved a lot.
Unfortunately this workaround is really inconvenient, especially in a longer run.Could you add WASAPI in exclusive mode? It could be marked as unstable etc.
Do you mean VLC as a standalone app? I haven't spotted "exclusive" mode there for WASAPI.
-
@jonas Could you elaborate a little on the VLC test?
-
@jonas , are there any news about wasapi exclusive readdition?
Probably, you could add the option "as is" so people could experiment with it? -
Probably there is a way to implement ASIO in some form (just like foobar2000 does, for example)?
-
exclusive mode with WASAPI crashes immediately when stopping playback, or changing song, so it's no point enabling it before the issue is resolved.
I've added ASIO support, you can download the latest MSVC build if you want to test it: https://builds.strawberrymusicplayer.org/windows/msvc/
-
ASIO does not currently work directly with the audio drivers ASIO, suspect it's a GStreamer bug, but it works with ASIO4ALL (https://asio4all.org/about/download-asio4all/)
Bug reported to gstreamer here: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3321
-
I can no longer reproduce any crashes with WASAPI in exclusive mode in release, only when debugging in Visual Studio 2022.
So I've added exclusive mode as an option when WASAPI is selected as output. Both MSVC and MinGW should have it, please test with the latest build from https://builds.strawberrymusicplayer.org/windows/ -
-
@jonas Unfortunately playback is buggy for my external USB DAC (Khadas Tone 1) - it is much slower, than normal and jagged. Starts and stays like this. For both my monitors there is no such an issue.
-
@przemhb
What output? WASAPI, WASAPI2 or ASIO? -
@jonas The sound was jagged when I tried to use WASAPI.
For WASAPI2 I could play simultaneously from two sources, despite exclusive mode seemed to be enabled (but was it? the tick box was ticked, but greyed out). For ASIO similar case - check box greyed out, but ticked, but error on playback attempt:
Configured audiosink audiobin is not working. ../gst/playback/gstplaysink.c(2949): gen_audio_chain (): /GstPlayBin3:pipeline-1-pipeline/GstPlaySink:playsink
-
@przemhb
Exclusive mode currently is only available with WASAPI. -
@jonas,
Tried both ASIO/WASAPI Exclusive options.
ASIO works with Steinberg UR MKII ASIO driver just fine, as well as it fails to work with ASUS Xonar Essence ASIO (Configured audiosink audiobin is not working).As to WASAPI-Exclusive - it seems to work (Strawberry shows track is playing) but with no sound at all (other apps also do not play sound while Strawberry is active with WASAPI-Exclusive activated).
Something I could try more?)
-
2 updates:
WASAPI2 exclusive stability issue should be fixed.
ASIO not working with other drivers than ASIO4ALL should be fixed.Please try the latest from https://builds.strawberrymusicplayer.org/windows/msvc/, currently 1.0.23.48.g9b1035a5.
-
@jonas I have tried v. 1.0.23.52.g04ba202e-msvc-x64. No improvement on WASAPI exclusive. Right from the moment playback is started the sound is at a lower, than normal speed and gets jagged.
As to the ASIO it depends on driver. For "ASIO for Generic USB Device" it fails with:
../gst/playback/gstplaysink.c(2949): gen_audio_chain (): /GstPlayBin3:pipeline-1-pipeline/GstPlaySink:playsink
When Khadas Tone USB driver is used playback starts ok, but when only I pause it the last sample is played in a loop. To recover it is not sufficient to stop, but play-stop sequence is needed.
-
@jonas tried latest msvc build (.52), the changes are:
instead of ASIO error message - Strawberry just freezes forever.WASAPI Exclusive - no changes.
-
I can reproduce the issue with wasapi exclusive mode playing low distorted audio, reported here: https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/3339
I can periodically reproduce a issue with ASIO where the track is played at lower speed, have to look more into that.