Rewire with side chain compression latency?

Any one else have an issue with Rewire and side-chain compression causing input latency to increase?

Let’s say I have the sound card at latency of 512 samples, that’s pretty much OK for live recording midi.

I can play direct into the Rewire slave (Reason in this case) and have outputs from that slave going through to the Cubase Rewire channels. Now, I make a send on the Rewire channel input to the sidechain of a Cubase Audio Track compressor (native) insert. Suddenly the latency increases on that specific channel. i.e. I press a note on the instrument in Reason and there’s a lag which wasn’t there before. I then unload (not just disable) the send on the Rewire to the sidechain, and it’s back to normal again! (i.e. I can play with livable/minor latency).

What is going on here? Is Cubase deciding to set its own latency/lag in order to give me real time performance on the compressor? Why doesn’t this happen to a VSTi?

It sounds like that first use-case of connecting to Reason via Rewire and then playing into Reason doesn’t trigger any any kind of PDC. That is, Rewire doesn’t report any latency, itself, for situations when there might not be any.

Once the Cubase compressor is in the loop, the PDC gets calculated.

It’s probably some default delay value to capture most of what a Rewire app might require, worst case.

In other words, even though you’ve proven that the synth your playing doesn’t need that much latency, Rewire isn’t smart enough to do it for each channel, but needs a one-size-fits all value for all channels.

I haven’t tested this, it’s just a guess.

Thanks for your insight into this. I realised that I always run into this when a project gets complex. So I created this basic scenario and found that even at low latencies it was fine (ie. some audio track with a vsti or reason rewire as side chain on compressor for that audio track). So rather than try and “break” it, I went back to my project and tried again.

This time it too was fine! Then the audio started to degrade and needed latency setting very high. What I did t experience was the different latency on different channels issue again.

Note: I actually get different latency on Reason than VSTis in the same project based on whether sidechain is in play.

What was really odd is that I couldn’t replicate it with the same project. I’ve seen this many times in the past. I wish I knew what could be changed to address latency issues in general, as I’m sure (based on the fact that this isn’t consistent), that by improving performance at low latency would resolve this issue.

I never see the CPU working that hard even though the Cubase performance real time monitor is at 90% in some projects when running in Rewire. I suppose I don’t really understand what part the audio card plays in performance. I can see myself spending close to 1kGBP on a new sound card and not actually seeing the issues resolved, which would be frustrating. My research says buy a FireWire RME, but my experience says stick with the PCI card and upgrade the CPU (but it’s not struggling, so…)

Do you ever experience the types of issues?

It’s certainly not audio interface related. The extra performance you get with RME devices and their hardware CPU offloading stuff is negligible and mostly comes into play when recording large numbers of channels simultaneously.

It doesn’t sound like a CPU or even multi-core use issue.

I think it’s something related to Plugin Delay Compensation with Rewire.

Normally, a DAW asks a VST plugin what its internal time to process is (its delay), and then uses that value to adjust PDC for the entire project.

I don’t know how this works with Rewire.

Does Rewire report a latency like a plugin does? I don’t know.

If it does, what is it based on? One general delay value for all synth modules in Reason?

The sidechain makes things more complicated, PDC-wise, because it’s not just that Rewire channel’s latency that needs to be considered.

Are things ever out of sync? Or is just the play-performance lag that is varying?

One thing to try is to enable “monitor” on all the channels in question to ensure they get the low latency of ASIO Guard 2.

Is ASIO Guard enabled?