NESS integrates a full OSC (Open Sound Control) API to allow the remote control of the application. Any OSC compatible device or application can send OSC messages to NESS to recall scenarios, create fancy automations, time code a show or enable interactive performances.
The OSC protocol consists in messages sent through the network via UDP. A typicall message is composed of a header, the address which generally correspond to a parameter to control, and some arguments which are the values of the parameters.
For instance, this message controls the position of the object number 7 in NESS in cartesian normalized coordinates (x, y and z normalized between -1 and 1) :
/ness/obj/7/xyz -0.45 0.52 0.00
The following table describes all the messages to control NESS:
NESS parameter | OSC header | Argument | Type | Range | Example | Comments |
source n name | /ness/obj/(n)/name | name | string | any string without space | /ness/obj/4/name toto | renames the source |
source n color | /ness/obj/(n)/color | r g b a | floats | [-1.0 1.0] for each parameter | /ness/obj/4/color 0.69 0.20 0.18 1.00 | color is given in rgba format (red green blue alpha) |
source n position | /ness/obj/(n)/xyz | f f f | floats | [-1.0 1.0] for each coordinate | /ness/obj/4/xyz -0.9 0.15 0.0 | z coordinate is droped as NESS does not treat elevation |
source n width | /ness/obj/(n)/w | f | float | [0.0 180.0] | /ness/obj/4/w 15.2 | |
source n fader | /ness/obj/(n)/fader | i | int | [0 99] | /ness/obj/4/fader 71 | |
source n mute | /ness/obj/(n)/mute | i | int | 0 or 1 | /ness/obj/4/mute 1 | |
source n solo | /ness/obj/(n)/solo | i | int | 0 or 1 | /ness/obj/4/solo 1 | |
source n play movement | ness/obj/(n)/moov | play | string | “play” | ness/obj/4/moov play | start the movement of the source if programmed in NESS when it receives “play” |
source n position on trajectory | ness/obj/(n)/moov | f | float | [0.0 1.0] | ness/obj/4/moov 0.65 | place the source along the trajectory. 0 is the first point of the trajectory, 1 the last point. |
master mute | /ness/master/mute | i | int | 0 or 1 | /ness/master/mute 1 | |
master fader | /ness/master/fader | i | int | [0 99] | /ness/master/fader 71 | |
clear solo | /ness/master/clearsolo | i | int | 1 | /ness/master/clearsolo 1 | clears all solo when the parameter switches to 1. nothing appends when it switches back to 0 |
snapshot n | /ness/snapshots/(n)/trig | i | int | 1 | /ness/snapshots/4/trig 1 | load the corresponding snapshot when te parameter switches to 1. nothing appends when it switches back to 0 |
Play all movements | /ness/master/moov/play | i | int | 1 | /ness/master/moov/play 1 | start the movement of all sources if programmed in NESS from the beginning of their trajectories when it receives 1 |
Pause all movements | /ness/master/moov/pause | i | int | 1 | /ness/master/moov/pause 1 | pause all source movements when it receives 1 |
Resume all movements | /ness/master/moov/resume | i | int | 1 | /ness/master/moov/resume1 | resume all source movements when it receives 1 |
Stop all movements | /ness/master/moov/stop | i | int | 1 | /ness/master/moov/stop 1 | stop all movements and place the sources at the beginning of their trajectories |
NESS supports also the ADM OSC syntax for the cartesian coordinates and width of the sources