Animation System

The Animation system in SPAT Revolution lets you automate source movement and parameter changes over time. Instead of manually moving sources or adjusting parameters, you can create animations that do it for you — whether it’s a source orbiting around the listener, oscillating back and forth, or following a custom path you’ve drawn.

There are two types of animations:

Each animation can be assigned to one or more sources. For each source, you can set a depth value (0–100%) that controls how much the animation affects that source. This means you can have one animation driving several sources with different intensities — for instance, one source moving in a wide orbit while another follows the same path but with a much smaller movement.

Common Animation parameters

All animations — whether LFO or Trajectory — share a set of common parameters:

  • Name — A custom label for the animation. By default, new animations are named “Animation N” (where N is a number).
  • Number — The display order in the animation list. This is read-only and updates automatically when you reorder animations.
  • Remote Number — An editable identifier used for OSC remote control, independent of the display order. This works the same way as cue remote numbers (see Cue System).
  • Play State — A toggle to start or stop the animation.
  • Transport Sync — When enabled (the default), the animation starts and stops along with the SPAT Revolution transport. This is useful when you want animations to play only during playback.
  • Transport Anchor — When enabled (the default), the animation’s phase is locked to the transport position. This means if you seek to a different point in the timeline, the animation jumps to the corresponding phase. When disabled, the phase accumulates freely from elapsed time.
  • Tempo Sync — When enabled, the animation’s rate or duration is expressed in bar divisions (musical tempo) instead of Hz or seconds. The tempo (BPM) can be synchronized with other applications using the Ableton Link protocol — see Ableton Link below.
  • Phase Offset — An initial phase shift (0–360°) applied to the animation. For example, setting this to 180° starts the oscillation at the opposite point in its cycle.
  • Direction — Choose Forward or Backward playback.
  • Phase Spread — Distributes multiple assigned sources across the animation cycle (0–100%). At 100%, sources are evenly spaced around the full cycle. For example, with 3 sources and 100% phase spread, each source is offset by 120° from the next, creating a chasing effect.

LFO Animations

An LFO animation continuously oscillates a single source parameter using a periodic waveform. It is a great way to add organic, evolving movement to your spatial mix without having to automate every detail by hand.

What can an LFO modulate?

An LFO targets exactly one parameter at a time. There are two categories:

  • Spatial parameters — Position-related parameters such as Azimuth, Distance, Elevation, X, Y, or Z. When you use a spatial LFO, the source’s movement is previewed in the 3D view. For example, an LFO on the Azimuth will make the source pan around the listener.
  • Generic parameters — Other source parameters like Gain, Spread, Warmth, and more. These are modulated as a normalized percentage (0–100%). The movement is not displayed in the 3D view.

LFO Parameters

  • Target — Which parameter to modulate. Choose from Azimuth, Distance, Elevation, X, Y, Z, or any other parameter.
  • Waveform — The shape of the oscillation: Sine (smooth wave), Triangle (linear ramp up and down), Sawtooth (linear ramp with sharp reset), Square (instant jumps between two values), or Random (random values at each cycle step).
  • Rate — The oscillation speed in Hz (0.01–20 Hz). For example, 1 Hz means one full oscillation cycle per second. This is used when Tempo Sync is off.
  • Rate Sync — When Tempo Sync is enabled, this replaces Rate and lets you set the oscillation period in bar divisions (e.g. 1/4 bar).
  • Amplitude — The size of the oscillation, in the target parameter’s native units. For example, if the target is Azimuth, the amplitude is in degrees (up to 360°). A larger amplitude means a wider movement.
  • Smoothing — Smooths the transitions in the Random waveform (0–100%). Has no effect on other waveform types.

The maximum amplitude depends on the target parameter:

Target Unit Maximum Amplitude
Azimuth ° 360
Distance m 100
Elevation ° 180
X, Y, Z m 200
Generic parameter % 100

Available waveforms

Each waveform produces a different kind of oscillation:

  • Sine — A smooth, continuous wave. The most natural-sounding choice for gentle movement.
  • Triangle — A linear ramp up and down, producing a steady back-and-forth motion.
  • Sawtooth — Ramps linearly in one direction, then resets sharply. Useful for sweeping effects, or for azimuth rotation.
  • Square — Jumps instantly between two extreme values. Good for abrupt position switches.
  • Random — Generates random values at each step. Use the Smoothing parameter to blend between steps for a more gradual random movement.

How Phase Spread works with LFOs

When multiple sources are assigned to the same LFO, Phase Spread distributes them across the oscillation cycle. The first source in the assignment list gets the largest phase offset, and the last source gets no offset.

For example, with 3 sources and Phase Spread set to 100%, the sources are offset by 240°, 120°, and 0° respectively — creating a staggered “chasing” effect where each source follows the same oscillation pattern but at a different point in the cycle.

Trajectory Animations

A trajectory animation moves sources along a user-defined 3D path made of waypoints. The path forms a closed loop, and sources continuously travel along it at a configurable speed. This is ideal for creating circular movements, fly-by effects, or any custom spatial path you can imagine.

Position Mode

Trajectory animations use Absolute position mode by default: the waypoints define exact positions in the 3D space, and the source moves to those exact coordinates.

Note

If multiple absolute trajectory animations target the same source, the last animation in the list takes priority.

Waypoints

Each waypoint in a trajectory has the following parameters:

  • Position (X, Y, Z) — The 3D coordinates of the waypoint, in meters.
  • Speed Factor — A per-segment speed multiplier (0.1–10, default 1.0). A higher value makes the source move faster through this segment. For example, setting a speed factor of 2.0 on one waypoint means the source will travel twice as fast between that waypoint and the next.
  • Tension — Controls the curvature of the path between waypoints (−0.99 to +0.99, default 0). A value of 0 creates straight lines between waypoints. A value around 0.55 produces smooth, circular arcs. Negative values create inward curves.

Shape Presets

When creating a new trajectory, you can start from one of several factory presets that provide common geometric shapes:

  • Custom — An empty trajectory for building your own path from scratch.
  • Square — A 4-point counter-clockwise square (3 m half-width).
  • Triangle — A 3-point equilateral triangle (4 m circumradius).
  • Circle — A 16-point circle approximation with tension arcs (3 m radius).

You can always modify the preset shape after creation by moving, adding, or removing waypoints.

Transform Controls

Once you have defined a trajectory path, you can apply transforms to the entire path without editing individual waypoints:

  • Yaw — Rotate the path around the vertical (Z) axis (−180° to +180°).
  • Pitch — Tilt the path forward/backward around the Y axis (−90° to +90°).
  • Roll — Roll the path around the X axis (−180° to +180°).
  • Scale — Uniformly scale the path larger or smaller (0.1 to 10.0, default 1.0).

For example, you could create a circle trajectory and then use the Pitch transform to tilt it into a vertical plane, turning a horizontal orbit into a vertical one.

Source Assignments

Assigning sources to an animation

To assign sources to an animation, use the Source Inspector → Animations panel, or use OSC commands. You can also use the Assign Sources action in the cue system Cue System to automate assignments during a show.

Each assignment links a source to the animation with two key parameters:

  • Depth — Controls how much the animation affects this source (0–100%). At 100%, the source follows the full animation movement. At 50%, the movement is halved. This defaults to 100% for new assignments.
  • Source Index — The source’s position in the animation’s assignment list, which determines its phase spread offset.
Note

The depth value is remembered even if you unassign and later reassign a source — SPAT Revolution restores the previous depth value automatically.

How depth works in practice

For LFO animations, the depth scales the oscillation amplitude. For example, if an LFO oscillates the Azimuth by ±30° and a source has a depth of 50%, that source will only oscillate by ±15°.

For Trajectory animations, the depth controls how closely the source follows the path. At 100%, the source moves to the exact trajectory positions. At lower values, the source only partially follows the path.

Base position

When a source is first assigned to an animation, SPAT Revolution captures the source’s current position as its base position. This is the reference point that the animation modifies. If you manually move a source while an animation is playing, the base position updates accordingly — so the animation will oscillate around the new position.

When all animations are removed from a source, its position is automatically restored to its base position.

How animations are processed

SPAT Revolution processes animations in a specific order to ensure predictable results when multiple animations affect the same source:

  1. Absolute trajectories are applied first. If a source has an absolute trajectory animation, the source is moved to the position defined by the trajectory path. If multiple absolute trajectories target the same source, the last one takes priority.

  2. LFOs and relative animations are applied second. Spatial LFOs modulate individual position parameters (like Azimuth, Elevation, or X/Y/Z) on top of the position established in step 1.

Note

If both AED (Azimuth/Elevation/Distance) and XYZ parameters are simultaneously modulated by LFOs on the same source, the AED modulation takes priority.

Animation Page

The Animation panel can be displayed inside any user-defined page by selecting it from the panel toolbar (see User Interface User Interface). The panel is divided into two main areas: the animation list on the left and the animation view and controls on the right.

Toolbar

A toolbar at the top of the page provides the main animation management actions:

  • Fold — Collapse or expand the animation list. When folded, the view and controls take up the full width of the page.
  • Add — Opens a menu to create a new animation. You choose the animation type (LFO or Trajectory) and the target parameter.
  • Duplicate — Duplicates the selected animation(s). The copy is named with a “(Copy)” suffix.
  • Delete — Deletes the selected animation(s). If the animation is referenced by cues, a confirmation dialog will appear to prevent accidental deletion.

Animation list

The animation list displays all your animations. Click on an animation to select it and view its details on the right side of the page.

View and controls

When you select an animation in the list, the right side of the page shows:

  • For LFO animations: a 3D waveform preview showing the oscillation pattern, along with rotary knob controls for all LFO parameters (Rate, Amplitude, Phase Offset, Phase Spread, Direction, Smoothing) and dropdown menus for Target and Waveform. The header provides Play/Stop, Transport Sync, and Transport Anchor toggles.

  • For Trajectory animations: a dual orthographic view showing the trajectory path from the top (X-Y) and from the side (X-Z), along with a point grid where you can edit each waypoint’s coordinates (X, Y, Z), Speed Factor, and Tension. Below this, you will find controls for Duration, Phase Offset, Phase Spread, Direction, Loop Mode, Position Mode, BPM Sync, and the Transform controls (Yaw, Pitch, Roll, Scale).

Using Animations with the Cue System

Animations can be controlled automatically using the Cue System Cue System. By adding an Animation action to a cue, you can:

  • Play or Pause an animation at a specific moment in your show.
  • Assign or Unassign sources to an animation on the fly.

For example, you could set up a cue that starts a circular trajectory animation on your lead vocal source at the beginning of a chorus, and another cue that pauses it at the end.

OSC Remote Control

Each animation can be remotely controlled via OSC messages. All OSC addresses use the animation’s remote number as an index. For example, if an animation has remote number 2, you would use /animation/2/play to start it.

The following OSC addresses are available:

OSC Address Description
/animation/[N]/dump Requests SPAT Revolution to send back all parameters for animation N.
/animation/[N]/name Gets or sets the animation name.
/animation/[N]/play Gets or sets the play state (send 0 to stop, 1 to play).
/animation/[N]/transportsync Gets or sets transport sync (0 = off, 1 = on).
/animation/[N]/transportanchor Gets or sets transport anchor (0 = off, 1 = on).
/animation/[N]/temposync Gets or sets tempo sync (0 = off, 1 = on).
/animation/[N]/phaseoffset Gets or sets the phase offset (0–360°).
/animation/[N]/direction Gets or sets the playback direction (0 = backward, 1 = forward).
/animation/[N]/phasespread Gets or sets the phase spread (0–100%).
/animation/[N]/rate Gets or sets the LFO rate in Hz (when tempo sync is off).
/animation/[N]/duration Gets or sets the trajectory duration in seconds (when tempo sync is off).
/animation/[N]/syncdivision Gets or sets the rate/duration as a bar division (when tempo sync is on).
Important

When animations are running, they generate high-frequency parameter changes that are normally sent out on all OSC output sockets. This can cause flooding or conflicts with DAW automation via the companion plug-ins. Each OSC output socket has a Send Animation Value option that lets you control this behavior. See Send Animation Value Send Animation Value for details and recommended settings.

Snapshot Integration

When you store a snapshot, the following animation-related data is saved as part of each source’s state:

  • Animation assignment — Which animation (if any) is assigned to each source.
  • Depth — The depth value for each source within its assigned animation.

This means that recalling a snapshot can change which animation is controlling a source, and with what depth. For example, you could have one snapshot where a source is assigned to a circular trajectory with a depth of 80%, and another snapshot where the same source is assigned to an LFO with a depth of 30% — or no animation at all.

Important

The animation’s own parameters (waveform type, rate, amplitude, waypoints, etc.) are not stored in snapshots. Only the source-to-animation assignment and depth are snapshot-recalled. If you need to change animation parameters between cues, use animation-specific cue actions instead (see Cue System).

Saving and Loading Animations

All animation data is automatically saved as part of your SPAT Revolution session file (.srevo). This includes:

  • The animation type (LFO or Trajectory), name, and remote number.
  • All parameter values (waveform, rate, amplitude, duration, transforms, etc.).
  • Source assignments and each source’s depth value.
  • Trajectory waypoints with their position, speed factor, tension, and order.
  • The shape preset used to create the trajectory.

When you reopen the session, all your animations are restored exactly as you left them.