Skip to content
Voro
  1. Audio
  2. Other

OSC In

OSC In listens on a UDP port and maps the OSC addresses you name to outputs. A fader message becomes a control lane. A cue button becomes a GO or a seek that an arrangement or transport can act on. Anything that speaks OSC can drive Voro this way: a grandMA, a stage-manager tablet, a TouchDesigner patch, a phone app.

Set Port to the port your sender targets, then describe the routing in Doc, one rule per line. Wire out0 to out7 to whatever should follow the incoming values. Wire obs into Arrangement Source’s trigger input to release a held section, or into Transport In’s obs input to follow the messages as a clock.

Doc rules:

# fader 1 straight through, fader 2 rescaled to 0..1
control 0 /fader/1
control 1 /fader/2 0.5 0.5
# GO button, and a seek to the beat in the first argument
go /cue/go
seek /cue/seek
# same as go, but tagged with source id 30
trigger /cue/next 30
  • Inputs: none. OSC In is a source.
  • Outputs out0 to out7: eight control lanes. Each holds the last value received for its slot.
  • Output obs: GO and seek events from the go, seek, and trigger rules.
  • Enable: master on/off. While off, control lanes keep their last value and events are discarded.
  • Port: UDP port to listen on, default 47312.
  • Doc: the routing rules, one per line. # starts a comment. Changes apply live.
  • control <slot> <address> [scale] [offset] sends the first argument of matching messages to lane slot (0 to 7) as value * scale + offset. Scale defaults to 1 and offset to 0. Integer, float, and true/false arguments all work.
  • go <address> [source] and trigger <address> [source] emit a GO. If the message carries an argument and it is zero, it is ignored, so a button that sends 1 on press and 0 on release fires once.
  • seek <address> [source] emits a seek to the beat in the message’s first argument.
  • The optional source is a number that tags the event. It defaults to 21.
  • Addresses match exactly. There is no wildcard matching.
  • Up to 16 control rules and 16 event rules, addresses under 96 characters. Bundles are read one level deep.
  • A lane shows the last value until a new one arrives. It does not reset to zero.

Inputs

None

Outputs

  • out0..7 row
    control_f32_v1 8 slots
  • obs row
    transport_obs_v1
Enable (Enable) Toggle op('osc_in').par.Enable
Default:
On
Options:
Off, On
Port (Port) Int op('osc_in').par.Port
Default:
47312
Range:
1 to 65535
Doc (Doc) Str op('osc_in').par.Doc
Default:
"" (Empty String)