Parameter changes are always added to Ableton's undo list

Hi everyone,

in the plugin i’m developing, each parameter is created by :

valueTreeState.createAndAddParameter(MY_SLIDER_ID, MY_SLIDER_NAME, "", mySliderRange, mySliderRange.snapToLegalValue(0), nullptr, nullptr);

Each of them is controlled by a Slider, and each Slider has a SliderAttachement created by

mySliderAttach = new AudioProcessorValueTreeState::SliderAttachment(processor.valueTreeState,MY_SLIDER_ID, mySlider);

Here is the issue :

In Ableton Live 8, every time a parameter is modified, either with an automation or within the plugin GUI, the action is added to Ableton’s Undo list. This behaviour does not happen with Bitwig.

Is there a way to prevent a DAW from adding parameter changes to its undo list ?

Hi @LowFilter, have you or anyone figured out how to prevent a DAW from adding parameter changes to its undo list?

How are you setting the value of the parameter?

Before calling juce::AudioProcessorParameter::setValueNotifyingHost() you should first call beginChangeGesture() on the parameter, and endChangeGesture() after.

I believe hosts should consider any actions performed between calls to begin and end as one single action and so should only have one item in the undo list.

For a slider, you’d probably want to call beginChangeGesture() when the slider is first dragged, and then endChangeGesture() when the slider is released.

If you’re not already, I highly recommend using juce:: SliderParameterAttachment , or juce::AudioProcessorValueTreeState::SliderAttachment which handles all that for you.

@ImJimmi we use juce::AudioProcessorValueTreeState::SliderAttachment, and it works as expected in Live and Reaper when moving a single slider on the GUI.
Anyway, several parameters of our products are intended to be controlled continuously in real time, through automations or MIDI mapping.
With MIDI mapping, especially, there is no way to know when a “gesture” has started or has ended.
We would like to programmatically prevent to inform the host/DAW about a parameter change, when using juce::AudioProcessorValueTreeState::SliderAttachment paradigm.