I have already discussed this topic with Paul, and he said that a general undo/redo function is not easy to implement because this feature can lead to many mistakes when mixing. I understand that.
But I am surprised that many plugin manufacturers do not implement this undo/redo function. Am I the only one who likes to experiment a bit and then wants to revert to the previous setting without having to remember it every time?
Yes, it would be nice if all plugins contained built-in undo/redo functionality for the immediate convenience of it.
But with all plugins you can save presets, no?
This should work for ones that don’t include that:

What plugins are you using that don’t include undo/redo?
And why not then just prioritize ones that do?
-J
Yes, saving presets is good. But for workflow, “Undo/Redo” is better.
Most of the plugins I use on Linux don’t have an “Undo/Redo” function (lsp plugins, zl-eq, x-42 plugins, etc.).
The Undo/Redo is hard to implement inside of the plugin because it clashes with the host’s undo/redo policy. Modern plugin APIs do not have anyting to notify the plugin that Host issued Undo/Redo operation. The same is true in relation between plugin and host: host does not know anything about plugin issued undo/redo operation. Using Undo/Redo simultaneously in Host and Plugin leads to the undefined plugin state which yields into undefined behaviour of the plugin: you expect one behaviour but plugin actually does another thing.
Thank you for explaining that. But why other plugins can do that? Mostly all of windows plugins have this undo/redo feature. Plugins that i use sometimes via yabridge, they have it all.
Maybe because they don’t care about the Host Undo/Redo? Have you ever tried to combine plugin’s undo/redo operations and host’s undo/redo operations?
Look, I’m not a computer scientist, but this question about the undo/redo feature has interested me for a long time. I never understood why some plugins have this feature and others don’t. But if this feature could cause problems during mixing, then it’s completely understandable to me, or perhaps even necessary, not to implement it.
You don’t need to be a computer scientits to just try to perform such scenario by hand. Just add a plugin, apply some changes to it, then try to call undo operation using the host’s menu. Then undo operation using plugin’s menu numerous times. Then try to redo all the stuff. It is really interesting how plugin will behave.
I just tried this with the TDR Nova and everything worked as it should.
Ardour only accesses the editor for undo/redo, not the plugins, which is great. For example, with the TDR Nova, there is a left arrow for undo and a right arrow for redo, which I can only click with the mouse. This means that the editor undo/redo and the plugin undo/redo are independent. I think that’s good.
OK, seems to be reasonable. Then it’s not too hard to implement undo/redo actions, I suppose.
Also, have you tried such scenario with another hosts?
Yes, I tried a scenario like that in Reaper once. But in Reaper, undo/redo is not independent of the editor and plugin. That can be a bit dangerous, because you can lose control with undo/redo. In my opinion, undo/redo should be independent of the editor and plugin. In the plugin, undo/redo should only be possible with a mouse click and not with a keyboard shortcut. That way, there would be no confusion.
As I said, I’m not a computer specialist, and maybe I’m imagining this undo/redo to be simpler than it is. In any case, you’re doing a great job!