Automations

OSC

Connect an OSC controller to SwitchEffect over UDP, with setup steps, working message examples, and a public command reference.

On this page

Connect an OSC sender

  1. On the SwitchEffect device, open Settings → Automation and turn on Enable OSC.
  2. Note the selected UDP port. The default is 49995.
  3. Start the switcher. OSC listens while its runtime is running.
  4. In your OSC sender, enter the SwitchEffect device’s reachable IPv4 address and that UDP port. Allow local-network access where the OS asks for it.
  5. Set a button to send /switcheffect/v1/me/1/cut with no arguments. With your next shot on Preview, pressing it performs a cut.

OSC must be enabled even when a controller knows the IP address. Use a trusted network: OSC is a network control connection, not a pairing-key service like MCP.

Addresses and argument types

Addresses begin with /switcheffect/v1. Most parameterized commands take one OSC string containing name=value&name=value. Send that text as an OSC string, not as separate numeric arguments or an ordinary UDP text packet.

Address:   /switcheffect/v1/me/1/preview/set
Type:      string
Argument:  source=7

source=7 means the numeric input/source ID shown in your switcher’s input configuration. It is not the seventh tile in a multiview. Public M/E, AUX, keyer, media-player, macro-slot, and media-slot numbers are one-based.

Percent-encode reserved characters inside packed values: Evening News can be sent as Evening%20News. A command without parameters normally takes no arguments; supported button commands also accept a press value of 1 or true. Release values of 0 or false are ignored.

Useful controller buttons

Prepare a shot, then take it

/switcheffect/v1/me/1/preview/set
  string: source=7

/switcheffect/v1/me/1/auto
  no arguments

Set Preview first, then trigger Auto when you want to transition. /program/set assigns Program directly; use Cut or Auto when you intend to transition from Preview.

Load a show and run a cue

/switcheffect/v1/run-of-show/load
  string: show=Evening%20News

/switcheffect/v1/run-of-show/cue/run
  string: cue=Welcome

Use unique names for shows, cues, presets, and preset groups. Matching ignores case and normalizes whitespace. Cue lookup uses the loaded show; archived shows cannot be loaded.

Create a presenter title

/switcheffect/v1/run-of-show/title/create
  string: type=lower-third&headline=Rae%20Chang&detail=Host&run=true

The loaded show supplies the title’s saved appearance defaults. Use type=message for a full-screen message. Omit run, or set it to false, to prepare the title without showing it.

Title creation also accepts positional arguments: type string, headline string, optional detail string, optional run value, and optional request-ID string. Use an empty detail string when supplying later arguments without detail.

"lower-third", "Rae Chang", "Host", 1

If your sender retries title creation, supply the same optional UUID request-id for retries of the same request to avoid duplicate titles. Generate a new UUID for a new title request.

Supported commands

Every suffix below follows /switcheffect/v1. Parameters shown with = are packed into one OSC string. Names and numbers in examples are illustrative; replace them for your switcher.

Switching and keyers
Address suffixArgumentEffect
/me/1/cutnoneCut the primary M/E.
/me/1/autononeAuto transition on the primary M/E.
/me/1/program/setsource=7Set Program source.
/me/1/preview/setsource=7Set Preview source.
/me/1/transition/setstyle=mixSet the current transition style. Supported values are mix, dip, wipe, sting, and dve.
/me/1/preview-transition/setenabled=trueTurn Preview Transition on or off, or toggle its current state. Supported values are true, false, and toggle.
/me/1/ftb/autononeFade to Black action.
/me/1/ftb/rate/setframes=30Set Fade to Black rate, 1–250 frames.
/dsk/1/autononeAuto transition a DSK.
/dsk/1/on-air/setenabled=trueSet DSK on-air state.
/me/1/usk/1/on-air/setenabled=trueSet USK on-air state.
Routing, media, and macros
Address suffixArgumentEffect
/aux/1/source/setsource=7Assign an AUX/output source.
/macro/1/runnoneRun the macro in slot 1.
/macro/stopnoneStop macro playback.
/macro/continuenoneContinue macro playback.
/macro/loop/setenabled=trueSet macro looping.
/media/capture-stillnoneCapture Program as a still.
/media-player/1/still/setslot=1Assign a still slot to a media player.
/media-player/1/clip/setslot=1Assign a clip slot to a media player.
SuperScene layouts
Address suffixArgumentEffect
/superscene/preset/recallpreset=Two-Up&superscene=1Recall the uniquely named preset on SuperScene 1. superscene is optional and defaults to 1.
/superscene/preset/nextnone or superscene=1Recall the next displayed preset in the active group and search results. superscene defaults to 1.
/superscene/preset/previousnone or superscene=1Recall the previous displayed preset in the active group and search results. superscene defaults to 1.
/superscene/preset/search/setsearch=interviewSet the shared preset search term.
/superscene/preset/search/clearnoneClear the preset search term.
/superscene/preset/group/setgroup=Evening%20Rundown&superscene=1Select the uniquely named Preset Group for a SuperScene. superscene defaults to 1.
/superscene/preset/group/clearnone or superscene=1Clear the selected Preset Group to show All presets. superscene defaults to 1.
/superscene/cascade/onnoneTurn Cascade on. Requires two SuperScenes.
/superscene/cascade/offnoneTurn Cascade off.
/superscene/cascade/togglenoneToggle Cascade. Enabling it requires two SuperScenes.
Run of Show and titles
Address suffixArgumentEffect
/run-of-show/loadshow=evening-newsLoad the uniquely named, unarchived show.
/run-of-show/cue/runcue=opening-cueRun the uniquely named cue in the loaded show.
/run-of-show/title/createPacked string or 2–5 positional argumentsCreate a title cue in the loaded show; see the title example below.
Framing and drawing
Address suffixArgumentEffect
/input/punch/insource=7&duration=0.25&zoom=1.5Step the selected source toward the chosen punch zoom.
/input/punch/outsource=7&duration=0.25&zoom=1.5Step the source back toward its original framing.
/input/punch/fullsource=7Immediately restore original framing, preserving the configured crop.
/input/punch/togglenone (or button press 1)Toggle framing. With no parameters, use the input, duration, and zoom selected in the Punch-In panel.
/input/punch/togglesource=7&duration=0.25&zoom=1.5Toggle framing. With no parameters, use the input, duration, and zoom selected in the Punch-In panel.
/telestrator/onnoneTurn the Telestrator on.
/telestrator/offnoneTurn the Telestrator off.
/telestrator/togglenoneToggle the Telestrator on/off state.
/telestrator/undononeUndo the last Telestrator drawing change.
/telestrator/redononeRedo the last undone Telestrator drawing change.
/telestrator/clearnoneClear the Telestrator drawing.
Outputs and saved startup state
Address suffixArgumentEffect
/recording/startnoneStart recording.
/recording/stopnoneStop recording.
/recording/filename/setname=Live%20ShowSet the next recording filename.
/streaming/startnoneStart streaming.
/streaming/stopnoneStop streaming.
/streaming/low-latency/setenabled=trueSet low-latency streaming.
/streaming/service/setname=Primary&url=rtmp%3A%2F%2Fexample.test%2Flive&key=YOUR_KEY&bitrate1=3000000&bitrate2=6000000Patch streaming service settings. Both bitrates must be supplied together.
/startup-state/savenoneSave startup state.
/startup-state/clearnoneClear startup state.
App navigation
Address suffixArgumentEffect
/control-panel/page/setpage=main-controlsSelect the uniquely named Control Panel page and show the Control Panel section.
/app/section/setsection=homeShow Home, the Switchers list, or an available app section using the identifiers below.

Limits and troubleshooting

The current OSC service accepts individual messages. OSC bundles and wildcard address patterns are not supported. Positional arguments are limited to routes that explicitly support them; other parameterized routes use a packed string. M/E commands currently target /me/1.

There is no OSC reply channel. A sent packet is not confirmation that a command succeeded. Watch the app’s state and controller/service status, and use diagnostics when investigating a rejected command.

  • No response: check the device IP, UDP port, network access, Enable OSC, and whether the switcher is running.
  • Wrong input: use the configured numeric source ID, not its display position.
  • Named item rejected: check for duplicate names, an archived show, or a cue outside the loaded show.
  • Blocked control: check feature availability and Settings → Automation → Allowed in View Only → OSC.