Italiano

Complete manual · four parts

WOCubeNG Reference Guide

WOCubeNG is a broadcast on-air graphics system made of two applications connected to the same render engine, Creator, the editor used to design graphics templates, and PLAY, the control room that puts everything on air. It also includes the DLS panel for still playout, a reduced portal for external contributors and Task+, the application dedicated to controlling WATCHOUT 7.

Part I

PLAY, the playout control room

The application an operator uses to go on air. It manages the servers, the button grid, take programming and live control of everything already on air.

1.1Introduction and roles

You sign in to PLAY with USER / PASSWORD and the Sign in button. The session stays valid for a long time (up to 30 days, renewed automatically every 10 minutes in the background), because a control room typically stays on 24/7 without continuous interaction.

There are three system roles, shared with Creator:

RoleIntended for
AdminFull administration: creates and deletes projects and users, forces locks, manages connections.
EditorFull programming: creates categories and buttons, timelines, triggers, connections.
ViewerPure playout: puts on air what is already programmed, play, stop, CLEAR, channel change.

1.2Projects

The project list is the first screen after signing in. Each card shows the name, resolution/fps/scan, the date of the last save and, if another editor is programming it right now, a 🔒 <user name> badge.

Creating a project

Projects are created only from PLAY (never from Creator, which can only save templates inside existing folders). Click + New project and fill in the form:

  • NAME (no spaces), the name is cleaned up automatically, with a "→ cleanname" preview.
  • RESOLUTION, free field (e.g. 1920x1080) with quick shortcuts 720p, HD, UHD, PAL, NTSC.
  • FRAME RATE, 23.976 / 24 / 25 / 29.97 / 30 / 50 / 59.94 / 60.
  • SCAN, Progressive / Interlaced, with a live summary "Clock: X frames/s" or "X fields/s".
  • SHOW LOGO (optional), an image that becomes the official logo of the project. It is resized automatically and saved on the server with the project. It is used by the features that produce documents in the name of the show, currently the header of the paragraph PDF exported from the contributor portal (see §3.4).

A project always starts with five fixed categories (Video, Lower third, Banner, Ticker, Bumper) and no buttons. You cannot choose other categories or initial takes at creation time, you add them later from the grid.

Opening, exporting, importing

The Open pill enters programming. Cards you have edit rights on also show Edit (resolution/fps/scan and the show logo, with a preview of the current one, replace and remove), 👤 Users (contributor portal users, see Part III), ⇩ Export (downloads a .wocube.zip file with the project JSON, all media and, if present, the source templates and their assets), Delete (admin only).

At the top of the list, ⇧ Import project brings in a project exported from another machine. You choose a name, new or existing. An existing project is overwritten, with an automatic backup first.

Project mail

The ✉ button on the card opens the project mail settings: the address the show writes from, the display name, the outgoing mail server details (host, port, user, password, security type) and any fixed CC recipients. A test button sends a message right away to check that the details are correct.

Once mail is configured, the project can send notifications by itself. You choose which notifications to send:

  • Photo review, when the editorial team requests a change, the notification goes to us and to the designer who made it. When the designer reworks or approves it, it goes to the designer. The message carries a thumbnail of the image.
  • Data updated from the portal, when an external contributor changes the exposed data, a single summary email arrives once the changes settle, not one per keystroke.
  • Job ready, the designer reports from Creator that a graphic is finished (see §2.12).

For a person to receive notifications, their email address must be entered in their card under 👤 Users. The PLAY Data panel also shows a notice when someone has updated the data, with ✉ Confirm receipt to reply that the data arrived.

Corrupted project or history

A project whose JSON file is damaged appears in red with the warning ⚠ Project file corrupted, cannot be opened and the ⟲ Restore from backup button. On a healthy project, the 🕐 icon opens the same screen as a voluntary history: a list of previous versions with date/time and size, each one restorable with the Restore button. Restoring is never destructive. Before overwriting, the current state is itself saved as a backup.

1.3Connections and WOCube servers

The WOCUBE SERVERS bar above the grid lists the render engines connected to this project. For each one:

  • Power button ⏻, starts or stops the render engine on the target machine remotely. This is not just a network link: the command reaches the remote machine over the network and actually starts or terminates the process there. Green = connected, amber = only the ghost channel active, blue = connecting. A second click on a running server asks for inline confirmation Shut down?.
  • CH channels, multi-select toggles for the active channels on that server.
  • CLEAR, clears everything on air on that server's active channels (disabled when nothing is connected).
  • PRV, opens a small video preview of the channel below the bar.
  • OSC (only when a return port is configured), opens a monitor of incoming OSC messages from the engine, with a Clear button.
  • 📷, output snapshot: grabs what is going on air. You choose which channel to grab and the file name (suggested with date, time and channel number). The PNG goes to exported_still inside the project folder.
  • ⏺, record the output: as above, you choose the channel, then the format, QuickTime (lossless, with alpha channel) or MXF (broadcast, no alpha). The button stays red while recording, and a second click closes the file.

In the snapshot and recording window, channels that are off are marked with a dot, and choosing one shows a warning that the file would be empty. Recording remembers the channel it started on. It stops on that channel even if other channels of the same card are turned on or off in the meantime. It also keeps running on the engine if you close the browser. When you reopen PLAY, the button is still red and can stop it.

Double-clicking a server opens its edit card: name, host, channel list (with Scan network to detect servers on the same network automatically), enable, optional ghost channel for mirroring/redundancy, incoming OSC port.

The EDIT toggle on the right of the bar decides whether the controls in this bar act on the server immediately, in real time, or only at play time.

Side-by-side screens

Two buttons in the same bar save you from jumping between browser tabs:

  • ◧ SPLIT, shows PLAY and DLS of the same project side by side on the same screen, with a draggable divider that remembers where you left it. It is the same application split in two, so the multi-user lock works as usual.
  • ⧉ WS, opens the Workspace: a page made of resizable tiles, in each of which you choose which application to show (Creator, PLAY/DLS, Task+). The layout is stored on the workstation. The project is chosen inside each tile, one by one.

Other connections

The CONNECTIONS panel (right column) manages third-party, non-WOCube devices, grouped by type: TCP / UDP, HTTP API, OSC, Script. Each entry has a status dot and a ▶ button to test it (except Script connections, which only receive). Double-click to edit it.

  • TCP / UDP, a link to an external device, used by triggers to send raw text (see Trigger system).
  • HTTP API, a base URL that triggers can send GET/POST/PUT/DELETE calls to.
  • OSC, send, receive or bidirectional. When receiving, it also feeds the control script (see External control).
  • Script, a local listening port (TCP or UDP, default 5090, do not use 5085, which is taken by Task+) where external systems send text commands to drive PLAY. The syntax is in External control.

1.4The grid (MainGrid)

The main programming screen: category rows, each with its own buttons (takes). Above the grid is the rundown, with the fixed TRX tab and additional tabs created with the + button. Additional tabs are renamed by double-clicking the tab (the TRX tab cannot be renamed).

Besides buttons, you can place free text labels on the grid, such as zone titles or operating notes. You create them from the category menu. They take their place in the row like a button, move by dragging and are edited from the attribute bar (text, size).

Categories

Each row shows: color dot, name, ⠿ handle to reorder/swap the layer, channel badge (CH …) and base layer (L…), CLR button (clears the whole category layer, buttons included). The CH ▾ button in the header opens a quick output reset for all categories at once.

To add a button to a category, use the narrow fixed column on the right of the row. It sits outside the horizontally scrolling area, so it always stays aligned across all categories. A click opens the inline take name… field.

Category in Sequence mode

A created category (not one of the five fixed ones) can become a sequence. In the category Inspector, turn on ⏭ Sequence and optionally ↻ Loop. The ▶ SEQ button appears on the row header. The buttons play one after another in the order they are laid out (left to right). When one ends naturally, the next one starts, and with loop on it starts again from the first. While running, the button becomes a flashing green ■ SEQ.

  • A manual stop on a button of the category (or a click on ■ SEQ) stops the sequence.
  • A template with an outro marker inside a sequence does not wait for the operator: the out animation starts by itself and the sequence moves on.
  • A pause marker also freezes the sequence. The operator resumes it, then the chain continues.
  • If you press ▶ SEQ while a button of the category is already on air, the sequence "attaches" to it and moves on when it ends.

Undo and redo

Programming changes to buttons (creation, moving, editing, deletion), categories and rundown items are undone with Ctrl+Z and redone with Ctrl+Y (or the ↩/↪ buttons in the top bar), up to 50 steps per session. Undo is surgical: it only touches the objects of the undone action. It does not interfere with other operators working at the same time, it respects locks (an object being edited elsewhere is skipped with a warning) and it also updates templates on air if the undo changes their data. Inside text fields, Ctrl+Z remains the text undo. Data, connections and DLS are not part of undo (data is shared with the contributor portal).

Category data panel and "Generate takes"

In the category Inspector (DATA PANEL section) you can enable an area that appears in the row, right after the header. It lists the rows of a table, or the items of a paragraph variable (one line of text = one item), each with its own check box. At the top there is a combo with all the project templates and the GENERATE button. For each checked row, a take is created with the chosen template and appended to the right of the existing ones.

  • From a table: the template fields are matched automatically to the columns with the same name, and each take stays linked to its row. If the editorial team updates a cell, the take follows the data, even on air. The button name comes from the column chosen in the Inspector.
  • From a paragraph: the item text goes into the first text field of the template as a fixed value. Takes are named prefix + number (the prefix is configurable, otherwise the category name).
  • Regenerating rows that were already generated does not create duplicates. If the take for that row with the same template already exists, it is updated (name and data), keeping its position, size and triggers.
  • Generated takes are normal takes in every respect. You move, edit (including the single field→data mapping in the Inspector) and delete them like any other.
  • Each generated take remembers which row it belongs to through the value of the name column, not its position. Reordering the table no longer sends data to the wrong button. Buttons generated before this version still use the position.

Data assignment. In the category Inspector, the DATA ASSIGNMENT section lets you state explicitly which column goes into which template field, instead of relying on matching by name. The order of precedence is: category assignment, then what the button already has, then automatic matching. This way GENERATE no longer discards mappings fixed by hand in the Inspector of a single button. The assignment is written to the project only when you actually change a combo (opening the Inspector does not mark the project as modified), and it is reset on purpose when you change template.

Button layout

Each category chooses how to lay out its buttons (category Inspector). This setting is stored in the project: the layout must be the same on all workstations, otherwise two operators would see the buttons in different places.

Automatic
The usual behavior: free positions but no overlaps. A button that lands on another one wraps to the next line.
Free
Each button stays exactly where you put it, to the pixel, overlaps included. No automatic reordering: this is the way to build button panels by hand without the system lining them up again. It also applies to text labels.
Grid
Only the order matters: the buttons fill a regular grid, with configurable size and number of columns (automatic means as many as fit in the width).

Snapping while dragging (8 px grid and guides) is instead a convenience of the single workstation and is not stored in the project.

Category sub-tabs

A crowded category can be split into pages. Sub-tabs are tabs in the category header and they change only that category, while rundown items change the whole grid. You create them in the category Inspector. Which sub-tab a button belongs to is set in Button Inspector › IDENTITY.

A button without a sub-tab is shown in all of them. It is the common ground, the right place for commands you always need. The open sub-tab is a choice of the single workstation, not of the project: two operators can look at different pages of the same category.

Layout per rundown item

In rundown items (the tabs after TRX) each category remembers a layout specific to that item. The header shows ▲/▼ to reorder rows and 🕶 to hide the category only in that item. The row height (dragged with the handle or grown by resizing a button) is also stored per item. TRX remains the canonical layout and always uses the global settings. The HIDDEN bar shows the hidden categories of the active item, and showing one again there works even if it is hidden globally.

All rows share a single horizontal scroll bar, anchored at the bottom of the category list. Scrolling stays synchronized across all rows, without many separate, bulky scroll bars.

Selection and dragging

  • Dragging on the empty area of a row draws a multiple selection rectangle (Ctrl/Cmd+click to add or remove a single button).
  • Dragging a file from the Media panel onto an empty row creates a new button (video/audio/template depending on the extension, images start with a clip duration of 2 seconds). Dragging onto an existing button replaces its source.

Button menu

Right-click on a button: Duplicate, Edit in Creator (only for templates in Creator format), Set as default, Align buttons, Place side by side, Reset size, Enable button/Disable button, Delete. A disabled button is always shown in red, a color reserved for this state across the whole category palette.

Right-click on the play area of the button only (separate from the rest): ↻ Restart, ⏵ Auto Play (queue, flashes), for audio/video buttons only, arms the button, which flashes until the layer is free and then starts by itself, ■ Stop / ■ Stop (clear layer).

On TEMPLATE buttons with non-image fields, the pencil icon ✎ opens a quick data editor (static fields, variables, indexes, tables) without entering the Inspector.

1.5Button Inspector

Double-clicking a button (or selecting it with the side panel open) opens the take Inspector. It is a very dense editor, kept readable by a tab bar at the top. Each tab is a section, and you see only that one: no long column to scroll looking for the right box. The bar stays pinned at the top and shows only the sections the button actually has (CG TEMPLATE, AFTER EFFECTS and FUNCTIONS appear only when needed).

At the end of the bar, the ▤ ALL tab stacks all sections again. There the accordion becomes useful (click a header to open and close it, Alt+click to keep only that one open), together with the two buttons ⊞ / ⊟ that open or close everything at once.

The chosen tab is remembered on the workstation, even when you change button. If the button you move to does not have that section, the Inspector opens on ACTION without forgetting the preference: when you go back to a button that has it, you find it again.

The sections, in the order they appear:

IDENTITY
Button name, or automatic name from a template field or a data variable.
ACTION
Type (Audio/Video, Template, Live Input, Script, see below), source, ↻ Loop, ⏸ Pause on first frame, in transition (Cut/Dissolve/Push/Wipe with frames and curve), ◐ Start from black, ⛶ Do not clear layers, image/timeline duration.
BUTTON TRIGGERS (N)
Always visible right after Action, never at the bottom of the panel, because it is the section used most often in programming. See Trigger system.
CG TEMPLATE
Only for Template buttons with data fields: template path, CG layer, list of fields with source (Static/Variable/Table/Index) and, if the template exposes them, the Timer and Crawl/Roll blocks, see §1.8.
OUTPUTS
Inherits the channels from the category, or chooses connection/channel manually for this button.
INITIAL MIXER SETUP (ON PLAY)
Attributes (position, opacity, color…) applied automatically as soon as the button goes on air. Useful to guarantee a clean starting state regardless of what the previous take left set on the same layer.
AFTER EFFECTS
Only for Audio/Video buttons: links the take to an After Effects composition of the project.
CHROMA KEY
Color key applied to the button content, with live testing on the output.
TEMPLATE FUNCTIONS
Read only: list of timers/markers inside the template, as a reference for building triggers.

Start from black

◐ Start from black brings the take in from true black. A black solid covers all the layers of the category and fades out over the set frames, revealing the content already composed underneath (main clip and timeline objects together). To reserve the cover layer, categories go up to a maximum of 9 layers. Combined with ⏸ Pause on first frame, the black stays up until you actually press play, and the fade starts at that moment.

Do not clear layers

⛶ Do not clear layers: at the natural end of the take no clearing happens. The last frame of the content stays on air on all layers (images included) until something else takes their place. A manual Stop always clears.

Script button (triggers only)

The SCRIPT (triggers only) type creates a button that puts no content on air. When pressed, it runs its triggers and, if it has a timeline, that too, like a small action sequencer: trigger objects at their times, pause markers that freeze the sequence (click the button again to resume), stop markers or the duration that close it. It does not stop the other buttons in the category and never touches the layers. Without a timeline, it flashes briefly as confirmation.

1.6Take timeline

Below the grid is the timeline of the selected button: a TRIGGER lane, a MARKER lane and, for each layer of the category, an L<n> lane with an FX sub-lane for attribute keyframes.

Toolbar: + SOLID (with color picker), + MARKER (Pause/Stop/Jump/Comment), ⚡ TRIGGER (inserts a trigger at the playhead), ✦ ATTRIBUTE (opens the attribute menu). Double-click an element to edit it, right-click to delete it, double-click the clip to reset its in/out points.

Internal markers coming from the template (loop, outro, pause) are shown read only. They cannot be edited here, they are set in Creator.

  • Outro marker: when it gets there, the take stops and waits for the operator. The play area of the button shows a red ▶❙ ("out"). Clicking it plays the out animation, while the transport ▶ resumes without going out.
  • Images in the timeline start at 2 seconds but can be stretched freely with the handle (videos stay limited to their actual duration).
  • Attributes that overlap on the same layer are placed on separate FX rows, and those that fire at the same instant are applied together, in sync.
  • Fade in / fade out is programmed as a timeline attribute (fadein/fadeout): the object duration is the fade duration.

1.7Trigger system

Buttons and timelines share the same trigger engine: a sequence of actions, or SWITCH / CASE logic based on the value of a variable.

Each trigger has an optional name, a ▶ TEST button to run it right away while programming, and a selector between SEQUENCE and SWITCH / CASE modes. In switch mode you choose the variable to evaluate and define several CASE N · IF = blocks (with the * wildcard for "any value") plus a DEFAULT · IF NO CASE MATCHES block.

The ƒx button on a case opens the advanced conditions: several conditions per case, each with a comparison operator (=, ≠, >, ≥, <, ≤, contains, order comparisons are numeric), a NOT switch that inverts it, and the option to point to a different variable from the switch one. With two or more conditions you choose how to combine them: AND (all true), OR (at least one) or XOR (an odd number of true conditions). The first case that evaluates true wins. The * wildcard is only valid for simple cases.

Actions available from the + ACTION menu:

ActionWhat it does
Press buttonOperates another button: Toggle, Play, Stop, Restart, Auto Play (armed).
TASK (Task+)Presses a button of a Task+ project (you choose project and task from the list): the PLAY take controls WATCHOUT through Task+. See Part IV.
Template functionCalls a function exposed by the template on air: step advance, data update, Start/Pause/Resume/Reset of a specific timer or crawl/roll, or a custom function. With ✦ Custom function… you enter the name (as defined in Creator) and optionally an argument.
Set variableWrites, increments, decrements or toggles a data variable.
Set table cellWorks on a cell of a data table (row and column) with the same modes as variables: set, increment or decrement by the step (decimals allowed, with a decimal comma), toggle. The current value of the cell is shown below the field. If a button on air is linked to that table, the template updates immediately.
Custom commandSends a raw command to the engine (advanced use).
Wait (sequence pause)Adds a delay before the next action in the same sequence.
Operator notificationShows an on-screen message in PLAY.
Enable / disable buttonEnables or disables another button on the grid.
Clear graphics channels (CLEAR)Clears what is on air on the graphics channels, exactly like the CLEAR button in the server bar. You choose a connection (or all) and a channel (or all active ones). It also clears the DLS outputs on those channels. A DLS photo survives clearing from buttons, and without this action the DLS panel would still show it as on even though it has left the screen.
Reload dataForces a refresh of the linked data sources.
Send to connectionSends to a connection of the Connections panel: raw text over TCP/UDP (with optional line ending), an OSC message (address + arguments), or an HTTP call (method + path + body). In all text fields, $(variablename) is replaced with the current value of the data variable.

The + ACTION ▾ drop-down menu always opens fully visible, above or below the button depending on the available space, and is never cut off by the panel edges.

1.8Live timers and crawl/roll

When a template on air contains text set up as a timer or as a scroll (crawl/roll), the button Inspector shows the related controls inside the CG TEMPLATE section. They are active only while that button is actually on air.

Timer

For a countdown: Duration (s), a target date/time or Target (s), the value where the countdown must stop (default 0, it never goes below). For a count-up: Start (s), where counting up starts again. In both cases the ↻ Recall from Creator button brings the fields back to the values originally set by the designer, without touching a timer that may already be on air.

Commands: ▶ Start, ⏸ Pause, ↺ Reset, ⏵ Resume (and, for countdowns only, ⤓ Set duration/target). If the button is not on air yet, the commands are disabled with the message "The take is not on air: play the button to control the timers."

Crawl / Roll

Mode badge (Crawl (horizontal) or Roll (vertical)), ⏸ Pause / ⏵ Resume buttons, a Speed (px/s) slider that updates the scroll speed live while you drag it, and a free text field (one item per line) with the ⤓ Text button to overwrite the content without touching the linked data fields.

The Duration (s) field with the ⏱ Duration button works the other way around, as in Creator. You set how long the pass must last and the template, which knows the actual length of the text on air, works out the right speed by itself (and adjusts the duration of its own timeline). It has no effect on looping crawls/rolls, which have no "end" to respect. It requires templates re-exported from Creator after the feature was introduced.

The rule: if you set nothing, the Creator values apply. If you set speed or duration here, PLAY always wins. The choice is saved on the button (● ON BUTTON badge) and reapplied automatically every time it goes on air, even when set while the button is off. ↺ Creator removes the override and returns to the template values. The crawl/roll and timer metadata are also resynchronized from the template on disk every time the button Inspector opens, so a template re-exported from Creator updates the controls by itself.

Karaoke on air

If the template contains a karaoke (§2.6), the button Inspector shows its live controls. It starts by itself when the template plays and follows the timing. The operator has ⏸ Pause/⏵ Resume, ⏮ Restart, line skip ◀ Line/Line ▶ (in automatic mode, skipping resyncs the clock to the start of the chosen line) and the offset ±0.5s correction for when the backing track did not start exactly at zero. A karaoke in manual mode shows the large ⏭ NEXT LINE button instead. While the karaoke is on air, a preview with the line currently on screen and the next one appears below the take button. When the selected button has a karaoke, the commands live in a dedicated KARAOKE panel next to the Inspector, with a large preview of the line on air and the next one, and a progress bar toward the following line.

Both controls can also be called from a trigger, through the Template function action.

1.9Attribute menu

The ✦ ATTRIBUTE menu (in the timeline) or + ADD (in the initial mixer setup) opens a box with all the attributes that can be changed live on a layer, each with its own icon and color: POS/SCALE, OPACITY, BRIGHT, CONTRAST, SATURATION, LEVELS, ROTATION, VOLUME, PERSPECTIVE, BLEND (with the same blend modes available in Creator). The box sizes itself exactly to its content, with no inner scrolling and no empty space, and is always placed fully visible relative to the button that opened it.

1.10Audio mixer

Pop-up panel at the bottom: one fader for each active video channel (master) plus one fader for each category, which acts on all active channels at once. Each fader goes from −60 to +12 dB (0.5 step). Double-click to bring it back to 0 dB. There is a MUTE/MUTED button per channel and a VU meter fed by the actual levels coming from the engine. The APPLY ALL button sends all saved volumes back to the server, useful after an engine restart.

1.11Data system

The PLAY Data panel is a full-screen overlay with five sections (VARIABLES, TABLES, EXCEL, PROTOCOLS, SOCIAL). It is designed to connect programming to external sources (editorial, stats, feeds, social) without reopening Creator.

Variable and cell values can also contain HTML (<b>, <i>, <span style>, entities such as &egrave;). The template on air interprets and renders it. Plain text stays text. Accents and special characters reach the engine intact (safely encoded in transport, no more "?").

VARIABLES
Text, Number, Paragraph (for crawls/rolls), Image, Index, Karaoke (LRC synchronized text or plain text, with a dedicated editor. If you link the field of a karaoke element to this variable, changing it in PLAY updates the text on air on the fly). Each variable can be exposed to the contributor portal for Production and/or Editorial (the Graphics role is deliberately excluded, it does not need it).
TABLES
Typed columns, rows editable inline, + COLUMN/+ ROW buttons. A table can be linked to an external source with automatic refresh at an interval (LINK / ⟳ UPDATE button).
EXCEL
An .xlsx sheet from which you manually assign single cells to variables, or whole column ranges to table columns (click and shift+click directly on the imported grid).
PROTOCOLS
MOS PROTOCOL (NRCS/NCS newsroom systems, TCP listener) and OGRAF PROTOCOL (HTTP polling), both linkable to a destination table.

For long text (paragraphs meant for crawls/rolls) there is a dedicated editor with basic formatting (bold/italic/underline, alignment, bulleted list, image/logo insertion) and live preview.

Matrix fields: a whole table in a template

A template can have matrix fields (for example the classifica standings field from the Creator generator, §2.19). In the button Inspector these fields have only two sources: From template (the values written in Creator) and Table. Once the table is chosen, the take sends the whole table, row by row. The template columns take their values from the columns with the same name (case, spaces and order do not matter). If the table has fewer rows than the template, the extra rows are emptied. Matrix fields have no values to type by hand and do not appear in the ✎ quick panel. A button created before the field became a matrix realigns by itself as soon as you open it in the Inspector.

Live protocols: MOS and OGRAF

Both protocols work in real time:

  • MOS, PLAY listens on the configured port (default 10540) for messages from newsroom systems, in plain text or in the classic newsroom encoding. It replies with the acknowledgments required by the protocol (heartbeats included) and writes rundowns (roStorySend), object lists (mosObjList) and generic payloads into the chosen DESTINATION TABLE.
  • OGRAF, PLAY polls the POLLING URL at the set interval and, when the data changes, updates the destination table with the received slots (single payload, roster or item list).

The same formats can always be loaded manually as the file source of a table (.mos and .json extensions). The ◱ Browse source picker always starts from the last folder visited (or from the folder of the path already in the field).

1.12Multi-user locks

When two people work on the same project, PLAY locks editing per object. Selecting a button or a category to program it takes the lock on that object only, so two people on different buttons never block each other. The status appears in the bottom bar: 🔒 <button/category> being edited by <user>.

Play, Stop and CLEAR are always available to everyone, regardless of locks: locking only affects programming, never playout.

An administrator can force a takeover with the TAKE CONTROL button, with a warning that any unsaved changes of the other user will be lost.

Project chat

The red 💬 button at the bottom right opens the project chat: a light panel to coordinate between workstations ("I'm on the BUMPER, don't touch it") without leaving PLAY. It is open to every role, viewers included, because talking never changes the project. Messages are stored on the server and shared across all workstations. The white dot on the button counts unread messages, and what you have already seen stays marked as read even after a page reload. An administrator can clear the chat for everyone with 🗑.

The chat is the same in all applications, split into channels. The General channel spans the whole house (PLAY, Creator, Task+), while each project has its own channel, also reachable from the contributor portal, where it is called Control room, because that is who you are writing to. The color of the name shows the role of the person speaking.

1.13DLS panel, photo playout

The DLS panel is the control room for stills. It browses the project DLS folder (where Creator exports the photos) and sends them directly to the outputs, on reserved layers that never collide with the grid programming. You reach it with the DLS switch in the PLAY server bar (and PLAY to go back).

Outputs

At the top there is a chip for each output (connection + channel) with a 16:9 preview of what is on air, an ON badge, a connection status dot and ▶/■ buttons for immediate play/stop on that output only. An output can be marked PRV, preview/secondary. It takes the same photo from the special folder (a subfolder with the name set in ⚙, present inside every DLS folder, holding the same photo in a different format).

  • Between one chip and the next, → copies what is on air to the next output and ⇉ to all of them.
  • With Simultaneous play on (⚙), outputs are selected as a group. At the bottom right of the box there are three icons: ☑ all, ◪ all except previews, ⇆ invert. Selections are saved with a name and recalled with one click.
  • The output selection survives the PLAY↔DLS switch and page reloads.
  • If the connection of an output is disabled, that output never puts anything on air (with an explicit warning when you try). The CLEAR in the server bar also clears the DLS state: outputs off, slideshows disconnected.

Photo grid, selection and order

On the left is the DLS folder tree (subfolders open only on request), in the center the thumbnails with a large file name without extension. The selection is gold. The green ON AIR badge marks the photos currently on output. The folder refreshes by itself when a new file is copied into it.

  • Multiple selection: click = single, Ctrl+click = add/remove, Shift+click = range, drag from the background = box (additive with Ctrl). Click on the background = deselect.
  • Manual order per folder: drag a photo onto another to insert it before (this also works with the selected group). New files are appended in alphabetical order. ⇅ A-Z restores alphabetical order. The order is stored in the project.
  • Locked photos (🔒, for users with edit rights): cannot be selected or played.
  • ✎ on the thumbnail opens the photo in the Creator image editor in a dedicated tab. On save, the original is overwritten in its folder and the thumbnail updates by itself.
  • Search works on the whole DLS tree (special folders excluded) and selects the first result straight away.

On each thumbnail a dot shows what the editorial team said about it: green approved, orange to be reviewed (hover to read the comment), light blue reworked and awaiting a decision, empty circle not yet reviewed. The legend is next to the photo count and the list refreshes by itself. It is a mark, not a block: a photo that is not approved can still go on air. To prevent that, use the lock.

Pinned folder

The 📌 button in the grid header pins the current folder. The box splits horizontally, with the pinned folder on top (amber header, ✕ Unpin) and normal browsing below. Only one folder at a time. The pinned section is a full grid (selection, drag, reorder, auto-refresh) with resizable height (handle) and its own thumbnail zoom. It stays visible during searches and is stored in the project.

Playout rundowns

A rundown is the order of the show: a row of already numbered title cards (001 - …, 002 - …) ready to go on air one after another. Rundowns are built in Creator, from Browse, and the very same ones are found here in the control room. Whoever prepares them and whoever puts them on air work on the same material, not on two copies.

At the top of the folder column is the 🎞 RUNDOWNS panel, separate from the tree because it is the first thing you need to find. ⟳ reloads the list (without collapsing the tree branches you were browsing). A click on a rundown opens its title cards in the grid, already in order.

The 🎞 button opens the filmstrip above the grid: the rundown seen as a row of slots, with height adjustable from the handle. From there you fine-tune the order by dragging, keep slots free for title cards still to come, and put the photos selected in the grid into the slots, where they take the slot number.

There are two ways to keep a slot free, and the difference matters on air:

  • ⎀ SPACE, a new number of its own: the following title cards shift by one.
  • ᵇ BIS, stays on the previous number (9 → 9b, 9c): from 10 onward nothing moves. This is the one to use when the show is already numbered.
Note

The folder that holds the rundowns does not appear among the DLS root folders. It is a storage area, managed from this panel. In the grid search, typing digits only searches rundown numbers (the title cards that start with that number), not just the file name.

Play and shortcuts

CommandEffect
Enter (or P)Plays the selected photo on the preview outputs, to check it before taking it.
SpacePlays on the selected outputs. With several photos selected, it distributes them in order: first photo → first output, second → second… (previews excluded).
Ctrl+Space / ▶▶ NEXTPlays on the selected outputs and the selection moves to the next photo (after the last one it starts again from the first). You step through a folder with a single gesture, in the order you built.
Ctrl+1…0 (also from the numeric keypad)Takes the preview of that output only to air, leaving the others untouched. It is the control room gesture, one output at a time, without taking your hands off the keypad. The number is the position in the output bar, 1 is the first one you see, and it stays valid even if outputs are renamed. 0 is the tenth.
← → ↑ ↓Navigate between thumbnails (locked ones are skipped). The arrows work in the grid, pinned or browsing, that holds the selection.
▶ PLAY / ■ STOPLarge buttons in the center: play/stop on the selected outputs (with multiple photos, PLAY distributes them in order).

Templates, pages and background

The template bar saves the current state of all outputs as a named button (+ Save current state). One click recalls it as a whole, and the green dot shows that it is exactly on air. Templates are organized in pages (numbered tabs, like rundown items). Right-click to rename/update/delete. The bar is resizable. From the ⚙ settings you also configure the background (solid color or image) applied to all outputs on a layer that always stays below the photos, and the single transition for manual plays.

Slideshow

From the ⚙ settings you create one or more slideshows, each with its own always-visible panel. You drag photos into the strip (also as a group from a multiple selection), reorder them by dragging, and set seconds per photo, dedicated outputs, zoom effect (with intensity) and its own transition. ▶ Start / ⏸ Pause / ■ Stop. Playback runs on the server: the slideshow keeps going when you change screen, reload the page or close the browser, and when you come back the panel picks up the actual state by itself (photos on air included). A manual play on an output automatically removes it from the slideshow that was using it.

1.14External control

PLAY can be driven by external surfaces and automation. From the SD panel in the header you choose the control surface mode:

  • None, no external surface.
  • Bitfocus Companion, the native WOCube PLAY module. You add the connection in Companion (host, port, project and the token copied from the panel) and you get ready-made presets, one key for each button on the grid, grouped by category, with status feedback (green when playing, orange when paused) and names that update by themselves when you rename in PLAY. The one-time setup is guided step by step by the panel itself. The same module also drives Task+ buttons, when you enter the Task+ project and its token in the configuration (Part IV).

Control script

External automation talks to PLAY with a small set of commands, the same on all input channels. Buttons, variables and categories are referred to by name (case is ignored, quotes are needed only if the name contains spaces):

PRESS "TAKE NAME" [toggle|play|stop|restart]
SETVAR "VARIABLE NAME" "value"
CLEAR ["CATEGORY NAME"]        ← no argument: global CLEAR

Available input channels:

  • Script connection (TCP or UDP, default port 5090), one line = one command, in the syntax above. Warning: do not use port 5085, which since the arrival of Task+ is taken by its web interface.
  • Incoming OSC, the same commands as /wocube/press, /wocube/setvar, /wocube/clear messages with the same arguments.
  • HTTP, routes protected by the project token (no sign-in): /api/playout/press?project=…&token=…&take=…[&action=…] and /api/playout/setvar?project=…&token=…&var=…&value=…. The token is copied (and regenerated) from the control surface panel.

Commands received while PLAY is closed are discarded after a few seconds: nothing starts by itself when it reopens.

1.15Multiview, the monitor wall

Multiview is a view-only screen: a sheet on which you draw tiles, and each tile watches something that is going on air. It is meant for the control room monitor or a second screen, not for programming. Nothing can be controlled from here.

It is a separate entity: you reach it only by typing /multiview/ in the browser address bar. None of the other applications links to it, by design.

  • Drawing the sheet, drag to create a tile, then move and resize it. The panel on the right says what it must show. Sizes are in percent, so the sheet adapts to any screen. A selected tile is deleted with the red ×, with 🗑 Delete in the panel or with Del.
  • What it can show, a DLS output (the photo on air, with the slideshow mark) or a PLAY category (the button that is playing). Also a clock and a free label. Tiles from different projects can share the same sheet.
  • Tally, red border for what is on air, amber for pause and preview.
  • Program and preview, each tile chooses its view: both (preview overlaid on the on-air image), on air only, or preview only, full tile. To see them side by side, put two tiles on the same output.
  • Sheets are saved on the server and shared by all workstations (users with edit rights can change them). If the server cannot handle them yet, sheets stay on the single workstation and the screen says so.

For a monitor that must stay on without someone signing in, there is Sign in as guest: a read-only session that sees the Multiview and nothing else. Creator and PLAY refuse it.

Part II

Creator, the template editor

Where graphics templates are designed: text boxes, images, video and shapes, keyframe animation, data links, and export to PLAY.

2.1Introduction and roles

The same three system roles as PLAY (Admin, Editor, Viewer). A Viewer never sees the graphics editor and is sent straight to the WOCube Browse file manager. Editors and Admins see the full editor. Some buttons (new template, Smart Paste, final export) stay hidden from users without edit rights.

An administrator also has the ⚙ User Management button in the header, to create users, assign roles and, for Viewers, restrict their Browse navigation to a single subfolder.

The 🔔 icon in the header opens reports/approvals: All / ⚠ To review / Approved filter, with the states To Review, To View, Approved and actions to archive or delete a report.

At the bottom right, the same 💬 button as the PLAY chat (see §1.12) opens the Creator chat: a single channel shared by all graphics editor workstations, separate from the chats of the individual playout projects. It is used to coordinate work on templates ("I'm on TITLE CARD 11, don't save over it").

2.2Templates and folders

Toolbar: 💾 Save (quick save, overwrites if the template already has a path, otherwise opens the "Save as" form), 📋 Save as (always opens the form). Shortcut Alt+S.

In the save form the folder is mandatory: the root cannot contain templates, only folders. This rule is intentional, because creating top-level folders (a project) is reserved to PLAY.

In the tree, top-level folders (a project) are in bold. The template currently open for editing stays highlighted with a cyan dot even when you click elsewhere in the tree. Double-click loads a template, a single click only selects it. You can drag any file or folder onto another folder to move it. Right-click: 📂 Load, 📁 New subfolder, ✏️ Rename, 🗑 Delete. Deleting a folder that is not empty opens an explicit choice between moving the templates it contains elsewhere or deleting them together with the folder.

The Media panel

The images and videos used in templates live in the MEDIA panel, organized in folders. Every file and folder has a single command, ⋯ (also with right-click), that opens the menu. For a file: assign it to the layer, edit it, move it, delete it. For a folder: open it, rename it, move it, add it to favorites, delete it. Folders can also be moved by dragging one onto another. Templates that use those media stay linked, and paths update by themselves.

Ctrl+V on the canvas pastes an image copied from outside (a screenshot, a photo from a website). You choose the name and the media folder to save it in, and the image enters the template already placed in the center, scaled down if it was larger than the format.

The 🗂 button saves and reapplies folder structures: the subfolder layout of a folder is stored with a name and recreated identically elsewhere. Useful to give every new show the same organization.

The left panel can be split. Right-click a tab to open it in the bottom half (or use the ⊞/⊟ button), with a draggable divider, ⇅ to swap top and bottom and ✕ to close it again. It lets you keep an eye on two things at once, for example the media and the template list.

Library (_Libreria)

A service folder, hidden from the normal tree and managed from a dedicated panel. 💾 Save selection saves the elements selected on the canvas (with their descendants and the referenced data fields) as a reusable mini-template. Each entry has + to insert it into the open template (regenerating all ids to avoid conflicts) and 🗑 to delete it from the library.

2.3The canvas

Tools

Selection (V), Text (T), Rectangle (R), Ellipse (E), Image (I), Video (M), Freeform (P), Null Object (N). A click places a box at standard size. Click and drag draws it to size. Holding Shift while dragging locks the non-dominant axis at the size already reached. With Freeform you place vertices with a click, close with a double-click or Enter, and cancel with Esc.

Selection, groups, alignment

A selection rectangle (marquee) is drawn by dragging on empty space. Dragging an element that is already part of a multiple selection moves the whole group, keeping relative positions. Dragging a resize handle with several elements selected scales the whole group (hold Alt to scale from the center, Shift to keep proportions). Repeated Ctrl+click goes down one level at a time through elements stacked at the same point. Right-click menu: Fill / Fill vertically / horizontally, Center (and the two per-axis variants), Flip horizontal/vertical, Set as background, Reset all.

Guides, rulers, safe areas

Horizontal and vertical rulers from which you drag guides. Magenta snap lines toward edges, canvas, other elements and guides while dragging (toggle off on the fly with Alt). Header buttons: ⊞ grid, ▣ show the boxes of all objects, ▢ Safe Area with configurable Action Safe/Title Safe percentages.

Zoom, preview, smart paste

Zoom with Ctrl+wheel, Shift+wheel resizes the height of the selected element. The ▷ Preview button opens a real run of the exported HTML: ▶ Play, ■ Stop, ⏭ Next, a field for each template data item, 📷 Export PNG (saves a snapshot to the template DLS folder), ⟳ Reload.

📋 Smart Paste distributes copied lines of text into the template text elements (the selected ones, or all of them if none is selected), ordered by position, with mini formatting B/I/U.

2.4Element Inspector

The attribute panel on the right, split into three tabs, Style, Anim., Data, with every section collapsible and a dedicated reset button. With a multiple selection of text elements only, the Inspector applies a single shared style panel. With exactly two text elements selected, ⇄ Swap text content appears.

Main sections of the Style tab (the list follows the actual order of the panel):

Position & Size
X/Y, W/H, Rotation, Opacity, Scale. Every numeric field accepts arithmetic expressions (e.g. 300+200) and has a dedicated keyframe button.
Parent
Attaches the element to a Null Object, to animate or move several objects together.
Background
Solid color or gradient (up to 5 stops), with a transparent option.
Border
Radius, width, color, style (solid/dashed).
Shadow & Effects
Two independent shadows, background blur, overflow, 16 blend modes (Normal, Multiply, Overlay, Difference…).
Extrusion & Bevel
Depth, light angle, softness, color/shadow, reflection, plus an independent "Light source" subsection.
Text
Font (internal library plus importable custom fonts), size/weight, alignment, line height, case transform, monospaced digits, text shadow and stroke, see also §2.6.
Auto-fit
Keeps the text inside the box by reducing its size automatically (not available when a crawl/roll is active).
Crawl / Roll
Scroll configuration, see §2.6.
Mask
Linear, radial, elliptical, angular, or an existing freeform shape (with invert).
Mirror & Warp
Flip, skew, 3D perspective with distance/tilt, reflection.
Texture
Dots, grid, lines, hatching, diamonds, circles, hexagons (noise and scratches are in the menu but do not render a visual effect yet).
Light burst
Glow, spotlight, light point.
Custom CSS
Free CSS properties applied directly to the element, for cases not covered by the standard panels.
Image/Video Fit
Fit to box, proportional, or original. Manual zoom and position. For images, a "Face Box" with automatic centering on the detected face.
Photo Filter
Black and white, sepia, blur, invert, vintage, cool, warm, with adjustable intensity.
Image Collector
Links the box to a folder of interchangeable images, see §2.8.
Preset Shape
Freeform elements only: rectangle, circle, triangle, diamond, pentagon and other ready-made shapes.
Video
In/out points, start frame, loop, mute, with a "Fit timeline to video" button.

The Anim. tab contains the two legacy non-keyframe animations In Animation/Out Animation (fade, slide, scale, blur, wipe, with duration/delay/easing). The Data tab links the element to a data field and hosts the conditional triggers.

For color choice, every picker opens a Saturation/Brightness panel with a hue slider, a hex field and an eyedropper that picks a color from any point of the canvas. The Favorites row stores recurring colors: ★ saves the current color, a click on a swatch applies it, right-click removes it. The palette is shared by all color pickers and stored on the workstation.

With no element selected, the Inspector shows the general template settings: name, size, preset (HD/4K/8K), fps, scan, destination DLS folder, background and global 3D perspective, plus the External Scripts, Additional HTML and Custom Functions sections (JS functions that can be called from PLAY or from data triggers, with access to a control API, play/stop/next/seek, reading/writing fields, style and speed of an element).

2.5Image editor

Double-clicking an image opens a full-screen editor with ten modes: Adjust (brightness/contrast/saturation/hue, RGB channels, blur, levels, quick curves, white balance), Selection, Brush, Eraser (makes pixels transparent, save as PNG), Paint bucket, Clone, Effects (blur brush/mosaic), Reconstruct (object removal by local inpainting, no connection required), Background (AI removal, with a model downloaded once and then cached, or manual removal by color/tolerance), Size.

Selection

Five tools: rectangle, ellipse, freehand lasso, pen with Bézier curves (click to add anchor points, click and drag to curve with the handles, close on the first point) and magic wand (click on a color: selects similar contiguous areas within the tolerance, holes included). The ✨ Select subject button uses AI to find the main subject of the photo and turns it into a selection (the first run downloads the model, then it stays cached). Holding Shift adds the new shape to the existing selection, Alt subtracts it, with any tool, wand included. The pointer shows a + or − badge while the key is held. Changing tool does not clear the selection (only entering the Bézier pen starts from scratch), and every selection operation, whether creating, combining, moving or deselecting, is a separate Ctrl+Z step.

With an active selection, Adjustments and the Paint bucket act only inside it. Dragging from inside moves the selection, and Ctrl+drag moves the content (the pixels, leaving transparent empty space behind). Clear selection content (or the Del key) empties the area, making it transparent. Esc deselects. Adjustments made inside a selection become permanent as soon as you move to another operation or the selection changes (undoable with Ctrl+Z).

Paint bucket and Clone

Paint bucket: fill by color with adjustable tolerance, which can be limited to the active selection. The Fill transparent button colors all transparent or semi-transparent areas in one go (useful to give a background to a cut-out PNG). Clone is the photo retouching clone stamp: Alt+click sets the source point (green cross), then you paint where to copy. A transparent ghost preview under the brush shows exactly what will be cloned (feathering included) before you click, with a moving green cross on the point about to be sampled. The source point has two modes: Fixed (every stroke starts again from the source) or Aligned (the source to brush offset is recorded on the first stroke and kept for the following ones, so the difference shows from the second stroke on). Size, opacity and edge feathering are adjustable.

Size

Resizes the image (width×height with proportion lock, quick presets HD / Full 2K / 4K UHD) in three ways: Fit (proportional, the excess is filled with a color of your choice or left transparent), Fill (proportional, crops the excess) or Stretch. Or it resizes the canvas: the image stays as it is, centered, and the canvas grows (new edges, colored or transparent) or shrinks. To frame with the mouse before resizing, use the Adjust crop.

External retouching (Photoshop)

In the editor header, the Ps Open in Photoshop button opens the file in the Photoshop of the workstation you are working from, the designer's own, with their fonts, brushes and settings, not the one on the server machine. The file is downloaded, opened locally and sent back to the server automatically on every save: there is nothing to reload by hand. Creator shows the status of the round trip (waiting for the workstation, active, or the fallback Open on server if the workstation does not respond).

If you work directly on the server machine there is no waiting: the file simply opens there.

When you are done, ⟳ Reload file rereads the file from disk anyway (unsaved changes and the editor history are reset), and 📋 copies the file path on disk.

Generative features (Adobe Firefly)

If the administrator has configured and enabled the Adobe connection, the editor also offers Generative fill (in the Reconstruct panel: regenerates the area of the active selection, or the area painted with the brush, with an optional prompt describing what should appear) and Generative expand (in the Size panel: brings the image to the requested canvas size, inventing the missing edges consistently). Both use the generative credits of the linked Adobe account and can be undone with Ctrl+Z. These sections appear in the editor only when the connection is configured.

Zoom with the wheel, Alt+wheel changes the brush size in retouching modes, Space+drag to pan. Undo/redo history up to 50 steps (in the Creator canvas, undo goes up to 100). The ✂ Crop button is available in Adjust mode.

The same editor also opens from the PLAY DLS panel (✎ button on a photo thumbnail). In that case it appears on its own, in a dedicated tab. Saving overwrites the photo in its DLS folder, the tab closes by itself and the DLS thumbnail updates automatically.

2.6Text, auto-fit, crawl/roll, timers

The font library includes Inter, Bebas Neue, Oswald, Montserrat, Barlow Condensed, Roboto, Open Sans, Raleway, Exo 2, Rajdhani, plus imported custom fonts (ttf/otf/woff/woff2), marked with a star.

Formatting a selection

Selecting part of the text while typing shows a floating toolbar: B bold, I italic, A color, and A− / px field / A+ for the size of that portion only, such as a larger word inside a sentence, without making it a separate element. The A−/A+ step is proportional, so it works the same on 20 px text and on 200 px text. The field is applied with Enter or when you leave it. The Inspector controls (font, size, weight, color) still apply to the whole element.

Paged text

Long text can be split into pages that change by themselves. It is related to the roll, but instead of scrolling continuously you read one page at a time. Turn it on from the Pages section of the Inspector, with Paged text.

You split it by typing: a separator alone on a line (usually §, configurable) starts a new page. Right after the separator, on the same line, you can type the duration in seconds of the page that starts, §8, § 8, even §2,5. Without a number, the default duration applies. This way durations sit where you write the text, instead of in a list of numbers to keep aligned by hand.

You then choose the transition (hard cut, fade, four slides, two zooms) and its duration, the wait before the first page and whether the cycle should start over or stop on the last page. In the Inspector a ‹ › navigator shows "page 2 of 5" and the full cycle in seconds. The canvas shows the chosen page, still, because while laying out pages you need a still frame, not a carousel. Formatting done by hand (bold, colors, sizes) is kept with pages turned on.

Note

Paged text takes precedence over crawl/roll. They are opposite ways of reading, and a text cannot scroll and stand still at the same time. It does not apply to text marked as a timer, whose content already changes by itself.

Crawl / Roll

Dedicated Inspector section: Crawl (horizontal) or Roll (vertical) mode, multi-line text (one item per line), speed in px/s, delay, direction, loop (with the "start from outside the box" option) or fixed duration with automatic speed calculation and the Fit timeline to crawl/roll button. It starts only when the template timeline plays, not as soon as the template opens.

Timer

A text can be marked as a timer: Clock, Countdown or Count-up mode, hh:mm:ss or mm:ss format, with an option to hide leading zero units. In Creator the timer is configured and you can see it run in preview. It is actually controlled (start, pause, reset, new target) from PLAY when the template is on air, see §1.8.

Karaoke

A text can become a karaoke (dedicated Inspector section). The synchronized text is typed or pasted in LRC format ([mm:ss.xx] text per line, optional per-word timing with <mm:ss.xx>) directly in the panel, or imported from an .lrc file. There are two display modes: Highlighted line (the current line is highlighted, advancing word by word if the LRC has word timing) and Scrolling lines (a scrolling list with the current line centered), with three configurable colors (already sung / current / to be sung) and the element typography. The Manual advance only option ignores timing: on air, the operator advances line by line. If you paste plain text without timestamps (one line per item), manual mode turns on by itself, so the object also works as a prompter or as text cut by hand, without needing an LRC. Empty lines count as pauses (empty screen) and do not produce PNGs on export.

In Highlighted line mode you can choose an in effect at every line change: fade, wipe (side reveal) or fade with a slight zoom. At the bottom of the panel there are also the text functions (remove punctuation, collapse double spaces, split lines that are too long at the best word boundary, remove LRC timing) and the timeline "Tap to the beat". You load the audio track, the timeline runs with the track and every tap (button or space bar) places the box of the current line. The boxes move and stretch with their handles to correct the timing (uncovered stretches between one box and the next become pauses), then ✓ Apply writes the LRC timestamps. You can reopen the editor to review and correct the boxes without reloading the audio. The same text functions are also available in the PLAY paragraph editor.

The ⇓ Export line PNGs button generates one PNG per line (static text with the same typography) in the DLS folder _KARAOKE/<template name> (one subfolder per template), so the lines can also go on air as stills from the DLS panel. On air, the karaoke starts when the template plays and is controlled from PLAY, see §1.8.

2.7Conditional data triggers

These are different from PLAY triggers: here they react to a change in the template data, not to an operator action. There are two types: Condition (one or more field/operator/value conditions, matching All (AND) or Any (OR), and one or more actions with a value for "true" and one for "false") and Switch / Case (one field, several cases with a value, plus a default block). The properties you can drive include at least background color, text color, border color, opacity, visibility, position, scale and order (z-index).

The same kinds of logic can also be anchored to a specific timeline frame, from the Timeline panel (+ Trigger / + Switch), instead of to a continuous data change.

2.8Image collectors

An image box can be linked to a media folder. In the "Image Collector" Inspector panel you choose the folder (or reuse one already linked elsewhere). From the right-click menu of the box on the canvas, the ◀/▶ arrows quickly change the image in use by cycling through the folder. Clicking the folder name opens a grid picker with search and paging.

Each photo remembers its own setup inside the box (fit, zoom, position, blurred side background, retouching). When you change photo and come back, everything is restored as it was.

Permanent numbering

Each photo receives a fixed number when it first enters the collector (in date order), shown in an amber fixed-width badge (001, 002, …) on the picker thumbnails. That number is never recalculated. Photos added later take the next numbers, so the order and, above all, the exported file names do not change as the folder grows: "photo 003" stays 003 even after fifty additions. A photo removed from the folder keeps its number, and if it comes back, it gets it again.

To correct by hand: click the badge of a photo (it turns amber), then click the photo to swap with. The two numbers are swapped and nothing else moves. Click the same photo to cancel. The picker, the ◀/▶ arrows and the export all follow number order.

Also from the right-click menu:

  • 🎞 Export all images…, exports every image in the folder in sequence, with a programmable file name (placeholders {template}, {n}/{nn}/{nnn}, {name}, default {template}_{nnn}) in PNG, JPG or TGA format, to the template DLS folder. Numeric placeholders use the permanent number of the photo, not its position in the list.
  • Export this one only, updates a single file with exactly the same name it would have in the full export, to fix one image without regenerating everything else.

Collector slideshow

The slideshow of collector photos is built in the timeline: see §2.20 Slideshow in the timeline. The old automatic slideshow has been retired. A box that used it is converted with Generate.

2.9Nested templates

An image box can reference another template as its source. In the "Nested Template" Inspector panel you choose the template from a list, and you immediately get a PNG snapshot of its current frame. Double-clicking the box (if not locked) opens the nested template inside Creator itself, with a breadcrumb bar showing the chain of open templates. ← Back to parent saves the nested template, regenerates its PNG automatically and injects it back into the box of the parent template before going back.

2.10Timeline and keyframes

Toolbar: keyframe navigation (◀◆/◆▶), current frame field, duration field with Trim to playhead, markers (Intro, Loop start, Loop end, Outro, Pause, Comment, Jump), frame triggers.

Shift+click on a diamond adds or removes a keyframe from the multiple selection. Dragging on empty space draws a box that collects all the keyframes inside it (of any visible property). Dragging any of the selected keyframes moves the whole group, keeping the relative spacing. Alt+wheel on a selected group compresses or expands its time spacing around its own center. With an active selection, the contextual toolbar offers ⧉ Copy (only if they all belong to the same element) and Delete. Alt+X deletes every keyframe exactly at the current frame. Each segment between two keyframes has its own easing (Linear, Ease In/Out/In-Out, Bounce, Elastic).

2.11Data fields

The Creator Data tab is simpler than the PLAY one. It lists the template Data Fields (technical name, type (Text, Image, Number, Matrix), visible label, default value). Matrix fields have a dedicated table editor with sortable columns.

Note

Advanced data management, such as exposed variables, tables linked to external sources, Excel links and MOS/OGRAF protocols, lives entirely in PLAY (see §1.11), not in Creator. Here you only define the structure of the fields the template can receive.

2.12Export: PNG/JPG/TGA, DLS, ProRes

The DLS panel browses the template destination folder (breadcrumb, ↻ Refresh, + New folder). Double-clicking a file opens a full-screen preview on a checkerboard background for transparency (.tga files are converted on the fly on the server, for display only). Multiple selection and → Media (N) bring PNGs into the reusable media pool.

  • ⬇ Export <FORMAT> here, a single still (PNG/JPG/TGA with alpha) with a chosen name, in the folder currently being browsed.
  • 🎞 Export <FORMAT> sequence, one file per frame, for the whole timeline duration. Videos in the template enter the sequence with the frame they show at that instant, like everything else.
  • 🎬 Convert to ProRes 4444 (.mov), converts the already exported sequence into a video with alpha channel.
  • 📼 Convert to XDCAM (.mxf), broadcast version without alpha, respecting the template fps and scan.

Each template has a DLS Folder field (in the Inspector, general settings section) used as the default destination for all "quick" exports started directly from the canvas (preview snapshots, bulk collector exports), regardless of the folder the DLS panel is showing.

The red Export to WOPlay button in the header generates the final static HTML of the template (the one PLAY will actually load on air), with media paths corrected according to the actual depth of the template in the folder tree. The template must have been saved at least once.

Reporting that a job is ready

At the bottom of the template Inspector, the Job section is used to say that the graphic is finished. You enter who requested it, choosing from the list of project users (choosing a name also fills in their address) or typing it by hand, add a note, and an email goes to the requester and to the editorial team with a thumbnail of the template attached. If the template snapshot fails, the email is sent anyway without a preview.

The report lives inside the template and is saved with it, so there is a record of when and to whom it was sent. A configured project mail is required. Without it, the button says so.

Template package, PSD and MXF video

At the bottom of the Inspector, the Template package section groups the exports that concern the template as an object:

  • 📦 Export / 📥 Import, a .wocube.zip file with the template and everything it needs (media, custom fonts, nested templates in cascade). It reopens on another machine with no missing pieces. Import never overwrites: if the name is already taken, it uses a free one.
  • 🅿 Export PSD, a PSD with one layer per element and Photoshop groups. Text stays editable (the font must be reassigned in Photoshop). Anything that could not be converted is listed in a README file next to the PSD.
  • 🎬 MXF, the whole template as an XDCAM video in a single pass: frames are rendered in the browser and encoded on the server, without going through the manual sequence of the DLS panel. It is designed above all for slideshows. When the template is "slideshow only" with a composable transition, rendering uses a fast lane (slides are captured once and frames are composed on the fly) and is many times faster. The export keeps going even if you switch to another browser tab. Progress appears in the panel status line.

2.13WOCube Browse

A standalone file manager for the whole vcache folder, opened in a full-screen frame from the Creator 📂 Browse button, or reachable on its own. Toolbar: ↑ parent folder, ↻ refresh, ⬆ Upload, 📁 New folder, 🗑 Delete, 📥 Paste, sort by name/size/date, ⊞ grid or ☰ list view.

The search in the bar filters the folder you are looking at. Pressing Enter (or ⌕ search inside) also goes down into subfolders and shows the path of each result. Double-click takes you to the right folder with the file already selected. A slider sets the thumbnail size, and the chosen size is kept for next time.

⬇ zip folder (in the bar or from the right-click menu) downloads a whole folder as a single compressed file. It is the way to take material away from another machine.

The preview (double-click or right-click menu) shows images with zoom and pan and text files. For videos in formats the browser cannot play, including ProRes .mov and XDCAM .mxf, it offers ▶ Open with ffplay: the video opens in a player window on the server, without downloading anything. From the preview you can also rename the file. The name in the title is a field, Enter confirms and Esc cancels, and the preview stays open on that same file.

Warning

Copy destinations are paths seen from the server, not from the computer you are browsing from: a folder on the designer's PC cannot work. To take material away, use download or folder zip. Each workstation has its own list of destinations.

It is the only interface a Viewer sees after signing in: Viewers are always sent here, never to the graphics editor. An administrator can also restrict a Viewer to a single subfolder from User Management.

Playout rundowns

While browsing the DLS folders of a project, you can open the filmstrip above the browser: the show rundown as a row of slots numbered from 001. You browse the folders below, select the title cards and bring them up in the order they will go on air. The slot number becomes the file name (001 - TITLECARD.png), and that is why PLAY finds it already in order without needing to know anything about rundowns.

To keep a slot free there are ⎀ SPACE (one more number, the following ones shift) and ᵇ BIS (stays on the previous number: 9 → 9b, 9c, and from 10 onward nothing moves). When the title card arrives, you put it into the free slot and it takes that number, without moving the rest.

Putting a title card in a rundown does not duplicate it or remove it from the archive: the same photo stays where it was and is also in the rundown. Deleting a rundown therefore does not delete any title card.

Rundowns built this way appear identical in the PLAY DLS panel, where they go on air and can still be fine-tuned, see §1.13.

2.14Edit locks

Opening a template takes its lock automatically (renewed every 10 seconds while it stays open). If another user already has it open, Creator enters 🔒 Read only: the template stays visible but saving and exporting are blocked with a dedicated message. It is the same lock mechanism PLAY uses for buttons and categories, applied here to the whole template file.

2.15STILL and ANIMATED, the layer timeline

Every template declares what it is with the ▣ STILL | ▶ ANIMATED switch in the export bar. A STILL is a still image: the Layer panel is on the left and the timeline disappears. An ANIMATED template shows the layer timeline at the bottom, which replaces the Layer panel. Templates saved before this choice existed classify themselves based on their keyframes, markers, triggers and videos.

The layer row

Each object is a row, in stacking order (foreground at the top). Layers start collapsed: the ▶ button at the start of the row opens the property rows, and a click on the layer only selects it. Ctrl+click adds to or removes from the selection, Shift+click selects a range. The row icons sit in fixed columns (if a command is missing, its space stays empty): mask ◐, solo S, visibility, lock, SHY, duplicate ⧉ and linked copy ↳⧉, parent. Double-click the name to rename. Drag the row to change the order. The name column widens by dragging its edge.

The ⊘ parent menu of the row links the layer to a Null (with several layers selected, it applies to all of them). Properties without keyframes (position, scale, rotation, opacity) appear on the selected layers: ⏱ creates a keyframe at the current frame, and double-clicking the lane creates one at that point.

Decluttering and trimming

SHY hides a layer from the timeline without removing it from the output. The SHY switch in the header applies or removes the decluttering. The ⇤ ✂ ⇥ commands trim the selected layers at the playhead: start at playhead (Alt+[), end at playhead (Alt+]) or split in two (Ctrl+Shift+D), which leaves an exact copy above. On audio, trimming also moves the in and out points of the file. The command that extends the timeline up to the playhead is called Duration up to here.

The timeline clock runs in real time: frame fractions accumulate, so audio and video stay locked without audible corrections.

2.16Special objects

The ✚ Objects menu in the bar groups the less frequent tools. Selection, text, rectangle and image always stay in the bar.

Icons
46 vector icons in five families (placeholders, arrows, symbols, people and objects, media). Color and stroke are set in the Inspector. Color can be animated with keyframes.
Chat
An animated conversation inside a phone (iPhone, Android, Pixel) or on a free background: participants with their color, messages with their in frame, «typing…», times, header with avatar. The generator creates real, editable layers. In a STILL template the chat stops on the last message.
Magnifier
A rectangle or an ellipse that magnifies the image below it (factor, ring, shadow). It works on images.
Camera
A special rectangle (one per template) that frames the scene. Position, scale, rotation and perspective are animated with keyframes and the output shows only what it frames. View shows the framing in the canvas. ◧ Split shows the actual camera output next to the canvas, updated on every change.
Paper tear
A cutout with a torn edge (sides, depth, jaggedness, fibers), yellowed paper, grain, halftone and folds. The outline can be reproduced from its seed. The tear can also act as a mask for another object (in the mask shape list it has the 📰 icon).
Maps
On an image box, Map section: type an address and choose the style (street, satellite, light, dark, topographic), with labels over satellite and one or more placeholders, including intermediate stops. The map becomes a PNG in Media.
Animated path
On an open freeform shape: the stroke is drawn from 0 to 100 % (animatable), with an arrowhead at the tip or at both ends, dashes, line caps and glow.
Generators
On rectangles and ellipses: waveform, bars, equalizer, two-channel VU meter, radar, particles. Colors, amplitude, density, speed and seed. The waveform can follow a real audio file. Drawing is deterministic: canvas, preview and export match.
Audio
An audio layer from Media: start, in and out points, loop, mute, volume with keyframes, fades. The waveform is shown in the timeline. The audio is included in the mix of exported videos.
Web resources
Floating window to search for logos (from public brand archives and free images) or download an image from a link directly into Media.
PDF in Media
A PDF uploaded to Media becomes PNG: one page = one file, several pages = a subfolder with numbered pages.

Rectangular mask

Besides linear, radial and elliptical, the mask can be Rectangular: center, X side and Y side as a percentage of the box, feather from the inner edge to the outer one, invert. It can be animated with keyframes and also adjusted with the handles on the canvas (outer dashed line = end of the feather, inner = start).

2.17Text animation, Highlight, rich roll

Text animation (letters, words or lines coming in and going out) is driven by keyframes. IN progress and OUT progress are timeline properties, and holds stop the animation on a frame for the chosen time, so a text can follow the speech of an audio track.

Highlight runs a single band per line over the text, like a real highlighter: band color, opacity, height and position, radius, highlighted text color.

In rolls and crawls the text accepts formatting and logos. The roll editor (the same as in PLAY) writes bold, italic, colors and inline images [img:path|size]. Even and odd rows keep their styles even when the text comes from a PLAY variable. The Ω character map inserts symbols and curly quotes at the cursor.

2.18Formulas, Clock and data layers

Property formulas

In the Formulas section of the Inspector, a property can follow an expression instead of a fixed value: X and Y position, width, height, rotation, opacity, scale, 3D rotation, corner radius, background color and, for text, the text itself, its size and color. The formula overrides the typed value and the keyframes of that property, and it is recalculated on every data update from PLAY. Below each formula you see the result with the current values of the Data panel, or the error.

Fields
By name (valore1) or in braces if the name contains spaces or dots ({field name}, {classifica.0.Punti} for a cell of a matrix field).
Other layers
Barra1.x or {Barra 1}.destra: x, y, width, height, rotation, opacity, scale, destra (right edge), basso (bottom edge), cx, cy, keyframes and formulas included.
Variables
t (seconds), frame, fps, W, H and the name of each Clock.
Functions
min, max, clamp, map, lerp, se (if), round/floor/ceil/abs, sin/cos, fix (number with decimals), migliaia (thousands separator), pad, scala (round full scale), rango (standings position), maiuscolo/minuscolo (upper/lower case), onda (wave).

Examples: width valore1 * 9; text migliaia(valore1, 0) + "%"; color se(valore1 > 50, "#22c55e", "#ef4444"); position {Titolo}.basso + 20. With Value transition (seconds), position and sizes glide to the new value when the data changes, instead of jumping. In sequence exports the value arrives immediately.

Clock

✚ Objects → Clock (oscillator) creates a layer that is not visible on air and appears in the canvas as a small oscilloscope. Its value is a formula variable (clock1, …): waveform (sine, triangle, sawtooth, square, pulse, bounce, breathe, smooth noise, random steps), period, amplitude, center, phase, duty, bipolar output or from 0. Link to a layer writes the formula on a property of another layer, which oscillates between «From» and «To». On air and in preview the clock runs in real time, even on a STILL and during holds. In sequence exports it follows the frame, so two exports give the same result. In the canvas it follows the timeline playhead, or real time with the dedicated check box.

Data layer: rules for STILLs

✚ Objects → Data layer (rules) creates a layer with data rules of the same kind as timeline triggers, If / Then / Else or Switch / Case, with the actions «Change element style», «Set a data field» and «Jump to a frame», but without a frame. They apply when the template starts, on every data update from PLAY and on every play. A rule that stops applying removes the style it had set. In the Inspector the green box marks the branch that applies with the current data, and the canvas already shows the resulting styles. For data layers and Clocks, the Inspector shows only their own panel.

2.19Template generator

The GENERATE button in the header opens a window with the settings on the left and a live preview on the right (it is the export HTML: what you see is what goes out). Types: Title card (title and numbered rows, optional value), Poll (answers with percentage bars), Bar chart (columns with grid and automatic scale) and Standings. You choose kicker, title, subtitle, source, rows, style (dark panel, light editorial, solid color), solid or transparent background for the key, palette or free colors, two fonts and title capitalization. The design adapts to the template format.

Create new template opens the generated template (to be saved with a name). The configuration stays in the template and, when you reopen GENERATE, Update this template redoes only the generated layers and leaves the rest untouched. Text becomes data fields for PLAY. Bars, columns, figures, full scale and the highlighted item follow the values even on air, through formulas.

Standings

Standings use a matrix field classifica with the Squadra (team) and Punti (points) columns and the chosen statistics (G, V, N, P, GF, GS, DR, that is played, won, drawn, lost, goals for, goals against, goal difference). Each team works out its own position: points, then the tiebreak column, then matrix order, never tied positions. You choose a layout on 1, 2 or 3 columns, the zones (accent line on the top N, red on the bottom N), STILL or animated version (rows cascading in) and the duration of Repositioning: when points change, rows slide to their new position. A team without a name disappears with its whole row. The number of rows is fixed at generation time. To add rows, use Update this template. In PLAY the field links to a whole table (see §1.11).

2.20Slideshow in the timeline

On a collector box, Slideshow in timeline → Generate lines up the collector photos on a special timeline layer, in numbering order. You change the order by dragging the blocks, the edge of a block gives that photo its own duration, and each photo keeps its attributes as in the collector. You choose the transition (on the incoming photo), transition duration, Ken Burns micro-zoom, start frame (⏱ here) and loop. Update from collector adds new photos and removes those that are gone. Outside its stretch, the slideshow is not visible.

The ghost (👻 at the start of the layer, or Edit the ghost) is an image that never goes on air. Keyframes placed on the ghost apply to all photos, each from its own start and on every loop cycle. Moves and rotations are added to the attributes of the photo, scale, opacity and zoom multiply them. An animated perspective on the ghost carries its own perspective distance. A click on a photo leaves the ghost.

Note

The old automatic collector slideshow has been retired. A box that used it shows a notice in the panel: Generate converts it into a timeline slideshow, keeping duration and transition.

2.21Video export: formats, profiles and queue

The ⬇ Export images and sequences section of the Inspector (right before Template package) opens with 🎬 VIDEO. The Format block states how the template will be read on output (e.g. 1080i50) and flags non-broadcast combinations. A non-standard interlaced format stops the video export. Frame rates also include 23.976 and 24. NTSC rates use the exact ratios.

Interlaced
An interlaced template is exported in fields: two images per frame, half a frame apart, interleaved upper field first. Motion is as smooth as in an interlaced camera shot.
Profiles
Export profiles shared by the whole server, editable by administrators and editors through guided fields only: XDCAM HD422 50 Mbit/s with 8 mono channels, ProRes 4444 with alpha, ProRes HQ, MP4 H.264, MP4 H.264 proxy 540p. Factory profiles are locked 🔒 and are duplicated to customize them. You can choose several profiles at once: those with the same intermediate sequence share a single render.
Export now / Queue
Export now works in the page, with a progress bar at the bottom that stays even when you change selection and a ✕ button to cancel. ⏵ Queue sends the job to the server export queue, which runs it in the background on a copy of the template, at low priority: you can keep working or close the page. The queue box at the bottom left shows the jobs and can be moved by dragging it.
Where files go
All videos go to the project folder (not to Media) and are downloaded from the export bar. The MP4 H.264 proxy 540p profile is the lightweight file for viewing and approval (suffix _anteprima, frame rate halved at 50/59.94 fps). It is not meant for playout.

Export quality: images are rasterized at double resolution and scaled down with a premultiplied alpha filter (smooth diagonal edges, no halos). Colors of videos without alpha start from premultiplied alpha and are tagged BT.709 with video gamma. The audio duration is exactly that of the images. Before exporting, every media file of the template is checked: if one is missing, the export stops with the list. Elements animated by formulas or clocks are never frozen in the frames.

2.22Media and collectors: what's new

  • References that follow files. When you move or rename files and folders in Media, templates, exported HTML and PLAY projects update by themselves in the background, including the template open in Creator.
  • Dragging onto a collector. A file dragged onto a selected image box that has a collector is copied into the collector folder and shown in the box.
  • Deleting from a collector. When you delete from Media a photo that is in a collector folder, the photo is removed from the collectors (order, attributes, numbering, slideshow) instead of blocking the deletion. If it was in the box, the box moves to another photo. Deletion is still blocked if the photo is also used elsewhere in the template.
  • Thumbnails. Tiles use lightweight thumbnails generated by the server (up to 480 px, video on hover), even with hundreds of files and folders nested at any depth. Reveal in Media opens the folder and highlights the file. Move to… moves the selected files.

2.23Studio 3D

🎬 Studio 3D in the header opens the project studio: LED walls and monitors with physical sizes in meters and resolution in pixels (always square pixels, pixel-for-pixel mapping, tile grid, folds and curves, tilt for LED floors), desks, cutouts, and real cameras with body, lens and focal length. Each screen shows a template or a section of it. Fit proportionally spreads a canvas over several LED walls according to their size in meters. Saved views, Look through a camera in real time and 📸 PNG of the view.

Part III

External contributor portal

A reduced, separate access, at /pu/<project>, for people who need to upload material, update on-air data or approve graphics without a system account on PLAY or Creator.

3.1What "point C" is

Each PLAY project can have its own "project" users, completely separate from system users (admin/editor/viewer). They sign in with USER/PASSWORD on the /pu/<project> page, with a dedicated session that lasts up to 30 days. There are three roles, shown as badges at the top together with the user name:

Graphics Editorial Production

3.2Graphics role

A file manager restricted to the project media folder: ↑ Up, ⌂ Root, 📁+ New folder, ⇧ Upload files (also by dragging from the desktop), ⟳. Files can be moved between folders by dragging them. Images and videos have a direct preview. For each file, download it (⇩) or delete it (×).

Note

Folders can only be dragged as their file content, not moved as a whole folder. This is a technical limit of the current endpoint.

3.3Editorial role

A single row of tabs: ◱ DLS, then one tab for each exposed data item (each variable and table with its own name, with no intermediate levels), and finally ✉ Social. The DLS tab is a two-column browser, project templates on the left and DLS images/sequences on the right, with on-the-fly conversion of TGA files for preview. Each image has an Approve/✓ Approved button shared with the equivalent panel in Creator. The decision given here shows up immediately in the control room, as a colored dot on the thumbnail in the PLAY DLS panel.

Each image also has ✎ Rename: the editorial team can fix title card names without going through the designer. The link to the template that produced the image is not in the name, it is inside the file, so it holds. Both the approval state and the adjustments made on generated buttons follow the new name. If any PLAY button pointed to that file, the response says so. It is only a warning, projects are not touched.

To change the playout order instead, do not rename the files: use the rundown filmstrip.

Social moderation

The ✉ Social tab shows incoming messages from the connected platforms (currently Telegram: what the audience writes to the organization's bot), with author, time, text and photo preview. The list updates by itself. For each post: ✓ Approve, the photo is downloaded into the project and the post becomes a row of the SOCIAL data table (created automatically with the columns AUTORE, TESTO, FOTO, FONTE, DATA, that is author, text, photo, source, date), ready for playout, or ✕ Reject. Decisions stay visible in the "Already decided" section with the name of the person who decided.

In the control room, the natural way to put approved posts on air is the category data panel (§1.4) pointed at the SOCIAL table, with a template that has fields named like the columns: check the posts and press GENERATE.

3.4Production role

One tab for each variable or table exposed by the operator in PLAY. Saving is automatic (Saving… / ✓ Saved indicator at the bottom right) and pauses the automatic refresh while you are typing in a field, so the text is not overwritten as you type it. Paragraph variables have an ⇩ Export PDF button. The document keeps the bold, italics and alignment of the text, and if the project has a show logo (set by the operator in PLAY, see §1.2) it is embedded in the header at the top right.

3.5Project users

They are managed from PLAY, not from the portal: 👤 Users button on the project card (visible to editors/admins). From there: + New project user (full name, user, password, role) and a direct link to copy and share with the external contributor.

Note

Project users are never part of the project zip export/import: passwords never leave together with a file that could be shared or sent by email.

Part IV

Task+, WATCHOUT control

The application dedicated to controlling WATCHOUT 7: a surface of buttons that run lists of commands (cues) to the WATCHOUT server, play, pause, jumps to cues, variables, waits, with conditional triggers, reusable templates and full multi-workstation support.

4.1Introduction

Task+ answers on port 5085 of the same WOCube server and uses the same sign-in as PLAY and Creator. Task+ projects are separate projects: a project created in Task+ does not open in PLAY and vice versa. The server refuses cross writes, so a tab left open on the wrong application cannot corrupt anything.

The mental model is different from PLAY. Here a button does not put a graphic on air, it runs a task, an ordered list of cues that talk to the connected WATCHOUT server. The page is divided into three areas: the button grid in the center, the editor of the selected task on the right (collapsible), and the side panel with timelines, cues, variables, groups, reminders, memories and Companion. At the bottom, the WATCHOUT input mixer.

ConceptIn practice
TaskA button with its list of cues. When pressed, it runs the cues in order.
CueA row of the list: a verb (PLAY, STOP, PAUSE, CUE, WAIT…) plus its target.
MASTERThe workstation that actually runs the tasks. The others see the state and forward their presses.

4.2The bar: WATCHOUT, MASTER, Assets

The connection status to the WATCHOUT server lives at the top right. Double-click the address to change it. The light turns green when the event stream from the server is alive. Next to it:

  • ASSET, opens the WATCHOUT Asset Manager in a new tab. It lives at the same address as the server (dedicated port). It appears only when an address is set.
  • MASTER, gold if this workstation is the master, red if nobody is (nobody is running anything!), neutral if the master is another workstation. One click takes (or gives up) the role. See 4.10.
  • STOP ALL, stops every running and paused task.
  • Undo / Redo, Ctrl+Z / Ctrl+Y on programming changes. The history is per workstation and per object: undoing your own step does not sweep away the work your colleagues are doing at the same time.

4.3Grid, rundowns and categories

The grid is organized in rundowns (the pages, tabs at the top: double-click to rename them, × to delete them, with confirmation and a count of what they contain) and in categories, the colored bands that group the buttons.

Each category belongs to the rundown it was created in, but it can be pinned (📌) to appear on all pages, useful for emergency commands. In the category header: ⇔ brings all buttons to the same size, ↑↓ changes their vertical order, ⌫ empties it (with confirmation). Row height is set per rundown by dragging the edge.

Placement is free and stable: each button stays where you put it, with no automatic compacting.

  • Dragging, you move the real button, with no ghost image. Dropping between two buttons pushes the ones on the right just as far as needed (up to the first gap). Holding Shift while dropping creates a new row instead of slotting into the existing one.
  • + TASK, attaches a new button to the cursor. Click to place it where you need it, Esc or right-click to cancel.
  • Ctrl+D, duplicates the selected button next to it, in a free spot, with a unique name.
  • Align, with several buttons selected, stacks them in a column or places them side by side, working out the direction from their layout.
  • Labels, free text on the grid (zone titles, notes). They are created from the menu, moved like buttons and edited with a double-click.

Right-click on a button: duplicate, move to another rundown, save as template (4.9), STILL MISSING… to note down reminders (orange dashed border until the checklist is cleared), manual MARK RED. The check ✓ in the editor marks the task as OK or INCOMPLETE, and the badge stays visible in the grid.

4.4The button

Three areas: ✎ on the left opens the cue quick panel (4.5), the body selects (and a double-click opens the full editor), pressing the body runs the task. While running, a progress bar shows how many cues have been done. The borders tell the state: green running, amber paused (a paused task keeps its group), red if marked, orange dashed if it has reminders.

The button color comes, in order, from its own color, from the color of the first timeline it references, from the category.

The name can be automatic. From the Name menu you choose whether the button takes the name of the first timeline it references, of the first cue, the value of a variable, or keeps a name typed by hand. When the automatic option has nothing to show (empty task, empty variable) it falls back to the typed name.

Groups are mutexes: starting a task in a group stops the others in the same group. The group bar in the grid shows them on three rows with the state of each one.

4.5Programming cues

Two routes, same substance. The quick panel (✎) appears next to the button: one row per cue, verb, timeline, cue, milliseconds, for quick fixes, with the full editor → link. The full editor is the right column (collapsible to a tab) and adds everything else: conditions, triggers, check, multiple selection.

VerbWhat it does
PLAY / STOP / PAUSEControls the given timeline.
CUEJumps to the given cue of its timeline.
TIMEMoves the timeline to a precise time.
SET INPUT / SET VARSets a WATCHOUT input / a project variable.
SEND CUESETSends a cue set by name.
WAITPauses for N milliseconds before the next row.
BREAKStops the list here: the next press resumes from the following row.
OTHER TASKStarts another task by name.
TAKEPresses a button of a PLAY project (4.10).
MARK REDMarks a button in red, a visual signal between operators.
P20 …The Pixelhue group: controls the switcher directly (see below).

Controlling the Pixelhue

The Pixelhue switcher is driven from Task+ without going through Companion, which added an annoying delay in between. You add the device by address (+ P20 in the cue editor, with a status dot and ↻). From then on, screens and presets are read from the device by themselves and appear in the lists.

VerbWhat it does
P20 TAKE / P20 CUTTakes the preview of the chosen screens to air, with a transition or as a cut.
P20 MATCH PGMThe opposite: brings what is on air back to preview.
P20 PRESETRecalls a preset, choosing whether to apply it to preview, to program or globally.
P20 BLACK (FTB) / P20 FREEZEFade to black and freeze of the chosen screens, on, off or toggle.
P20 LAYER PRESET / P20 SOURCE TO LAYERApplies a preset to a layer, or changes its input. The layer is chosen from the list, or left as the one selected on the P20 at that moment.

Each row can be fire-and-forget: the list does not wait for the device response and moves straight on. Use it when what matters is speed, not confirmation.

The ▶ on the row runs that cue only, immediately, ignoring the condition and any disabling, and without touching the marks of the pass in progress. It lets you test a row while writing it.

Each row can carry a condition («run only if…», 4.7). While running, a colored line on the left side of the row shows where you are: green for the current row, amber for those already done.

  • Multiple selection, with the check marks: duplicate, move to another button, copy to another button, delete.
  • Dragging, the ⠿ handle reorders within the list and moves the cue to another button when dropped on the grid.
  • Ctrl + change, holding Ctrl while changing the timeline (or the cue) of a row changes all the rows that referenced the same timeline (or the same cue). It is the quick way to retarget a whole task.
  • Unnamed cues, lists normally show only named cues. The switch at the top of the list shows them all.
  • ⏸ BREAK within reach, besides the drop-down, BREAK can be added from its own button next to + add cue…. It is the verb used most often, because it is the sync point of the list.
  • ⊕ on the row, rows that have a timeline show a quick menu that creates the next row on the same timeline, already targeted: PLAY, STOP, PAUSE, CUE, TIME or BREAK. Once you have written a PLAY, the STOP and CUEs that follow are almost always on the same timeline, so you do not have to choose it again every time.

4.6Trigger: the press switch

A button trigger is a switch/case evaluated only when the button is pressed, nothing starts by itself. Cases are checked in order. The first true one wins and decides the action: run the cues, start another task, stop, mark/unmark. If no case is true, the press does nothing. To get a default behavior, add an ALWAYS case at the end (there is a dedicated button).

Next to each case the editor shows TRUE / false / INCOMPLETE in real time. A condition left half done does not count as false: it is skipped, so an incomplete case never steals the press.

4.7Conditions

The same conditions are used by triggers and by individual cue rows:

TypeTrue when…
ALWAYSAlways. The default case.
VARIABLEA project variable satisfies the comparison (=, ≠, <, >, contains…).
TIMELINE, stateThe timeline is playing / paused / stopped.
TIMELINE, cueThe timeline has passed (or not) a given cue.
TIMELINE, timeThe timeline time satisfies the comparison.
INPUTA WATCHOUT input satisfies the comparison.
CUE SETA cue set is active.
TASKAnother task is running / paused / stopped.
GROUPSomething is (or is not) running in the given group.

4.8The side panel

  • TIMELINES, the live list of the server timelines, with the color bar at the start (click it to choose the color, which then tints buttons and cue rows), test commands play/pause/stop, time and countdown. The eye hides timelines you do not need («+N hidden» to see them again). Below, the list of cues of the chosen timeline fills all the remaining space: click selects, double-click adds the cue to the open task, dragging brings the cue onto a button. With Ctrl you select several timelines or several cues in order, and the order matters for templates (4.9).
  • VARIABLES, the project variables. Those marked «in view» 👁 also appear above the grid, always in sight.
  • GROUPS, the mutex groups and their state.
  • REMINDERS, the programmable items of the STILL MISSING… checklist.
  • MEMORIES, WATCHOUT "saves" elements by putting their text on the clipboard. This is the area where you paste them to keep them in the project, with a name, and copy them back to the clipboard when needed. The copy result shown is the real one (outside HTTPS the clipboard is not always accessible).
  • COMPANION, generates and copies the token the Companion module uses for this project (4.10).

At the bottom of the page is the input mixer: one strip per WATCHOUT input with fader and value, in the style of the PLAY audio mixer.

4.9Task templates

A template is a list of cues saved to be applied again. You create it by right-clicking a button (Save as template) and apply it in two ways:

  • from the cue editor: right-click on the list → APPLY TEMPLATE, the template cues are appended to the open task;
  • from the TIMELINES panel: select one or more timelines (or cues) and right-click to apply the template to those targets.

The rule for applying with targets: a single task is created, and each template row that talks to a timeline is repeated once per selected timeline, in selection order. Rows without a timeline (BREAK, WAIT, SET VAR…) stay single, in their place, because they are the sync points of the list.

Example
Template CUE · BREAK · PLAY applied to timelines A and B → CUE A, CUE B, BREAK, PLAY A, PLAY B. The targeted cue number is kept: between timelines built the same way, the numbers match.

Names of tasks created from a template are made unique, and each copy rebuilds its own internal references: two tasks never contaminate each other. To delete a template: × next to the entry in the menu.

4.10Multiple workstations and integrations

The MASTER runs, the others watch. In a control room with several Task+ workstations open on the same project, only one, the master, actually runs the tasks and talks to WATCHOUT. The other workstations see the same state (progress, pauses, groups) and every press they make is forwarded to the master, which runs it. If nobody is master, the button in the bar turns red: there is no one to run the presses.

  • Synchronization, programming changes made on one workstation appear on the others within a few seconds. The task open in the editor is protected by a lock with the name of whoever is editing it.
  • Companion, the wocube-play module also drives Task+. In the configuration you enter project and token (generated in the COMPANION tab). The module offers the task press action, status feedback and ready-made presets per category.
  • PLAY → Task+, in PLAY the trigger system has the TASK action: a PLAY take can press a Task+ button.
  • Task+ → PLAY, the TAKE verb presses a button of a PLAY project. The loop closes in both directions.
  • MIDI, buttons can be bound to MIDI notes/controls received by the server. Here too, the master runs them.
  • Pixelhue, the switcher is controlled directly from cues (4.5), with no intermediaries.