Snapshots should have "patch references" rather than always being copies

I have one issue with the Zynthian architecture: every snapshot is a complete copy.

What I’d rather see is the ability to have the option to reference a patch (be it a snapshot or chain or whatever) rather than adding it.

That is, I’d like to have a set of “instrument setups” and if I change one of them, those changes are implicitly replicated in any snapshot that uses it.

If this is possible on Zynthian, I haven’t found it. If this question has been asked and answered before, I couldn’t find it, but it’s a bit tricky to search for.

I think the simplest suggestion is something like this:

In addition to “Load Merge Chains” have “Use Chains” or “Use Snapshot,” which would work like “Load Merge Chains” except that the resulting chain would encode a reference to the given snapshot.

Of course, the tricky part is what to do about changes to the setup. Here’s my suggestion:

  • Save Overwriting would save the snapshot but NOT update any “used snapshots”
  • A new “Update Used Snapshots” menu item would show a list of snapshots being used by this snapshot, with checkboxes for which to be updated.

The further complication would be, what if a used snapshot also has used snapshots? I say, don’t allow this. When you try to use a snapshot and it has used snapshots, report an error.

What do you think? Create an issue?

Please feel free to suggest better terms, or better ways to manage this in the UI. I’m not entirely happy with “used snapshots” for example, just because it’s confusing whether the word “used” is just English or whether it’s the UI term for this relationship. Maybe “reference” but that’s awkward.

Please not.
A snapshot is a typs of archived file.
A preset may be changed or tweaked over time.
Changing or losing a preset would destroy all snapshots using that preset. This happens even more if the snapshot is older and one recalls that.

If you don’t use the feature it won’t affect you.

I’m not asking to change how all snapshots work. Just to add another option: to refer to a saved set of chains rather than copying them.

The whole point is to allow the preset to be changed and affect all places it’s used. But if you don’t use any presets, you’re not affected.