OSC
Arkestra receives OSC (Open Sound Control) messages over UDP. OSC lets you control parameters from any software or hardware that speaks OSC - TouchOSC, Lemur, Max/MSP, Pure Data, custom scripts, etc.
Enabling the OSC receiver
Section titled “Enabling the OSC receiver”Open the External Input panel (antenna icon) in the right sidebar, stay on the OSC tab and:
- Enable the toggle under Enabled
- Set the Port (default: 8000)
Mapping OSC to a parameter
Section titled “Mapping OSC to a parameter”Right-click any parameter → Map to OSC → New OSC Mapping
Enter the OSC address (e.g. /arkestra/speed) and Arkestra will listen for messages on that address and route them to the parameter.
Alternatively, use OSC Learn: right-click → OSC Learn, then send a message from your controller - Arkestra captures the address automatically.
Message format
Section titled “Message format”Arkestra accepts messages with a single numeric argument (float, double, or integer). By default, values are passed through as-is — send 0.0–1.0 for direct 0–1 control. If your controller sends a different range (e.g. 0–127 or -1 to +1), use the Input Scaling section in the OSC panel to set the expected min/max, and Arkestra will normalise to 0–1 automatically.
/arkestra/speed 0.75Sending text
Section titled “Sending text”Text parameters (text generators, plugin text fields) can receive strings over OSC. This is how live data like chat messages, social posts, scores or lyrics gets into your visuals.
- Click the antenna button next to a text parameter in the sidebar
- Enter an address (e.g.
/arkestra/text) and click Bind, or click Learn and send a message - Send a message with a string argument to that address
/arkestra/text "Hello from the terminal"Each message replaces the text. Arkestra applies at most about 15 updates per second, so if messages arrive faster, only the latest one in each burst is shown. The binding is saved with the project. To stop receiving, open the popover and click Unbind.
The Live Text example plugin is built for this: it wraps and fits any length of text and transitions between messages. The example folder also includes a small Python script, live_text_feed.py, that sends one-off messages, piped lines, public Mastodon hashtag posts, or a field from any JSON API.
Multiple parameters per address
Section titled “Multiple parameters per address”Multiple parameters can be mapped to the same OSC address - they all update simultaneously when that address receives a message. Useful for controlling a macro-style parameter that you haven’t formally set up as a macro.
OSC vs MIDI
Section titled “OSC vs MIDI”| MIDI | OSC | |
|---|---|---|
| Transport | Hardware cable / USB | UDP (network, localhost) |
| Values | 7-bit (0-127) | 32-bit float (arbitrary precision) |
| Addressing | CC number | Free-form string path |
| Best for | Hardware controllers | Software, custom controllers |