-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Hosted at https://github.com/bcmodular/scopeosc, these consist of two DLL modules for Scope SDK that provide OSC Send and Receive functionality for the Scope System.
Listens for OSC messages with the following address format: /Device Instance/Device UID/Parameter Group/Parameter Id and exposes their integer payload to Async Scope output pads. Any other payload type or address format will be ignored. E.g. /1/2/3/4 would be a message targeting the 4th Parameter in Parameter Group 3 of Instance 1 of Device 2.
By default the module listens on UDP port 8000, but this can be overriden by a user (see details below). Although multiple OSCReceiver modules can be loaded, they will all use the same port and in the underlying implementation it's actually just one listener.
N.B. The address format is actually different for Parameter Group 0, which is used as a special parameter group by ScopeSync to handle its controller messages. In that case it's /Device Instance/Device UID/Parameter Group/Parameter Id/Configuration UID
Short name | Long Name | In/Out | Notes |
---|---|---|---|
Inst | Device Instance | In | Instance of a particular Device. Somewhat like a MIDI Channel. Should typically be set by a user and stored in Project. 32-bit Integer value |
DUID | Device UID | In | Identifies a specific device. Each released device should have a different DUID. ScopeSync is 0. 32-bit Integer value |
PmGp | Parameter Group | In | Allows multiple modules to be loaded that can each listen to 16 parameters. 0 is reserved for ScopeSync use. 32-bit Integer value |
List | Listening to Messages | In | 0 = Ignore incoming messages, >0 = Listen for incoming messages |
cfg | configuration uid | In | Used by ScopeSync when Parameter Group is 0, which is the special group for the ScopeSync Controller. Can be left as 0 otherwise. |
O1 - O16 | Parameter Output 1 - 16 | Out | 32-bit integer values extracted from the incoming OSC messages |
cfg | configuration uid | In | Used by ScopeSync when Parameter Group is 0, which is the special group for the ScopeSync Controller. Can be left as 0 otherwise. |
A user can override the listener port by changing the value in C:\Users\xxx\AppData\Roaming\ScopeOSCReceiver\ScopeOSC.settings (or equivalent for different versions of Windows). The file is created on first load of OSCReceiver module and will only be re-read at startup, so changing setting will require Scope to be restarted. Only really needs to be changed if a user has another app listening on the same UDP port, or if they have some special firewall configuration that means that 8000 can't be used.
File contents look like this:
<?xml version="1.0" encoding="UTF-8"?>
<PROPERTIES>
<VALUE name="localPortNumber" val="8000"/>
</PROPERTIES>
When a new value is detected at any of the Async input pads, the module sends OSC messages with the same address format as the OSC Receiver to the target host/port set in the relevant input pads.
N.B. Sender uses the ScopeSync address format mentioned above if the Parameter Group is 0.
Short name | Long Name | In/Out | Notes |
---|---|---|---|
I1 - I16 | Parameter Input 1 - 16 | In | 32-bit Integer value to be sent. Will only be sent when a change is detected, or if the Snapshot parameter is changed |
Inst | Device Instance | In | Instance of a particular Device. Somewhat like a MIDI Channel. Should typically be set by a user and stored in Project. 32-bit Integer value |
DUID | Device UID | In | Identifies a specific device. Each released device should have a different DUID. ScopeSync is 0. 32-bit Integer value |
PmGp | Parameter Group | In | Allows multiple modules to be loaded that can each listen to 16 parameters. 0 is reserved for ScopeSync use. 32-bit Integer value |
HoO1 - HoO4 | Remote Host Octet 1 - 4 | In | Used to set the Remote IP address to send messages to. If all 4 are left as 0, the DLL will default to HoO1 = 127, HoO2 = 0, HoO3 = 0 and HoO1 = 1, i.e. 127.0.0.1 = localhost, which is the local machine |
Port | Remote Port | In | UDP Port the remote server is listening on. If left as 0, it will default to 8000 inside the DLL |
Snap | Snapshot Counter | In | Changing this value will cause a Snaphot to take place, which sends all current values as OSC messages to the remote host. You can change it however you want, e.g. flip-flopping between two values, or just incrementing (or decrementing if that's the way you roll!) |
Send | Send Messages | In | 0 = Ignore incoming messages, >0 = Listen for incoming messages |
cfg | configuration uid | In | Used by ScopeSync when Parameter Group is 0, which is the special group for the ScopeSync Controller. Can be left as 0 otherwise. |
The first time you use the OSC Receiver module, you'll be asked to allow Scope to use the Network. In most cases that's all the configuration that's required. However, depending on what's happening at the remote end, you might need to do some firewall configuration. Faxi Nadu has put together a useful doc outlining some of the steps you might need to take: Generic Network Setup for OSC Control