← All AV apps

R1 Playout Clock for Millumin — User Guide

For version 0.3.2

This guide walks you through getting R1 Playout Clock for Millumin running, hooked up to Millumin 4 or 5, and displaying timecode on screen. For version info, requirements, and legal details, see the down low.

1. What it does

R1 Playout Clock for Millumin turns Millumin's OSC stream into a giant playout countdown for the entire live event production team — director, TD, A1, stage manager, lighting. Everyone watching multi-view stays in sync on every cue, with yellow/red warning colors as the clock runs out. Nobody has to ask "how long is this?" over comms.

The app is dual-purpose by design — pick the path that fits your show, or use both at once:

The clock can track a single Millumin layer, a comma-separated priority list of layers (the first active layer in your list wins), or any layer with the * wildcard.

2. Install

  1. You'll receive a .zip in your trial email. Download it and double-click to unzip.
  2. Drag R1 Playout Clock for Millumin.app into your /Applications/ folder.
  3. Double-click the app to launch it.

The first time you open the app, macOS may ask you to confirm because it's downloaded from the internet — click Open in that dialog. Future launches skip this step.

3. Set up Millumin to send OSC

Millumin needs to be told where to send OSC. Steps are similar in Millumin 4 and 5 — open the Device Manager with Cmd+K and go to the OSC tab.

  1. Set the feedback target:
    • Same Mac as Millumin → 127.0.0.1
    • Different Mac → that Mac's IP address on your network. Both machines must be on the same network.
  2. Set the feedback port to 9999 (the clock's default).
  3. Enable Send Feedback.
  4. Take note of the exact name(s) of the layer(s) you want the clock to follow — including spaces and capitalisation. Millumin OSC addresses are case-sensitive. The clock can watch a single layer, a comma-separated priority list of layers, or any layer using the * wildcard. See section 5.1 for the full layer-watching reference.

Once Millumin starts playing media on that layer, the clock's status bar should show OSC live with the layer name, and the time fields should start updating.

4. The interface at a glance

5. Settings

All settings live in one panel, organized into four sections: Millumin / OSC, NDI Output, Display, and About.

5.1 Millumin / OSC

Click Apply to restart the OSC listener with the new settings. The status bar shows the currently-followed layer name (e.g. "OSC live (lower-third)"), or what you're watching for when nothing's active (e.g. "no OSC (watching: 16x9-center, lower-third, + any other)").

5.2 NDI Output

The NDI feed is a 1920×1080 progressive Full NDI® source — uncompressed BGRA, not NDI HX. Both Full NDI and NDI HX receivers can ingest it.

Click Start NDI to begin broadcasting. The button changes to Stop NDI while running, and the status bar shows NDI on with a sent / dropped counter.

On the receiving side, open NDI Studio Monitor (or OBS with obs-ndi, or vMix's NDI input). The source named above will appear in the NDI source list once Start NDI has been clicked.

5.3 Display

5.4 About

Shows the app version, NDI® attribution (NDI® is a registered trademark of Vizrt NDI AB), and a link to the down-low page for full credits and licenses.

6. Millumin 4 vs Millumin 5

Millumin changed how it sends timecode between versions 4 and 5, so the clock has a version setting.

Pick the version that matches the Millumin you're controlling. If you're not sure, try v4 first and switch if nothing matches.

7. Running a show

  1. Open the clock app.
  2. In Settings, set Millumin version, port, and the layer name you'll be following. Click Apply.
  3. Confirm the status bar shows the OSC indicator going live once Millumin starts playing media on that layer.
  4. If you want NDI output, set the source name and frame rate, then click Start NDI.
  5. Drag the clock window to the display you want, or fullscreen it via the OS-level window controls.
  6. Start playing media in Millumin. Time values should appear and update live.

8. Troubleshooting

Status bar shows "no OSC" and never goes live

Millumin isn't sending OSC, or it's sending to the wrong place. Check:

OSC is arriving but no values appear

OSC is being received, but it's not matching the layer you've configured. The status bar shows the watched layer name in parentheses next to "no OSC". Either:

Click Apply to restart the listener with the new layer name.

"Cannot bind to port" error

Another app is already using the listen port. Either quit that app, or change the clock's listen port in Settings → Millumin / OSC (and update Millumin's feedback port to match).

Receiving OSC from another Mac, but no data arriving

Both machines need to be on the same network, and macOS's firewall on the clock Mac must allow incoming UDP on the listen port. Check System Settings → Network → Firewall.

NDI source doesn't show up in OBS / vMix / Studio Monitor

Times look wrong, or only Elapsed updates

Likely a version mismatch — the clock is set to Millumin 4 but Millumin 5 is running, or vice versa. Switch the Millumin version in Settings, click Apply, and try again.

Color warnings (yellow / red) don't appear

The warnings trigger only when Remaining is at or below 10 seconds and above 0. Also requires that TRT is being received correctly (so the clock knows what "remaining" means). If TRT shows 00:00, no warnings will fire.

9. Getting help

If something's not working and the troubleshooting above didn't sort it, reply to your trial email — that's the fastest way to reach us during the testing period. For anything else, see the contact page.