Stage Recorder User Interface

From MXWendler Wiki
Jump to navigation Jump to search

Stage Recorder — User Interface

Stage Recorder is a professional multi-channel media recorder and player. This page documents the on-screen interface. For controlling the application over the network, see Stage Recorder OSC Interface and Stage Recorder MQTT Interface.

The interface is a single full-screen window built with Dear ImGui on an OpenGL surface. It is designed for touch panels as well as mouse operation — every text field opens an on-screen keyboard when focused.

Window Layout

The window is divided into a large content area and a tab bar along the bottom edge. The tab bar switches the content area between the four main views and also hosts global actions:

Tab / Button Purpose
Channels Live recorder/player operation — the main working view. See #Channels Tab.
Schedule Time-based recording tasks and iCal import/export. See #Schedule Tab.
Files Browse, preview, load and delete recorded media. See #Files Tab.
Settings Inputs, outputs, recording/playback profiles and system configuration. See #Settings Tab.
(right edge) Current date and time.
Save & Restart Appears in red only when a setting was changed that requires a restart to take effect. Saves the project and offers to relaunch the application.

On-Screen Keyboard

Every editable text field (channel names, project name, profile names, filter text, settings values, passwords) opens a virtual keyboard when tapped or clicked. Press Enter to commit; the keyboard is intended for kiosk/touch installations without a physical keyboard.

Channels Tab

The Channels tab is the primary operating view. It shows:

  • a project name bar at the top,
  • one panel per licensed channel (up to four side by side per screen width),
  • a shared Channel Control strip at the bottom for synchronised operation.

The number of channels is determined by the license dongle. Without a dongle the application starts with no channels and shows a warning.

Project Name Bar

Displays the current project name and its file path. The ... button opens a popup to rename the project; renaming also moves the project's working directory.

Channel Panel

Each channel is an independent recorder and player. A channel automatically shows the player when a file is loaded, and the recorder otherwise.

The panel contains, top to bottom:

  • Channel name — click to edit.
  • ⚙ (cog) button — toggles the channel between operation mode and settings mode. In settings mode the channel shows its recording-profile and playback-profile selectors instead of the video preview.
  • Video preview — the live camera image (recorder) or the current frame (player). Multi-source recording profiles show a grid of source previews.
  • Sound button — overlaid on the top-left of the preview. When more than one player is active, this acts as a radio button selecting which channel's audio is routed to the outputs (only one channel plays audio at a time).
  • Seek slider — playback position / duration; drag to seek (player only).
  • Transport controls:
    • Player: skip-to-start, previous marker, next marker, ... (open file), Play, Pause, Stop.
    • Recorder: Record and Stop (shown when no file is loaded).
  • Marker controls / aux panel — cue-point list. The aux panel opens automatically when the first marker is set during recording, or when a loaded file already contains markers.

Two-Stage Stop (Soft Stop)

The player Stop button is two-stage when soft-stop is enabled (default):

  1. First press — pause and rewind to position 0 (the file stays loaded).
  2. Second press — unload the file (the channel returns to recorder view).

Soft-stop can be disabled via Settings → /Playback/Use Softstop. The same behaviour applies to the `stop` command received over OSC/MQTT.

Recording → Playback Hand-off

When a recording is stopped, its cue markers are written into the file as metadata and the finished clip is immediately opened in the same channel's player (paused at position 0), so it can be reviewed at once.

Channel Control (Synchronised Operation)

The strip below the channel panels drives several channels at once. Select the target channels with the checkboxes, then use the shared transport row:

  • skip-to-start · previous marker · next marker · Play · Pause · Stop · Record (red) · Set marker,
  • a shared seek slider,
  • Open sync-set (📄) and Save sync-set (💾) buttons.

A sync-set (`.mxr_syncset`) stores, per channel, the loaded filename and the channel selection, so a multi-channel arrangement can be recalled in one action. Internally, these controls emit the same commands as the network protocol, fanned out to the selected channels — see Stage Recorder OSC Interface#Sync Control.

Schedule Tab

The Schedule tab manages time-based recording tasks. Each task starts (and optionally stops) a recording on one or more channels at a given wall-clock time.

  • Create new task — opens a dialog with a calendar date picker, start-time spinners (hour/min/sec), an optional Include stop duration, and channel checkboxes.
  • Export .ics — writes all tasks to an iCal file (RFC 5545).
  • Import .ics — drag a `.ics` file onto the window while the Schedule tab is open. A dialog lists every calendar event with a checkbox to import it and a channel assignment; events without an assigned channel are highlighted and skipped. Generic calendar events (with an end time) are imported as fixed-duration recordings.

Each row in the task list shows the task name, a live countdown, and the scheduled time. Tasks can be Edited or, with Ctrl+Click on the ✖ button, deleted. A channel that is currently mid-recording under a scheduled stop shows a red Recording indicator.

Tasks are stored in the project file and persist across restarts. See also Stage Recorder OSC Interface#Scheduler.

Files Tab

The Files tab browses recorded media within the current project directory.

The header offers a project selector (choose which project directory to browse), a Filter field (comma-separated substrings), Reload (rebuild thumbnails/metadata) and Open project directory in file browser.

Each file row shows:

  • the file name with its duration and size,
  • a thumbnail (generated in the background and cached; click to enlarge),
  • one Player n button per channel to load the file into that channel (the button is disabled/highlighted if the file is already loaded there).

Right-click a file for a Delete option (files in use cannot be deleted). Sync-set files (`.mxr_syncset`) instead show a Sync Control button that recalls the stored arrangement.

Thumbnails and file metadata are cached on disk and validated against each file's modification time, so browsing large directories stays responsive.

Settings Tab

The Settings tab is password-protected (default key `123456`, configurable at `/System/SettingsKey`). It presents several tables:

Table Contents
Input pairs Per channel: a display name, the video capture source, a capture size (Default, a preset, or Custom WIDTHxHEIGHT), and the audio capture source.
Output pairs Per channel: a display name, the target monitor (video output), and the audio sink.
Recording profiles Per channel: name, selected input pair(s), codec, and GOP size. Multi-source recording is available; sources whose resolution does not match the first selected source are disabled. GOP does not apply to ProRes; NVENC H.264 enforces a minimum GOP of 4.
Playback profiles Per channel: name and the set of output pairs the player feeds.
System configuration A raw editable tree of every application configuration key (network ports, MQTT settings, etc.). Boolean, integer and string values are edited in place.

Changing most hardware-related settings sets the Save & Restart flag: the change is stored but only takes effect after the application is relaunched.

The full configuration key reference is on the Stage Recorder OSC Interface#Configuration Reference page.

Secondary Monitor Output

Every non-primary monitor detected at startup receives a borderless output window that displays the channel routed to it (via the output-pair Monitor setting). These windows carry the live program image full-screen with no UI chrome.

See Also