Controlling Sushi using Open Sound Control#

Sushi supports Open Sound Control (OSC). And can both send OSC updates and receive notes and parameter changes through OSC.

If you are unfamiliar with OSC, reading our article introducing OSC in the context of Elk Audio OS is a very good start.

OSC Messages Sushi Reacts To#

By default, Sushi listens on port 24024 for the following OSC commands:

Path

TypeTag

Arguments

/parameter/plugin_name/p arameter_name

f

parameter value

/parameter/plugin_name/p roperty_name

s

property value

/bypass/plugin_name

i

bypass state (1 = bypassed, 0 = enabled)

/keyboard_event/track_name

siif

event type (“note_on”, “note_off”, “aftertouch”), channel, note index, norm. value

/keyboard_event/track_name

sif

event type (“modulation”, “pitch_bend”, “aftertouch”), channel, norm. value

/program/plugin_name

i

program id

/engine/set_tempo

f

tempo in beats per minute

/engine/set_time_signature

ii

time signature numerator, time signature denominator

/engine/set_playing_mode

s

“playing” or “stopped”

/engine/set_sync_mode

s

“internal”, “ableton_link” or “midi”

/engine/set_timing_statistics_enabled

i

1 = enabled, 0 = disabled

/engine/reset_timing_statistics

s(s)

reset target (“all”, “track”, “processor”), track name/processor name

OSC Messages Sushi Transmits#

By default, Sushi transmits to port 24023, on 127.0.0.1.

Besides reacting to OSC messages, Sushi can also echo some aspects of its state, by broadcasting OSC messages. By default, this feature is disabled, but can be enabled either through adding a relevant section to the json configuration file, or by invoking relevant commands over gRPC.

The message transmitted are from plugins in Sushi, when internal parameter is changed - for example, the level parameters of the internal Peak Meter plugin.

This works in two ways, either all, or only specific processors, are enabled. See the relevant section in the documentation of the Sushi json configuration file for more details.

Changing the ports and IP address for sending and receiving OSC#

The UDP port it receives from, and the port and IP it sends to, can be changed with command-line arguments.

Just type $ sushi –help for the exact syntax.

The IP and port values set can also be retrieved over the gRPC API.