Getting the Picture: Snapshots in Max 7.1

    In a previous article, I wrote about snapshots as a useful way to save the state of plug-ins in a Max patch. That article ended with the phrase “Stay tuned!”
    With the release of Max 7.1, I can now tell you why I said that – snapshots in Max are now a whole lot more interesting.
    The new snapshot system in Max 7.1 extends the notion of the snapshot to your entire patcher rather than being restricted to plug-ins and hosted Max for Live devices. In addition, you can create, recall, edit, and rename snapshots, embed them in your patch, and share them with your friends.
    You interact with snapshots using the snapshots pane, accessible by clicking on the new snapshots button located on the right patcher window.
    There are now two kinds of snapshots in Max 7.1
    • A patcher snapshot contains the state of a patcher. You can display patcher snapshots by opening the snapshots pane and clicking on the diamond-P.
    Max 7.1 uses Parameter attributes to determine what to save in a patch. To add a standard Max object to your snapshot, select the object and open its Inspector. Find the Parameter tab and click in the Parameter Mode Enable checkbox (Max for Live UI objects have their parameter modes enabled by default, so you don't need to do anything special).
    If you wish, you can choose to embed a snapshot and save it along with your patch (as you can do with the contents of a coll object). You'll notice that the listings of the two snapshots (big-noise and maybe_later) in the above below are preceded by circles. The filled-in circle for the big-noise snapshot indicates that it's an embedded snapshot. To create an embedded snapshot, just click on the name of a snapshot you've created (which will select the snapshot without loading it), and then click on the circle to select and embed it.
    • A plug-in snapshot is the version you already know and love - it contains the state of plug-in or Max for Live device hosted by the vst~ or amxd~ objects. To see the snapshots associated with a plug-in or Max for Live device, click on the device in your patcher window - you'll see a listing of your current device snapshots in the snapshots pane.

    Working with Patcher and Device Snapshots

    Icons at the bottom of the snapshots pane let you take and restore snapshots, add a new snapshot from the current state of your patcher, rename snapshots, and delete them.
    If you're a fan of contextual menus, control-clicking (Macintosh) or right-clicking (Windows) on a snapshot displays a contextual menu of functions with the same functionality as the toolbar icons (in addition, the contextual menu lets you locate a snapshot file in the Finder using the Show in Finder option).

    Plug-ins and Max for Live Devices

    With all this new functionality, has anything changed with effects snapshots? Not a lot - effects snapshots still store the parameter states of plug-ins or Max for Live devices hosted by the vst~ and amxd~ objects. However, vst~ and amxd~ snapshots are not embedded by default – that way, they’re available whenever a particular plug-in or Max for Live device is instantiated, which lets you create and share presets for your plug-ins or Max for Live devices and share them with others (and yes, snapshot files are written to the ~Documents/Max7/Snapshots folder, readable from anywhere in Max’s search path).
    Of course, embedded device snapshots are useful if you want to do something like creating a performance patch that relies on changing among five device presets, and have that data stored as a part of your patcher file. The circle icon allows you to ‘embed’ the snapshot into the patcher - your snapshot data is embedded within the patcher document itself - you don’t need to include any extra files. Choose wisely.
    Want to create and recall snapshots for vst~ and amxd~ when the patcher window is locked? Use the camera and circular icons to create and recall snapshots.

    Any Questions?

    If you’re already using pattr, can integrate the use of snapshots with the way you’re working now, thanks for asking (take a look at the updated helpfiles for the pattr and autopattr externals for more information about how to do this – there’s a new snapshots tab there with the information you need).
    If you’re in the habit of managing your patchers using standard Max messages, the amxd~, vst~, and thispatcher externals are now snapshot enabled – there’s a full array of new messages (snapshot, restore, addsnapshot, deletesnapshot, setsnapshotname, deletesnapshot, setembedsnapshot, movesnapshot) to help you along.
    And yes, you Javascript folks squirming around with your hands up in the back of the room – there’s a Javascript snapshot API for your coding pleasure. Type “Javascript Snapshot API” into the search window of your Max 7.1 patch and enjoy.

    • Dec 16 2015 | 4:30 pm
      Are snapshots supposed to work recursively? I tried it on a patcher that contains several abstractions and bpatchers, some of which themselves contain abstractions etc? There's a [vst~] deep down in one of them and the state of that vst~ did not seem to get saved. I'm not sure what it means that "vst"s are not embedded by default.
    • Dec 16 2015 | 5:32 pm
      That's very awesome. but there ain't no interpolation between snapshots is there ?
    • Dec 16 2015 | 5:41 pm
      The first question that comes to mind would be whether or not you snapshotted the contents of the vst~ object (Upper right hand icons in the front panel, etc.). Otherwise, I'd suggest the usual "please provide a sample of the problem and means to reproduce it" and contact Customer Support.
    • Dec 16 2015 | 5:44 pm
      There's no interpolation - unlike pattr, you're dealing with the capture of a specific set of discrete states (although you can use snapshots in patches that have pattr objects in them, of course).
    • Dec 16 2015 | 7:02 pm
      i don't understand how a "specific state of discrete steps" is different than pattrstorage system ?
    • Dec 16 2015 | 7:26 pm
      Snapshots expose only the equivalent of "integer" states. Pattr approaches the matter differently in its implementation. If you want interpolation, use pattr. For presets of the complete state of a Max patch (provided you've got everything you want saved set up as patcher attributes) and a nice UI for their use, use Snapshots.
    • Oct 01 2018 | 2:15 am
      I have a question regarding the snapshot function. How can I attach the snapshots together with my patch in order to open the same setting in another device? All my snapshots are missing when I open my patch with another laptop.