Skip to content

Custom Captions & UMD

Captions let you add custom text overlays to any viewer tile using expression templates. Think of them as software UMDs (Under Monitor Displays) — dynamic labels that update in real time based on source metadata, timecodes, and system state.

In a busy control room, you need to know what you’re looking at instantly. Default source names from NDI® are often machine-generated or cryptic (“DESKTOP-7F3K2 (OBS Virtual Camera)”). Captions let you replace that with something meaningful — “CAM 1 WIDE”, “GRAPHICS IN”, or a live timecode readout — without changing anything on the source side.

Captions are per-viewer, so you can label the same source differently depending on context. Camera 3 might show “CAM 3 - TALENT” on the director’s multiviewer and “CAM 3 - ISO REC” on the engineering wall.

  1. Right-click any viewer tile
  2. Select Set Caption
  3. Enter your caption text or expression template
  4. The live preview updates as you type
  5. Click OK to apply

The caption replaces the default source info overlay on that viewer tile.

Captions support expression variables that resolve to live values at runtime. Wrap variable names in curly braces:

VariableDescriptionExample Output
{source}Current NDI® source nameOBS Studio (Main Output)
{viewer}Viewer tile index3
{time}Current system time14:32:07
{date}Current system date2025-03-15
{tally}Tally state (Program/Preview/Off)Program
{fps}Source frame rate29.97
{res}Source resolution1920x1080

Examples:

  • CAM 1 - {res} @ {fps}fps displays as “CAM 1 - 1920x1080 @ 29.97fps”
  • {source} [{tally}] displays as “OBS Studio (Main Output) [Program]”
  • STUDIO A - {time} displays as “STUDIO A - 14:32:07”

The caption editor dialog includes:

  • Text field for typing your caption or expression
  • Variable insertion buttons below the text field — click any button to insert that variable at the cursor position
  • Live preview showing exactly how the caption will render with current values
  • Clear button to remove the caption entirely
  • OK and Cancel buttons

Click the variable buttons rather than typing variable names manually — this avoids typos in the curly-brace syntax.

Laika’s viewer tiles normally show source information based on the current ViewerInfoMode (source name, resolution, frame rate, etc.). When you set a caption on a viewer:

  • The caption overrides the default info display entirely
  • The caption text (with resolved expressions) appears in its place
  • Other viewer overlays (tally borders, audio meters) remain unaffected

To return to default info display, clear the caption using the Clear button in the caption editor or set the caption to an empty string.

When NDI® Output is enabled, captions are burned into the output stream. Any receiver viewing your Laika output will see the captions exactly as they appear on your screen. This is useful for:

  • Labelling feeds for downstream operators who receive your multiviewer via NDI®
  • Adding persistent timecode overlays to recorded multiviewer outputs
  • Creating branded monitoring feeds with studio or show identification

Captions can be set programmatically via the Web API:

POST /api/viewers/{index}/caption

This allows external automation systems, stream decks, or custom control panels to update captions dynamically — for example, switching talent names on camera labels when presenters change.

See the Web Control API page for full endpoint documentation.

Label cameras for talent: Set captions like “CAM 1 - HOST” and “CAM 2 - GUEST” so the director can call shots without memorising camera numbers.

Show timecodes: Use {time} or combine with custom text like TC: {time} for a persistent clock overlay on engineering feeds.

Custom studio branding: Add show names or facility identification to multiviewer outputs that go to confidence monitors: “FETCH STUDIO A - LIVE SHOW”.

Tally-aware labels: Use {source} - {tally} to see at a glance which sources are on program and preview without relying solely on border colors.