Reaper does not write param automation if GUI is closed


#1

Hey guys,

I found a strange behaviour and I’m not sure if it’s a “bug” or a “feature”.
In any case I’d like to find a way around it, if possible.

In short: in Reaper, if my plugin’s Editor is closed, the automation envelope for my parameter does not get written even though I can see it’s value changing.

To replicate the issue, I took the project from the AudioParameter Tutorial (The one with just a gain slider, https://juce.com/doc/tutorial_audio_parameter). I added a timer which changes the gain to a random value every second. Code below:

virtual void timerCallback() override
{
	float newGain = m_random.nextFloat();
	m_gain->setValueNotifyingHost(newGain);
}

When the plugin’s GUI is open, it works as expected: I can set the track’s automation mode to “Write”, arm the envelope, and press play, and I can see the envelope jumping up or down once per second.

However, as soon as I close the plugin the envelope goes flat. The little knob does keep changing its value every second, though (marked with a red arrow on the screenshot).

Am I doing something wrong, or is this a Reaper issue? I have tried it with other hosts (Ableton Live and PreSonus Studio One) and it works just fine, regardless of whether the Plugin’s window is open or not. I still do want to make sure it’s not a bug in my code before blaming Reaper.

Thanks in advance!


#2

Forgot the screenshot, here it is:


#3

You appear to be running the plugin as a bridged external process in Reaper, did you intend to do that? Does it work when you load the plugin normally? (For 64 bit Reaper you will of course need to compile your plugin for 64 bits…)


#4

I’m not sure it will work, but you may try wrapping your setValueNotifyingHost() between a beginChangeGesture() / endChangeGesture() pair and see if that convinces Reaper to behave


#5

Hi guys, thanks for your responses!

Yes I was too lazy to build the tutorial plugin as 64bit last night, but it makes no difference.

Was a good try, but it didn’t help unfortunately :frowning: