Skip to content

Transition and effect vocabulary beyond Cross Dissolve #34

Description

@leogdion

Problem

TransitionPreset offers Cross Dissolve and nothing else. Final Cut ships 88 built-in transitions and over a thousand effects, titles, and generators. Documents authored in FCPKitDSL are limited to one transition purely by DSL vocabulary.

The UID problem is smaller than it looks

Effects fall into two classes, and only one needs manual capture.

1. Motion templates — UID is a path, derivable without any export

FCP ships the catalog inside the app bundle:

Final Cut Pro.app/Contents/PlugIns/MediaProviders/MotionEffect.fxp/Contents/Resources/
  Templates.localized/{Transitions,Effects,Titles,Generators}.localized/

Counts on FCP Creator Studio as of 2026-08-02: 169 .motr (transitions), 592 .moti (titles), 258 .moef (effects), 116 .motn (generators). The Templates.localized/Transitions.localized tree alone holds 88 — Boomerang, Crisscross, Neon, Ombre, Organic Flip, Pan Down, and more.

Their uid is the template path, exactly as seen in our own fixtures:

Gaussian           → …/Effects.localized/Blur.localized/Gaussian.localized/Gaussian.moef
Lower Third Basic  → …/Titles.localized/Social.localized/Lower Third Basic.localized/…moti

2. FxPlug built-ins — opaque GUIDs, must be captured from a real export

Only these need a fixture. Known from Tests/FCPKitTests/TestData:

Name UID
Cross Dissolve FxPlug:4731E73A-8DAC-4113-9A30-AE85B1761265
Drop Shadow FxPlug:9C13F991-BC99-4DC8-B150-381D7CCE183B
Green Screen Keyer FxPlug:41122549-B8A6-470E-94DA-211294D20B62
Color Correction FFColorCorrectionHDREffect
Audio Crossfade FFAudioTransition

Work

  • Expand TransitionPreset with the Motion-template transitions, deriving each uid from its catalog path.
  • Add an EffectPreset equivalent for .moef effects and .moti titles.
  • Keep the five known FxPlug/FF UIDs above as explicit constants.
  • Do not invent UIDs. Any effect whose UID is neither path-derivable nor in the table above is out of scope until someone captures a fixture for it.

Caveat to document

These paths live inside the Final Cut Pro app bundle and can move between releases. The generated presets are a snapshot to validate on import, not a stable contract. Record the FCP version the catalog was read from, and re-verify after a Final Cut upgrade.

Localized path components (.localized directories) are another fragility: confirm whether FCP accepts the base-language path on a non-English system before claiming portability.

Tests

  • A document using a template-derived transition DTD-validates.
  • Effect interning still dedups when several slides share a transition.
  • The five FxPlug constants match the fixture values exactly.

Acceptance criteria

  • swift test green.
  • A generated preset list is checked in with the FCP version it came from.
  • At least one non-Cross-Dissolve transition round-trips through Final Cut import (this one gate needs a human with FCP).

Context: docs/planning/demo-presentation-video.md Issue 8. Independent of the demo issues; enriches the deck without blocking it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions