Distortion or Static from Cantabile

Just installed Cantabile today, and I’m having issues getting it to produce non-distorted sound.

Here’s a 1-minute video showing off the issue:

Any help would be appreciated. Thanks!

What are you using for an interface? Is it ASIO? What is the latency setting? Settings are under the Tools menu.

See the guide here:
https://www.cantabilesoftware.com/guides/audioEngineOptions

I’m not sure I understand what you’re saying, but I’ll try to respond to everything.

I have no idea what an interface is.
I don’t know what ASIO is, but I assume I’m using it, because it says “ASIO - Voicemeeter Insert Virtual ASIO” for my Audio Driver (as per the video).
I don’t know what my latency setting is, nor do I know where to check for it.

I tried to show off as much information as I could in the video. I clicked through most of my settings mostly to show them off, in case I had anything set incorrectly. If there’s any other information regarding my settings I should give, let me know and I’ll look for it.

Paging @terrybritton… any ideas?

Maybe some ideas in this thread: Cantabile having some issues with Voicemeeter Insert

This is very common when linking in Cantabile to the Voicemeeter Virtual ASIO Inserts. The solution that has always worked for me and stayed stable once it kicked in was to power the Cantabile power button at the top right off and back on again quickly till the sync “catches” and the audio is clean again. It stays once synced.

This is likely a byproduct of the fact that Voicemeeter’s “Virtual ASIO” is really a hook into the WDM/KS Windows Audio sub-system, similar to how ASIO4ALL and the MAGIX version of that work. I do not know if there is anything Brad can do to improve the sync lock through that quagmire, but at least the toggling of the power button does work. (OBS cannot “see” ASIO, but Cantabile pretty much requires it, which is why we need Voicemeeter as a translator ASIO-to-WDM.)

When I did my series of YouTube shows (new series upcoming!), I used a second interface and a second computer for the stream rather than go with the Voicemeeter Virtual ASIO Inserts route, but I do use that Insert technique to feed my ARC2 room correction software all the time, and the toggle trick works on all three of my computers…

Terry

2 Likes

Hmm, okay, I gotta admit, most of this went way over my head. But from what I did understand, Voicemeeter’s virtual ASIO thing sometimes has issues with Cantabile. And if I got a not-virtual thing, I would be less likely to have issues.

So with the Scarlett 4i4, if I use this instead of Voicemeeter’s thing, I should see more success?

For OBS you still will require a Windows audio output to tap into. Focusrite includes both ASIO (for Cantabile) and WDM/KS (for OBS) outputs. So yes, then you would not need Voicemeeter.

However, like I said, merely clicking that power switch off and on a couple times always straightens out the problem for me in Voicemeeter. I hope that didn’t put you off to to using Voicemeeter, which is fantastic!

Terry

I had a chat with the Vincent from VoiceMeeter about this. I’ve pasted his response below:

here is different points to check/understand.

First point is about Voicemeeter main stream, must be stable and must be defined with 256 to 512 samples buffer size.

(below 256 samples it will be difficult to warrant a virtual ASIO sync, below 128 It is usually not possible because of windows time scheduling)

But apparently this is not the case for your user who get the problem when activating virtual INSERT on the video I watched…

You have also to understand that our virtual ASIO driver are synchronized to the Voicemeeter main stream , with a single swap buffer.

It means it adds only one buffer to the overall latency, but it means it needs to be well time synchronized, otherwise it will produce cut in the sound (static, stuttering, crackling).

So, knowing that, there is 2 constraints to respect:

  • in Cantabile, the ASIO callback must process the buffer in time (and in the callback directly) and avoid CPU peak or any waiting cycle.
  • the audio driver used by Voicemeeter output A1 must be stable in term of timing callback… that is not always the case with USB ASIO driver as we can read it on this topic: Focusrite ASIO driver and Callback Timing error (solved) - VB-Audio's Forums

The work around for this last problem is to use another audio interface for Voicemeeter output A1 (WDM is sometimes better than ASIO on the timing issue) to get a better and more regular callback timing.

So… is sounds like if you’re pushing for too small audio buffer this might cause problems. Also, it sounds like if there’s a stalled audio buffer it might cause issues. Cantabile’s first audio cycle can be slower because it can often have additional initialization to do - I’m wondering if that’s stalling things and causing sync to be lost.

Have you tried turning on Cantabile’s double buffered audio option. I wonder if that might help. (guessing)

Brad

3 Likes

I haven’t tried the double-buffering option yet EVER, so I will give that a try.
I will also try putting a WDM device into A1. Never even considered that might help!

Thanks for reaching out to Vincent - another lone-wolf developer trying to give us the best he can give! :slight_smile:

Terry

1 Like

After further discussion with Vincent it seems VoiceMeeter might be sensitive about the first few audio cycles and he suggests just providing silence audio for the first 8 cycles. When I get a minute I’ll see if I can add that easily to Cantabile’s audio engine… it might help clean this up a bit and save having to power cycle the audio engine.

If I go dark on this for a few weeks, please remind me :slight_smile:

Brad

1 Like

I did try both double buffering and using a WDM device in A1, and though it still did not lock in on the first try, it seemed to lock in better (no robot voice sound) the first time and locked in solid by the third try pretty consistently. Not sure that is very helpful, being purely anecdotal evidence and only tested a handful of times!

I mostly use the Voicemeeter inserts to apply the ARC2 room correction to my speakers for listening to music. Though I do use Voicemeeter for other things, like getting audio into OBS for streaming, those uses do not involve having to lock sync with Cantabile, typically only using it as a virtual ASIO output for Cantabile (not the inserts, in other words). Never had any issue there.

Quite a few people who have watched my videos on this topic have wanted to use the Voicemeeter Inserts to employ Cantabile as a host for VST audio plugins (compressor, EQ, etc.) for their OBS streams, so if adding silence fixes the issue that will be a boon for them!

Terry

1 Like

Thanks Terry… I’ll look into adding a few silent/no-op buffers and we’ll see if that helps.

1 Like

Build 3630 (available now) includes a fix to process 8 dummy audio cycles on engine start which might help with VoiceMeeter Insert sync issue.

Interested to hear if this helps.

1 Like

Was there a fix on this?
I downloaded and installed it today.
I have it set up the same, just going to cantabile and going out to voicemeeter and I get the same static.

I have tried power cycling cantabile many times but that does not do anything.
double buffer does not do anything.

Well, the toggling that terrybritton suggested has worked for me, which is why I stopped pursuing a more elegant fix.

I recently followed up with vb-audio about this. This is the best description of suggested fixes:

https://forum.vb-audio.com/viewtopic.php?f=11&t=506