LTCast LTCast
/ OSC Output
Manual › OSC Output

OSC Output

OSC (Open Sound Control) is a message protocol over UDP used by many media servers, VJ software, and show control applications. While a song plays, LTCast sends the current timecode as an OSC message on every new frame, giving the receiving application a continuous stream of position data it can act on.

Pro. LTCast sends MTC, Art-Net and OSC timecode only while the session is Pro (a Pro licence or an active trial). Without Pro — the free version, an expired trial or a lost licence — no OSC messages are sent: the OSC light in the status bar turns amber and reads Needs Pro, and Pre-Show Check warns about it. This covers the transport, song and cue messages described below as well.

Enabling and configuring OSC output

Open Settings → Outputs → OSC Output and tick it. A target list appears. Each row has:

  • an enable checkbox — untick it to pause that target without deleting it;
  • the IP address of the device running the OSC receiver — use 127.0.0.1 to send to software on the same machine;
  • the port the receiver is listening on (1–65535) — check the target application's OSC input settings for its number;
  • the format template (see below).

Click + Add target to send to several receivers at once, each with its own address, port and template — no external OSC router is needed. A new target starts as 127.0.0.1, port 8000, Generic.

Format templates

Each target has a template that decides the address and arguments of the timecode message:

  • Generic (/timecode) — one message to /timecode carrying five integers: hours, minutes, seconds, frames and frames-per-second (a whole number, so 29.97 is sent as 30 and 23.976 as 24). Use it for custom OSC mappings or software not listed below.
  • Resolume Arena — one message to /composition/tempocontroller/timecode carrying the timecode as a text string (HH:MM:SS:FF) and the frame rate as a float. It carries the position only — LTCast sends no BPM or tempo over OSC.
  • Disguise (d3) — the same string-and-float message to /d3/showcontrol/timecode.
  • WATCHOUT — the same string-and-float message to /watchout/timecode.

There is no custom-address template for the timecode stream; use Generic if the receiver can map /timecode. (Triggers are different — an OSC trigger sends exactly the address and arguments you give it.)

OSC is fire-and-forget (UDP). LTCast sends the message and does not wait for any acknowledgement unless you turn on OSC feedback. If the target device is not responding, check: the IP and port match the device's OSC input configuration, the device's OSC input is enabled, and no firewall is blocking UDP on the configured port.

OSC message rate

LTCast sends one plain OSC message (not an OSC bundle) to each enabled target for every new frame while a song plays. At 25 fps that is 25 messages per second per target; at 30 fps, 30. The rate is tied to the SMPTE frame rate of the playing song, not to any screen refresh rate. While playback is paused or stopped no timecode messages are sent. Most OSC receivers handle this volume without issue, but verify that your target application does not throttle or drop UDP packets at the incoming rate.

Other messages LTCast sends

Besides the timecode stream, an enabled OSC output also sends:

  • /transport/play, /transport/pause and /transport/stop (no arguments) when you press Play, Pause or Stop. Panic sends /transport/stop too.
  • /song with the song name (string) and its zero-based position in the setlist (integer) when a song is loaded.
  • Any OSC trigger you have set up in the Triggers panel.

All of these go to every enabled target.