AbleSet listens to OSC commands on port
39051, so you can remote-control it
from any other app that supports OSC.
Here's a list of all available commands:
/global/startPlayingstarts playback from the last cursor position
/global/continuePlayingcontinues playing from the current playhead position
/global/playPausetoggles playback between play and pause
/global/playStoptoggles playback between play and stop
/global/quantization [quantization]sets the global quantization of your project
/global/syncToRemoteTicksyncs this computer to the playhead of connected AbleNet instances
/loop/enableenables Live's loop bracket
/loop/escapedisables Live's loop bracket
+LOOPflag, this will also jump to the next section
/loop/toggletoggles Live's loop bracket
/setlist/jumpToTime [time]jumps to the given time, in beats
/setlist/jumpToSong [number or name]jumps to the song at the given position in the setlist
/setlist/jumpToSong 2jumps to the 2nd song in the setlist
/setlist/jumpToSong SongTitlejumps to the first song named "SongTitle" in the setlist
/setlist/jumpBySongs [steps]jumps by given number of songs
/setlist/jumpBySongs 1jumps to the next song,
/setlist/jumpBySongs -1jumps to the previous one or to the beginning of the current song when the playhead isn't at the start of the song
force=trueparameter when jumping back a song (e.g.
/setlist/jumpBySongs -1 force=true) ignores the playhead's current position inside the song and always jumps to the previous song
/setlist/jumpToSection [number or name]jumps to the section at the given position in the current song
/setlist/jumpToSection 2jumps to the 2nd section in the current song
/setlist/jumpToSection Chorusjumps to the first section named "Chorus" in the current song
/setlist/jumpBySections 1jumps to the next section in the current song
force=trueparameter when jumping back a section (e.g.
/setlist/jumpBySongs -1 force=true) ignores the playhead's current position inside the section and always jumps to the previous one
/setlist/jumpToQueued [boolean]jumps to the queued song or section
true, AbleSet jumps instantly, without respecting Live's global quantization
/setlist/playCuedSongplays the next song after the current song has finished
/setlist/setLocatorsFromClipsplaces a locator at each section clip
/setlist/removeClipLocatorsremoves automatically placed locators at section clips
/click/mute [boolean or toggle]mute or unmute all click tracks
/click/solo [boolean or toggle]solos or unsolos all click tracks
/playaudio12/setScene [1, 2, A, or B]sets the active scene on the connected PlayAUDIO12
/playaudio12/setScene 1sets the active scene to scene A
/playaudio12/setScene Bsets the active scene to scene B
/playaudio12/toggleScenetoggles the active scene between A and B on the connected PlayAUDIO12
/floatingWindow [show|hide|toggle]shows, hides, or toggles the floating setlist window
Boolean values can be an actual boolean or
1. You can also set them to
toggle to toggle the setting.
/settings/autoplay [boolean]sets the autoplay option
/settings/safeMode [boolean]enables or disables the Safe Mode feature
/settings/alwaysStopOnSongEnd [boolean]sets whether AbleSet should stop playback at the end of all songs
/settings/autoJumpToNextSong [boolean]sets whether AbleSet should automatically jump to the next song at the end of a song
/settings/autoLoopCurrentSection [boolean]sets whether AbleSet should automatically move the loop bracket to be around the current section
/settings/countIn [boolean]enables or disables the Count-In feature
/settings/countInSoloClick [boolean]sets whether the click track should be soloed during count-in
/settings/countInDuration [1, 2, or 4]sets the count-in duration in bars
/settings/jumpMode [quantized, end-of-section, end-of-song, or manual]sets the jump mode
If you're using OSC commands in a setup with multiple computers connected via AbleNet, AbleSet automatically forwards commands to all other connected computers. For additional redundancy, you should send the same command to all computers.
For this to work well, each command you send to AbleSet via OSC should have its own
UUID. You can append it as a string parameter to any OSC command, for example
uuid=1234abcd where "1234abcd" is a random string for each command.
When AbleSet receives multiple commands with the same UUID, it will only execute the first one and discard all others.
If you don't want AbleSet to forward OSC commands, you can add the string
to any OSC command that you send to AbleSet. In that case, the UUID parameter isn't necessary.
AbleSet announces its OSC server on the network using Bonjour. Apps like TouchOSC can find it automatically using the "Browse" function so you don't have to enter the IP address and port manually.
If you're writing your own OSC client, you can use any Bonjour library to look
_osc._udp. on the network. AbleSet's OSC server has a TXT value of
server=ableset, so in case there are other applications announcing their OSC
servers on the network as well, you can look for that value to find AbleSet.
AbleSet can send updates on its current state to other OSC servers. This can be used to update the state of your control surfaces in real time.
To register your OSC server with AbleSet, send the
/subscribe command with the
IP address and port, and optionally a name – e.g.:
/subscribe 127.0.0.1 8000 TouchOSC
If you set the IP address to
auto, AbleSet will use the IP address the request
came from to register the OSC server, e.g.:
/subscribe auto 8000 TouchOSC
This is useful for setups where you don't always know your IP address, like using TouchOSC on a machine that gets a new IP every time it connects to the network.
You'll see a notification that the device has been connected, and from this point on, AbleSet will send updates for all events to your server. You can register multiple servers with AbleSet if you want to connect multiple control surfaces.
In addition to the events, AbleSet will send a
/heartbeat every 2 seconds. You
can use this to check if the connection is still up.
To get the current state of all values, send
/getValues to AbleSet after
registering your server.
Here's a list of all values that get sent to registered servers:
/global/isConnected [0|1]whether AbleSet is connected to Live
/global/isLoadingFile [0|1]whether Live is loading a new song file
/global/beatsPosition [float]the current position in beats floored to whole numbers while Live is playing
/global/humanPosition [float] [float]the current position in bars and beats
/global/tempo [float]the current tempo
/global/isPlaying [0|1]whether Live is currently playing
/global/timeSignature [integer] [integer]the time signature
/global/quantization [quantization]the global quantization of your project
/setlist/name [string]the setlist name
/setlist/songs [...string]a list of all song names in the setlist
/setlist/songColors [...string]a list of all songs' colors in the setlist
/setlist/songDurations [...float]a list of all songs' durations in the setlist in seconds
/setlist/sections [...string]a list of all sections of the current song
/setlist/sectionColors [...string]a list of all sections' colors of the current song
/setlist/activeSongName [string]the name of the current song
/setlist/activeSongIndex [string]can be referenced to the list of songs
/setlist/activeSongStart [float]the song's start position in beats
/setlist/activeSongEnd [float]the song's end position in beats
/setlist/activeSongDuration [float]the song's duration in seconds
/setlist/activeSongColor [string] [string]the color of the song, as a color name and as a hex string
/setlist/activeSectionName [string]the name of the current section
/setlist/activeSectionIndex [float]the index of the current section in the current song
/setlist/activeSectionStart [float]the section's start position in beats
/setlist/activeSectionEnd [float]the section's end position in beats
/setlist/activeSectionColor [string] [string]the color of the section, as a color name and as a hex string
/setlist/queuedName [string] [string]the name of the queued song and section
/setlist/queuedIndex [float] [float]the index of the queued song and section
/setlist/nextSongName [string]the next song's name
/setlist/nextSongIndex [float]the next song's index
/setlist/nextSongDuration [float]the next song's duration in seconds
/setlist/nextSongColor [string] [string]the color of the next song, as a color name and as a hex string
/setlist/loopEnabled [0|1]whether the loop bracket is enabled
/setlist/loopStart [float]the loop's start position in beats
/setlist/loopEnd [float]the loop's end position in beats
/setlist/isCountingIn [0|1]whether AbleSet is currently counting in
/playaudio12/isConnected [0|1]whether a PlayAUDIO12 interface is connected
/playaudio12/scene [integer]the current scene –
1for the main and
2for the backup computer