Skip to content

OSC output from zcx

zcx will send Open Sound Control (OSC) messages on certain events. This may be useful for interfacing with other systems, such as TouchOSC.

Configuring the OSC server

zcx uses the existing OSC server provided by ClyphX Pro. Thus, to configure the server, you must modify the ClyphX Pro configuration file Preferences.txt.

Near the bottom of this file, under the label OSC SETTINGS, you should have a line like:

INCOMING_OSC_PORT = 7005

You must add two lines below this line:

Preferences.txt
*** [OSC SETTINGS] ***

INCOMING_OSC_PORT = 7005
OUTGOING_OSC_PORT = 7000
OSC_DEVICE_IP_ADDRESS = 127.0.0.1

Warning

The above settings are an example only; they will need to be set according to your network and situation.

OSC namespace

An OSC message sent from zcx will use an address like this:

/zcx/zcx_push_1/enc/enc_1/value

The first part, zcx, indicates that the message comes from a zcx script, which is useful when using an external tool to route messages.

The second part, zcx_push_1, is the name of the particular zcx script sending the message. This is useful when using multiple zcx scripts simultaneously, as it allows you to route messages per-script.

One such routing tool is OSCRouter from ETC Labs.

Configuring what information is sent

By default, no OSC data is sent. You may enable the particular OSC output you want through the preferences.yaml option osc_output.

Read on to see the appropriate values for osc_output.

Available outputs

Encoder mappings

For encoders, zcx will send the name of the mapped parameter, as well as the value as several datatypes.

preferences.yaml
osc_output:
  encoders:
    name: true
    value: true
    int: true
    float: true

name

The name of the mapped parameter, as it appears in the Live UI:

Address: /zcx/<script name>/enc/<encoder name>/name

Value: string

value

The value of the mapped parameter, as it appears in the Live UI:

Address: /zcx/<script name>/enc/<encoder name>/value

Value: string

int

The value of the mapped parameter, as an integer between 0-127:

Address: /zcx/<script name>/enc/<encoder name>/int

Value: int

float

The value of the mapped parameter, as a float between 0.0-1.0:

Address: /zcx/<script name>/enc/<encoder name>/float

Value: float

Page changes

zcx will send messages when the page is changed.

preferences.yaml
osc_output:
  page: true

page number

Address: /zcx/<script name>/page/number/

Value: int

page name

Address: /zcx/<script name>/page/name/

Value: string

session ring

zcx will send messages relating to the session ring.

preferences.yaml
osc_output:
  ring_tracks: true
  ring_pos: true

ring tracks

zcx will send the name of each track inside the ring:

Address: /zcx/<script name>/ring/track/<index>/

Value: string

ring coordinates

When the ring moves, zcx will send the x (track) and y (scene) positions of the top-left corner of the ring as an integer:

Address: /zcx/<script name>/ring/pos_x/ and /zcx/<script name>/ring/pos_y/

Value: int