← All documentation

Intros, outros and audio

Attach a stinger to either end of a demo, pick what happens at the seam, or replace the whole soundtrack with a track of your own.

Finishing is the three whole-video slots: a clip before the demo, a clip after it, and a soundtrack that replaces the narration. All three come out of your media library, all three are free on every plan, and all three can be changed after the fact in the editor.

SlotWhat it takesWhat it does
IntroA video filePlays before the demo
OutroA video filePlays after the demo
AudioAn audio fileReplaces the entire soundtrack

The two stingers

An intro or an outro is a whole clip joined onto the demo. The join is re-encoded rather than stream-copied — a copy-join of two files from different encoders glitches silently — and the target geometry is measured from the demo's own finished video rather than assumed, so a stinger recorded at a different size is fitted to the video it is attached to rather than the other way round.

They also appear as blocks on the editor's timeline, at either end of the beats, which is where you set what happens at the seam.

Seam transitions

Clicking a stinger block opens an inspector with three choices: cut, fade and dip.

  • cut is a hard join, and it is what every stinger did before transitions existed. It is the default and it is never stored, so nothing in your library changes.
  • fade crossfades picture and sound together over 600 ms.
  • dip passes through black over the same duration.

Two rules are worth knowing because they surprise people:

  • A transition needs a stinger to run against. Choosing one for an empty slot is refused rather than silently ignored — a control that does nothing is the editor lying about the plan.
  • A crossfade moves the demo earlier. Overlapping by half a second means the demo starts half a second before the intro ends, so every timestamp in the video shifts. Demofy recomputes the seekable positions and the caption timings from that one walk rather than estimating them twice, and if the finished file disagrees with the plan by more than a small tolerance it drops the seek metadata rather than shipping numbers the file contradicts.

The preview in the editor names the seam and does not perform it. The stage plays one clip at a time over one element, so all it could draw is half a crossfade — which is a lie about the other half. A chip states the choice and its real duration instead.

The audio slot

The audio slot replaces the whole finished soundtrack — narration, beat sounds, everything — padded with silence or truncated at the end of the video. It is never mixed under the narration and never ducked against it. Background music under a voiceover would be a different feature, not a setting on this one.

Two consequences:

  • Swapping in a replacement track deletes the caption file, because the cues would transcribe speech nobody can hear. The written guide is untouched, because changing a soundtrack does not change which buttons the demo presses.
  • If what you want is music under the narration, use per-beat sound in the editor instead. That mixes under the voice. See The step editor.

Where you set them

  • On the composer, for a new demo.
  • In the editor, on the bar, for a demo that already exists — including taking one back off, which is half of what the feature is for.

An edit that states nothing about finishing carries the source's slots across unchanged. Carrying is not attaching: a demo whose stinger belongs to a colleague keeps it when you retype a line, and nothing asks whether it is yours. Only an id you actually state is checked against your own library.

Derived jobs

Re-renders, refreshes and edits copy the source's three slots and its two seam choices exactly. An asset deleted while such a job is queued fails that job loudly at pickup rather than rendering without it, and deleting an asset never deletes a video that used it.