7thSense Delta Media Server

Delta Version 2.8 Build 4 Release

External / Sequence Control Protocol

www.7thsense.one

PLAYHEAD COMMANDS
Command Arguments Description Examples
CUE None Cue the show & wait for the play command
PLAY None Play the show (no Cueing)
STOP None Stop the show !
RECORD None Start recording. Details configured in GUI !
ADVANCE n Step forward n frames (defaults to 1) !
STEPBACK n Step back n frames (defaults to 1) !
REWIND None Rewind the show to frame 0 !*
GOTOMARKER 'marker name' [play] Move to a named marker on timeline (optionally play) !*
NEXTMARKER None Move the playhead to the next marker on the timeline
GOTOFRAME n [play] Move to the framenumber specified (optionally play) !*
GOTOTIME timecode [framerate] [play] Move to the timecode specified for the framerate (optionally play). gototime 00:00:12:24 30 - goes to 12 secs and 24 frames at 30fps
gototime 00:01:02:4@60 play goes to time at 60fps
!*
RATE n Set the framerate to n frames per second !
RATESCALE n(0.1 - 4) Modify the default framerate dynamically (0.1 - 4)
SMPTE on | off Enable or disable tracking an external SMPTE timecode !
CLIPSEARCH clip = next | previous
[play = true | false]
[currentstart = true | false]
Search for the start of the next or previous clip (any visual resource such as movies, images, videocapture), optionally play immediately if currentstart is true, it will find the start frame of the current visual resource. By default, currentstart is false, meaning it will find the start of the clip prior to the visual resource which is currently in scope and also loop round to the first or last resource. !
MARKERSEARCH direction= next | previous
[play = true | false]
Stop, search for the next or previous marker in the timeline, move to that marker and optionally play !
REVERSEPLAYBACK reverse = true | false Turns reverse playback on[true] or off[false] reverseplayback reverse=true
AUDIO COMMANDS
Command Arguments Description Examples
SETSPEAKERMIX name L C R LS RS LFE LSide RSide Set this audio files 8 speaker volumes in percent
SETGLOBALEQ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 % [reset / enable / disable] Set the 15 frequency band level in percent from -100 to +100
INITAUDIO None Note - if no forced options are used, audio will be reinitialised with existing options
AUTOPLAY COMMANDS
Command Arguments Description Examples
AUTOPLAY Externalcontrolname on|off Turns autoplay on or off for a specified resource
PLAYAUTOPLAYMOVIES/PLAYAUTOPLAYS/PAPM on|off Play/Stop all AutoPlay movies !
STARTAUTOPLAYFROMBEGINNING yes|no Start AutoPlay movies from the beginning
GETAUTOPLAYSTATUS None Gets Autoplay Playing status E
COMMUNICATION COMMANDS
Command Arguments Description Examples
SENDASCII ascii n Send the ascii string out of the numbered TCP port (1 - 4). For Multi-TCP connections to port 1 - The first connection is number 1001, then 1002, etc. Port=* is supported and sends out of all connections.
ZIXISTART None Sends an HTTP call to the Zixi Receiver (on localhost) that creates a new file output called 'rec.ts'. This tells Zixi to create a recording of the current stream and save it as a .ts (Transport Stream) file. This recorded rec.ts file can then be played back in Delta complete with audio as a 'Stream' resource on the timeline, by configuring the address as the directory address of the file, but only once the STOPZIXI command has been run.
ZIXISTOP None Sends an HTTP call to the Zixi Receiver to stop, and to remove the current recording file output (rec.ts). If there is nothing being recorded, then running this command will simply do nothing. Once any such file has been removed from Zixi, the .ts file is ready to be played back in Delta as a 'Stream' resource.
SENDASCII2 data="ascii" port="TCP-port or connectionname" Vs2 with parameters : Send the ascii string out of the numbered TCP (1 - 4). For Multi-TCP connections to port 1 - The first connection is number 1001, then 1002, etc. Port=* is supported and sends out of all connections, or out of the connectioname of a TCP output connection'. No quotes required even if spaces in string.
SENDASCIIUDP ipaddress port ascii Send the ascii string to the ipaddress and UDP port
SENDASCIIUDP2 data="ascii" port=n ipaddress=ip Vs2 with parameters : Send the ascii string to the ipaddress and UDP port.
Note all parameters must be supplied
SENDASCIISERIAL Comport baudrate parity databits stopbits ascii Send the ascii string to the specified Comport
SENDASCIISERIAL2 data="ascii" port=comport baudrate=baud parity=p databits=d stopbits=s Vs2 with parameters : Send the ascii string to the specified Comport.
Note all parameters must be supplied
SETTCPPROPERTIES name="connection name"
enable=true|false
Enable / Disable TCP Connections
Additional notes: None running these commands from a sequence will send the results to the Debugging Trace Window on the Sequence Editor
CONFIG COMMANDS
Command Arguments Description Examples
DEBUGLOG [enabled=true|false]
[rotation=true|false]
[expires=X (number of days)]
Return Logging status, optionally enable/disable logging, rotation and number of days to keep logs
MOVIEDRIVES [C-Z] [C-Z] [C-Z] [C-Z] [C-Z] [C-Z] Set primary movie drive, or set all movie drive letters !
OTHERDRIVE [C-Z ] Set other resource drive letter !
SETDISPLAYCONFIG XDL_filename Set the permanent XDL file that will be used on next file load
SETDISPLAYCONFIGALL XDL_filename Set the permanent XDL file that will be used on next file load for the group
SETPERMANENTSHOWFILE XML_Filename Set the permanent XML file that will be merged with the next file loaded
SETPERMANENTSHOWFILEALL XML_Filename Set the permanent XML file that will be merged with the next file loaded for the group
GROUP groupNumber [Leader | Follower] Set the current group and optionally if Leader or Follower !
KILLGUI None Close any connected GUI immediatley !
SETDEFAULTSHOWFILE XML_Filename Set default XML file that will be loaded on startup SETDEFAULTSHOWFILE show.xml
SETDEFAULTSHOWFILEALL XML_Filename Set default XML file that will be loaded on startup for all servers in the group SETDEFAULTSHOWFILEALL show.xml
DISPLAY MODE COMMANDS
Command Arguments Description Examples
BEAMS [r g b rg rb gb rgb ] Set the overall beams to the value given
DISPLAY fullscreen | windowed | minimized Make the playback window fullscreen, windowed or minimized !
DISPLAYALL fullscreen | windowed | minimized Change the group's playback windows
DIALOG windowed | minimized Make the server dialog windowed or minimized
APPLYSHOWMODE None Turn on geometry, blending, beams, turn off grid, stats & graph, make fullscreen !
GEOMETRY on|off Enable or disable all geometry warping !
BLENDING on|off Enable or disable all blending !
BLACKLEVELUPLIFT on|off Enable or disable all blacklevel uplift !
GRAPH on|off Turn the diagnostic graph onscreen on or off
STATS on|off Turn the diagnostic text onscreen on or off
AUDIOVU on|off Turn the diagnostic audio VU meters onscreen on or off
TOGGLE3DEYES None In Active stereo, toggle the left eye/right eye for this server
INVERT3DEYES y|n In Active stereo, set the left eye/right eye inversion for this server
CHANNELMOVE (name=chName | num=chIndex | num=a-b | num=a,b,c)
(mode=fullscreen |
[x=xval]
[y=yval]
[w=wval]
[h=hval]
[r=rval])

Alternative, multi-channel syntax:

ch1="[x=xval] [y=yval] [w=wval] [h=hval] [r=rval]
| [mode=fullscreen]" ch2="" ...
Move the named channel(s) in 2D.
Specify the channel(s) using 'name' OR 'num'.
Use 'mode=fullscreen' to make the channel(s) fullscreen OR set the channel(s) location parameters indivdually.




Alternative, multi-channel syntax:

Specify different location parameters for multiple channels at the same time
channelmove num=1 x=50 y=100 h=200 w=200 r=0

channelmove num=2 mode=fullscreen

channelmove num=1-10 x=200 y=50

channelmove num=5,16,17,31 x=0 y=40

channelmove ch1="x=0 y=0 w=100 h=100"
ch2="mode=fullscreen"
CHANNELMOVE3D (name=chName | num=chIndex)
[x=xval]
[y=yval]
[z=zval]
[h=hval]
[p=pval]
[r=rval]
[left=leftval]
[right=rightval]
[top=topval]
[bottom=bottomval]
Move this channel in 3D.
Specify the channel using 'name' OR 'num'.
CHANNELCOMPVP (name=chname | num=X)
[x=xval]
[y=yval]
[w=wval]
[h=hval]
[r=rval]
Set the composition mode viewport
SETCANVASSIZE [w=wval] [h=hval] Set canvas size
TESTPATTERN pattern=name [enable=true] [opacity=percentvalue] [size=n] [orientation=vertical/horizontal] [level=0-255 or 1023] [dotsize=1-10] [x=0-100] [y=0-100] [orientation=vblackbottom/vblacktop/hblackleft/hblackright] [levels=n] Set the test pattern to normal, chequer, resolution, black, white, uniformity, sphericaldots, greyscale, crosshatch, pointdistortion, genlock, colorbars, autoalignment or turn on or off the pixelgrid or displaygrid. Examples
 TESTPATTERN pattern=normal
 // set the output of the whole canvas to hide all testpatterns & show the normal content.
 TESTPATTERN pattern=checker
 // set the output of the whole canvas to show the chequerboard testpattern.
 TESTPATTERN pattern=resolution orientation=horizontal
 // set the output of the whole canvas to show the resolution testpattern with a horizontal orientation.
 TESTPATTERN pattern=black
 // set the output of the whole canvas to show the black testpattern.
 TESTPATTERN pattern=white
 // set the output of the whole canvas to show the peak white testpattern.
 TESTPATTERN pattern=uniformity level=200
 // set the output of the whole canvas to show the uniformity testpattern with an output level of 200 (from 255). For 10-Bit output systems, level can be 0-1023
 TESTPATTERN pattern=sphericaldots size=5 dotsize=2
 // set the output of the whole canvas to show the spherical dots testpattern with a box size of 5 degrees and a dot size of 2.
 TESTPATTERN pattern=greyscale orientation=vblackbottom levels=256
 // set the output of the whole canvas to show the vertical greyscale testpattern with black at the bottom and all 256 greyscale levels for an 8-bit output (use 1024 for 10 bit).
 TESTPATTERN pattern=crosshatch x=50 y=20
 // set the output of the whole canvas to show the crosshatch testpattern with 50 horizontal by 20 vertical boxes.
 TESTPATTERN pattern=pointdistortion
 // set the output of the whole canvas to show the point distortion overlay dots
 TESTPATTERN pattern=genlock
 // set the output of the whole canvas to show the genlock black/white testpattern (1 in 10 frames are shown as white while playing).
 TESTPATTERN pattern=colorbars
 // set the output of the whole canvas to show the colorbars testpattern.
 TESTPATTERN pattern=autoalign
 // set the output of the whole canvas to show the autoalign testpattern if autoalign is licenced.

 TESTPATTERN pattern=pixelgrid enable=true
 // set the output of the whole canvas to show the pixel grid (numbered grid in 100 pixel increments).
 TESTPATTERN pattern=pixelgrid enable=false
 // Remove the pixel grid.

 TESTPATTERN pattern=displaygrid opacity=50 size=10
 // set the output of the whole canvas to show the display grid at 50% opacity, size of 10 (also shows mesh edges in mesh mode).
 TESTPATTERN pattern=displaygrid opacity=0
 // Remove the display grid.

 Note that pixelgrid and displaygrid are not shown over any testpatterns above, but are overlayed when the media content is visible (pattern=normal).
SELECTSDIFORMAT name='formatname' OR index=X Select the current SDI format by name or Index (Index starts at 1]. !
SETVIDCAPFORMAT extctrlname='external control name' pixels=X lines=Y Select the Pixel format for Datapath Capture Inputs !
GETDIMENSIONINFOJSON None Provides some key display configuration details {
  'CanvasConfig': {
  'canvasHeight': 1440,
  'canvasWidth': 4480
 },
  'PreviewChannel': {
  'height': 1080,
  'width': 1920,
  'x': 100,
  'y': 200
 },
  'PreviewConfig': {
  'enabled': true,
  'height': 1080,
  'width': 1920
 }
}
CHANNELID [on/off] Turn the channel IDs on or off
GRIDOPACITY n Set the percentage grid opacity (rounds down to 1 significant figure)
SETSCALINGMODE mode Set the scaling mode
0 = Bilinear
1 = Bicubic
2 = Lanczos
setscalingmode mode=1
setscalingmode mode=bicubic
EXPRESS MODE COMMANDS
Command Arguments Description Examples
LOADMEDIAJSON None Load media.json and create a timeline based on the contents !
LOADCONFIGJSON setsystem = [ 0 / 1] Load config.json if setsystem is 1, set the server state accordingly !
GETPOOLJSON None Return a JSON file containing an array of all pool visual resources E
GETMEDIAJSON None Return a JSON file containing the contents of media.json (if previously loaded with LOADMEDIAJSON) E
GETCONFIGJSON None Return a JSON file containing the contents of config.json (if Simple Mode on and found) E
SETEXPRESSMODE enabled=[y/n] Set Express Mode on off, if on, monitors GUI editing and writes to config.json if altered
GETLASTMARKERJSON None Get a small JSON file which has "Name: markername" and "Difference:the number of frames from current frame" and "Absolute:the timecode". Disabled markers do not count. E
FILE COMMANDS
Command Arguments Description Examples
LOAD 'file name' Load the filename specified. This can be called by calling the showfile directly, e.g.: LOAD "showfile.xml"
NOTE: If full paths are used the character \ must be escaped with a second \
LOAD 'C:Shows\\showfile.xml'
MERGE 'file name' Merge the filename specified !
LOADALL 'file name' Load this filename on all servers in group (if found) !
SAVE 'file name' SAVE as filename specified !
SAVEALL 'file name' SAVE as filename specified on all servers in group (if found) !
MERGEALL 'file name' Merge this filename on all servers in group (if found) !
CLEAR None Clear all timelines
REFRESHAUTOALIGNMENT None Reload the AutoAlienment data for this server. updatemaster=[yes/no] to use the latest calibration as the master from now on. NOTE: updatemaster is only currently available for Scalable Display based calibrations
SETAUTOALIGNMENTPARAMS enabled=true | false
warpenabled=true | false
blendenabled=true | false
blackenabled=true | false
type=mpcdi | scalable | domeprojection
mpcdiregions="channelnumber@regionname". E.g. region="1@left,2@right"
Set AutoAlignment parameters for this server. !
GENERAL COMMANDS
Command Arguments Description Examples
GETRESOURCEXML None Return information about the current timeline resources in XML format
RESTART_PC None Reboot this server immediately
SHUTDOWN_PC [immediate | i] Shut down this server. By default this will close Delta first and the shutdown the server. Use the 'immediate' argument to shutdown immediately SHUTDOWN_PC
SHUTDOWN_PC i
SHUTDOWN_PC immediate
QUIT_APP None Close this server application immediately
GETRESBYID ID Retrieves information on a resource per ID GetresbyID 10139
SAVEOUTPUTIMAGE filename=nameForOutput Save a TGA of the current output frame to disk
GETFINGERPRINT None Retrieves the Server Fingerprint ID & Date getfingerprint
GLOBAL LEVEL COMMANDS
Command Arguments Description Examples
GLOBALFADE [up / down] n fade the video up or down over n seconds
GLOBALAUDIOFADE [up / down] n fade the audio up or down over n seconds
AUDIOLEVEL percent Set the master audio level to this value
VIDEOLEVEL percent Set the master video level to this value
GLOBAL VARIABLE COMMANDS
Command Arguments Description Examples
GLOBALVARSET $myvariable=myvalue [watched=true/false] [readonly=true/false Set or create the global variable to the value.
Optionally set the variable to be watched (shows in the Debug window of the Sequence Editor) or readonly, such that it will not be changed by assignment or globalvarset).

To create a float type variable, include a . (e.g. 1.2), to create a string type variable, surround the value with quotes (e.g. "mystringval"), otherwise, it defaults to an integer type. Note that once created as a type, you cannot change that type.
E
GLOBALVARGET $myvariable Get the value of this global variable E
GLOBALVARLIST None List the global variables & their values E
GLOBALVARDELETE $myvariable Delete this global variable
GPIO COMMANDS
Command Arguments Description Examples
GPIO_ID None Flash the front LED green and orange to identify the server
GPIO pin state or bitwise Set the GPIO pin (0-4) to the desired state (0 = off, 1 = on) or to the desired bit pattern (0-255). 0 sets all pins low, 248 sets all available pins high, 176 sets pins 0, 2, 3 high and 1, 4 low GPIO 1 1 sets pin 1 to 1
GPIO 176 sets pins 0, 2, 3 high and 1, 4 low
GPIO_SET_INPUT pin Set the GPIO pin (0-4) to be an input pin GPIO_SET_INPUT 1 sets pin 1 to an input
GPIO_SET_OUTPUT pin Set the GPIO pin (0-4) to be an output pin GPIO_SET_INPUT 1 sets pin 1 to an output
GUI SPECIFIC COMMANDS
Command Arguments Description Examples
EYEGOTOXYZ x y z Move the interactive mode eyepoint to X Y Z (in mm)
EYEGOTOXYZAZEL x y z ah p r Move the interactive mode eyepoint to X Y Z (in mm) Azimuth and Elevation (in degrees)
LAYER COMMANDS
Command Arguments Description Examples
LAYERFADE [Layer No / Resource Name] %opacity Set layer(s) with a dynamic transparency resource to the opacity value
LAYERFADE2 [layer=layer_num]/[resname=name] [percent=val]/[byte=val] [allingroup=yes/no] Set layer(s) with a dynamic transparency control to the opacity value using tag-style params. Allows % values (0-100) or byte values (0-255). [allingroup=yes] tag sends to all servers in the group.
LAYERFADEALL [Layer No / Resource Name] %opacity Set all servers layer(s) with a dynamic transparency resource to the opacity value
LAYERENABLE layer [on/off] Enable or disable the layer
LAYERENABLEALL layer [on/off] Enable or disable the layer on all servers
LAYERFADETIMED [ name / layer ] [ up / down ] n Fade the dynamic transparency resource on the layer or by name up or down (in 1000ms or 1.5s or 100f)
Note that in a single sequence, only one layerfadetimed at a time is active - if you need multiple parallel layerfadetimed's active, call a separate sequence for each one using the SEQUENCE command. This is the same for layerfadetimedall & layerfadetimedto.
LAYERFADETIMEDTO layer=layernumber time=[time in these formats 1000ms or 1.5s or 100f] value=[0-100%] all=[y/n] startvalue=[0-100%] Fade the dynamic transparency on the layer by name to a value. all defaults to n. startvalue defaults to current value. layer/time/value params are required
LAYERFADETIMEDALL [ name / layer ] [ up / down ] n All Servers : Fade the dynamic transparency resource on the layer or by name up or down (in 1000ms or 1.5s or 100f)
MEDIA COMMANDS
Command Arguments Description Examples
TICKER \"newtext\" size R G B ctrlname=\"extctrlname\" Change the ticker text to \"newtext\" fontsize, color are optional, the tag ctrlname specifies the target resource
TICKERPOS Y Change the ticker Y position (top of the text in pixels)
TEXTPARAMS 'resource name' 'newtext' size R G B X Y Change any text to $quot;newtext$quot; fontsize, color and position are optional
RELOADIMAGES [name=controlname] Reload one or all images (non realtime command). A Tag of name= !
MEDIAMOVE ---2D---
controlname x [y] [w] [h] [r] [fullscreen / flat / channel]
--3D--
Az [El] [w] [h] [r] [fullscreen / flat / channel / fisheye / panoramic]
---2D opt---
[controlname / ctrlname=name] [x=0] [y=0] [w=0] [h=0] [r=0] [modX=n] [modY=n] [modW=n] [modH=n] [modR=n] [mode = fullscreen / flat / channel] [channel=[1-32]] [feather=percent] [crop=\"L% R% T% B%\" ]
---3D opt---
[controlname / ctrlname=name] [az=0] [el=0] [w=0] [h=0] [r=0] [modAz=n] [modEl=n] [modW=n] [modH=n] [modR=n] [mode = fullscreen / flat / channel] [channel=[1-32]] [feather=percent] [crop=\"L% R% T% B%\" ]
Move this media in 2D
Move this media in 3D
Move this media in 2D (all parameters are optional).The Mod* tags will apply incremental or decremental values to the corresponding value. Note that mode=flat takes the media out of fullscreen
Move this media in 3D (all parameters are optional). The Mod* tags will apply incremental or decremental values to the corresponding value. Note that mode=flat takes the media out of fullscreen
MEDIAMOVEDIRECT None Move this media in 2D Move this media in 3D
Move this media in 2D (all parameters are optional).The Mod* tags will apply incremental or decremental values to the corresponding value. Note that mode=flat takes the media out of fullscreen
Move this media in 3D (all parameters are optional). The Mod* tags will apply incremental or decremental values to the corresponding value. Note that mode=flat takes the media out of fullscreen
MEDIALAYER extctrlname layer Move this media to a new layer
MEDIAENABLE extctrlname [y / n] Enable or disable this media !
MEDIACOLOR extctrlname R G B [O] [A] [reset] Set the visual media's red, green, blue, overall gain and alpha as a percentage or reset to defaults
MEDIAINSERT ---basic movie or image insert---
[image/movie] resourcename [frame / +frame / -frame] [timecode] [framerate] [layer / background] [x y] [w h] [autodelete] [autoplay] [ctrlname=myctrlname] [length=framecount] [feather=percent] [crop=\"L% R% T% B%\" ] [channel=ChannelNumber] [mapping=channel/flat/fisheye/panoramic] [fullscreen] [eyepointmask=mask][eye=stereomode]
---movie insert---
type=movie [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [x=X] [y=Y] [w=W] [h=H] [autodelete] [autoplay] [ctrlname=myctrlname] [length=framecount] [feather=percent] [crop=\"L% R% T% B%\" ] [channel=ChannelNumber] [mapping=channel/flat/fisheye/panoramic] [fullscreen] [lumamode=luminance/red/green/blue/alpha] [lumainvert=true/false] [preferpreset=true/false] [inpoint=frame] [outpoint=frame] [speedratio=float] [eyepointmask=mask][eye=stereomode]
--- When inserting into playlist ---
[parent=external control name of parent container] [containeroverrides=general / features / location / animation / keying / colour / mesh] [autoplay] [duration=X] [fadeup=X] [fadedn=X] [crossfade=true/false] [itemenabled=true/false] [playmode=playntimes/trigger] [startfromlastitem=true] [noloop=true/false] [speedratio=float] [interpolateframes=true/false] [matchaudio=true/false]
---image insert---
type=image [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [x=X] [y=Y] [w=W] [h=H] [autodelete] [ctrlname=myctrlname] [length=framecount] [feather=percent] [crop=\"L% R% T% B%\" ] [channel=ChannelNumber] [mapping=channel/flat/fisheye/panoramic] [fullscreen] [lumamode=luminance/red/green/blue/alpha] [lumainvert=true/false] [preferpreset=true/false] [eyepointmask=mask][eye=stereomode]
--- When inserting into playlist ---
[parent=external control name of parent container] [containeroverrides=general / features / location / animation / keying / colour / mesh] [autoplay] [duration=X] [fadeup=X] [fadedn=X] [crossfade=true/false] [itemenabled=true/false] [playmode=playntimes/trigger] [startfromlastitem=true] [noloop=true/false]
---Aduio insert---
type=audio [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background][autodelete] [autoplay] [ctrlname=myctrlname] [length=framecount] [audiochannels=X,Y,Z...] [preferpreset=true/false]
--- When inserting into playlist ---
[parent=external control name of parent container] [containeroverrides=general / features / location / animation / keying / colour / mesh] [autoplay] [duration=X] [fadeup=X] [fadedn=X] [crossfade=true/false] [itemenabled=true/false] [playmode=playntimes/trigger] [startfromlastitem=true] [noloop=true/false] [speedratio=float]
---capture insert---
type=capture [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [x=X] [y=Y] [w=W] [h=H] [autodelete] [ctrlname=myctrlname] [length=framecount] [feather=percent] [crop=\"L% R% T% B%\" ] [channel=ChannelNumber] [mapping=channel/flat] [fullscreen] [lumamode=luminance/red/green/blue/alpha] [lumainvert=true/false] [forcew=X] [forceh=X] [preferpreset=true/false] [eyepointmask=mask]
--- Web Page only ---
[url=\"http://www.example.com\"] [jsevents=true/false] [alpha=true/false]
--- When inserting into playlist ---
[parent=external control name of parent container] [containeroverrides=general / features / location / animation / keying / colour / mesh] [autoplay] [duration=X] [fadeup=X] [fadedn=X] [crossfade=true/false] [itemenabled=true/false] [playmode=playntimes/trigger] [startfromlastitem=true] [noloop=true/false]
---geometry insert---
type=geometry [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete][ctrlname=myctrlname][channel=ChannelNumber]
---blend insert---
type=blend [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [autodelete][ctrlname=myctrlname][channel=ChannelNumber]
---effect insert---
type=effect [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount][direction=up/down] [preferpreset=true/false]
---shader effect insert---
type=shadereffect [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount] [preferpreset=true/false]
---control insert---
type=control [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount] [gotoframe=XX] [gotomarker=nameOfMarkerOnTL] [playmode=stop/play] [playingaction=ignore/stop] [markerkey=[ctrl][shift][0-9][F1-F12][off]] [markername=name] [preferpreset=true/false]
---text insert---
type=text [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount] [paragraph=\"text\"][fontsize=N][textcolor= RRR,GGG,BBB / #RRGGBB][textfont=\"fontname\"] [preferpreset=true/false]
--- When inserting into playlist ---
[parent=external control name of parent container] [containeroverrides=general / features / location / animation / keying / colour / mesh] [autoplay] [duration=X] [fadeup=X] [fadedn=X] [crossfade=true/false] [itemenabled=true/false] [playmode=playntimes/trigger] [startfromlastitem=true] [noloop=true/false]
---container insert---
type=container [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete] [autoplay] [ctrlname=myctrlname] [length=framecount] [preferpreset=true/false]
--- When inserting AV assembly into playlist ---
[parent=external control name of parent container] [containeroverrides=general / features / location / animation / keying / colour / mesh] [autoplay] [duration=X] [fadeup=X] [fadedn=X] [crossfade=true/false] [itemenabled=true/false] [playmode=playntimes/trigger] [startfromlastitem=true] [noloop=true/false]
---event serial---
type=serialevent [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [autodelete] [autoplay] [ctrlname=myctrlname] [length=framecount] [ipaddress=xxx.xxx.xxx.xxx] [port=xxxx] [command=string] [repeatenable=true/false] [repeatcount=xx] [repeatframes=xx] [addframe=true/false] [preferpreset=true/false]
---spline insert---
type=spline [resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [timecode] [framerate] [layer=newlayer / background] [ctrlname=myctrlname] [length=framecount] [repeatcount=n] [pingpong=y/n] [preferpreset=true/false] [setnode=\"INDEX X1 Y1 X2 Y2 C1X C1Y C2X C2Y\"]
Add an image or movie to the timeline, optionally set other parameters
Note: Fisheye and Panoramic mapping will only take effect in Dome Mode.
Note: eyepointmask is a numeric value representing a bit mask and will only take effect in mesh mode.
Stereomodes:
Both
Left
Right
TopBottom
LeftRight
BottomTop
RightLeft

MOVIE : Add a movie resource to the timeline, optionally set other parameters using tag-style command parameters.
IMAGE : Add an image resource to the timeline, optionally set other parameters using tag-style command parameters
Note: Fisheye and Panoramic mapping will only take effect in Dome Mode.
AUDIO : Add an audio resource to the timeline, optionally set other parameters using tag-style command parameters
CAPTURE : Add a video capture resource to the timeline, optionally set other parameters using tag-style command parameters
GEOMETRY : Add a warp resource to the timeline, optionally set other parameters using tag-style command parameters.
BLEND : Add a blend resource to the timeline, optionally set other parameters using tag-style command parameters.
EFFECT : Add an effect resource to the timeline, optionally set other parameters using tag-style command parameters.
SHADEREFFECT : Add a shader effect resource to the timeline.
CONTROL : Add a control resource to the timeline, optionally set other parameters using tag-style command parameters.
TEXT : Add a text resource to the timeline, optionally set other parameters using tag-style command parameters.
CONTAINER : Add a container resource to the timeline, optionally set other parameters using tag-style command parameters.
SERIALEVENT : Add a serial event resource to the timeline
SPLINE : Add a spline resource to the timeline
Examples:
MOVIE:
mediainsert type=movie resourcename=\"waterplanet_\" layer=1 x=10 y=10 w=1900 h=1060 autoplay
// This inserts the movie on layer 1 at the specified size & location, and set's it to loop continuously
mediainsert type=movie resourcename=\"XXYYZZ\" layer=1 x=10 y=10 w=1900 h=1060 preferpreset=true
//Insert at a specific timecode, note timecodes will vary based of framerate
mediainsert type=movie resourcename=file timecode=12:00 framerate=30 // inserts at 12 seconds if at 30 fps
mediainsert type=movie resourcename=file timecode=12:00    //Will use an internal function to get the framerate
mediainsert type=movie resourcename=file timecode=12:00@30   //Will use the framerate provided after @
// If there is a preset of name XXYYZZ, use this in preference to the actual movie - if the preset is not found, insert the actual movie
mediainsert type=movie resourcename=\"amazon_720_\" layer=1 frame=200 matchaudio=true
// Matchaudio=true will search for any audio files which contain the same resource name as the movie and add them to the timeline at the same frame as the movie and 4 layers lower. Other parameters such as in and outpoints are also copied from the movie.
IMAGE:
mediainsert type=image resourcename=\"red square\" newname=\"red\" layer=1 fullscreen
AUDIO:
mediainsert type=audio resourcename=\"speech Left.wav\" layer=2 audiochannels=1
mediainsert type=audio resourcename=\"speech Left and Center.wav\" layer=2 audiochannels=5
mediainsert type=audio resourcename=\"All channels.wav\" layer=2 audiochannels=1,2,3
CAPTURE:
mediainsert type=capture resourcename=\"facetime hd camera id 400\" newname=\"laptopcamera\" layer=4 x=100 y=200 w=300 h=400 feather=10
BLEND:
mediainsert type=blend resourcename=ch1 channel=1
EFFECT:
mediainsert type=effect resourcename=transparency frame=100 direction=down layer=3
SHADER EFFECT:
mediainsert type=shadereffect resourcename=blackHole frame=20 layer=2
CONTROL:
mediainsert type=control resourcename=marker frame=100 playmode=play playingaction=stop markerkey=ctrlF1 markername=mymarkername
mediainsert type=control resourcename=goto frame=200 gotoframe=300 playmode=play
mediainsert type=control resourcename=goto frame=300 gotomarker=marker1 playmode=play
TEXT:
mediainsert type=text resourcename=mytext frame=100 layer=2 paragraph=\"this is the text\" fontsize=120 x=200 y=300 textfont=\"times new roman\" textcolor=12,66,200
CONTAINER:
mediainsert type=container resourcename=\"demo playlist\" layer=5 frame=100 length=500 containeroverrides=general duration=22s crossfade=true fadeup=1.5s fadedn=3s
SPLINE:
mediainsert type=spline resourcename=\"arc\" layer=5 frame=100 length=500 repeatcount=3 pingpong=y setnode=\"0 100 200 300 400 111 222 333 444\"
Inserts the \"arc\" spline onto layer 5 and sets its start node to 100,200, end node to 200,300, start control node to 111,222, end control node to 333,444
MEDIAPROPERTIES None Set existing timeline resource's properties. This behaves as per MEDIAINSERT however type is ignored, resourcename or ctrlname is used to determine the resource to edit.
MEDIAADD type=[movie|image] basename=nameforresource disk=diskLetter path=pathToResource filetype=fileExtension digits=digitsInFile lines=heightInPixels pixels=widthInPixels lengthframes=numOfFramesInMovie Add a resource stored on the server to the resource pool mediaadd type=movie basename='new movie' disk=E path=path\to\resource filetype=7th lines=1080 pixels=1920 lengthframes=100
MEDIAREMOVE ---single--- controlname
---multiple---
layer=1 resourcename=string ctrlname=string type=movie background=true/false all=true/false tl=1
Remove resource from timeline
Remove all resources which match the given tags
MEDIACLEARAUTODELETES None Remove all autodelete resources from timeline
TRANSFORMPARAMS ---2D--- name x [y] [w] [h] [r]
---3D---
name Az [El] [w] [h] [r]
---Optional---
[controlname / ctrlname=name] [mode=absolute/relative/speed] [startx=0] [starty=0] [startw=0] [starth=0] [startr=0] [endx=0] [endy=0] [endw=0] [endh=0] [endr=0] [enablex=0/1] [enabley=0/1] [enablew=0/1] [enableh=0/1] [enabler=0/1] [persistent=0/1] [pingpong=0/1] [start_easelength=0] [start_easespeed=0] [start_easeprofile=0.0] [center_easelength=0] [center_easespeed=0] [end_easelength=0] [end_easespeed=0] [end_easeprofile=0.0] [enablestart=0/1] [enableend=0/1] [xcount=0] [ycount=0] [rollcount=0] [startframe=X] [endframe=X]
Set this transform animator in 2D or 3D
MEDIALUMA ---set mode-- controlname mode [invert]
---set format---
[ctrlname=name] [resourcename=name] [mode=newmode] [invert=true/false]
Set the visual media's lumamode [off,luma,red,green,blue,alpha], optionally invert
Set the visual media's data format mode (note the extra modes compared to the non-tagged version of medialuma command above):

This sets the data format expected in the media, so for example, LumaKey (Red) expects to use the red component of the media as lumakey, whereas Depth (Alpha) expects to use the alpha component of the media as a depth modifier.

Modes:
Colour
LumaKey (Intensity)
LumaKey (Red)
LumaKey (Green)
LumaKey (Blue)
LumaKey (Alpha)
Depth (Intensity)
Depth (Red)
Depth (Green)
Depth (Blue)
Depth (Alpha)
Depth (RGB)
MEDIALUMA ctrlname=movie_10251 mode="depth (intensity)" invert=true
MEDIALUMA ctrlname=movie_10251 mode=colour
ADDPOOLRESOURCE type=movie disk=[A-Z] path= Add a movie resource to the resource pool without refreshing from disk ADDPOOLRESOURCE type=movie disk=c path=\"movies\\amazon_720\" basename=\"amazon_720_\" filetype=7th420 digits=5 pixels=1280 lines=720 lengthframes=2445
ADDPOOLRESOURCE type=image disk=C path=\"Images\\foldername\" basename=\"7thSense Splash\" filetype=png pixels=974 lines=743
REFRESHRESOURCES None Refresh the resoure pool !
WEBSETURL res=\"ExternalControlName\" url=\"http://www.7thsensedesign.com\" hres=1280 vres=800 Change the web control's URL or resolution
WEBNAVIGATE res= Control this web resource
SETARTNETCHANNEL channel=cvalue value=vval [stride=sval] Set ArtNet/DMX channel to this value directly, with optional stride of 1,2 or 4
ARTNET inputenable=[y/n] outputenable=[y/n] Enable or disable global ArtNet/DMX output broadcasting, input listening or both
LISTEFFECTS source=[pool / timeline] [tl=1-255 / All / r] List the realtime effects commands in this server Examples:
LISTEFFECTS source=timeline
name=Block Warp Transition:ctrlname=SE_10274
name=Venetian Concentric Transition:ctrlname=SE_10265
name=Venetian Blinds Transition:ctrlname=SE_10279

LISTEFFECTS source=timeline tl=3
name=Block Warp Transition:ctrlname=SE_10274

LISTEFFECTS source=pool
name=Venetian Concentric with Warp Transition
name=Venetian Concentric Transition
E
GETEFFECTPARAMS [ctrlname = name] | [resourcename = name] Get the parameters of individual effects resources. If using the ctrlname, this is a Timeline resource, if using the resourcename, this is a Pool resource.
GETEFFECTPARAMS ctrlname=SE_10279
resourcename=My blinds:effectname=Venetian Blinds Transition:effecttype=Shader Transition
propertyname=Number of blocks:value=18.42:min=1.00:max=1000.00:type=float
propertyname=Transition Size:value=0.66:min=0.10:max=0.90:type=float
propertyname=Angle:value=0.00:min=-180.00:max=180.00:type=float

GETEFFECTPARAMS resourcename="Smoke Wipe"
resourcename=Smoke Wipe:effectname=Smoke Wipe:effecttype=Shader Transition
propertyname=Transition Size:value=0.25:min=0.10:max=0.90:type=float
propertyname=Angle:value=0.00:min=-180.00:max=180.00:type=float
E
SETEFFECTPARAMS ctrlname=name
propertyname=propname
value=val
Set the parameters of individual effects resource on the timeline. SETEFFECTPARAMS ctrlname=SE_10279 propertyname="number of blocks" value=5
SETEFFECTPARAMS ctrlname=SE_10265 propertyname="horizontal centre" value=0.5
CORRECTASPECT [mode=maintainheight] Correct the aspect of any image on the timeline which has the Maintain Aspect flag set. By default, the image's width will be maintained and the height adjusted so the image is now the correct aspect.
With the Mode = maintainheight tag set, the height will be maintained and the width adjusted so the image is now the correct aspect. The X, Y and Roll values are not changed.
DELETEALLPRESETS None Permanently delete all presets from the [C:]\Presets folder.
DELETEPRESET resourceid=id Permanently delete one preset from the [C:]\Presets folder.
CREATEPRESET source=[pool/timeline] resourceid=id resourcename=newname Create a preset file on disk from the existing pool or timeline resource. You can add all mediainsert property commands after the above mandatory parameters such as audiochans=7 or timeline=3 so that you configure the resource prior to saving it as a preset,
SETCONTROLDATA ctrlname = name [current=value] [target=value] [ignorenexthit=true/false] [loopforever=true/false] Set the hit-counting parameters of an individual control resource on the timeline - when the target is non-zero, each time the goto is hit by playing into it, the current value is incremented so that when the current equals the target, the goto control is temporarily disabled, allowing playback to go through this control. It then resets the current value to 0 so that the goto is again active. Examples:
- Set the current to 0, target to 10. The goto will temporarily disable when the goto has been hit 10 times.
SETCONTROLDATA ctrlname=Control_10279 target=10 current=0

- Set the current value to match the target, which causes the goto to temporarily disable on next hit.
SETCONTROLDATA ctrlname=Control_10279 ignorenexthit=true

- Set the target to 0, which disables the hit counting.
SETCONTROLDATA ctrlname=Control_10279 loopforever=true
GETCONTROLDATAJSON ctrlname=nameOfControl
[source=pool]
Get a status response listing the Goto control's current & target values. If "source=pool" is set then look for controls in the resource pool rather than on the timeline. Examples:- GETCONTROLDATAJSON ctrlname=Control_10279
{\"ControlData\" : { \"ctrlname\"=\"Control_10279\" \"current\"=2 \"target\"=10}}
- GETCONTROLDATAJSON ctrlname=Control_10279 // which has been set to wait until triggered, but is not yet triggered
{\"ControlData\" : { \"ctrlname\"=\"Control_10279\" \"current\"=0 \"target\"=0}}
- GETCONTROLDATAJSON ctrlname=Control_10279 // which has been set to wait until triggered, but is triggered
{\"ControlData\" : { \"ctrlname\"=\"Control_10279\" \"current\"=\"triggered\" \"target\"=\"triggered\"}}
E
SETTRANSITIONPARAMS resourcename= name / ctrlname = name [red=value] [green=value] [blue=value] [range=value] [tolerance=value] [mode=disabled/chroma/luma] [enabled] [disabled] [startframe=frame] [stopframe=frame] Set the parameters of an individual transition resource on the timeline.
Notes :
enabled, disabled, startframe, stopframe are common to all types.
Use TRANSFORMPARAMS for transform animators
Examples:
SETTRANSITIONPARAMS ctrlname=TP_10279 mode=chroma red=100 green=0 blue=50 enabled startframe=100 stopframe=200 // for dynamic keying resource
SETTRANSITIONPARAMS ctrlname=TP_10279 mode=luma level=50 range=4 tolerance=20 // for dynamic keying resource
SETTRANSITIONPARAMS ctrlname=TP_10265 direction=down // for fade, transparency or timeline alpha
SETTRANSITIONPARAMS ctrlname=TP_10263 alpha=40 // for dynamic transparency resource
SETTRANSITIONPARAMS ctrlname=TP_10261 level=44 // for dynamic audio resource
GETTRANSITIONPARAMS resourcename= name / ctrlname = name Set the parameters of an individual transition resource on the timeline. Examples:
GETTRANSITIONPARAMS ctrlname=TP_10279
type="Dynamic Keying" frame=840 mode=chromakey red=224 green=32 blue=192 tolerance=0 range=0
GETTRANSITIONPARAMS ctrlname=TP_10279
type="Dynamic Keying" frame=834 mode=lumakey level=60 tolerance=12 range=13
GETTRANSITIONPARAMS ctrlname=TP_10265
type="Fade" frame=864 direction=up
GETTRANSITIONPARAMS ctrlname=TP_10263
type="Dynamic Transparency" frame=835 alpha=100
GETTRANSITIONPARAMS ctrlname=TP_10261
type="Dynamic Audio" frame=830 level=100
E
REPLACERESOURCE targetctrlname sourceresourcename replacemultiple=[true|false] Replaces a resource on the timeline (targetctrlname) with a different resource in the resource pool (sourceresourcename). If replacemultiple=true then replace all resources with the specified external control name replaceresource targetctrlname=movie_10253 sourceresourcename=7thFlyAnimationHD
Where movie_10253 is the external control name of the movie to be replaced and 7thFlyAnimationHD is the name of a movie in the resource pool
MESH MODE COMMANDS
Command Arguments Description Examples
SETMESHDATA meshid=meshidval [x=xval] [y=yval] [z=zval] [h=hval] [p=pval] [r=rval] [xscale=xscaleval] [yscale=yscaleval] [zscale=zscaleval] [opacity=opacitypercent] Set the Mesh position, size and opacity
MESHWORLDVIEW x, y, z, h, p, r Set the mesh world view coordinates
SETEYEPOINTDATA eyeid=eyeidval [enabled=y/n] [usetexcoords=y/n] [usedepth=y/n] [ortho=y/n] [x=xpos] [y=ypos] [z=zpos] [h=hpos] [p=ppos] [r=rpos] [left=leftangle] [right=right angle] [top=top angle] [bottom=bottom angle] Alter Mesh Mode eyepoint position
SETMESHVERTEXOFFSET meshid=meshidval [vertexid=id] [multivertexids=id] [x=xval] [y=yval] [z=zval] [finish] [resetone] [resetall] [show] [offsetmulti] [perchannel] [channel] [adjustred] [adjustgreen] [adjustblue] [worlddisable] [perchanneldisable] [vertexehidedisable] Move mesh vertices directly, show or hide them, reset adjustments or temporarily disable adjustments - Add x of -10 to a single vertex:
setmeshvertexoffset meshid=\"1\" vertexid=\"239\" x=\"-10.0\" y=\"0.0\" z=\"0.0\"

- Hide a single vertex:
setmeshvertexoffset meshid=\"1\" vertexid=\"239\" show=\"0\"

- Add 33 in Y to multiple vertices:
setmeshvertexoffset meshid=\"1\" multivertexids=\"246,759,247\" offsetmulti=y x=\"0.0\" y=\"33.0\" z=\"0.0\"

- Temporarily disable all world offsets:
setmeshvertexoffset meshid=\"1\" worlddisable=\"1\"

- Reset a single vertex (offsets & hidden status):
setmeshvertexoffset meshid=\"1\" vertexid=\"246\" resetone=y

- Reset multiple vertices (offsets & hidden status):
setmeshvertexoffset meshid=\"1\" multivertexids=\"246,759,247\" resetmulti=y

- Reset all adjustments on this mesh (offsets & hidden status):
setmeshvertexoffset meshid=\"1\" resetall=y

- Add 33 in Y to channel 1 of multiple vertices:
setmeshvertexoffset meshid=\"1\" multivertexids=\"246,759,247\" offsetmulti=y x=\"0.0\" y=\"33.0\" z=\"0.0\" PerChannel=y Channel=1

- Set colour of mesh when live drawing (in adjustment) to peak red:
setmeshvertexoffset meshid=\"1\" adjustred=255 adjustgreen=0 adjustblue=0

- Finish all adjustments (exit live drawing and return to high performance drawing):
setmeshvertexoffset meshid=\"1\" finish=\"true\"
MOVEMENT NODE COMMANDS
Command Arguments Description Examples
CREATEMOVEMENTNODE extctrlname=name [x=xval] [y=yval] [z=zval] [h=hval] [p=pval] [r=rval] [xscale=xscaleval] [yscale=yscaleval] [z=zscaleval] [order=orderstring] [enabled=y/n] [parent=extctrlnameofparent] [takex=**] [takey=**] [takez=**] [takeh=**] [takep=**] [taker=**] [takexscale=**] [takeyscale=**] [takezscale=**] Create a movement node which can be addressed from external control and meshes or eyepoints attached to it
(see ** below)
SETPARENTNODE target=[mesh/eyepoint/node] [index=1-16 / ALL] [node=nodeextctrlname] [parent=extctrlnameofparent] [detach=true/false] Attach a mesh, eyepoint or other node to this node setparentnode target=mesh index=1 parent=myparentnode
setparentnode target=eyepoint index=3 parent=myotherparentnode
setparentnode target=node node=nodeextctrlname parent=myparentnode
setparentnode target=mesh index=ALL detach=true
DELETENODE extctrlname=name | nodeguid=guid Delete an existing movement node. If both args are supplied, extctrlname will take precedence
DELETEALLNODES None Delete all existing movement nodes
SETNODEPARAMS extctrlname=name [x=xval] [y=yval] [z=zval] [h=hval] [p=pval] [r=rval] [xscale=xscaleval] [yscale=yscaleval] [z=zscaleval] [order=orderstring] [enabled=y/n] [parent=extctrlnameofparent] [detach=true/false] [takex=**] [takey=**] [takez=**] [takeh=**] [takep=**] [taker=**] [takexscale=**] [takeyscale=**] [takezscale=**] Set an existing node's parameters (see ** below)
LISTNODES None Get a list of all current movement nodes
PLAYLIST COMMANDS
Command Arguments Description Examples
PLAYLISTNEXT playlistextctrlname=[name] index=playlistindex [immediate] Move a playlist on to the next resource or move to a resource specified by the index argument PLAYLISTNEXT playlistextctrlname=[name] index=playlistindex [immediate]
LISTPLAYLISTS None List the current Playlists E
LISTCONTAINERITEMS extctrlname=[name] List the items within a container (Playlist, AVAssembly)
PLAYLISTINSERTITEM playlistextctrlname=[name] type=[image/movie/audio/capture] resourcename=[name] index=[index] [autodelete] Insert Item into Playlist. All other mediainsert flags apply here also such as fullscreen.Use autodelete tag if item should delete itself once played
PLAYLISTREMOVEITEM playlistextctrlname=[name] index=[index] / extctrlname=[name] Removes Item from Playlist at index or by name
PLAYLISTMOVEITEM playlistextctrlname=[name] index=[index] direction=[up/down] Moves Item in Playlist Up/Down the order
PLAYLISTSTATUS playlistextctrlname=[name] Gets the status of a playlist
LISTASSEMBLIES None List the current Assemblies E
LISTAVASSEMBLIES None List the current AVAssemblies E
PLAYLISTPROPERTIES playlistextctrlname=[name] containeroverrides=general/duration/features/location.. animation/keying/colour/mesh/fade/playmode] [noloop] duration=[time in seconds] [crossfade] fadeup=[timeinsecs] fadedn=[timeinsecs] playmode=[playntimes/trigger] repeatcount=[number times to repeat] enabled=[y/n] [noloop] [startfromlastitem] Sets Properties on a PlayList or PlayList Item. For Container Overrides, which apply only to resources with child resources, options may be 'Or'd together, for example containeroverrides=general|features.
The example sets the duration of every item to 18 seconds and repeats until trigger
PLAYLISTPROPERTIES playlistextctrlname=playlist containeroverrides=duration|playmode duration=18 playmode=trigger
PLAYLISTREMOVEALLBUTCURRENT playlistextctrlname=[name] Removes all but the currently playing item from an active playlist.
PREVIEW COMMANDS
Command Arguments Description Examples
PREVIEWTIMELINE tl=X Select which Timeline to Preview. To view a composite of the entire preview inclusive of all visable timelines set tl=all
PREVIEWMOVEVIEWREL 2D/3D [left] [right] [top] [bottom] 3D opt: [x] [y] [z] [h] [p] [r] change the preview view relatively by this data
PREVIEWPARAMS None Returns Preview settings including whether it is enabled, the server peer name and port
PREVIEWPARAMSJSON None Returns Preview settings including whether it is enabled, the server peer name and port in JSON format
SETPREVIEWPARAMS statsenable=[y/n] graphenable=[y]/n] audioenable=[y/n] chanmappedenable=[y/n] serverinfoenable=[y/n] chanidenable=[y/n] Turn on/off preview stats, graph, audio and preview of channelmapped media
PREVIEWSETTINGS [FlatX=X] [FlatY=Y] [FlatW=W] [FlatH=H] [FlatR=R] [DomeX=X] [DomeY=Y] [DomeZ=Z] [DomeH=H] [DomeP=P] [DomeR=R] [DomeWidth=W] [DomeHeight=H] Set any of the preview view parameters.
RECORDING COMMANDS
Command Arguments Description Examples
REAL-TIME_RECORD mode=[start / stop / continue] Start or stop preview recording with the configured parameters.If disk is full, you will get back PREVIEWRECORDSTATUS=DiskFull and recording will not start.
If already recording and send in start or continue, you will get back PREVIEWRECORDSTATUS=AlreadyRecording and recording will not start
Previously 'PREVIEWRECORD'
REFRESHMOVIE PREVIEWRECORDSETTINGS [fullpath=path] [filename=file] [startframe=start] [stopframe=stop] lockgui=[true/false] [OutputPixels=W] [OutputLines=H] Start or stop preview recording with the configured parameters.
If disk is full, you will get back PREVIEWRECORDSTATUS=DiskFull and recording will not start.
If already recording and send in start or continue, you will get back PREVIEWRECORDSTATUS=AlreadyRecording and recording will not start
DELETE_DISKMEDIA [resourcename=name] [controlname=ctrl] Delete the specified resource from disk, pool & timeline permanently (no undo!) Examples : Delete a resource from disk and the resource pool by resourcename (pool resources do not have external control names): DELETE_DISKMEDIA resourcename=mypoolmovie_

Delete a resource from the disk and the resource timeline by controlname : DELETE_DISKMEDIA controlname=mytimelinemovie_
!
REAL-TIME_RECORDSETTINGS [fullpath=path]
[filename=file]
[startframe=start]
[stopframe=stop]
lockgui=[true/false]
[OutputPixels=W]
[OutputLines=H]
Set any of the preview recording parameters. If recording is already started, this command will be ignored and you get Status=Error StatusInfo=AlreadyRecording
Note that for a path, you must escape backslashes and quote like this : \"e:\\Movies\\My Path\"
Previously 'PREVIEWRECORDSETTINGS'
ARTNET_RECORD [StartChan=StartVal] [EndChan=EndVal] [Universe=UniVal] [Subnet=SubnetVal] [ByteRange=1/2/4] [InputIP=IPVal] [InputIPSubnet=IPSubnetVal] [NumberFramesToRecord=FramesVal] [SaveFile=filepath] [PlayBackFile=filepath] [RecordingMode=idle/record/playback] [LoopPlayBack=True/False] Set any of the ArtNet recording parameters. Use Recording Mode to change whether you're recording, playingback or neither. Note, you will need to ensure you are in the correct ArtNet input/output mode, See ARTNET external control
Note: Save & PlayBack files are .txt files
artnet_record StartChan=1 EndChan=13 Universe=3 Subnet=2 ByteRange=2 InputIP=192.168.71.10 InputIPSubnet=255.255.255.0 NumberFramesToRecord=80 SaveFile=C:\Movies\Record\art_test.txt PlayBackFile=C:\Movies\Record\artnetrec.txt RecordingMode=Idle LoopPlayback=true
SEQUENCE COMMANDS
Command Arguments Description Examples
RELOADSEQUENCES None Reload the current sequence file
SEQUENCE name Start the named sequence. Returns unique name of sequence
SEQUENCEALL name Start the named sequence on all servers in the group. Returns Unique name of sequence
LISTSEQUENCES None List the current sequence names E
LISTSEQUENCEACTIONS None List the available sequence actions
LOADSEQUENCES filename Load the named sequence file
CANCELSEQUENCE uniquename Cancel the current sequence
CANCELALLSEQUENCES None Cancel all running sequences. Add persist=true to cancel all sequences including those set to persist
PAUSESEQUENCE uniquename [y/n](y=pause n=resume ommited=resume) Pause the sequence with 'uniquename'
SEQUENCESTATUS None List the currently running sequences and their status
PANELSEQUENCE index=[1-6] sequence=\"mysequence\" Set one of the sequence panel buttons to a specific sequence (these are stored in the show XML)
GOTOLINE linenumber Set one of the sequence panel indicators to your own text & the led to red(off), green(on), grey(idle) or blue(none) S
DELAY n (s) or (f) Delay the current sequence, (1000ms or 1.5s or 100f) - note this does not work from external control, only in a sequence.
example=
S
SEQUENCE DEBUGGING
Command Arguments Description Examples
LOG message="string"
[file=c:/filename.txt]
[timestamp=y|n]
[level=level]
Log a message. File is optional and can be a relative or absolute path to a file, if no file is given the message will log to the delta log file, the directory must already exist. Optionally timestamp, default is to add timestamp. Optionally record a level, level can be NOTE, WARNING, ERROR, FATAL
TRACEVAR $variablename Output the value of this variable to the trace messages window
TRACECOMMENT any text Output any text string to the trace messages window
TRACECLEAR None Clear the trace messages window
TRACELIST [watched] Output a trace of global variables to the trace messages window, optionally only the Watched variables
TRACEON None Turn off all trace messages until the next TraceOn command
TRACEOFF None Turn on all trace messages until the next TraceOff command
TRACESEQNAME None Show the current sequence name in the trace window
TRACENONCODE off | on Show every active line of the sequence (not including code lines) in the trace window
WATCHVAR $variablename off | on Turn on or off Watching for this variable
WATCHCLEAR None Turn off Watching for all variables
Additional notes: None Activate the debugging windows by selecting Debugging from the Sequence Editor and use the trace commands On the Global Variables page of the sequence editor, you can select which (or all or none) variables to Watch & these show in the Watched Variables window
STATUS / ENABLE COMMS COMMANDS
Command Arguments Description Examples
LISTSHOWS 'path' return list of XML show files in path (no path=current folder)
LISTALLSHOWS 'path' as LISTSHOWS, but shows separated by : instead of CRLF
LISTMARKERS None return list of marker names and positions E
STATUS None Return a list of server status strings
STATUSEX None Return an Extendable list of server status strings : This list will change over time. The NumberOfItems data on the first line indicates the current number of status items.
FILESTATUS None Return a list with current filename, permanent show & permanent display config filenames
SHORTSTATUS [seconds] [smpte] [file] Return a list with current filename, permanent show & permanent display config filenames
SHORTSTATUSALL [seconds] [smpte] [file] Return a list with current filename, permanent show & permanent display config filenames for all servers in the group
LISTPOOLRESOURCES [images/movies/audio] return list of pool resources of specified type E
TIMELINESTATUS tl=(tl name | tl number | r) Return a list of server status strings for the timeline specified
REGISTERSTATUS None Receive the server status every second on the TCP client used to register E
UNREGISTERSTATUS None Stop receiving the server status every second on the TCP client used to call REGISTERSTATUS
GETTLSTATUSJSON+ + Retrieves information in a JSON format about your timeline and show set-up
SENDSTATUS None return list of marker names and positions
FULLSTATUSJSON None Returns extended server status information in a JSON format
EXTCTRLCOMMS enable=true | false If enable=false, all messages (other than EXTCTRLCOMMS) are stopped from being actioned and a message is returned of "External Control Comms disabled", use EXTCTRLCOMMS enable=true to re-enable
Additional notes: None running these commands from a sequence will send the results to the Debugging Trace Window on the Sequence Editor
TIMELINE COMMANDS
Command Arguments Description Examples
RESERVE on | off Set the reserve layer on or off in the group
TIMELINEOPACITY value=xx Time=xs tl=Y Set the transparency of a Timeline in percent. If Time is not provided, this will be instant
TIMELINEOPACITYALL value=xx Time=xs tl=Y All Servers : Set the transparency of a Timeline in percent. If Time is not provided, this will be instant
SETNUMTIMELINES value=X reserveenabled=0|1 reservetimeline=X X ranges from 1-32. Optionally turn Reserve off or on with 0 or 1. To disable the reserve timeline, set reservetimeline to Off !
SETTIMELINEVISIBILITY visible=y|n tl=n Set the timeline visibility state
TIMELINEMODE 0|1|2 Sets the timeline mode (0 = Normal, 1 = Global Z, 2 = Composite timelinemode 0
LCTIMELINE rewind="X,0,20"
stop="X,40,120"
cue="X,160,220"
play="X,240,255"
opacity="X,0,255"
Logic Control command for realtime conditional actions based on an integer value. The example will cause the timeline to play if 75 is between 50 and 100. This is most useful for artnet commands where 75 would be replaced with the value of an artnet input. play="75,50,100"
UNIFIED WRITE FILTER COMMANDS
Command Arguments Description Examples
SETUWF action=[enable / disable / protect / unprotect] [reboot=true] [refreshstatus=true] Enable or disable the whole filter, protect or unprotect the c: drive, optionally reboot and optionally refresh the status sent back to the GUI

The Unified Write Filter (UWF) allows the C: drive to be set to Read Only / write protected and is supported on certain servers which have Win 10 Enterprise LTSB version.

When the C: drive is read only, any changes to the show, configuration or windows settings are lost on reboot, so edits and config changes should not be made in this state.

If set to fully protected (UWF is installed, Filter is enabled & the C: volume is protected), the GUI will show Read Only Server to the left of the layers and in the title bar to show that changes should not be made as they will be lost - note that most editing functions in the GUI are disabled at this time.

To make changes to the server, you need to unprotect the drive using the commands below (setuwf action=disable).

Note the server must be rebooted for it to complete the action.
Enable the write filter and refresh the status in the GUI.
setuwf action=enable refreshstatus=true

Protect the c: drive and refresh the status in the GUI.
setuwf action=protect refreshstatus=true

Protect the c: drive and reboot the server immediatlely without asking.
setuwf action=protect reboot=true
SEQUENCE CODE COMMANDS
Note that the double quote " is reserved, use \x22 to output it, $ is reserved, use \x24 to output
Special keywords are reserved (e.g. $currenttime)
Comments
// Can have full line comments like this or
    $myvar =2 // after the code
    
Equivalence Testing

Valid tests are   =  !=   and   or   <   >   <=   >=   &   |

if ($myvar = $myvar2)
    if ($myvar = 2)
    if (2 = $myvar)
    if ($myvar > $myvar2)
    if ($myvar and 1)
    if ($myvar!=2)
    if ($mystringvar="mystring")
    if ($myvar < $absoluteframe[0])
    
Notes
Greater to or less than work on int or float type variables "and", "&", "or", "|" only work on Int type variables.
String comparison is case insensitive.
Add, Subtract, Multiply, Divide, Modulus and Concatenate
$myvar = $myvar2 + $myvar3
    $myvar = $myvar2 + 2
    $myvar = 2 + $myvar2
    $myvar = -$calcDisplay + 5
    $myvar = -$calcDisplay - 5
    $myvar = -$myvar - -5
    $myvar = -$myvar2 - -$myvar
    $myvar = $myvar2 % 10
    

Above lines can use + - * / % for the arithmetic operation on integer or float types

$mystringvar = $mystringvar2 + " (Test)"

Addition with string variables concatenates them

Adding an int or a float to a string will concatenate the int or float as a string

Concatenate Arguments and Strings
              mediainsert resourcename=$thisClip+$thisVersion
              mediainsert resourcename=$thisClip+$thisVersion+"_444"
              mediainsert resourcename=$thisClip+$thisVersion+'_444'
              load "C:\\Shows\\"+$showName
            

Above lines can be used to concatenate the values of variables as strings and explicit strings within the argument of a function.

Explicit strings can be enclosed by single or double quotes.

Create Global Variables

Global Variables can be int, float or string

globalvar $myintvar = 1
    globalvar $myfloatvar = 6.54
    globalvar $mystringvar = "movie"

    globalvar $myintvar = 1 readonly
    // adding readonly will create a variable at that value, which will not be written to the registry thereafter


    globalvar $myintvar = 1 watched
    // adding watched after will make this variable watched in the debugging area, creating a global var which
    already exists will do nothing
    
Set Global Variables
$myintvar = 12
    $myfloatvar = 16.54
    $mystringvar = "movie2"
    $myvar = $myothervar
    
Special Variables
$myvar = $seqrandom[4,40]
    // sets $myvar to a random value between 4 & 40 inclusive

    $myvar = $absoluteframe[2]
    // sets $myvar to the current absolute frame of timeline 2

    $mystringvar = $absoluteframe[1] smpte
    // sets $mystringvar to the current absolute frame in smpte mode of timeline 1

    $mystringvar = $absoluteframe[1] digits=5
    // sets $mystringvar to the current absolute frame formatted to 5 digits where possible

    $mystringvar = $currenttime
    // sets $mystringvar to the current clock time of the server

    $mystringvar = $intcurrenttime
    // sets $mystringvar to the current clock time of the server as an integer

    $mystringvar = $currentdate
    // sets $mystringvar to the current date in dd/mm/yyyy

    $mystringvar = $currentdate usa
    // sets $mystringvar to the current date in mm/dd/yyyy

    $replacevarmode = [0/1]
    // 0 is the default search replace mode, 1 is a simple string replace mode

    $mystringvar = $seqplaymode[2]
    // sets $mystringvar to the playmode for that timeline, e.g. "Play", "Stop", "Ready to Play",
"Preparing to Play" $mystringvar = $seqautoplaymode[2] // sets $mystringvar to the Autoplaymode for that timeline,"Play" or "Stop" $myvar = $seqreserve // sets $myvar to 0 if not in reserve or 1 if in reserve $mystringvar = $timetoresource resourcename [smpte / seconds] // sets $mystringvar to the time to the named resource, in number of frames (by default),
or seconds / smpte timecode with optional parameters $myintvar = $extctrlcomms // Set to 1 if external control comms is enabled, 0 if external control comms is disabled
(set using the EXTCTRLCOMMS command) $myfloatvar = $currentframerate // Sets $myfloatvar to the current frame rate
Notes
- Setting a int variable to 1.22 will result in a value of 1
- Setting a string value to 1.3 will result in a string representation of "1.3"
- You cannot name your own variables any of the reserved Special Variable names
Special Keywords

$persistsequence

Adding this keyword to your sequence will call this sequence to persist through file new/open

$startblock

All lines up to $endblock are completed in 1 frame

$endblock

All lines from start block up to $endblock are completed in 1 frame
Note : do not put Gotolabel loop inside start/end block as this will cause high CPU use

Increment / Decrement
$myval++
    $myval--
    
Conditional Branching
if (condition)
    {
    // Do something
    }
    else
    {
    // Do something else
    }
    

Multiple if or if-else blocks are allowed, no nesting is allowed

Jump to lines
$myintvar = 12
    #start // label is designated by #
    if ($myintvar>0)
    {
      $myintvar--
      // do something 12 times
      gotolabel #start
    }
    

You can also use gotoline X where X is a line number within the sequence

Variable Sizes
Int: whole number, value in the range -2147483648 to +2147483647
    Float: floating point , 1.17 x 10(-38) to 3.4 x 10(38)
    String: Character array, up to 128 characters in length.
    
Special Functions
timeangles($hourangle,$minuteangle,$secondangle,$offsetangle )
    // timeangles returns the angles for an hour, minute & second hand in an analogue clock, with an
    // optional offsetangle parameter
    // By default, offsetangle is 0, to get 12 midnight straight up, use -90 as an offsetangle.

    angletoxy($secondangle,$radius,$x,$y)
    // angletoxy works out the x & y position around a centrepoint for a specific angle.
    // set radius to the desired circle radius.
    
SEQUENCE TIMING
Each line in a sequence takes 1 frame to complete
// comment lines & blank lines will be ignored for timing purposes
Firing of sequences may variably take 1-4 frames
To make a sequence complete a set of lines in 1 frame, use the $startblock / $endblock special variables as below

// 1 frame
    if ($myvar = $myvar2)
    // 1 frame
    {
      // 1 frame
      $count++
      // 1 frame
      textparams myresource $count
      // 1 frame
    }

    // all lines from $startblock to $endblock complete in 1 frame
    $startblock

    $count2++

    $myval = $myval2 + 2

    textparams myresource2 $count2

    $endblock
    
Note: Do not put a Gotolabel loop inside startblock / endblock as this will cause high CPU use
EXAMPLE SEQUENCE CODE
Most parts of control commands can be replaced with variable values, so for example, this command is legal:
$ipaddress = "10.100.102.123"
$port = "7780"
$myascii = "MyCodes"
SENDASCIIUDP  $ipaddress  $port  $myascii \x0d
//Real Time Clock using Text Resource called RTC
globalvar $clock = "01:01:01"
    // create string variable for clock string

    #start
    // create label to jump back to

    $clock = $currenttime
    // get current server time into $clock variable

    textparams RTC $clock
    // set the RTC text resource to the $clock value

    delay 1s
    // delay 1s

    gotolabel #start
    // repeat until cancelled
            
Ramp up ArtNet Channel 16 from 0-255, then exit
globalvar $value = 0
    // create int variable for counter

    #start
    // create label to jump back to

    setartnetchannel channel=16 value=$value
    // Set channel 16 to current value

    $value++
    // increment value

    if ($value>255) // test if > 255
    {
      // if value>255, jump to end
      gotolabel #end
    }

    gotolabel #start
    // jump to start

    #end
    
Query the time to a specified resource
globalvar $mystringvar = ""
    // create string variable

    $mystringvar = $timetoresource RTC smpte

    tracevar $mystringvar

    // For RTC resource at 00:00:05::00 and playhead at 00:00:03::00, outputs "$mystringvar = 00:00:02:00" to
    sequence editor trace window. If the time positions are reversed, outputs "$mystringvar = -00:00:02:00"

    
Analogue Clock
globalvar $hourangle = 0.0
    globalvar $minuteangle = 0.0
    globalvar $secondangle = 0.0
    globalvar $angle = 0.0
    globalvar $radius = 450.0
    globalvar $x  =0.0
    globalvar $y  =0.0
    globalvar $xoffset  =1000.0
    globalvar $yoffset  =500.0
    globalvar $offsetangle = -90.0

    // assumes a clock face centred on 1000,500, with 3 images named
    // hourhand, minutehand, secondhand also centred there.

    #START
    $startblock
    timeangles($hourangle,$minuteangle,$secondangle,$offsetangle )

    // move the 3 clock hands
    mediamove ctrlname=hourhand r=$hourangle
    mediamove ctrlname=minutehand r=$minuteangle
    mediamove ctrlname=secondhand r=$secondangle

    // make a small circular image follow the second hand, placed at the radius of the clock
    angletoxy($secondangle,$radius,$x,$y)
    // centre the movement over the clock
    $x = $x + $xoffset
    $y = $y + $yoffset
    mediamove ctrlname=circle_image x=$x y=$y

    $endblock
    delay 900ms

    gotolabel #START

    #END


    
Variable values can be changed from external control, so behaviour of sequences can be affected from control systems using the GLOBALVARGET, GLOBALVARGET, GLOBALVARLISTVARS and GLOBALVARDELETE external control protocol commands