The sound is complete gibberish, not just hiccups. The script, in windows:
set INPUT_DEVICE=“\\?\SWD#MMDEVAPI#{0.0.1.00000000}.{5ccdb8b9-bf2f-4bc2-a7a7-0b869d8cc54a}#{2eef81be-33fa-4800-9670-1cd474972c3f}”
gst-launch-1.0 wasapi2src device=%INPUT_DEVICE% ! ^
audioconvert ! ^
wasapisink device=“{0.0.0.00000000}.{e9226b69-514d-48a0-953a-13a723623e0e}”
where input device is Hi-Fi Cable Output (VB-Audio Hi-Fi Cable), the other end is connected to Tidal desktop player. The sink is DAC.
The goal is to capture the exclusive mode so that windows doesn’t interfere and doesn’t inject its own upsampler. Every track has different sample rate. The exclusive mode is turned on/off in Tidal player, the player output is set into VB Hi-Fi cable input. The problem is strictly exclusive mode, when it’s off the sound is flawless.
I’m not sure if exclusive mode you are talking about is WASAPI exclusive mode though, wasapi2 plugin does not support the WASAPI exclusive mode. You will need to use wasapi exclusive mode instead (wasapisrc exclusive=true ! ...
) if so.
Also adding a queue after audiosrc might help
Thanks, I can no longer reproduce the problem, today everything works great, and thank you for this amazing project!
My currently working pipeline:
Tidal desktop (win 11) → Virtual Audio Cable (VAC) in exclusive WASAPI mode → gstreamer
What’s nice in this setup I am getting the original Tidal file without Windows resampling, so if it’s say 24/48 or 16/41 - I get it as is, using wasapi2src. Then:
gst-launch-1.0 wasapi2src device=“%INPUT_DEVICE%” ! ^
queue ! ^
audioresample quality=10 sinc-filter-mode=full resample-method=kaiser ! ^
audioconvert ! ^
level message=TRUE ! ^
volume volume=0.97 ! ^
audio/x-raw,format=F32LE,rate=192000 ! ^
wasapi2sink device=“\\?\SWD#MMDEVAPI#{0.0.0.00000000}.{e9226b69-514d-48a0-953a-13a723623e0e}#{e6327cad-dcec-4949-ae8a-991e976a79d2}”