OSC

Drive OBS events with Open Sound Control (OSC) messages.

OSC messages are received from a client. A client could be an app, like ZoomOSC, or hardware, like an OBSBOT PTZ camera.

The User configures the OSC server and creates a text sources to store and display incoming and outgoing messages.

A text source is used because changes to a text source are easily observed by WebSocket clients. When a text source is updated an "InputSettingsChanged" event is sent to webSocket clients. See the Processing ZoomOSC Messages tutorial for a complete example.

obs_osc_io.excalidraw.png

Setup

Install Python dependencies

This script uses the Python OSC Library.

  1. Open the Terminal app
  2. Enter the pip command
python3.11 -m pip install python-osc 

Add the OSC io Script to OBS

The "OSC io" script and accompanying OBS Collection can be found on Github.
python osc io repo

Import the OSC io OBS Collection

  1. Download the OSC io Collection
  2. In OBS, from the menu select Scene Collection > Import
  3. Import the collection
  4. Choose the collection Scene Collection

Add the OSC io Script

  1. Download the OSC io Script
  2. In OBS, from the menu select Tools > Scripts
  3. Click the + Add script button

Configure OSC Server and Clients

Configure OSC Server

The OSC Server receives and sends messages from the OSC clients.
The OSC Server default is configured to only run on the local machine.

Server Settings

Server IP Address: 127.0.0.1
Server Port: 12345

2025-11-15_17-28-04.png

Add OSC Clients

Set the number of clients 1 to 10, then configure each client.

OSC Client Settings

Client IP Address: 127.0.0.1
Client Port: 12345
Client Text Source Receive Name: Create a text source for incoming messages
Client Text Source Send Name: Create a text source for outgoing messages
Client OSC Address: enter an OSC address if necessary

Pasted image 20251115210234.png