New feature in Vienna Ensemble Pro 8!
Open Sound Control is a message-based network protocol mainly employed in realtime processing of audio signals via networks and multimedia installations. Hardware and software which implement OSC can send control signals that are converted into OSC messages and packed in OSC bundles to an interface in order to control its output to another hardware or software device, and thus trigger, e.g., changes in volume or other parameters. Since OSC is open, it is entirely customizable, making it possible to define parameters as needed.
Vienna Ensemble Pro now implements OSC commands, so that you can let other OSC compatible hard- and software communicate with it via server. You can find our more on our OSC channel on Discord.
Here’s a list of the available commands:
Incoming Port (to Server): 7200–7250,
Outgoing Port (from Server): 7201–7251.
Incoming Messages (to Server):
/ping: Pings the server. The server responds with/pong./instance/{instance_index}/{command}: Sends a command to a specific instance. Replace{instance_index}with the index of the instance and{command}with the specific command. See Instance Commands below.
Outgoing Messages (from Server):
/pong: Response to/ping./instanceschanged: Sent when the list of instances changes./instance/{instance_index}/current: Sent when an instance becomes the current instance. Value 1 indicates the instance is current, 0 indicates it is not./instance/{instance_index}/preserved: Sent when an instance's preserved state changes. Value is the new preserved state (true/false)./instance/{instance_index}/name: Sent when an instance's name changes. Value is the new name./instance/{instance_index}/enabled: Sent when an instance's enabled state changes. Value is the new enabled state (true/false)./instance/{instance_index}/decoupled: Sent when an instance's decoupled state changes. Value is the new decoupled state (true/false)./instance/{instance_index}/color: Sent when an instance's color changes. Value is the new color (RGBA)./instance/{instance_index}/loadingstarted: Sent when an instance starts loading a project./instance/{instance_index}/loadingfinished: Sent when an instance finishes loading a project./instance/{instance_index}/connected: Sent when an instance connects to the server./instance/{instance_index}/disconnected: Sent when an instance disconnects from the server./instance/{instance_index}/strip/{channel_index}/title: Sent when a channel strip's title changes. Value is the new title./instance/{instance_index}/strip/{channel_index}/id: Sent when a channel strip's ID changes. Two values are expected: the old ID and the new ID./instance/{instance_index}/strip/{channel_index}/fxchanged: Sent when the effects on a channel strip change./instance/{instance_index}/strip/{channel_index}/inputchanged: Sent when the input of a channel strip changes./instance/{instance_index}/strip/{channel_index}/midiport: Sent when the MIDI port of a channel strip changes. Value is the new MIDI port./instance/{instance_index}/strip/{channel_index}/midichannel: Sent when the MIDI channel of a channel strip changes. Value is the new MIDI channel./instance/{instance_index}/strip/{channel_index}/output: Sent when the output of a channel strip changes. Value is the new output./instance/{instance_index}/addchannelstarted: Sent when a channel add operation starts./instance/{instance_index}/addchannelfinished: Sent when a channel add operation finishes./instance/{instance_index}/channelschanged: Sent when the channels of an instance change.
Instance Commands (Incoming):
/instance/{instance_index}/strip/{channel_index}/volume/z: Sets whether the volume fader for the specified channel is being edited. Value is 1 for editing, 0 for not editing./instance/{instance_index}/strip/{channel_index}/volume/fader: Sets the volume fader value for the specified channel. Value is a float between 0 and 1./instance/{instance_index}/strip/{channel_index}/volume/gain: Sets the volume gain value for the specified channel. Value is a float./instance/{instance_index}/strip/{channel_index}/balance/z: Sets whether the balance control for the specified channel is being edited. Value is 1 for editing, 0 for not editing./instance/{instance_index}/strip/{channel_index}/balance: Sets the balance value for the specified channel. Value is a float between 0 and 1./instance/{instance_index}/strip/{channel_index}/solo: Sets the solo state for the specified channel. Value is 1 for soloed, 0 for not soloed./instance/{instance_index}/strip/{channel_index}/mute: Sets the mute state for the specified channel. Value is 1 for muted, 0 for not muted./instance/{instance_index}/strip/{channel_index}/bypass: Sets the bypass state for the specified channel. Value is 1 for bypassed, 0 for not bypassed./instance/{instance_index}/strip/{channel_index}/enable: Sets the enable state for the specified channel. Value is 1 for enabled, 0 for disabled./instance/{instance_index}/strip/{channel_index}/fx/pre/{fx_index}/parameter/z: Sets whether a parameter of a pre-fader effect is being edited. Two integer values are expected: the parameter index and a touch value (1 for start, 0 for end)./instance/{instance_index}/strip/{channel_index}/fx/pre/{fx_index}/parameter/value: Sets the value of a pre-fader effect parameter. Two values are expected: the parameter index and the new value (float)./instance/{instance_index}/strip/{channel_index}/fx/pre/{fx_index}/parameter/mappedvalue: Sets the mapped value of a pre-fader effect parameter. Two values are expected: the parameter index and the new mapped value (float)./instance/{instance_index}/strip/{channel_index}/fx/post/{fx_index}/...: Similar commands for post-fader effects./instance/{instance_index}/enabled: Sets the enabled state of the instance. Value is 1 for enabled, 0 for disabled./instance/{instance_index}/strip/{channel_index}/...: Sends a command to a channel strip. See Channel Strip Commands above./instance/{instance_index}/strip/current: Sets the current channel strip. Value is the index of the channel strip.
Note: The {instance_index} and {channel_index} placeholders should be replaced with the actual index values. The z suffix in some commands indicates a "touch" message, used for indicating the start and end of parameter editing.