I have a plugin where I want to have different latency sample values between realtime and offline processing. When switching to offline mode, it does not appear that the DAW is using the new latency value for the freeze / render process. Is this functionality not supported? If not, is there an alternative way to achieve this feature?
Here is what I’ve observed when running from Ableton:
-
I click to freeze my track in the DAW
-
The host calls setProcessMode as expected and passes the kOffline state.
-
I send the message from my processor to the controller to send the restartComponent(kLatencyChanged) message.
-
The host calls getLatencySamples as expected to get the new value.
-
The host proceeds to send the audio to the process block as expected
-
The frozen track does not use the new latency (there’s silence at the beginning of the track corresponding to the delta between the original latency and the new one set during setupProcessing).
-
I’ve tried several debug setups to confirm that my latency change requests are being used if I set it prior to clicking the freeze track button. I believe this means that I’ve implemented the messaging and processing correctly.
-
I’ve reviewed the Latency Call Sequence and Audio ProcessorCall Sequence diagrams on the help site (linked below), but I don’t believe they indicate whether changing latency during the setupProcessing is supported.
Thank you,
Ryan