Non-destructive Audition
Audition is how you get After Effects' genuine verdict on an expression without committing it. It runs your candidate code on the real target property, reads what AE actually says about it, and puts the property back exactly as it was — so you learn whether the expression works from the only authority that matters, and your project is untouched either way.
What Audition is
It is a preview of the token-resolved expression on your live AE target that does not commit anything.
Variables resolve before anything is sent: a variable wired to a control auditions with that control's current default, and an unwired variable falls back to its captured default. If a variable can't be resolved at all, the audition refuses panel-side and names the variable — nothing reaches After Effects. Connect the variable or give it a default, then audition again.
That distinction matters because AE is the only thing that can truly answer "does this expression work here?" The editor's diagnostics catch a great deal before you ever run anything, but they reason about the code; Audition asks the engine. An expression that references a layer which doesn't exist in this comp, or an effect control that was renamed, is perfectly valid JavaScript — only After Effects can tell you it fails.
How the guarantee works
Every audition runs a fixed five-step sequence, and each step exists to protect the one before it:
- Snapshot — the property's current expression and state are captured.
- Set — your candidate expression is written to the property.
- Sample — AE's real
expressionErrorand the resulting value are read at the current frame. - Restore — the property is put back exactly as it was.
- Verify — the restore is confirmed.
The last step is the one that makes the rest trustworthy. If the host cannot confirm the restore succeeded, the UI hard-errors rather than reporting a result — because a quietly failed restore is precisely the outcome a non-destructive feature must never produce silently. You get AE's genuine verdict with a guarantee your project is untouched.
An audition transiently sets a real property on a real layer. The guarantee isn't that nothing is ever written — it's that whatever was written is provably put back, and that you are told loudly if it can't be.
Three places to run it
- A row's Audition action in the Library — try a stored expression against your current target before you commit to it.
- IDE → Audition (⌃⌘E) — auditions whatever is in the active editor tab. In Flyout mode, open the eXLib glyph menu and choose Audition.
- The Compact panel and the editor reach the same machinery, so the verdict you get never depends on which surface you asked from.
Reading the result
On success the toast leads with AE's verdict and, when AE returned a sample,
appends the property and value at the current frame — for example Audition passed — AE accepted this expression · Rotation = 0 at the current frame. Its
detail line says Nothing was changed. Values are formatted compactly and
arrays retain the dimensions AE returned. On failure you see AE's verbatim
error, not a paraphrase of it.
Audition always samples the target's current frame. It does not show the
Evaluator's separate @ time / frame / dimension / 2dp provenance row; that row belongs to the persistent Evaluator
result, where you can choose a sample time and need the extra provenance to
interpret it later.
These screenshots were captured in an earlier beta. Toolbar and Library layouts have since changed; the written instructions on this page describe v0.145.4. See A Tour of the Panel for the current controls.
Audition reports the result for the target you tested. It does not award a Verified badge; that feature was removed in v0.145.0. See Compatibility & Audition for the distinction between kind filtering and checking an expression in your composition.
Pin-first
The IDE Audition action and ⌃⌘E follow the same pin-first rule as Apply and the Evaluator's Selected-property mode: if the active tab has a pinned property, Audition always evaluates against the pin — never your live AE selection — until you unpin.
If the pinned property no longer exists, the audition fails with a named error identifying the dead path. It never silently falls back to whatever happens to be selected in AE, because a result quietly measured against the wrong property is worse than no result.