Pattrstorage: sharing snapshots across M4L device instances w/out per-instance parameter collisions?
Hi everyone!
Just started using Max a couple months ago.
I have multiple instances of the same M4L MIDI device in one Live Set. I want one shared snapshot bank (pattrstorage slots + optional slot names) that is identical across all instances.
So if I store Slot 1 in any instance, then all instances should have the same values stored in Slot 1.
(But I’d still like recall to be per-instance — i.e., recalling Slot 1 in one instance shouldn’t force other instances to recall at the same time.)
So far my pattrstorage format is @parameter_enable 1 @savemode 0 @autorestore 0.
If I broadcast 'store', I get race/collision behavior (slots end up reflecting whichever instance “wins,” or values seem to get overwritten/substituted). I also tried store -> writeagain (local) and readagain (global), but I get spammed with save/open dialogs on load/close even with @savemode 0, to the point where it becomes unusable.
What’s the recommended/robust pattern for this in M4L?
Per-set preset files using the Live Set’s file_path (so it’s automatic and per .als)?
Or a file-less approach (serialize the pattrstorage bank into a dict/parameter so it saves with the set)?
Any other attributes I may be missing---
Or something else canonical?
Note: I am using Live 12.3.2 and Max 9.1.2 on a Mac (26.1 Tahoe).
I have attached a minimal sample .amxd test I did with pattrstorage which contains these issues.
I am sure there is a route to solving this issue; I am just completely unsure as to how to get there. If anyone has any suggestions, or any workarounds & examples to fix this issue, that would be infinitely appreciated.
Thanks so much!---