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 value over time — out over OSC, UDP, TCP or Art-Net, or into one of Exaplay's own properties (Exaplay value).

See it done

Open ☰ menu → Walkthroughs → Playlists & timelines → Fades, curves and tween keyframes: a fade drawn on a clip's curve and a clip moved across the wall with keyframes.

What Can Be Keyframed? ​

CategoryProperty
Video / image clipOpacity — and, on a video that carries sound, Volume as a keyframe lane
Audio clipVolume
ClipPosition X / Y, Width / Height, Rotation — as keyframe lanes
Data TrackIts own output value

Effect parameters are not keyframeable from the Timeline, and tracks and groups carry no curves of their own. There is no generic keyframe-any-property system: a clip's only keyframes are Opacity/Volume and the five placement lanes, recorded from the Timeline or from the Inspector's Animate row.

A video's sound is keyframed on a Volume lane. A video clip's strip is its Opacity; when the file carries an audio track, right-click the clip → Add Keyframes → Volume adds a Volume lane under it — the same 0–100 % curve an audio clip draws on its strip, with the same keyframe menu, fades drawn by hand, Linear / Smooth and the magnifier. It starts flat at the clip's current Volume fader value, so nothing changes until you move a keyframe, and the Inspector's Volume fader follows its first keyframe as it does on an audio clip. Remove Keyframes → Volume takes the lane off and returns the fader to 100 %. A still image, or a video with no audio track, is not offered the lane.

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. A video with sound has one more lane on offer, Volume (see above); it is listed first and works exactly like the others below.

LaneValue
Volume (video with sound)Percent, 0 % to 100 % — the same curve an audio clip draws on its strip.
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.

A lane's range is −100 % to 200 % for X and Y, 0 % to 300 % for Width and Height, and −360° to 360° for Rotation.

Adding a lane. Two ways. Right-click the clip → Add Keyframes and pick Volume (video with sound only), 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 — and nothing changes in the mix — until you drag a keyframe. Or select the clip and use the Animate row under Orientation, Size or Offset in the Inspector (◇ Rot, ◇ W ◇ H, ◇ X ◇ Y). One click adds the lane and a keyframe at the playhead — see Recording from the Inspector.

With several clips selected, the menu reads Add Keyframes (5 clips) / Remove Keyframes (5 clips) and acts on all of them.

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; a removed Volume lane puts the Volume fader back to 100 %.

Recording from the Inspector ​

Select a clip and open Size, Position & Scaling. Under each of the Orientation, Size and Offset rows there is an Animate line carrying one diamond button per property — ◇ Rot under Orientation, ◇ W ◇ H under Size, ◇ X ◇ Y under Offset.

They record at the engine's playhead, not at a scrub position in the browser, so play or scrub the composition to the moment you want first. A clip the engine has no playhead for records nothing and says "No playhead for this clip yet — play or scrub it first".

Each button shows which of three stages that property is at:

DiamondMeaningClick
◇No lane on this propertyAdds the keyframe lane (flat at the current value) and a keyframe at the playhead
◈A lane exists, no keyframe hereAdds a keyframe at the playhead with the curve's current value
◆ (solid amber)A keyframe sits at the playheadRemoves it. The pinned start / end keyframe stays — to remove the whole lane, use the clip's right-click menu

Hovering any of them names the property and the playhead time it would write to.

Next to Reset Size and Reset Offset sits a Reset Animation button: beside Reset Size it clears the W and H lanes, beside Reset Offset the X and Y lanes. Reset Size and Reset Offset themselves reset the static value and leave any lanes alone.

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. If the engine has no playhead for the clip yet, the value is not recorded and a notice says "No playhead for this clip yet — the value was not recorded".

Replacing a clip's file keeps its lanes. Dragging a new file onto an existing clip in the Timeline, or using Replace… in the Inspector's File block (or Replace media file… in a Playlist's right-click menu), 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
← / → or Ctrl+← / Ctrl+→ (or the toolbar arrows)Pan by a fixed step
Ctrl+Scroll, Ctrl+− / Ctrl+= (or the zoom buttons)Zoom in/out
Ctrl+0 (or the 100% button)Reset the view
Linear / Smooth buttonToggle ease-in/out interpolation (see below)
Reset buttonRemoves every keyframe — the clip goes back to its plain Opacity/Volume
EscClose the editor

The footer shows the keyframe grid: keyframes are placed on a 0.1 s grid.

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