Unified Cross-Rig Undo/Redo Functionality

  • Hi!

    First, I would like to thank the Kemper team for the excellent editor!

    It's already improving my interaction with the Kemper considerably, and helps me explore possibilities in a way I wasn't inclined to before.

    One quintessential ability of an editor that's obviously missing is proper global undo functionality.

    The first obvious thing to ask is for the undo/redo functionality of the editor to be prefectly synchronized with the unit, just as the rest of the parameters are.

    I'm pretty sure the team has already thought about this, and it's probably just a matter of time until this is implemented. (A bit of wishful thinking maybe :))

    But I would be thrilled if this would be taken one step further:

    It seems that today undo/redo buffer of the unit is tied to the context of the current rig. I.e when switching rigs, the buffer is gone.

    My proposal is that the undo/redo functionality persists across rig changes, when working with the editor.

    This way, the undo/redo functionality of the editor is global, and seamless even across rig changes.

    So for example, if I do the following via the editor:

    1. Edit an FX slot

    2. Switch rig

    3. Edit another FX slot.

    Every undo step will seamlessly move back to the previous step. In this example, two undo operation would actually revert to the previous rig..

    I noticed that today the unit's undo buffer is tied to the context of the rig . Once switching it, it resets.

    This leads me to suspect that implementing that, while keeping it in sync with the unit might clash with a limitation of the unit itself, so here's a way to define this:

    - When editing a rig, all changes are synchronized with the unit, and available for undo/redo in the usual cmd-z/cmd-Z manner.

    - When switching a rig via the editor, the undo buffer of the current rig is saved back in the editor, prior to the switch.

    - When an undo operation for rig switching takes place, the saved undo buffer of the previous rig is somehow injected back to the Kemper.

    This would make the edits of the previous rig undo-able (is that a word ? :/) in a manner which is both synchronized with the unit, and crosses the rig context.

    I think this would make the editing much more fun and care free.

    Hope this makes sense:)

    Thanks again for an excellent and an ever improving product!

  • Another approach just occurred to me. It might be easier to implement:

    Add a "recently used rigs" drop down list in Rig Manager.

    The user can select any rigs they have recently used (only via Rig Manager), and that would do the following:

    1. Load that rig on the profiler in its exact state it before it got switched - I.e all editing done to it persist.

    2. Load the undo buffer of that rig as well. So, all changes are undo-able.

    I think a "Recently used rigs" list is a very nice feature even on its own, but along with the undo buffer, it would facilitate a very convenient editing experience.