Pattrstorage: sharing snapshots across M4L device instances w/out per-instance parameter collisions?

Leo G's icon

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!---

Some Random Pattr Test.amxd
amxd 15.25 KB