EnvelopSound / EnvelopForLive

Free, open-source tools for Ambisonic 3D panning within Max for Live 10+
http://www.envelop.us/
GNU General Public License v2.0
479 stars 59 forks source link

Broken undo history with Multi Delay device #105

Open Splines opened 1 week ago

Splines commented 1 week ago

Bug description

In a test project, I recently noticed how the Undo history was broken. I don't know how I arrived at this state. The undo history somehow stopped working at some point. It only shows: Undo Change in "E4L Multi-Delay" and nothing happens when clicking on it. This behavior stays the same even if you perform an action, e.g. turning on/off a track. It also stays the same even if you perform an action in the E4L Multi-Delay device.

Except for the Undo history, everything else seems to work just fine, e.g. audio playback. Parameters in the E4L Multi-Delay device can also still be adjusted and affect the sound. It's just that I can't undo anything in the whole project anymore (which makes it practically unusable).

Project file

I stripped down everything to the bare bones and only two tracks are left now:

You can download the project file here (I will try to make sure the link is valid for at least 1 month).

Ger a working undo history again

Delete either the LFO or the E4L Multi-Delay device. After that, the version history is working again as expected. E.g. turn on/off a track and it will show up as undo event.

System

mcslee commented 1 week ago

Thanks for this, I've heard about this before. I can reproduce the issue on my machine using the project file you uploaded. I unfortunately don't have a great theory. The Undo layer is not something that we interact with directly via the Max 4 Live API, Ableton takes care of that and should be automatically detecting and creating appropriate events.

I'm not sure if there's something in the E4L Multi-Delay in particular that's freezing up this process (I don't have a link handy now, but I believe the previous report I had seen was from a different device). It's also a bit bizarre that it seems to be the presence of the LFO and the Multi-Delay somehow causing the issue. If it were an issue in the E4L Multi-Delay implementation, you wouldn't expect deleting a separate LFO device to change that behavior. This does make me wonder if there may be a deeper bug lurking in the Max 4 Live undo handling.

In any case, thank you for the detailed report. Will keep this open and let you know if any theories/leads develop.