Forum
    • Categories
    • Register
    • Login

    Opening plugin UI disables active automation in Ableton Live

    Scheduled Pinned Locked Moved Bug Reports
    7 Posts 5 Posters 656 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      justmull
      last edited by

      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

      Screenshot 2026-08-17 at 14.38.04.png

      1 Reply Last reply Reply Quote 1
      • J
        justmull
        last edited by

        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.cpp

        Modify 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 🤞

        dannytaurusD AxiomCruxA 2 Replies Last reply Reply Quote 2
        • dannytaurusD
          dannytaurus @justmull
          last edited by dannytaurus

          @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() == newValue guard: 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.

          HISE dev latest / herdr + Claude Code / Figma + Affinity
          Meat Beats: https://meatbeats.com
          Klippr Video: https://klippr.video

          LindonL 1 Reply Last reply Reply Quote 1
          • LindonL
            Lindon @dannytaurus
            last edited by

            @dannytaurus another useful and helpful PR...@Christoph-Hart ??

            HISE Development for hire.
            www.channelrobot.com

            David HealeyD 1 Reply Last reply Reply Quote 0
            • David HealeyD
              David Healey @Lindon
              last edited by

              @Lindon Christoph said in another thread that he's currently busy with a theatre project but will get to the PRs soon.

              https://forum.hise.audio/topic/15026/au-component-version-is-always-0-in-exported-plugins-xcode-exporter-misses-versionashex/8?_=1788803845075

              Free HISE Bootcamp Full Course for beginners.
              YouTube Channel - HISE tutorials
              My Patreon - More HISE tutorials

              LindonL 1 Reply Last reply Reply Quote 0
              • LindonL
                Lindon @David Healey
                last edited by

                @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.

                https://forum.hise.audio/topic/15026/au-component-version-is-always-0-in-exported-plugins-xcode-exporter-misses-versionashex/8?_=1788803845075

                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 :-)

                HISE Development for hire.
                www.channelrobot.com

                1 Reply Last reply Reply Quote 1
                • AxiomCruxA
                  AxiomCrux @justmull
                  last edited by AxiomCrux

                  @justmull I asked claude to impliment this fix on my project and it said:

                  The generic forum patch would actually break UI-driven automation in HISE since its getValue() updates before notifying the DAW. I'll apply the narrower fix that only affects the DAW-to-plugin path instead.
                  

                  and instead did:

                  I applied the fix in ScriptComponentWrappers.cpp:3137. When Ableton sets a value, HISE now records it, so the later update matches and nothing gets sent back to Ableton. Values that change from the plugin's own UI still get reported, so recording automation by turning knobs still works. It's the only change in that file, and git checkout -- hi_scripting/scripting/api/ScriptComponentWrappers.cpp in the HISE folder undoes it. I left your existing uncommitted changes to the .jucer and AppConfig.h alone.
                  
                  You don't need to rebuild HISE.app for the plugin. The exported Xcode project compiles HISE's source folders directly, so re-running ./build_mac.sh (with the version bumped) builds the fix into the VST3 and AU.
                  
                  

                  I'm about to test and see if it worked. I mainly just wanted to chime in as I've been trying to figure out this issue for weeks now, as Ableton is my main daw and I have been trying EVERYTHING I could inside HISE and my scripts to troubleshoot. And for some reason I didn't think to search the forum for Ableton specific issues until I did some searching on google and its AI told me that it was likely ableton specific issue.

                  I am also curious if this is new behavior due to a change in ableton? Because I could swear I had this working fine in an old version of my plugin last year.

                  http://www.axiom-crux.net

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  6

                  Online

                  3.0k

                  Users

                  14.0k

                  Topics

                  121.7k

                  Posts