7thSense Delta Media Server

Vs2.0 External / Sequence Control Protocol

www.7thsensedesign.com

PLAYHEAD COMMANDS
PLAY Play the show (no Cueing)
CUE Cue the show & wait for the play command
STOP Stop the show !
ADVANCE n Step forward n frames (defaults to 1) !
STEPBACK n Step back n frames (defaults to 1) !
REWIND Rewind the show to frame 0 ! *
GOTOMARKER "marker name" [play] Move to a named marker on timeline (optionally play) ! *
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 !
GOTOFRAME framenumber [play] Move to the framenumber specified (optionally play) ! *
GOTOTIME timecode framerate [play] Move to the timecode specified for the framerate (optionally play) ! *
RECORD Start recording. Details configured in GUI !
RATE n Set the framerate to n frames per second !
RATESCALE n 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.
!
AUTOPLAY COMMANDS
AUTOPLAY controlname [on / off]
PLAYAUTOPLAYMOVIES [on / off] or
PLAYAUTOPLAYS [on/off]
Play/Stop all AutoPlay movies !
GETAUTOPLAYSTATUS Gets Autoplay Playing status E
STARTAUTOPLAYFROMBEGINNING [yes / no] Start AutoPlay movies from the beginning
FILE COMMANDS
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 \, e.g.: LOAD "C:Shows\\showfile.xml"
!
MERGE "file name" Merge the filename specified !
SAVE "file name" SAVE as filename specified !
LOADALL "file name" Load this filename on all servers in group (if found) !
MERGEALL "file name" Merge this filename on all servers in group (if found) !
SAVEALL "file name" SAVE as filename specified on all servers in group (if found) !
CLEAR Clear all timelines !
REFRESHAUTOALIGNMENT 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 Set AutoAlienment parameters for this server. enabled=true warpenabled=true blendenabled=true blackenabled=true type=mpcdi/scalable/domeprojection mpcdiregions="channelnumber@regionname". E.g. region="1@left,2@right" !
STATUS / ENABLE COMMS COMMANDS
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 reenable"
comms is always enabled on first boot.

You can interrogate whether comms is on or off using the $extctrlcomms special variable
STATUS Return a list of server status strings
STATUSEX 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.
TIMELINESTATUS Return a list of server status strings for the timeline specified
SHORTSTATUS [seconds] [smpte] [file] Return a list with current frame and play mode (in frames, seconds or smpte, and append the filename if requested
FILESTATUS Return a list with current filename, permanent show & permanent display config filenames
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 return list of marker names and positions E
LISTPOOLRESOURCES [images/movies/audio] return list of pool resources of specified type E
REGISTERSTATUS Receive the server status every second on the telnet used to register E
Note that running these commands from a sequence will send the results to the Debugging Trace Window on the Sequence Editor
DISPLAY MODE COMMANDS
DISPLAYALL [fullscreen] [windowed] [minimized] Change the group's playback windows !
DISPLAY fullscreen Make the playback window fullscreen !
DISPLAY windowed Make the playback window windowed !
DISPLAY minimized Make the playback window minimized !
DIALOG windowed Make the server dialog windowed
DIALOG minimized Make the server dialog minimized
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).
!
TOGGLE3DEYES 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
APPLYSHOWMODE 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
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 !
CHANNELMOVE [name=chname or num=X] [x=xval] [y=yval] [w=wval] [h=hval] [r=rval] Move this channel in 2D
CHANNELMOVE3D [name=chname or num=X] [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
CHANNELCOMPVP [name=chname or num=X] [x=xval] [y=yval] [w=wval] [h=hval] [r=rval] Move this channel in 2D
BEAMS [r g b rg rb gb rgb ] Set the overall beams to the value given
CHANNELID [on/off] Turn the channel IDs on or off
GRIDOPACITY n Set the percentage grid opacity (rounds down to 1 significant figure)
GETDIMENSIONINFOJSON Provides some key display configuration details, example:

{
"CanvasConfig": {
  "canvasHeight": 1440,
  "canvasWidth": 4480
 },
"PreviewChannel": {
  "height": 1080,
  "width": 1920,
  "x": 100,
  "y": 200
 },
"PreviewConfig": {
  "enabled": true,
  "height": 1080,
  "width": 1920
 }
}
MEDIA COMMANDS
MEDIAMOVE controlname x [y] [w] [h] [r] [fullscreen / flat / channel] Move this media in 2D
MEDIAMOVE controlname Az [El] [w] [h] [r] [fullscreen / flat / channel / fisheye / panoramic] Move this media in 3D
MEDIAMOVE [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%\" ] 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
MEDIAMOVE [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 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 [image/movie] resourcename [frame / +frame / -frame] [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] 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

MEDIAPROPERTIES 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.
MEDIAINSERT type=movie
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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] [audiochans=XX] [lumamode=luminance/red/green/blue/alpha] [lumainvert=true/false] [preferpreset=true/false] [inpoint=frame] [outpoint=frame] [speedratio=float] [eyepointmask=mask][eye=stereomode] [holdlastframe]

--- 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]
MOVIE : Add a movie resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
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
// 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.

Note: Fisheye and Panoramic mapping will only take effect in Dome Mode.
MEDIAINSERT type=image
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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]
IMAGE : Add an image resource to the timeline, optionally set other parameters using tag-style command parameters

Examples:
mediainsert type=image resourcename="red square" newname="red" layer=1 fullscreen

Note: Fisheye and Panoramic mapping will only take effect in Dome Mode.
MEDIAINSERT type=audio
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [layer=newlayer / background][autodelete] [autoplay] [ctrlname=myctrlname] [length=framecount] [channel=ChannelNumber] [audiochans=XX] [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]
AUDIO : Add an audio resource to the timeline, optionally set other parameters using tag-style command parameters

Examples:
mediainsert type=audio resourcename="speech Left.wav" layer=2 audiochans=1
mediainsert type=audio resourcename="speech Left and Center.wav" layer=2 audiochans=5
mediainsert type=audio resourcename="All channels.wav" layer=2 audiochans=FF
MEDIAINSERT type=capture
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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]
CAPTURE : Add a video capture resource to the timeline, optionally set other parameters using tag-style command parameters

Examples:
mediainsert type=capture resourcename="facetime hd camera id 400" newname="laptopcamera" layer=4 x=100 y=200 w=300 h=400 feather=10
MEDIAINSERT type=geometry
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [layer=newlayer / background] [autodelete][ctrlname=myctrlname][channel=ChannelNumber]
GEOMETRY : Add a warp resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
mediainsert type=geometry resourcename="flat geometry" newname="twist" layer=4
mediainsert type=geometry resourcename="flat geometry" newname=ch3 channel=3 layer=bg
MEDIAINSERT type=blend
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [autodelete][ctrlname=myctrlname][channel=ChannelNumber]
BLEND : Add a blend resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
mediainsert type=blend resourcename=ch1 channel=1
MEDIAINSERT type=effect
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount][direction=up/down] [preferpreset=true/false]
EFFECT : Add an effect resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
mediainsert type=effect resourcename=transparency frame=100 direction=down layer=3

MEDIAINSERT type=shadereffect
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount] [preferpreset=true/false]
SHADEREFFECT : Add a shader effect resource to the timeline.

Examples:
mediainsert type=shadereffect resourcename=blackHole frame=20 layer=2

MEDIAINSERT type=control
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [layer=newlayer / background] [autodelete] [ctrlname=myctrlname] [length=framecount] [gotoframe=XX] [playmode=stop/play] [playingaction=ignore/stop] [markerkey=[ctrl][shift][0-9][F1-F12][off]] [markername=name] [preferpreset=true/false]
CONTROL : Add a control resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
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=text
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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]
TEXT : Add a text resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
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

MEDIAINSERT type=container
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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]
CONTAINER : Add a container resource to the timeline, optionally set other parameters using tag-style command parameters.

Examples:
mediainsert type=container resourcename="demo playlist" layer=5 frame=100 length=500 containeroverrides=general duration=22s crossfade=true fadeup=1.5s fadedn=3s
MEDIAINSERT type=serialevent
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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]
SERIALEVENT : Add a serial event resource to the timeline
MEDIAINSERT type=spline
[resourcename=myresourcename] [newname=mynewname] [frame= newframe / +frame / -frame] [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"]
SPLINE : Add a spline resource to the timeline

Examples:
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
DELETEPRESET resourceid=id Permanently delete one preset from the [C:]\Presets folder.
DELETEALLPRESETS Permanently delete all presets 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,
MEDIALUMA controlname mode [invert] Set the visual media's lumamode [off,luma,red,green,blue,alpha], optionally invert
MEDIALUMA [ctrlname=name] [resourcename=name] [mode=newmode] [invert=true/false] 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)


Examples:
MEDIALUMA ctrlname=movie_10251 mode="depth (intensity)" invert=true
MEDIALUMA ctrlname=movie_10251 mode=colour

MEDIAREMOVE controlname Remove resource from timeline
MEDIAREMOVE layer=1 resourcename=string ctrlname=string type=movie background=true/false all=true/false tl=1 Remove all resources which match the given tags
MEDIACLEARAUTODELETES Remove all autodelete resources from timeline
TRANSFORMPARAMS name x [y] [w] [h] [r] Set this transform animator in 2D
TRANSFORMPARAMS name Az [El] [w] [h] [r] Set this transform animator in 3D
TRANSFORMPARAMS [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 the Transform Animator parameters (all parameters are optional)
RELOADIMAGES [name=controlname] Reload one or all images (non realtime command). A Tag of name="7thSense Splash" will reload just this image !
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.
WEBSETURL res="ExternalControlName" url="http://www.7thsensedesign.com" hres=1280 vres=800 Change the web control's URL or resolution
WEBNAVIGATE res="ExternalControlName" navigate=[back/forward/reload/stop] Control this web resource
ARTNET inputenable=[y/n] outputenable=[y/n] Enable or disable global ArtNet/DMX output broadcasting, input listening or both
SETARTNETCHANNEL channel=cvalue value=vval [stride=sval] Set ArtNet/DMX channel to this value directly, with optional stride of 1,2 or 4
MOVIEPARAMS ResourceName BaseFileName dynamically change the parameters of a movie
TEXTPARAMS "resource name" "newtext" size R G B X Y Change any text to "newtext" fontsize, color and position are optional
REFRESHRESOURCES Refresh the resoure pool !
ADDPOOLRESOURCE type=movie
disk=[A-Z] path="movies\mypath\" basename="myfilename_" filetype=[7th / 7th420 / 7th422 / 7th444 / tga / dpx]
digits=N pixels=W lines=H lengthframes=F
Add a movie resource to the resource pool without refreshing from disk
Examples:
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
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.
Examples:
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.
Examples:
SETEFFECTPARAMS ctrlname=SE_10279 propertyname="number of blocks" value=5
SETEFFECTPARAMS ctrlname=SE_10265 propertyname="horizontal centre" value=0.5
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.
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

Notes :
enabled, disabled, startframe, stopframe are common to all types.
Use TRANSFORMPARAMS for transform animators
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
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 = name Get a status response listing the Goto control's current & target values
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
GETHOLDLASTFRAMEJSON ctrlname = name Get a status response listing the movie's hold last frame flag state
Examples:
- GETHOLDLASTFRAMEJSON ctrlname=Movie_10764
{"Resource" : { "Name":"movie_10764","HoldLastFrame":"1"}}OK
SETHOLDLASTFRAME ctrlname = name Set the movie's hold last frame flag state
Examples:
- SETHOLDLASTFRAME ctrlname=Movie_10764 hold=1
!
Note that running most List... or Get... commands from a sequence will send the results to the Debugging Trace Window on the Sequence Editor
LAYER COMMANDS
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] 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
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.
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)
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
LAYERENABLE layer [on/off] Enable or disable the layer
LAYERENABLEALL layer [on/off] Enable or disable the layer on all servers
MESH MODE COMMANDS
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
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
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

Examples:
- 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
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)
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)
DELETENODE extctrlname=name Delete an existing movement node
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

Examples :
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
**TakeAs Parameters Set any of XYZ, HPR, XYZScale to any of the following using the takex, takey, takexscale etc parameters above.

x, y, z, -x, -y, -z, h, p, r, -h, -p, -r, xscale, yscale, zscale, -xscale, -yscale, -zscale, ignore

Examples: takex=x takeyscale=-r  takep=ignore

Note the values shown for the node in the GUI are untranslated, the translation happens internally at the render stage.
GLOBAL LEVEL COMMANDS
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
TIMELINE COMMANDS
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
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. Example: play="75,50,100" 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.
RESERVE [ on / off ] Set the reserve layer on or off in the group
CONFIG COMMANDS
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 current XDL file that will be used on next file load
SETDISPLAYCONFIGALL XDL_Filename Set the current XDL file that will be used on next file load for the group
SETPERMANENTSHOWFILE XML_Filename Set the current XML file that will be used on next file load
SETPERMANENTSHOWFILEALL XML_Filename Set the current XML file that will be used on next file load for the group
GROUP group [master/slave] Set the current group and optionally if master or slave !
DEBUGLOG [enabled=true/false] [rotation=true/false] [expires=X] Return Logging status, optionally enable/disable logging, rotation and number of days to keep logs
KILLGUI Close any connected GUI immediately. !
UNIFIED WRITE FILTER COMMANDS
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.
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 !
Examples 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

!
PREVIEW COMMANDS
PREVIEWTIMELINE tl=X Select which Timeline to Preview. To view a composite of the entire preview inclusive of all visable timelines set tl=all
REGISTERPREVIEWLISTENER [ip] Register to listen to Preview.
UNREGISTERPREVIEWLISTENER [ip] Unregister to listen to Preview.
PREVIEWMOVEVIEWREL 2D [left] [right] [top] [bottom] change the preview view relatively by this data
PREVIEWMOVEVIEWREL 3D [x] [y] [z] [h] [p] [r] [left] [right] [top] [bottom] change the preview view relatively by this data
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.
PREVIEWPARAMS returns Preview settings including whether it is enabled, the server peer name and port
SETPREVIEWPARAMS statsenable=[y/n] graphenable=[y]/n] audioenable=[y/n] chanmappedenable=[y/n] Turn on/off preview stats, graph, audio and preview of channelmapped media
RECORDING COMMANDS
PREVIEWRECORD 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
PREVIEWRECORDSETTINGS [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"
REFRESHMOVIE drive=[A,B,C,D...Z] Refresh Movies in the specified drive to get an up to date list !
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_
!
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

Example: 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

Note: Save & PlayBack files are .txt files
GUI SPECIFIC COMMANDS
EYEGOTOXYZ x y z Move the interactive mode eyepoint to X Y Z (in mm)
EYEGOTOXYZAZEL x y z h p r Move the interactive mode eyepoint to X Y Z (in mm) Azimuth and Elevation (in degrees)
COMMUNICATION COMMANDS
Sendascii sends to a numbered telnet port - MultiTelnet connections are the default (same port, multiple connections) - The first connection is number 1001, then 1002, etc, if using an older system, there are up to 5 separate Telnet ports which are numbered 1 to 5
Sendasciiserial sends the ascii string to the Comport:
Comport=Com1, Com2 etc.
Baudrate=1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, 115200, 128000
Parity=n, o, e, m, s. Databits=7, 8. StopBits=1, 1.5, 2
SENDASCII ascii n Send the ascii string out of the numbered telnet port (1 - 4). For MultiTelnet connections to port 1 - The first connection is number 1001, then 1002, etc. Port=* is supported and sends out of all connections.
SENDASCIIUDP ipaddress port ascii Send the ascii string to the ipaddress and UDP port
SENDASCIISERIAL Comport baudrate parity databits stopbits ascii Send the ascii string to the specified Comport
SENDASCII2 data="ascii" port="telnetport or connectionname" Vs2 with parameters : Send the ascii string out of the numbered telnet (1 - 4). For MultiTelnet 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 telnet output connection'. No quotes required even if spaces in string.
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
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" Enable / Disable TCP Connections
ZIXISTART 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 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.
AUDIO COMMANDS
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
EXPRESS MODE COMMANDS
SETEXPRESSMODE enabled=[y/n] Set Express Mode on off, if on, monitors GUI editing and writes to config.json if altered
GETPOOLJSON Return a JSON file containing an array of all pool visual resources E
GETCONFIGJSON Return a JSON file containing the contents of config.json (if Simple Mode on and found) E
LOADMEDIAJSON Load media.json and create a timeline based on the contents !
GETMEDIAJSON Return a JSON file containing the contents of media.json (if previously loaded with LOADMEDIAJSON) E
LOADCONFIGJSON setsystem = [ 0 / 1] Load config.json if setsystem is 1, set the server state accordingly !
GETLASTMARKERJSON 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
PLAYLIST COMMANDS
PLAYLISTNEXT playlistextctrlname=[name] index=playlistindex [immediate] Select next playlist item to play OR Tigger to move to next playlist item. To Trigger set index=-1
LISTPLAYLISTS List the current Playlists E
LISTASSEMBLIES List the current Assemblies E
LISTAVASSEMBLIES List the current AVAssemblies E
LISTCONTAINERITEMS extctrlname=[name] List the items within a container (Playlist, AVAssembly) E
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] Removes Item from Playlist
PLAYLISTREMOVEITEM playlistextctrlname=[name] extctrlname=[index] Removes Item from Playlist
PLAYLISTMOVEITEM playlistextctrlname=[name] index=[index] direction=[up/down] Moves Item in Playlist Up/Down the order
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 Example: PLAYLISTPROPERTIES playlistextctrlname=playlist containeroverrides=duration|playmode duration=18 playmode=trigger
This sets the duration of ever item to 18 seconds and repeats until trigger
PLAYLISTSTATUS playlistextctrlname=[name] Gets the status of a playlist
PLAYLISTREMOVEALLBUTCURRENT playlistextctrlname=[name] Removes all but the currently playing item from an active playlist.
SEQUENCE COMMANDS
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
CANCELSEQUENCE uniquename Cancel the current sequence
CANCELALLSEQUENCES Cancel all running sequences. Add persist=true to cancel all sequences including those set to persist
LOADSEQUENCES filename Load the named sequence file
RELOADSEQUENCES Reload the current sequence file
LISTSEQUENCES List the current sequence names E
LISTSEQUENCEACTIONS List the available sequence actions E
SEQUENCESTATUS List the currently running sequences and their status
PAUSESEQUENCE uniquename [y/n] Pause the sequence with 'uniquename'
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.

You can also delay by a variable (use a string global variable to get e.g. 10s) : DELAY $mydelay
S
GOTOLINE linenumber Start execution at this line( 1 is the first line S
SEQUENCEINDICATOR index=[1-6] text="mytext" state=[on / off / idle / none] Set one of the sequence panel indicators to your own text & the led to red(off), green(on), grey(idle) or blue(none)
PANELSEQUENCE index=[1-6] sequence="mysequence" Set one of the sequence panel buttons to a specific sequence (these are stored in the show XML)
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.
Addition, Subtraction, Multiplication, Division, Modulus and Concatenation
$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

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
SEQUENCE DEBUGGING
Activate the debugging windows by selecting Debugging from the Sequence Editor and use the trace commands as below
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 Clear the trace messages window
TRACELIST [watched] Output a trace of global variables to the trace messages window, optionally only the Watched variables
TRACEON Turn off all trace messages until the next TraceOn command
TRACEOFF Turn on all trace messages until the next TraceOff command
TRACESEQNAME 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 Turn off Watching for all variables
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
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
GLOBAL VARIABLE COMMANDS
GLOBALVARGET $myvariable Get the value of this global variable E
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
GLOBALVARLIST List the global variables & their values E
GLOBALVARDELETE name Delete this global variable E
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
EXAMPLE COMMANDS (all with Carriage Return on the end)
MEDIAINSERT type=effect resourcename=transparency frame=100 direction=down layer=1 Insert a transparency, fading down on layer 1 from frame 100
MEDIAINSERT type=movie frame=+200 resourcename=mymovie mapping=channel channel=4 x=100 y=100 w=1000 h = 800 TL=3 This will insert the movie 200 frames ahead of the current timecode on timeline 3, channel mapped to channel 4, but with offsets of 100,100 from the top left corner of channel 4, sized at 1000x800.
MEDIAINSERT type=audio resourcename=ls audiochans=f Audiochans is bitwise, so FF equates to 1111 1111 which is the first 8 channels enabled. Note this works only for mono files, stereo and multichannel audio always contain speaker mappings.
TRANSFORMPARAMS controlname=myTA mode=speed start_easespeed=5 start_easelength=60 center_easespeed=20 center_easelength=200 end_easelength=5 end_easespeed=0 This example sets the myTA transform animator and sets start, centre & end speeds & lengths
STATUS SERVER : SERVER2095 (Master)
FILE : antest1.xml
MODE : Stopped
CURRENTFRAME: 0
FRAMERATE : 30.0
LICENCE : Permanent
MOVIEDRIVES : E E E E E E
OTHERDRIVE : E
GRAPHICS : 1920 X 1080 60 HZ
SMPTE : OFF OFF OFF OFF OFF OFF OFF OFF
AUDIOLEVEL : 100
VIDEOLEVEL : 100
TIMELINESTATUS TL="1"
SMPTE="00:00:00::00"
FRAMES="0"
MODE="Stopped"
CHASEENABLED="False"
ENABLED="True"
VISIBLE="True"
FADE="100"
AUTOPLAYENABLED="False"
FILESTATUS SERVER : SERVER2095
FILE : antest1.xml
PERMANENT XML FILE :
PERMANENT XDL FILE :3channelcurved.xdl
SENDASCIIUDP  10.100.102.123  7780  MyCodes\x0d Send a UDP packet of ASCII string   MyCodes  with Carriage Return on the end to port 7780 IP Address 10.100.102.123
SENDASCII2  data="Some Codes \x0d" port=1001 Use Vs2 format, send a packet of ASCII string   Some Codes  with Carriage Return on the end to the first multi-telnet port (1001)
SENDASCIIUDP2  data="Some Codes \x0d" ipaddress=10.100.102.123  port=7780 Use Vs2 format, send a UDP packet of ASCII string   Some Codes  with Carriage Return on the end to port 7780 IP Address 10.100.102.123
SENDASCIISERIAL2  data="Some Codes \x0d" port=COM2  baudrate=9600  databits=8  stopbits=1  
parity=n
Use Vs2 format, send an ASCII string   Some Codes  with Carriage Return on the end out Com2 with 9600,n,8,1 paramters
GPIO COMMANDS
GPIO_ID Flash the front LED green and orange to identify the server
GPIO pin state Set the GPIO pin (0-4) to the desired state (0 = off, 1 = on)
GPIO bitwise Set the GPIO pins 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_SET_INPUT pin Set the GPIO pin (0-4) to the be an input pin
GPIO_SET_OUTPUT pin Set the GPIO pin (0-4) to the be an output pin