wellis edited this page Apr 10, 2018 · 1 revision

Intro

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.


OSC Receiver

OSCReceiver

Description

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

Module Pads

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.

Overriding the listener port

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>

OSC Sender

OSCSender

Description

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.

Module Pads

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.

Firewall considerations

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

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.