Thanks for the update!
What do you mean ? I was under the impression that bypass delays had to be implemented on the plugin side ?
Thanks for the update!
What do you mean ? I was under the impression that bypass delays had to be implemented on the plugin side ?
Youāre assuming every plugin developer overrides AudioProcessor::processBypassed() and handles this⦠if they donāt then the delay compensation can be wrong if the AudioProcessorGraph is bypassed⦠Iāve added a delay to AudioProcessor and in the AudioProcessorās processBypassed() method I delay the audio by the latency amount. processBypassed() is not a pure virtual method so developers arenāt forced to override it.
I had to add a new method:
AudioProcessor::prepareBypassDelay()
which gets called in AudioProcessorGraph:: setBypassed()
void setBypassed (bool shouldBeBypassed) noexcept
{
if (processor != nullptr)
{
if (auto* bypassParam = processor->getBypassParameter())
bypassParam->setValueNotifyingHost (shouldBeBypassed ? 1.0f : 0.0f);
// Added by Rail Jon Rogut
if (shouldBeBypassed)
processor->prepareBypassDelay();
}
bypassed = shouldBeBypassed;
}
Rail
Indeed in my use case I have control over the plugins, so I implemented AudioProcessor::processBypassed() for each of them, thanks for the clarification!
Hey @railjonrogut Iām confused about the rebuild() function.
It is present in the juce documentation, but it doesnāt seem to be implemented in the latest release (7.0.5)
It is implemented in on the develop branch.
Have you actually succeeded in using it? Am I missing something or is this something to be reported the juce devs ?
The develop branch has the change/addition⦠you can either use the develop branch or use the master branch and wait for them to merge the develop branch into the master branch.
Rail