Skip to content

Property Keyframes ​

Property Keyframes let you animate a clip's Opacity or Volume over time, directly on the Timeline — no separate keyframe editor to open, no mode to switch into. A Data Track offers the same mechanism for driving one external value (OSC/UDP/TCP/Art‑Net/DMX/Control Panel) over time.

What Can Be Keyframed? ​

CategoryProperty
ClipOpacity
Clip / TrackVolume
ClipPosition X / Y, Width / Height, Rotation — as keyframe lanes
Data TrackIts own output value

Effect parameters are not keyframeable from the Timeline. There is no generic "keyframe any property" system and no diamond-icon control in the Inspector for arbitrary properties; a clip's curves live on the clip in the Timeline.

The Curve Strip ​

Every clip carries a thin curve strip drawn across the lower half of its Timeline segment: a green strip for Opacity on video/image clips, a blue strip for Volume on audio clips. The strip is the keyframe editor — there's nothing to enable first.

ActionHow
Add a keyframeDouble-click on the strip at that time/value, or Alt+Click near the existing curve line
Move a keyframeDrag it — left/right changes time, up/down changes value
Open a keyframe's menuRight-click it (see The Keyframe Menu)
Delete a keyframeRight-click it → Delete keyframe, or select it and press Delete
Open the larger editorClick the small magnifying-glass icon in the strip's corner

The first and last keyframe on a clip are pinned in time (they mark the clip's start and end) — they can only be dragged vertically, to change their value.

Selecting a Keyframe ​

Clicking a keyframe (without dragging) selects it and opens its exact Time and value (Opacity/Volume) in the Inspector panel — the same numeric editor a Data Track keyframe already shows — so you can read or type an exact number instead of eyeballing a drag. With a keyframe selected:

KeyEffect
← / →Move the keyframe 1 s earlier/later (0.1 s with Shift)
↑ / ↓Raise/lower its value by 1% (0.1% with Shift)
Delete / BackspaceRemove it
EscapeDeselect

The pinned first/last keyframe ignores a left/right nudge, same as dragging it.

The Keyframe Menu ​

Right-clicking a keyframe opens a menu for that one keyframe. (It used to delete it on the spot — the only gesture in the editor that destroyed something without asking.)

RowEffect
Copy valueCopies that keyframe's value — the row names the number
Paste valueWrites the copied value onto this keyframe, leaving its time alone. Only shown once something has been copied
Copy Opacity/Volume curveThe same whole-curve copy the clip's own context menu offers
Paste Opacity/Volume curvePastes it here. Only shown when the clipboard holds a curve of this kind
Delete keyframeRemoves it. Greyed out on the pinned first/last keyframe, which marks the clip's start or end

The value clipboard is separate from the curve clipboard, so copying a level to hand to three more keyframes does not throw away the curve you copied a minute ago. A value pasted onto a curve with a different range — a Data Track's own min/max against Opacity's 0–100% — arrives at the same relative height (80% of 0–100 lands as 204 on 0–255); between two curves of the same range it is the number itself.

The same menu is on a Data Track's keyframes, with the track's own numbers instead of percent and a Copy curve / Paste curve pair for the whole data curve (its keyframes and its Linear/Step mode). A Data Track curve has no pinned endpoints, so any of its keyframes can be deleted.

Copy, Paste & Fade Shorthand ​

Right-clicking a clip on the Timeline offers four actions on its Opacity (or Volume, for audio clips) curve:

ActionEffect
Copy Opacity/Volume CurveCopies the clip's whole curve (keyframes + the Smooth switch)
Paste Opacity/Volume CurvePastes it onto another clip, keeping ABSOLUTE times (a 1 s fade-in stays a 1 s fade-in). Keyframes past the target clip's end are dropped, and the curve is completed at the clip's end with the value the copied curve had at that moment
Fade In 0.5 s · 1 s · 2 sRamps 0% → 100% over the first 0.5, 1 or 2 seconds
Fade Out 0.5 s · 1 s · 2 sRamps 100% → 0% over the last 0.5, 1 or 2 seconds

Paste and the fades work on a selection. Select several clips (Ctrl+click), right-click one of them, and the row reads "Paste Opacity Curve on 5 clips" / "Fade In (5 clips)" — one click applies it to all of them, and one Ctrl+Z takes all of it back. A copied Opacity curve is only pasted onto video clips and a copied Volume curve only onto audio clips; the others in the selection are left alone.

Fade In and Fade Out only touch their own end of the curve — applying both gives a fade-in-then-out, rather than one clobbering the other. A fade-out needs the clip's length (it is anchored at the clip's end), so on a clip that has not reported one yet it is skipped with a notice.

Keyframe Lanes: Position, Size, Rotation ​

A clip can animate its placement: one extra lane under the Opacity strip per animated property, each with its own keyframe curve.

LaneValue
Position X / Position YPercent of the clip's positioning basis — the field it is bound to, else the screen. 0 % is the clip's own origin; negative values move it left / up.
Width / HeightPercent of that same basis; 100 % fills it.
RotationDegrees, about the centre of the clip's box.

Adding a lane. Two ways. Right-click the clip → Add Keyframes and pick X, Y, W, H or Rot; the new lane starts as a flat line at the clip's current value, so nothing moves on the wall until you drag a keyframe.

Showing and hiding the lanes. A clip carrying keyframe lanes wears a small twisty at its top right — ▸ 2 closed, ▾ 2 open — and clicking it toggles the lanes either way, so they open and close from the clip itself. ▸ keyframes in the track's sidebar does the same for the whole track. While the lanes are open the strip behind them is darkened — only that band, so the curves read clearly while the clip keeps its own picture and colour either side of the lanes.

Editing. A keyframe lane is the same editor as the Opacity strip: double- click or Alt+click to add a keyframe, drag to move it, right-click for the keyframe menu, the magnifier for the larger editor, Linear / Smooth for the whole curve. The first and last keyframes are pinned in time. Values snap to a tenth of a percent (or degree), and arrow keys nudge by 1 — 0.1 with Shift.

Removing a lane. Right-click the clip → Remove Keyframes → the lane's chip. The clip returns to the static Size / Offset / Orientation it has in the Inspector.

While a lane exists, typing a new value records it. Change X, Y, W, H or the angle in the Inspector — or drag the element in the Layout Designer — and the value lands as the keyframe at the playhead instead of changing the static number. Move the playhead, set the next value, and the curve grows keyframe by keyframe. A value typed in pixels needs the clip's positioning basis, which the Inspector's own layout carries; a bare pixel write from elsewhere without one is kept as the static value and reported.

Replacing a clip's file keeps its lanes. Dragging a new file onto an existing clip in the Timeline, or using Replace media file…, keeps everything you authored on that slot: the keyframe lanes, the Opacity or Volume curve, the crop, the colour correction and the mapping. Only what described the old file is refreshed — its name, size, frame rate and thumbnails.

While a lane exists, it wins

A position, size or rotation lane overrides the static value in the Inspector's Size, Position & Scaling section for as long as it exists, including a value a Data Track writes there. Remove the lane to hand control back.

On the Canvases ​

The Layout Designer draws an animated element where its curves put it at the engine's playhead, not at its static position — the same box the wall is showing. Scrub or play the composition and the element travels its curve on the canvas; a lane you have just drawn can be checked without going on air.

Dragging or resizing such an element writes a keyframe at that playhead, so it stays where you dropped it. Both halves read one clock: an element is drawn where the next drag would record it.

A stopped element sits at its start

With nothing playing there is no playhead to read, so an animated element is drawn at the value its curve begins with — where the engine puts it the moment the element goes on air.

The Expanded Editor ​

Clicking the magnifying-glass icon opens a larger modal with a time ruler and dedicated navigation:

ControlEffect
ScrollPan the view
Ctrl+ScrollZoom in/out
Ctrl+← / Ctrl+→ (or the toolbar arrows)Pan by a fixed step
Ctrl+0 (or the 100% button)Reset the view
Linear / Smooth buttonToggle ease-in/out interpolation (see below)

Interpolation ​

By default a curve ramps linearly between keyframes — a constant rate of change. The Linear / Smooth toggle in the expanded editor switches the whole curve to an eased (smoothstep) ramp instead: each segment starts and ends at zero slope, so a fade feels less mechanical. This is a single switch per curve — like a Data Track's Linear/Step choice — not a per-keyframe interpolation picker; there is no Ease In, Ease Out, or Step option for Opacity/Volume curves.

Example: Opacity Fade-In ​

  1. Place a clip on the Timeline.
  2. Drag the keyframe at the clip's start down to the bottom of the strip (Opacity = 0%).
  3. Double-click a little further along the strip to add a second keyframe, then drag it to the top (Opacity = 100%).
  4. Optionally open the expanded editor and turn on Smooth to ease the transition instead of a straight ramp.

The clip now fades from fully transparent to fully opaque. Audio clips work identically for Volume.

Exaplay 3 User Documentation