Opening plugin UI disables active automation in Ableton Live
-
Observed Behavior:
When opening the plugin UI during playback, Ableton Live instantly disables active parameter automation lanes. The DAW behaves exactly as if a parameter was manually adjusted by the user, terminating the automation playback and illuminating Live's "Re-Enable Automation" button.Minimum Reproducible Example:
This behavior can be reproduced from a new project without any scripts.
Create a new HISE project.
Add a single UI Slider (Knob).
Enable isPluginParameter for the knob.
Export as a VST3 / AU.
In Ableton Live, configure the parameter, draw automation on the timeline, and press play.
Open and close the plugin UI window repeatedly.Result: The automation lane will eventually disable upon opening the UI.
Reproduction rate: With a simple 1 knob UI, the failure rate is approximately 1/30 attempts. It may depend on the rate of change of the parameter. With a complex UI (60+ parameters) the failure rate is approximately 1/3 attempts.
HISE 4.9.3
Commit Hash 5d34685f
Live 12.4.3
MacOS 15.7.9
VST3 and AU
-
I'm not going to pretend I came up with this myself or understand the underlying JUCE implications, but this seems to have fixed it.
In this file:
HISE/JUCE/modules/juce_audio_processors/processors/juce_AudioProcessor.cppModify the setValueNotifyingHost function to abort if the value hasn't actually changed:
void AudioProcessorParameter::setValueNotifyingHost (float newValue) { // Abort if the value hasn't changed. This prevents redundant DAW notifications // during UI initialization that cause Ableton to incorrectly disable automation. if (getValue() == newValue) return; setValue (newValue); sendValueChangedMessageToListeners (newValue); }I haven't noticed any other side effects so far

-
@justmull I hit the same thing in Live 12. Claude tracked it down.
HISE reports every parameter change back to the host as a manual edit, including the ones from the state restore on project open and from the editor being created, and Live treats those as a user takeover and greys/disables the lane.
PR here: https://github.com/christophhart/HISE/pull/1037
It gates those non-user origins and stops the plugin echoing the value the host just sent.
Verified in Live 12 with six automated lanes over repeated project opens and editor open/close.
One note on the
getValue() == newValueguard: HISE stores the attribute before it notifies, so that check is also true for the user's own knob drags. With it in place the host is never told about a user move, which breaks automation writing.That is why the PR filters on where the change came from instead.
-
@dannytaurus another useful and helpful PR...@Christoph-Hart ??
-
@Lindon Christoph said in another thread that he's currently busy with a theatre project but will get to the PRs soon.
-
@David-Healey said in Opening plugin UI disables active automation in Ableton Live:
@Lindon Christoph said in another thread that he's currently busy with a theatre project but will get to the PRs soon.
yes I know I read it- Im just tagging this one as one I think needs to be included - of course Christoph is entitled to tell me to F'k right off with my view of what is important or not :-)