Appearance
Text Layers
Exaplay 3 can render live text as a media source — a text clip you drop onto a layer like any video or image, whose content can be changed at any moment: from the Inspector, from the Show view, from cue scripts, or from an external show control system over TCP, UDP or REST. The text is rendered by the engine itself (no browser involved), so updates appear on the output within a frame.
Typical uses: name lower-thirds, "now boarding" style announcements, room signage, scoreboards, countdown captions driven by an external controller.
Adding a Text Clip
- Open the File Browser → Live Feeds tab.
- Drag the Text entry onto a track in the Timeline, into a Playlist, or onto a zone in the Show view.
- Select the clip and edit its content and styling in the Inspector.
A text clip behaves like a still image: it has a configurable duration (the Still duration preset in Settings → Timeline Defaults) and participates in fades, mapping, opacity and keyframes exactly like any other clip.
Inspector Properties
| Section | Property | Description |
|---|---|---|
| Text | Text (multiline) | The displayed text. Line breaks are rendered; long lines word-wrap inside the canvas. |
| Mode | Static (the text as typed), Clock (current time), or Countdown (time remaining to a target). In the dynamic modes, a {time} placeholder in the text is replaced by the clock/countdown string — text without the placeholder shows the time alone. A {src:<channel>} placeholder shows a value from a URL in every mode. | |
| Clock format | Clock mode: strftime-style format, default %H:%M:%S (e.g. %H:%M, %d.%m.%Y %H:%M). | |
| Target time | Countdown mode: HH:MM, HH:MM:SS (next occurrence) or YYYY-MM-DD HH:MM:SS. | |
| At zero | Countdown mode: text shown once the target is reached (default 00:00). | |
| Text file | Bind the clip to a .txt file: its content replaces the typed text and is re-read on the interval below while the clip is active, so any process writing that file drives the output. Three ways to bind: drag a .txt from the File Browser (text files are listed next to your media), click the folder button to browse the files on the Exaplay machine, or click the upload button to send a .txt from the computer you are sitting at. Remove the binding (✕) to type text again. | |
| Re-read | File binding: how often the file is checked for changes (0.5 s – 1 h, default 2 s). | |
| (binding status) | Read-only, shown in the Text file field: what the binding is doing — lines.txt · 3 lines once the file is read, or cannot read lines.txt when it is missing or unreadable (the last content read stays on the output). | |
| Font | Font face. Default is the engine's built-in font; the list also offers every installed TrueType font (grouped by family, so Bold/Italic variants sit under one header) plus any .ttf in the Exaplay program folder or its fonts subfolder. | |
| Text size | Font size in pixels (8–512). | |
| Color | Text color — the swatch in the top-right corner of the text box. | |
| Align | Horizontal alignment: left / center / right. | |
| V-Align | Vertical alignment: top / center / bottom. | |
| Padding | Inner margin (pixels) between the canvas edge and the text. | |
| Canvas | The render canvas size in pixels (default 1920 × 1080). The clip reports this as its video size, so the normal mapping/scaling controls apply. | |
| Text Effects › Outline | On/off + Color + Width | Outline around the glyphs (1–24 px) — the standard legibility tool for text over video. |
| Text Effects › Shadow | On/off + Color + Offset | Hard drop shadow at an X,Y pixel offset. |
| Text Effects › Background | On/off + Color | Optional opaque background fill. Off = transparent background, so the text composites over the layers below. |
A value from a URL
A Text clip can show what a web address answers: add a Web data device under Control → Inputs (Inputs), give it the address, and type its placeholder into the text:
Temperature: {src:weather} °C
Next flight: {src:flight|no departures}{src:<channel>}is replaced by the device's value — the whole answer as text, or the one JSON field the device names. It works in every mode, next to{time}.- Until the first answer arrives it shows
--. Text after a|is shown instead:{src:flight|no departures}. - When a fetch fails, the last value stays on the output.
- The value is not written into the clip's text: the project stays unchanged however often the value changes.
In a multi-client show only the master fetches, and every client shows the value it hands over.
Changing Text in Real Time
Every text property is an ordinary clip property, so all the existing real-time control paths work:
- Inspector — edits apply live (multi-tab safe).
- Show view — selecting a zone that contains a text clip shows a Text box in the zone panel; type and confirm to update the output.
- Cue scripts / TCP / UDP — use the generic dotted setter on the clip's tree path:
comp_main.media3.set:text.content=Now boarding: Flight 714
comp_main.media3.set:text.color=#ffcc00
comp_main.media3.set:text.font-size=120- REST — POST the values to
/datafor the clip's object ({"type":"exaObj","uid":<uid>,"values":{"text.content":"..."}}).
See the TCP Command API for the dotted command syntax.
Fonts & Portability
All text properties — including the font choice — are saved in the project file like any other clip property. The font is stored by file name (not full path) and resolved on load against the Exaplay program folder, its fonts subfolder, a fonts folder next to the project file, and the Windows font library. If the font file cannot be found, the clip falls back to the built-in font instead of rendering nothing.
Project Export bundles the fonts a show uses: every font referenced by a text clip is copied into a fonts/ folder inside the export archive, next to the .vpp. Extract the archive and the show renders with the correct fonts on a machine that has none of them installed. Bound text files are bundled the same way (into media/) and re-linked automatically.
Note: The renderer covers the Latin-1 character range (umlauts, accents, ß, ñ, ø…); characters outside it —
€, typographic dashes, emoji — render as?. Text files may be UTF-8 (with or without BOM), UTF-16 with BOM (Notepad "Unicode") or plain Latin-1, with Windows or Unix line endings. Font collections (.ttc) are not offered — only individual.ttffiles.
