Page 1 of 2

VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Tue Feb 02, 2021 1:41 pm
by Jose Hidalgo
Hi everybody, hi Vincent. Sorry for the long message, but I need to explain things precisely. :)

I'm currently trying to achieve spatialization with my headphones and HeSuVi ( https://sourceforge.net/projects/hesuvi/ ).
My PC is running Windows 7 SP1 x64, perfectly stable.

Yesterday, I have successfully installed HeSuVi with VB-Cable using this tutorial : https://www.youtube.com/watch?v=7Y4O12uomTI
(the only difference is that I didn't set CABLE input as default sound card, because I want to keep my Juli@ as default for other applications)

Here's my current setup :
  • CABLE input is configured for 7.1 sound
  • CABLE input, CABLE output and my sound card (ESI Juli@) are all configured at the same bitrate/samplerate (24/44.1).
    (why 44.1 instead of 48 ? Because my goal is to play music, and 99% of my FLAC files are of course 44100 Hz)
  • I have changed VB-Cable's samplerate to 44100 too (and rebooted).
I play music as follows : foobar2000 --> Output = "Default: CABLE input"
And I select .wav presets on HeSuVi.

It all works and sounds great in my headphones : I have spatialized sound via HeSuVi, it's really amazing. :D

... BUT I have audio glitches every 30 seconds or so ! 😱 Which makes it impossible to listen to a whole song.
Their intervals seem to vary, it can be anytime in the 20-45 seconds period approximately.

I wonder if it could be the buffer size of my physical PCI sound card (ESI Juli@).
The default buffer size is 256 samples (which I've been using for 10 years without any issues).
I have tried to increase my sound card's buffer size, BUT Windows wouldn't let me, because some "MME multichannel application or service" was denying it. 🤦‍♂️
I finally have managed to increase it by temporarily changing the assignment of CABLE Output (via the "Listen" tab of Sound Control panel) to "free" the sound card.

QUESTIONS :
  1. How could I find what's going on precisely ? I can't seem to find the right settings for my use. :(
  2. Should I install VB-Cable or Virtual HiFi cable for my use ? I'd logically prefer Virtual HiFi Cable (my purpose is HiFi, not gaming), but I don't know if it's compatible with HeSuVi...
  3. My sound card has DirectWire (ReWire) technology by ESI, which is also a virtual cable technology. So I wonder if I even need VB-Cable at all ! :o Unfortunately I don't know how to make it work for foobar and HeSuVi. Here's the control panel (not mine, just a general picture). Any hints ?
    Image
    Also, here's the sound card manual (DirectWire is described in pages 22-24) : http://download.esi-audiotechnik.com/do ... nglish.pdf
Thanks in advance !

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 11:48 am
by Jose Hidalgo
Still waiting for a reply; I hope somebody can chime in :)

I have tried higher buffer values for my Juli@ soundcard (512 samples and 1024 samples).
1024 is the current Juli@ buffer value. It's the maximum it will allow (2048 makes all videos freeze, playing them becomes impossible regardless of the player).

Image

I still have many audio glitches when playing music with foobar through VB-Cable.
All devices are of course set to the same bit-depth and samplerate, like said previously (24 bit / 44100 Hz) : CABLE Input, CABLE Output, Juli@ Audio.
Here are some more precise measurements :

Wiht VB-Cable buffer set to 3072 samples, I have glitches about every 23 seconds (4 glitches in 1min32).

Image

With VB-Cable buffer set to default 7168 samples, I have a bit less glitches and they seem to be more irregular (4 glitches in 2min02 but no fixed frequency).

Image

What more can I do ? Thanks !

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 4:01 pm
by Vincent Burel
glitches are a feature in Windows and can be due to any aplication on the audio path...
to set the VB-CABLE insternal latency to 7168 sample is good, it allows both application to work with upto 2048 buffers...

but the stability of the stream is also pending on the way application are managing the audio stream on input and on output.
maybe your render app is not able to synchronize 2 audio driver together.

you may use Voicemeeter instead.

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 4:36 pm
by Jose Hidalgo
Thanks for your reply Vincent. :) I'll be happy to try Voicemeeter if VB-Cable doesn't work in my config.

Let me emphasize what's happening with foobar (it's the only audio player that I use) :
  • If I select the output as Juli@ (normal output without VB-Cable), the sound is perfect.
  • If I select the output as CABLE Input (VB-Cable + HeSuVi), there are glitches.
  • Even if I disable HeSuVi ("deactivate everything"), so CABLE Input becomes only VB-Cable direct to Juli@, there are the same glitches.
    AFAIK there is no other app in the audio path.
So far everything points to VB-Cable. This is just a hypothesis of course.
I have the latest version of every software : Juli@ driver, VB-Cable, EAPO, HeSuVi.

In case the problem came from VB-Cable, I'm willing to perform further testing. Don't you have some debugging/logging utility that I could run so you could determine where the glitches are coming from ? Or maybe some tool like Process Explorer could help. I'm not an expert with it, but if you tell me what to look at precisely, I could give you the corresponding log.

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 4:59 pm
by Vincent Burel
there is no log, but what you can do is to watch on VB-CABLE statistics and
check if you get Push loss or Pull loss counter increment when you get this glitch...

BTW: how do you connect VB-CABLE Output to HeSuVi ?

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 5:48 pm
by Jose Hidalgo
I have followed the YouTube tutorial that's in my first post, you can look @ 2:12.
So in Sound Control Panel, CABLE Input is set as 7.1, and CABLE Output is set as stereo and connected to the sound card (via the "Listen" tab).

HeSuVi is just a convolution plug-in of Equalizer APO, which as you know is a system-wide equalizer.
So with EAPO configurator, I only need to select CABLE Input (not Output, Input) as Connector (that's part of the tutorial), and EAPO becomes connected to CABLE Input.
Everything works perfectly, except for the glitches.

Image

I have made a new test.
I have another sound card from another PC (USB this time, not PCI), so I have tried plugging it in, connecting CABLE Output to it, and playing music (without HeSuVi, just direct music : foobar -> VB-Cable -> USB sound card).
Result : there are still the same glitches with foobar, regardless of the sound card.
And of course if I disconnect VB-Cable (foobar -> USB sound card), the sound is perfect.

So I guess it's not related to a particular sound card or its driver.
I guess it has to be VB-Cable IMHO (or Windows). I don't understand why, but it seems like a logical explanation.

I have also made your test.
I have checked Push Loss and Pull Loss. They both remain exactly the same during playback, even during glitches.
Push Loss is always 0, and Pull Loss is the same number as when starting playback (e.g. 4053500). Here's a screenshot during playback :

Image

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 6:45 pm
by Vincent Burel
if you have no push-loss or pull-loss increment during the stream, it means the stream is stable between the input and output of the cable.

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 7:02 pm
by Jose Hidalgo
That's exactly what I thought. :) And yet the glitches are real, and only happen with VB-Cable, regardless of HeSuVi. That's a fact, I can reproduce it 100% of the time.
Could it be that maybe, just maybe Push Loss and Pull Loss don't account for everything ? Or that there is another mysterious cause ?
The problem is somewhere and it's at least related to VB-Cable. I guess we just have to find it. :lol:

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Fri Feb 05, 2021 7:25 pm
by Vincent Burel
yes, glitches are surely real, but it's not happening around the cable.
because having no push/pull loss also means the 2x applications connected are also pushing buffer and pulling buffer in a compatible speed/clock.

Re: VB-Cable (or Virtual HiFi Cable) and HeSuVi

Posted: Tue Feb 09, 2021 3:07 am
by Jose Hidalgo
All right, we'll just end this topic here then :) Here are my findings :
  • foobar --> VB-CABLE --> Equalizer APO --> Sound card : glitches
  • foobar --> VB-CABLE --> Sound card : glitches (this is the most disturbing one !)
  • foobar --> Equalizer APO --> Sound card : OK
  • foobar --> Sound card : OK
Maybe it's not VB-CABLE, but I'm sorry, it really looks like it. Putting it outside the loop removes the glitches. Putting it again in the loop brings the glitches back.

VB-CABLE is a great piece of software, but MAYBE it just doesn't work with my hardware config, for reasons unknown. It may not have any bugs in general, and still fail in my particular case. Even Windows is not a perfect piece of software : it works perfectly on millions of PCs, but in some particular configs, it fails. That's the magic of programming ! :lol:

Anyway, I've just removed VB-CABLE since I was unable to make it work with my config. Thanks for your help Vincent !