Thanks to user mitchco for suggesting and helping Matt implement it. Read from the bottom up. It's in MC31.0.18.
Mitch's site is:
https://accuratesound.ca/-------------
Way to go Matt! Works like a charm! Thank you!
Initial testing on two computers is all good. Give me a day to try various latencies and I will report back.
Thanks again!
Mitch
From: Mitch Barnett
Sent: Monday, June 5, 2023 8:46 AM
To: 'Matt Ashland' <>; Jim Hillegass <>
Subject: RE: Possible feature request?
Hi Matt,
Awesome!! Thanks so much!
Yes, I am happy to test. Will keep an eye out.
Mitch
From: Matt Ashland
Sent: Monday, June 5, 2023 6:29 AM
To: Mitch Barnett <accuratesound.ca>; Jim Hillegass <>
Subject: Re: Possible feature request?
Hi again Mitch,
Instead of sending me a plugin, I'll just put a build out later today with support. Hopefully you can test and provide feedback sometime.
Thanks,
-Matt
On 6/4/2023 6:21 PM, Matt Ashland wrote:
Hi Mitch,
Good idea!
I'll hook this up in the coming days.
Do you have a plugin you could provide that returns a non-zero latency? It would allow me to test a little bit.
Thanks,
-Matt
On 6/2/2023 11:56 PM, Mitch Barnett wrote:
Hi Matt and Jim,
Just wanted to thank you again for all the help getting my plugin to work perfectly with JRiver. I have very happy customers. Including myself as JRiver is my “daily driver.”
While my plugin is a 0ms convolver, I also report the FIR filter latency to hosts. In DAW’s on the pro audio side, the host provides latency compensation based on the plugins reported latency. One example is for audio for video post-production. So if the plugin reports 1000 samples latency, then the host delays the video by 1000 samples so everything syncs up.
There is a VST3 interface for both the plugin side and host side. On the plugin side, I call setLatencySamples() and pass in the number of samples of a FIR filter, typically 32,768 samples for a 65,536 sample linear phase FIR filter.
On the host side, there is an interface called getLatencySamples() The interface is here:
https://steinbergmedia.github.io/vst3_dev_portal/pages/FAQ/Processing.html#q-how-report-to-the-host-that-the-plug-in-latency-has-changedSpecifically:
https://steinbergmedia.github.io/vst3_doc/vstinterfaces/classSteinberg_1_1Vst_1_1IAudioProcessor.html#af8884671ccefe68e0a86e72413a0fcf8The idea is that JRiver would call getLatencySamples() from the plugin and delay the video by the number of samples reported. I believe JRiver’s internal convolution engine already does this or something similar.
Is this a possibility to implement in JRiver MC 31?
I hope you guys have a great weekend!
Kind regards,
Mitch