Since version 2.7.0, AbleSet allows you to send timed OSC commands from a MIDI track. These commands can either be sent to AbleSet or external apps or devices that support OSC – for example TouchOSC, audio consoles, light desks or video players.
To get started, create a new MIDI track and make sure that its name contains
+OSC
, e.g. AbleSet +OSC
. All clips placed on this track will now trigger
OSC commands that you add to their name as soon as Live's playhead reaches them.
By default, OSC commands are sent to AbleSet. You can find a list of all available OSC commands here. For example, to trigger a big notification on all connected devices, you can create a clip with the following command:
To send OSC commands to external apps or devices, you can add their
IP or hostname and port to the OSC command, e.g. 192.168.1.5:3000/scene 2
.
Multiple commands can be separated by semicolons. If you'd like to add a delay
between two commands, you can use the //sleep
command. For example, to wait
2.5 seconds between stopping and jumping to the next song:
/global/stop; //sleep 2500; /setlist/jumpBySongs 1
.
The behavior of OSC tracks can be altered using attributes on the track name.
If you'd like all OSC commands to be sent to a specific target, you can add it
to the track name in square brackets, e.g. External +OSC [192.168.1.25:3000]
.
You can also set a prefix which is added to each OSC command. For example, if
you'd like to create an OSC track that triggers notifications in AbleSet, you
can add the prefix in square brackets, e.g. Notify +OSC [/notify/big all]
.
This prefix can contain multiple arguments and you can specify multiple
arguments in the MIDI clips on this track. So, for example, if a clip on this
track was named Test 1000
, the command sent to AbleSet would be
/notify/big all Test 1000
which would make the text "Test" appear on screen
for 1000 ms.
If you'd like AbleSet to interpret the name of clips as a single argument
instead, add the [single]
attribute to the track name in addition to the
prefix. With this in place, if a clip on the track was named Test 1000
,
the command sent to AbleSet would be /notify/big all "Test 1000"
.
You can also combine the prefix attribute with the target attribute, e.g.
External +OSC [192.168.1.25:3000/fxsend/mix]
.
To send OSC commands only while Live is playing, add the [playing]
attribute
to the track name.
Each OSC command starts with an address followed by an optional list of
arguments, which is separated by spaces, e.g. /notify/big all Test
.
AbleSet automatically detects integer, float, and boolean arguments, so
/test 10 1.5 true
would send a /test
OSC command with an integer, a float,
and a boolean argument. All other arguments are interpreted as strings, so
/test hello
would send a /test
OSC command with a string argument.
If you'd like AbleSet to interpret an argument as a string, or if a string
argument needs to contain spaces, you can wrap it in quotes. For example,
/test "true" "Test Message"
would send a /test
OSC command with two string
arguments – "true" and "Test Message".
You can use either "
, '
, or `
as quotes. If you'd like to
use the quote character you used to define the string inside the string as well,
you can escape it using a backslash, e.g. "Some \"quotes\" in a string"
.