The following methods are available for playlists :
- get.list.playlists
- get.object.playlist
- set.property.playlist
- doaction.playlist
- add.playlist
- replace.playlist
- delete.playlist
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 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 Wait and 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 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:
Need more help with this?
Don’t hesitate to contact us here.