# Dark Prep

Dark Prep is Unilighter's Move in Black preparation for [keyframe animations](https://unilighter.cc/info/for-ai/docs/animations/keyframe.md) and [Cue Lists](https://unilighter.cc/info/for-ai/docs/cuelists.md). It uses time before a fixture's next illuminated use to send movement, wheel and optical targets while the fixture is dark.

<img src="https://unilighter.cc/info/user/pages/02.docs/13.animations/04.dark-prep/dark_prep_settings_a52242e0.png" alt="Dark Prep enabled with a 1500 ms Preparation Time in the Keyframe Animation Editor" width="800" height="75" style="width: 800px; max-width: 100%; height: auto;" />

## Set up a keyframe animation

1. Open the animation in the Keyframe Animation Editor. Dark Prep is enabled by default, including when opening older projects.
2. Set Preparation Time (ms) to a minimum preparation interval. The default is 0.
3. Start playback from the desired playhead position. Eligible fixtures receive their starting mechanical targets immediately; the animation stays frozen at that position during preparation.

In Time mode, playback starts when the interval ends. In Beat mode, it starts on the first beat at or after the interval ends. With 0 ms, time animations start immediately and beat animations use their existing wait for the next beat. Preparation time is measured in milliseconds independently of tempo and its multiplier.

For example, 1500 ms in Beat mode holds the initial position for at least 1.5 seconds, then begins the animation on the next eligible beat. This creates preparation time but does not guarantee the fixture will arrive in time.

Turn Dark Prep off for an animation to disable preparation and its extra interval. Beat-mode launch still aligns to the next beat.

The editor sends output only when Preview is enabled. Enabling Preview while preparation is pending prepares eligible mechanics without starting the full animation early. Scrubbing outside preparation remains immediate.

## Enable Cue List look-ahead

Open the Function Widget settings, select Cue List mode and enable Dark Prep. It is off by default for lists.

<img src="https://unilighter.cc/info/user/pages/02.docs/13.animations/04.dark-prep/dark_prep_cue_f60f1664.png" alt="Dark Prep enabled in Cue List settings" width="569" height="26" style="width: 569px; max-width: 100%; height: auto;" />

While the list is On, it looks forward from the selected cue for each fixture's next illuminated use. It can cross several dark scenes and prepare the initial mechanical targets of a future keyframe animation, preserving that animation's programmed dark introduction. With Loop Prev/Next enabled, the search wraps at most once.

A Combo, Node Graph or unsupported animation stops look-ahead. A future keyframe animation with Dark Prep disabled also stops it. The list does not predict later states through an unexecuted keyframe timeline. A currently playing keyframe animation reserves its own target fixtures; look-ahead resumes for them when it stops.

Omitted mechanical parameters come from surviving sources or fixture-profile defaults after the list releases its other scene functions. Editing cues, changing the selection or switching the list off updates or releases preparation. Cue List preparation does not advance cues or alter their timing. An animation's own Preparation Time still begins at activation, even if the list already prepared its fixtures.

## Fixture requirements and priorities

- A physical Dimmer channel is required; a shared master dimmer can qualify. Fixtures with only a software RGB dimmer are skipped.
- Preparation checks the final composed output. A lit fixture is skipped; a known closed shutter may provide a safe dark state. Strobe pulses are never treated as preparation windows.
- Eligible targets are Pan, Tilt, Color Wheel, Gobo Wheel, Focus, Zoom and Frost, including independent wheels and named Gobo channels.
- Other output keeps its normal priority. Contested parameters are skipped, and manual channel overrides remain in control. Preparation is released before another source makes the fixture visible.
- Preparation never forces a blackout. Skipping fixtures does not extend the configured interval or hold up the other fixtures. There is no physical readiness feedback or arrival guarantee.

## Playback status and cancellation

The editor, [Keyframe Animation Widget](https://unilighter.cc/info/for-ai/docs/dashboard/widget-keyframe-animation.md) and Remote show Preparing or Waiting for beat with prepared/skipped fixture counts while launch is pending.

Pause during preparation releases temporary targets; resuming starts a fresh preparation interval. Resuming ordinary playback and repeating a loop do not repeat the interval. Stop cancels preparation and releases its temporary control. Prepared values are not saved as fixture defaults or retained project output.

