Skip to content

Engine performance

The Monitor tab shows how the show machine is coping. Its Engine panel tells you whether the machine has headroom to spare or is close to dropping frames, so you can deal with it before the audience sees a stutter.

Open the Monitor tab

Click Monitor in the top bar. In a narrow window, the tabs are in the ☰ menu at the left of the top bar. You can also open the command palette and run Go to Monitor.

The tab has four panels:

Panel What it covers
Engine Frame rate, Cook Time, Uptime, Preview, Dropped Frames, GPU Memory, GPU, CPU, RAM
Network The connection between this device and the show machine. See Network
Projectors Power state, lamp hours and faults from projectors with network control. See Projector health
Logs Messages from the show machine. See Logs

The Monitor tab: the engine panel at 60 FPS with its cook time, uptime, dropped frames and GPU, CPU and RAM; the Network panel with its latency; two projectors reporting, one with a lamp warning; and the Logs panel

Nothing on this tab changes the show. The Engine, Projectors and Logs panels come from the show machine, so every connected device shows the same figures, and you can keep the tab open on a second device while you work on the first (see Join from another device). The Network panel is different: it measures the device you're looking at.

Empty panels are normal for a moment

Until the first reading arrives, the panel reads Waiting for stats.... If it never fills in, this device isn't receiving data from the show machine. Start with Network.

When the show runs on more than one machine

When several show machines play one show (see More than one show machine), a strip across the top of the tab lists Cluster, then each machine in the show, starting with the one this device is connected to. The tab opens on Cluster, and the highlighted name shows which view you're in. Moonshine servers on the network that aren't part of this show don't appear.

Cluster has two panels:

  • Machines: a table with a row for each machine. Click a row, or the machine's name in the strip, to open that machine's view. Right-click a row for Open and, if you're an administrator and the row is a follower, Resync (see More than one show machine).
  • Logs: every machine's messages in one list, in time order, each line marked with the machine it came from. See Logs.
Column What it shows
Machine Its name. The machine this device is connected to is marked connected.
Role Leader or Follower.
State Online; Late if it answers but hasn't sent a new reading for 10 seconds; Offline if it doesn't answer. An offline machine's readings are left blank, since its last ones are out of date.
FPS, Cook, CPU, GPU, RAM, Dropped, Uptime Its Engine readings (below), updated every 2 seconds.
GPU mem Graphics memory in use, out of the card's total, in GB.
Sync Where it stands in the show. A leader on the show's clock reads Synced. A follower shows the state of its copy of the show, such as In step or Catching up.
Version The Moonshine version it runs.
Outputs How many projectors it drives.

Choose a machine in the strip to see its own view. For the machine this device is connected to, that's the four panels above. For any other machine, it's that machine's Engine and Logs panels: Network and Projectors are shown for the connected machine only. If a machine leaves the show while you're viewing it, the tab goes back to Cluster.

What the panel reports

Reading What it is
FPS Frames per second the engine is producing, rounded to a whole number.
History The sparkline beside the FPS number. It holds the last 60 readings, about one a second, so it covers roughly the last minute.
Cook Time Milliseconds of CPU time spent on the last frame, and how much of the frame's time budget that is, for example 8.4ms (50% budget). The bar below shows the same percentage. Time a frame spends waiting on the graphics card doesn't appear here; it shows as a falling FPS.
Uptime How long Moonshine has been running on the show machine, as 45s, 12m 30s, 2h 5m or 3d 18h.
Preview The live preview sent to browsers: its size, frame rate, bitrate, number of viewers and encode time. When the show machine holds the preview back, the line turns amber and ends with the rate it's held at, such as held at 30 fps. Shown for the connected machine while the preview is streaming.
Dropped Frames Frames dropped since Moonshine started on the show machine. It's a running total, so it only goes up.
GPU Memory Graphics memory in use, out of the card's total, in MB, with a bar for the percentage.
GPU / CPU / RAM Usage percentages, each with a bar. On a Mac, or a Windows machine without an NVIDIA card, GPU reads 0%, because Moonshine reads GPU load from the NVIDIA driver.

GPU, GPU memory, CPU and RAM are the whole machine

These four readings cover everything running on the show machine, not only Moonshine. A browser, a media encoder, an antivirus scan or a file copy all add to them. Read them as how much room is left on the computer. FPS, Cook Time and Dropped Frames are Moonshine's own.

Reading the colors

The panel colors its readings so you can judge them at a glance.

Reading Normal Amber Red
FPS, in a 60 fps show 55 and above 30 to 54 below 30
FPS, in a 30 fps show 28 and above 15 to 27 below 15
Cook Time bar up to 60% of budget 61% to 85% above 85%
Dropped Frames holding still rising since the last reading, about a second ago —
GPU Memory bar up to 70% above 70% above 90%

The budget figure stops at 100%

A frame that runs over its budget still reads 100% budget. The overrun shows up as a falling FPS and a rising Dropped Frames count, so read the three together.

What healthy looks like

  • FPS is green and flat. A steady 60 is healthy, and so is a steady 30 in a 30 fps show. The sparkline should be close to a straight line.
  • The Cook Time bar is green and stays about the same width while you scrub, warp and play. Headroom matters: a show at 55% of budget survives a heavy cue, and one at 90% doesn't.
  • Dropped Frames holds still while the show plays, whatever it reached during load-in.
  • GPU Memory is well under the total, with room for the largest media you haven't played yet.

Take a reading in rehearsal, with real content and the full rig running, and write it down. That's your baseline for the run.

The engine panel in a healthy state: 60 FPS in green with its history, a green cook-time bar at 37% of budget, uptime, no dropped frames, and GPU memory, GPU, CPU and RAM

When cook time climbs

A rising Cook Time means each frame takes longer to produce. Everything looks fine until the bar is nearly full. Then there's no headroom left, and the next heavy moment (a cue, a transition, a large file starting) arrives late.

On the wall, motion stutters, cues land a beat after you trigger them, and warp handles lag behind the pointer.

Work through these in order:

  1. Find the trigger. Watch the bar while you do one thing at a time: switch to the Warp tab, start playback, run a transition, add a projector. The action that moves the bar is the cost.
  2. Check each projector's resolution. In a projector's Settings, Resolution Width and Height set the size of the image the engine renders for it. A projector set far above the resolution of the device it feeds spends time on pixels nobody sees. See Projectors.
  3. Check the media. A clip encoded far above the resolution you project costs time on every frame. Re-encode heavy files closer to the output resolution. See Supported file formats.
  4. Switch off outputs you aren't using. Open the projector pane from the top bar. Its sidebar has a card for each projector, with an Output: On / Output: Off pill (Output: — when the projector has no output). A projector whose output is off isn't drawn to a display, so if the readings recover when you switch one off, you've found the cost. See Outputs.
  5. Check the log at the same moment. Open the Logs panel and look for warnings whose times match the climb.
  6. Clear the machine. CPU and RAM cover the whole computer, so close everything on it that isn't the show.

When dropped frames appear

A dropped frame is one the audience never saw. A few during load-in, while a large file is read or a project opens, are normal. Watch for a count that keeps rising while the show plays, and for dips in the FPS sparkline.

  • Rising, with a green cook time. The cost comes in bursts. Find the moment it steps up (a clip starting, a transition, a device joining) and use the times in the Logs to pin it down.
  • Rising, with an amber or red cook time. The machine is over budget. Work through the list above.
  • Rising while every reading looks healthy. Check the Network panel. If this device isn't receiving data smoothly, the figures on your screen may be out of date.

Note the count before the heaviest cue

The count is a running total, so the difference between two readings is what was dropped in between. Note it before the heaviest sequence in rehearsal, and again after.

When GPU memory fills

The bar turns amber above 70% and red above 90%. It measures the whole card, but Moonshine is usually the largest user on a show machine. It climbs during load-in as content and outputs are created, then levels off.

If it stays red, lower projector resolutions, play fewer or smaller sources at once, or remove media you no longer use from the project (see Organizing media). A machine that runs out of graphics memory during a show doesn't recover cleanly.

A pre-show pass

  1. Open Monitor with the full rig running: every projector on, real content, real cues.
  2. Run the heaviest sequence in the show.
  3. Check that FPS stays green and flat, the Cook Time bar keeps clear headroom, and GPU Memory stays out of the amber.
  4. Check that Dropped Frames holds still through that sequence.
  5. Check Network and Projector health, then clear the Logs so anything that appears during the show is new.

In this section

  • The show machine's screen: the status panel on the show machine's own display, readable without a browser.
  • Network: connection status, latency, and what to do when the connection drops.
  • Projector health: power state, lamp hours, faults, and remote control over the network.
  • Logs: the live message stream and its level filter.