The following methods are available for playlists :


get.list.playlists


Syntax

{"jsonrpc":"2.0","method":"get.list.playlists", "id": 1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "get.list.playlists",
  "id": 1
}

Optional “level” parameter

{"jsonrpc":"2.0","method":"get.list.playlists","params":{"level":"cue"}, "id": 1}

This will return the full list of playlists with varying degree of details.

Indented display

{
  "jsonrpc": "2.0",
  "method": "get.list.playlists",
  "params": {
    "level": "cue"
  },
  "id": 1
}

Parameters

This level parameter is optional but can be used to retrieve more exhaustive information from the playlists

Parameter Description
"level":"playlist" This will only list the playlists and not their cues. This level returns the same as if no level was specified
"level":"cue" This level will nest an additional JSON Array Litteral inside each playlist containing a JSON Object Litteral for each cue in the playlist
"level":"layer" This level will repeat the previous level and nest yet another additional JSON Array Litteral inside each cue containing a JSON Object Litteral for each layer in the cue

Returns

Level : playlist

Note that omitting the level parameter will default to this level.

The JSON Object Litterals for the playlists will have the following properties :

Property Description Information
audioMaster Current value of the audio master of the playlist. Note this value is between 0 and 1 and not between 0 and 100
currentcuename Name of the currently playing cue If no name has been attributed to the cue, this will display the filename of the media on the first layer
freerunMode Indicates if the Playlist is in freerun mode
grandMasterFader Current value of the grand master fader of the playlist. Note this value is between 0 and 1 and not between 0 and 100
index Index of the currently playing cue in the Playlist. Index and Cue numbers match
name Name of the playlist
objectType For this method, this field contains playlist
playState Indicates if the Playlist is currently playing or not
stepByStepEnable true if the Step By Step mode Step by Step mode button is activated Step by Step mode temporarily disables all triggers.
synchroToTimecode true if the Playlist is currently locked to a timecode
timecode Current timecode of the first layer of the currently playing cue If the media is set to loop, the timecode will keep incrementing and will not reset to 0 after each loop. Value in ms.
timecodeDriver Current timecode mode set on the playlist 0 None ║ 1 LTC ║ 2 Clock ║ 3 Internal ║ 4 MTC ║ 7 Artnet ║ 8 Usomo
timecodeMasterSlave Index of the timecode Master/Slave setting 0 Slave ║ 1 Master ║ 2 Read Master TC
timecodeOffset Offset time applied to the timecode Value in ms
uiColor Color assigned to the playlist
uuid uuid of the playlist

Representation

{
"id": 1,
"jsonrpc": "2.0",
"result": [
  {
   ↑
   -- PLAYLIST #1 information --
   ↓
  },
  {
   ↑
   -- PLAYLIST #2 information --
   ↓
  },
   [etc.]  ← Lists all playlists on the server
 ]
}

Level : cue

Returns the complete list of playlists and will nest an additional JSON Array Litteral inside each playlist containing a JSON Object Litteral for each cue in the playlist.

The JSON Object Litterals for the cues will have the following properties :

Property Description Information
enableLoop Indicates if the Loop mode is enabled on this cue.
loopItemUuid Indicates the uuid of the cue on which to loop. If this property is empty then the cue does not loop.
name Name of the cue
objectType For this method, this field contains cue
tag Tag of the cue This field in the Remote accepts only numbers and is designed to facilitate piloting the Modulo Player server using a lighting console.
taskUuid uuid of the task to trigger when this cue plays
triggerMode Index of the Trigger mode for the cue 0 Go ║ 1 Follow 1 ║ 2 Wait ║ 3 TC ║ 4-12 Follow 2-10
triggerParam Only active for Waitand TC trigger modes. Contains time parameter for theses modes Time in ms.
uiColor Color assigned to the cue
uuid uuid of the cue

Representation

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [
    {
      "audioMaster": 1,
      "cues": [
        {
         ↑
         -- CUE #1 information --
         ↓
        },
        {
         ↑
         -- CUE #2 information --
         ↓
        },
        [...]  ← Lists all cues in the playlist
       ],
      "freerunMode": false,
      ↑
      -- Rest of PLAYLIST information --
      ↓
    }
  ]
}

Level : layer

Returns the complete list of playlists and will nest an additional JSON Array Litteral inside each playlist containing a JSON Object Litteral for each cue in the playlist.
Inside these cues another JSON Array Litteral will be nested containing a JSON Object Litteral for each layer in the cue.

Note that depending on your playlists this output can be very long.

The JSON Object Litterals for the layers will have the following properties :

Property Description Information
active Indicates if the layer is active or if it is crossed out (playing from previous cues)
audioPatch Gives a text representation of the audio patch (Inputs/Outputs) for the audio of the layer More info here
audioUuid uuid of the audio media set on the layer
blendingMode Index of the Blend Mode set in the Properties tab for the layer 0 Alpha ║ 1 Additive ║ 2 Multiply ║ 3 Multiply x2 ║ 4 Screen
color Color value set in the Properties tab for the layer
enableFadeOut Indicates the status of Fade Out true if Fade out is enabled. false if disabled
enableInOutMovie Indicates if trim mode is active true if trim has been enabled, false otherwise
endMovieMode Index of the Media Mode set in the Media tab for the layer 0 Last Frame ║ 1 Loop ║ 2 None
fadeInTime Fade In time Time in ms
fadeOutTime Fade Out time Time in ms
inMovie Time set for In Point in trim mode Time in ms
maskMode Index of Mask Mode 0 None ║ 1 Alpha ║ 2 Grey
maskUuid uuid of media set as Mask in the Advanced tab, Mask subtab of the layer
mediaUuid uuid of image/video media of the layer
objectType For this method, this field contains cue
opacity Opacity set for the layer Note this value is between 0 and 1 and not between 0 and 100
outMovie Time set for Out Point in trim mode Time in ms
rotationZ Rotation value set in the Properties tab for the layer
scaleX Scale value along X axis Note this value is between 0 and 1 and not between 0 and 100
scaleY Scale value along Y axis Note this value is between 0 and 1 and not between 0 and 100
showMask Indicates if Mask mode is active in the Advanced tab, Mask subtab
speed Indicates speed value set in Advanced tab, Frame edit subtab
startTime Indicates the offset value for starting playback of the layer in the Media tab Time in ms
topLeft Index of the Mode set in the Properties tab 0 Center ║ 1 Top Left ║ 2 Virtual
uuid uuid of the layer
x X coordinate of the layer
y Y coordinate of the layer

Representation

{
  "id": 1,
  "jsonrpc": "2.0",
  "result": [
    {
      "audioMaster": 1,
      "cues": [
        {
          "enableLoop": true,
          "layers": [
            {
              ↑
              -- LAYER #1 information --
              ↓
            },
            {
              ↑
              -- LAYER #2 information --
              ↓
            },
            [...]  ← Lists all ten layers in the cue
           ],
          "loopItemUuid": "",
          ↑
          -- Rest of CUE information --
          ↓
        },
        {
          ↑
          -- Next CUE information, with all ten layers same as above --
          ↓
        }
        [...]  ← Lists all cues in the playlist
       ],
      "freerunMode": false,
      ↑
      -- Rest of PLAYLIST information --
      ↓
    }
  ]
}

get.object.playlist


Syntax

{"jsonrpc":"2.0","method":"get.object.playlist", "params": {"uuid": "{b9ff8f5b-5a15-4422-9e25-b8eeed9f8f9a}"}, "id": 1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "get.object.playlist",
  "params": {
    "uuid": "{b9ff8f5b-5a15-4422-9e25-b8eeed9f8f9a}"
  },
  "id": 1
}

Parameters

Parameter Description
uuid uuid of the playlist
name Name of the playlist

Returns

Returns the following properties of target playlist.

Property Description Information
audioMaster Current value of the audio master of the playlist. Note this value is between 0 and 1 and not between 0 and 100
currentcuename Name of the currently playing cue If no name has been attributed to the cue, this will display the filename of the media on the first layer
freerunMode Indicates if the Playlist is in freerun mode
grandMasterFader Current value of the grand master fader of the playlist. Note this value is between 0 and 1 and not between 0 and 100
index Index of the currently playing cue in the Playlist. Index and Cue numbers match
name Name of the playlist
objectType For this method, this field contains playlist
playState Indicates if the Playlist is currently playing or not
stepByStepEnable true if the Step By Step mode Step by Step mode button is activated Step by Step mode temporarily disables all triggers.
synchroToTimecode true if the Playlist is currently locked to a timecode
timecode Current timecode of the first layer of the currently playing cue If the media is set to loop, the timecode will keep incrementing and will not reset to 0 after each loop. Value in ms.
timecodeDriver Current timecode mode set on the playlist 0 None ║ 1 LTC ║ 2 Clock ║ 3 Internal ║ 4 MTC ║ 7 Artnet ║ 8 Usomo
timecodeMasterSlave Index of the timecode Master/Slave setting 0 Slave ║ 1 Master ║ 2 Read Master TC
timecodeOffset Offset time applied to the timecode Value in ms
uiColor Color assigned to the playlist
uuid uuid of the playlist

set.property.playlist


Syntax

{"jsonrpc":"2.0","method":"set.property.playlist", "params":{"uuid":"{b9ff8f5b-5a15-4422-9e25-b8eeed9f8f9a}","property":"name","value":"New Name"}, "id": 1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "set.property.playlist",
  "params": {
    "uuid": "{b9ff8f5b-5a15-4422-9e25-b8eeed9f8f9a}",
    "property": "name",
    "value": "New Name"
  },
  "id": 1
}

Parameters

Use this command to modify one target property on a playlist.

It is possible to target the following properties:

Property Description
name Name of the playlist
uiColor color of the playlist

Returns

The "result" property in the JSON response will contain true if the instruction was executed correctly.

If the payload is not properly formatted, the server will respond by sending back the payload.


doaction.playlist


Syntax


 {"jsonrpc":"2.0","method":"doaction.playlist", "params":{"uuid":"{b9ff8f5b-5a15-4422-9e25-b8eeed9f8f9a}","action":"goto","cue":3}, "id": 1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "doaction.playlist",
  "params": {
    "uuid": "{b9ff8f5b-5a15-4422-9e25-b8eeed9f8f9a}",
    "action": "goto",
    "cue": 3
  },
  "id": 1
}

Parameters

Use this command to do an action on a target playlist.

You can use the following actions:

Action Description Value
prev Launch the previous cue -
next Launch the next cue -
goto Launch the cue with index ## "cue":##
preload Preload the cue with index ## (first cue is index 1) "cue":##
play Set the playlist in play at the current cue/timecode -
pause Set the playlist in pause state at the current timecode -
grandMasterFader Set the value (in %) of the grand master fader with a fade time (in ms) "value":##, "duration":##
audioMaster Set the value (in %) of the audio fader with a fade time (in ms) "value":##, "duration":##

Returns

If the "action" parameter is valid, the JSON will return "result": true.

If tthe "action" parameter is invalid, or specified name or uuid is invalid, the JSON will return a message with "Invalid params".


add.playlist


Syntax

{"jsonrpc":"2.0","method":"add.playlist","params":{"afterplaylistname":"My Playlist", "data":{"name":"Added playlist"}},"id":1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "add.playlist",
  "params": {
    "afterplaylistname": "My Playlist",
    "data": {
      "name": "Added playlist"
    }
  },
  "id": 1
}

Parameters

Parameter Description Information
afterplaylistuuid uuid of the playlist after which the new playlist will be created Target the playlist either by name or by uuid.
afterplaylistname Name of the playlist after which the new playlist will be created If several playlists have the same name, the first one will be targeted.
data JSON Object Litteral containing the data of the playlist to create

The "data" parameter contains a JSON Object Litteral with the properties you would like to give to your new Playlist.

Empty Object

Specifying the properties is optional and if an empty object is given, e.g. "data":{} a playlist will be created with default properties.

UUID

Do not specify any "uuid" properties in the JSON Object Litteral, the server will create them automatically.

Level of detail

Similarly to the get.list.playlists method, the "data" Object in the add.playlist method can be constructed with cue or layer level of details to create a playlist with cues and layers if necessary.


Returns

The "result" property in the JSON response will contain true if the instruction was executed correctly.

If the payload is not properly formatted, the server will respond by sending back the payload.


replace.playlist


Syntax

{"jsonrpc":"2.0","method":"replace.playlist","params":{"data":{"uuid":"{8304b593-b5a3-4ab5-a3ec-3dfcf4d32908}", "name":"Replaced playlist"}},"id":1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "replace.playlist",
  "params": {
    "data": {
      "uuid": "{8304b593-b5a3-4ab5-a3ec-3dfcf4d32908}",
      "name": "Replaced playlist"
    }
  },
  "id": 1
}

Parameters

Parameter Description
data JSON Object Litteral containing the data of the cue to create

UUID

With this method, you must specify a uuid in the data properties.

This will indicate to the method which playlist to replace.

The uuid will be conserved and a new one will not be generated.

All the other properties of the playlist will be replaced by the properties specified in the data parameter.

Level of detail

Similarly to the get.list.playlists method, the "data" Object in the add.playlist method can be constructed with cue or layer level of details to create a playlist with cues and layers if necessary.


Returns

The "result" property in the JSON response will contain true if the instruction was executed correctly.

If the payload is not properly formatted, the server will respond by sending back the payload.


delete.playlist


Syntax


{"jsonrpc":"2.0","method":"delete.playlist","params":{"name":"Playlist"}, "id": 1}

Indented display

{
  "jsonrpc": "2.0",
  "method": "delete.playlist",
  "params": {
    "name": "Playlist"
  },
  "id": 1
}

Parameters

Parameter Description
uuid uuid of the playlist
name Name of the playlist

Returns

If the "action" parameter is valid, the JSON will return "result": true.

If tthe "action" parameter is invalid, or specified name or uuid is invalid, the JSON will return a message with "missing playlist uuid or name".


Audio Patch


Some methods can include a text representation of the current audio patch set on a given layer.

The text representation will be a collection of pairs separated by a semicolon ; where each value held by the pair are separated by a colon :.

For example, a classic audio patch would look like this:

0:1;1:1

Each pair represents the settings for an output.

In each pair, the first number represents which input is patched to that output, starting at index 0. In the example above 0:1;1:1 the output 1 is patched to the input 1 (index 0) and output 2 is patched to input 2 (index 1).

In each pair, the second number represents the audio volume set on the output, with a value ranging from 0 to 1.

If no input is patched on the current output, the displayed index will be -1.

Example

0:0.5;-1:1

corresponds to the following audio patch:

Sample audio patch

Need more help with this?
Don’t hesitate to contact us here.

Thanks for your feedback.