I'm curious... where are all the "undo haters"??? I've posted this FR many times before and each time I am confronted with a tsunami of rejection and disapproval, claiming that "undo is perfect as it is" and so on, which of course is completely ridiculous because anybody who thinks rationally knows that comprehensive undo encourages experimentation since it's always possible to go back. Therefore, if I could up-vote this FR 1,000 times I would. Furthermore, I want to add to this FR because I feel it completely fails to address the key issue here, whic his that...
IN A DAW, IT SHOULD BE POSSIBLE TO UNDO ANYTHING THAT AFFECTS THE SOUND
That means, in addition to what S1 is currently able to undo, it should also be able to undo the following:
- Add/remove/move FX
- Add/remove/move insert
- Add/remove/move instruments
- Add/remove/move mixer channels (including Bus and FX channels)
- Add/remove mixer sends
- Mixer channel destination changes
- Any mixer tweaks (volume, pan, mute, solo, send level, send pre/post fader switch, etc, basically everything)
- Any plugin parameter tweaks, including plugin Bypass button
- I/O selection operations (change instrument output, change MIDI channel, audio/MIDI input selection, etc)
- Channel Routing window (add/remove splitter, add/remove/move plugin)
- Channel Editor assignments to knobs
- Etc... I'm sure there are more
In addition, also allow undoing the following which don't affect sound:
- Rename plugins (instruments and FX)
- Rename mixer channels
- Rename modules in Routing window (e.g. undo rename splitters and plugins), although currently splitters cannot be renamed anyway (this is a matter for another discussion)
In the preferences there could be settings to allow users to select what's included in undo, to cater to everyone's personal preferences. For example, some users may not want to include mixer tweaks, etc.
Regarding undo for add/remove/move mixer channels, it is possible to undo add/remove/move tracks in the arrange view, so IMO this should also be possible in the mixer.
In addition, each plugin could have its own undo, separate from the main undo, to prevent plugin tweaks cluttering the main undo history. Since plugins are self-contained, giving each plugin it's own undo history makes a lot of sense IMO. This way if you delete a plugin you also delete it's undo history, much easier than "cleaning up" any orphan actions from the main undo history.