OSC Controller


  • Plugin name : OSC Controller
  • Version : 1.1
  • Author : Ozan Caglayan
  • Company : Galatasaray University
  • Short description : Sends OSC messages to an OSC controller
  • Documentation template generation date : Dec 10 2020


This box allows OpenViBE to send OSC (Open Sound Control) messages to an OSC server. See http://www.opensoundcontrol.org to learn about the OSC protocol and its use cases.

By this box, you can control OSC supporting devices, such as synthesizers and oscillators. It can be used to turn OpenViBE streams into sound, e.g. for brain music or auditory BCI.

The OSC Controller box simply sends the incoming data as UDP messages to the specified OSC Server. Each message is flagged with an OSC Address specifying the device that the message is intended to control.


1. Input

Data to send to the OSC Server. This input can be either a signal, a matrix, or a stimulation. The signal or matrix must have only 1 channel (row). Signals are sent as float and stimulations as size_t.

  • Type identifier : Signal (0x5ba36127, 0x195feae1)


1. OSC Server IP

Server address (IP or DNS)

  • Type identifier : String (0x79a9edeb, 0x245d83fc)
  • Default value : [ ]

2. OSC Server Port

Server port

  • Type identifier : Integer (0x007deef9, 0x2f3e95c6)
  • Default value : [ 9001 ]

3. OSC Address

The OSC Address specifying the device the messages are intended to, e.g. /oscillator/4/frequency

  • Type identifier : String (0x79a9edeb, 0x245d83fc)
  • Default value : [ /a/b/c ]


Utilities such as OSC DataMonitor by Kasper Kamperman can be used to debug the messages sent out by the box.


In the current implementation, the data is sent when received. OpenViBE internal timing is not passed to the OSC. The box supports only one input, but the input type can be modified. The input must have only one channel. For signals, you can extract a channel by using the Channel Selector box. Also, if input type is a signal, its sampling rate is ignored. However, several OSC Controller boxes can be used at the same time if multiple sources are needed to be sent to the OSC Server(s) or device(s). These limitations are to keep the code simple.

The box is not intended to transmit large chunks of numeric data. It may be meaningful to limit the amount of data on the OpenViBE side e.g. with boxes such as Signal Average, Downsampling or Signal Decimation, or Stimulation Filter.

For more information about the OSC protocol and applications that support it, please see http://www.opensoundcontrol.org