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
- On the SwitchEffect device, open Settings → Automation and turn on Enable OSC.
- Note the selected UDP port. The default is 49995.
- Start the switcher. OSC listens while its runtime is running.
- 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.
- Set a button to send
/switcheffect/v1/me/1/cutwith 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=7source=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 argumentsSet 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=WelcomeUse 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=trueThe 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", 1If 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 suffix | Argument | Effect |
|---|---|---|
/me/1/cut | none | Cut the primary M/E. |
/me/1/auto | none | Auto transition on the primary M/E. |
/me/1/program/set | source=7 | Set Program source. |
/me/1/preview/set | source=7 | Set Preview source. |
/me/1/transition/set | style=mix | Set the current transition style. Supported values are mix, dip, wipe, sting, and dve. |
/me/1/preview-transition/set | enabled=true | Turn Preview Transition on or off, or toggle its current state. Supported values are true, false, and toggle. |
/me/1/ftb/auto | none | Fade to Black action. |
/me/1/ftb/rate/set | frames=30 | Set Fade to Black rate, 1–250 frames. |
/dsk/1/auto | none | Auto transition a DSK. |
/dsk/1/on-air/set | enabled=true | Set DSK on-air state. |
/me/1/usk/1/on-air/set | enabled=true | Set USK on-air state. |
Routing, media, and macros
| Address suffix | Argument | Effect |
|---|---|---|
/aux/1/source/set | source=7 | Assign an AUX/output source. |
/macro/1/run | none | Run the macro in slot 1. |
/macro/stop | none | Stop macro playback. |
/macro/continue | none | Continue macro playback. |
/macro/loop/set | enabled=true | Set macro looping. |
/media/capture-still | none | Capture Program as a still. |
/media-player/1/still/set | slot=1 | Assign a still slot to a media player. |
/media-player/1/clip/set | slot=1 | Assign a clip slot to a media player. |
SuperScene layouts
| Address suffix | Argument | Effect |
|---|---|---|
/superscene/preset/recall | preset=Two-Up&superscene=1 | Recall the uniquely named preset on SuperScene 1. superscene is optional and defaults to 1. |
/superscene/preset/next | none or superscene=1 | Recall the next displayed preset in the active group and search results. superscene defaults to 1. |
/superscene/preset/previous | none or superscene=1 | Recall the previous displayed preset in the active group and search results. superscene defaults to 1. |
/superscene/preset/search/set | search=interview | Set the shared preset search term. |
/superscene/preset/search/clear | none | Clear the preset search term. |
/superscene/preset/group/set | group=Evening%20Rundown&superscene=1 | Select the uniquely named Preset Group for a SuperScene. superscene defaults to 1. |
/superscene/preset/group/clear | none or superscene=1 | Clear the selected Preset Group to show All presets. superscene defaults to 1. |
/superscene/cascade/on | none | Turn Cascade on. Requires two SuperScenes. |
/superscene/cascade/off | none | Turn Cascade off. |
/superscene/cascade/toggle | none | Toggle Cascade. Enabling it requires two SuperScenes. |
Run of Show and titles
| Address suffix | Argument | Effect |
|---|---|---|
/run-of-show/load | show=evening-news | Load the uniquely named, unarchived show. |
/run-of-show/cue/run | cue=opening-cue | Run the uniquely named cue in the loaded show. |
/run-of-show/title/create | Packed string or 2–5 positional arguments | Create a title cue in the loaded show; see the title example below. |
Framing and drawing
| Address suffix | Argument | Effect |
|---|---|---|
/input/punch/in | source=7&duration=0.25&zoom=1.5 | Step the selected source toward the chosen punch zoom. |
/input/punch/out | source=7&duration=0.25&zoom=1.5 | Step the source back toward its original framing. |
/input/punch/full | source=7 | Immediately restore original framing, preserving the configured crop. |
/input/punch/toggle | none (or button press 1) | Toggle framing. With no parameters, use the input, duration, and zoom selected in the Punch-In panel. |
/input/punch/toggle | source=7&duration=0.25&zoom=1.5 | Toggle framing. With no parameters, use the input, duration, and zoom selected in the Punch-In panel. |
/telestrator/on | none | Turn the Telestrator on. |
/telestrator/off | none | Turn the Telestrator off. |
/telestrator/toggle | none | Toggle the Telestrator on/off state. |
/telestrator/undo | none | Undo the last Telestrator drawing change. |
/telestrator/redo | none | Redo the last undone Telestrator drawing change. |
/telestrator/clear | none | Clear the Telestrator drawing. |
Outputs and saved startup state
| Address suffix | Argument | Effect |
|---|---|---|
/recording/start | none | Start recording. |
/recording/stop | none | Stop recording. |
/recording/filename/set | name=Live%20Show | Set the next recording filename. |
/streaming/start | none | Start streaming. |
/streaming/stop | none | Stop streaming. |
/streaming/low-latency/set | enabled=true | Set low-latency streaming. |
/streaming/service/set | name=Primary&url=rtmp%3A%2F%2Fexample.test%2Flive&key=YOUR_KEY&bitrate1=3000000&bitrate2=6000000 | Patch streaming service settings. Both bitrates must be supplied together. |
/startup-state/save | none | Save startup state. |
/startup-state/clear | none | Clear startup state. |
App navigation
| Address suffix | Argument | Effect |
|---|---|---|
/control-panel/page/set | page=main-controls | Select the uniquely named Control Panel page and show the Control Panel section. |
/app/section/set | section=home | Show 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.