In the previous article we talked about the basic snapshots operation : how to create, recall one and how we can manage them into a list in the snapshot page. We also discussed the recall time that can be used to create complex movements. Today we will examine the update mechanism and the version history system. We will also discuss how to update one change to many snapshots.

Editing snapshots, restore previous states and recovery from mistakes

Building a snapshot list when working on a live show is one step, being able to edit and update as the show is building is another.

Very simply, in SPAT Revolution, you can update a snapshot. In practice, this means that it will replace the content stored in the snapshot by the content of the sound scene that is currently ongoing.

To update a snapshot, you can either use the button on the bottom of the user interface (it is available in any context) or use the button in the snapshot page. The first button will update the snapshot that is currently recalled. The one from the item list will update the selected (highlighted from the list) snapshot. 

In combination with the update feature, we also provide a versioning system. At the top right of the snapshot page sits a “Version history” panel. Select a snapshot and this panel will display up to ten previous versions.

This versioning system can serve several purposes:

  • Do some quick A/B testing compare two sound scenery.
  • Being able to modify content night after night on a tour, while being able to revert to a previous state if needed.
  • Recover from a mistake!

Updating values to several snapshot

Imagine, halfway through the creation of all of your snapshots, you start to wonder if all your sources are not a bit too far away. If you are working on a big session with dozens of snapshots, editing each of them manually is a huge time loss.

To tackle this use case, we have designed a propagation system. In simple terms, when you change anything on a sound scene, you can choose to make this change propagate to any snapshots. This propagation can be done in two ways. It can either be absolute : the new position of a source will be the same for all propagated snapshots. The other option is to propagate using the trim values : the offset of the new position of the source is propagated to all selected snapshots.

To use the propagation system, you can click on the “propagate” button, at the bottom of the user interface, or use the one in the snapshot page. Doing so will open a pop-up window that let you select which snapshot to update and choose between the absolute or relative mode.

Relative recall

Imagine a scenario where, on a tour, for one night, the singer of a band wants to preserve his voice. So you have a gain offset of a few decibels. You could choose to propagate a gain offset on all your snapshots, but you will have to do the reverse action for the next night. In this case, the ideal choice is to use our “Relative recall” mode.

This mode can be activated by clicking on the “Relative recall” button at the bottom of the user interface or in the snapshot page. Once the mode is engaged, every change you make in the session will be relatively preserved on the next snapshot recall. This means that you could add three decibels of gain on the singer’s source, activate the relative recall mode and go through all the snapshots as usual. Even if the input gain of this source is modified by some snapshot, it will preserve the three decibel offset as long as the relative recall mode is activated. This can also be an easy way to accommodate various acoustics on a tour. 

Recalling snapshots from remote control

When doing live shows, we quickly have the need to synchronize sound, video, musicians presets and more. There are popular apps designed for this application, such as QLab. To keep things open in SPAT Revolution, we have implemented an OSC grammar for our snapshot system.

You recall a snapshot using this message : 

/snapshot/recall index, time, RecallEffectiveSelection, RecallActualSelection, EnableSourcesRecall, EnableRoomsRecall, EnableMastersRecall

Fear not, we will explain everything from this OSC message. /snapshot/recall is the OSC address of our message, everything that follows are arguments. An argument is a value sent to dictate a particular behavior. In this case we can pass up to seven arguments: 

  • index : is the index of the snapshot to recall
  • time : is the recall time, in seconds
  • RecallEffectiveSelection recall the selection of source in the snapshot
  • RecallActualSelection recall the snapshot only for selected sources
  • EnableSourceRecall recalls source parameters
  • EnableRoomsRecall recalls rooms parameters
  • EnableMastersRecall recalls masters parameters

A few commentary on all of that :

  • Only the two first arguments are mandatory! 
  • The index follows the OSC index defined in the snapshot list of the snapshot page. These indexes do not follow the order of the snapshots in the list. This means that reorganizing your snapshots does not break the OSC messages.

Here are two examples of snapshots recall via OSC:

/snapshot/recall 3, 1.5

This message recalls snapshot three in one second and a half. It follows the options defined in the snapshot list in regard to which parameter to recall.

/snapshot/recall 1, 2, false, false, true, true, false

This message recalls snapshot one in two seconds. It overrides the snapshot preferences and recalls source and room parameters.

Well, this is it for our snapshot journey. We hope that these two articles made all of these features clear enough for you to integrate them seamlessly into your next immersive audio creations.