Complete Help Docs

Laser Show Technology for Lighting Professionals

User Tools

Site Tools


beyond:pangoscript_commands

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
beyond:pangoscript_commands [2020/05/26 12:50] Bob Varkevisserbeyond:pangoscript_commands [2026/02/27 12:51] (current) Bob Varkevisser
Line 1: Line 1:
 ====== PangoScript Commands ====== ====== PangoScript Commands ======
-^ Function ^ Code ^ Comments ^ 
-| AddSms | AddSMS "This is my demo message" 
-| Angle | Angle 0,0,0 | X,Y,Z angles in degrees |  
-| AngleDelta | AngleDelta 0,0,0 | increment X,Y,Z angles in degrees |  
-| AngleX | AngleX 0 | degree |  
-| AngleY | AngleY 0 | degree |  
-| AngleZ | AngleZ 0 | degree |  
-| AnimateProp | AnimateProp "", 0,1,1000 | "variable", From, To, Duration MS |  
-| AnimatePropDelta | AnimatePropDelta "", 10,1000 | "variable", Delta, Duration MS |  
-| AnimationSpeed | AnimationSpeed 100 | speed in %. Zero full stop. |  
-| AnimationSpeedDelta | AnimationSpeedDelta 0 |  
-| AudioBeat | AudioBeat |  
-| Autostart | AutoStart |  
-| BeatResync | BeatResync |  
-| BeatTap | BeatTap |  
-| BlackOut | BlackOut |  
-| Brightness | Brightness 100 | 0..100 (percents) |  
-| BrightnessDelta | BrightnessDelta 0 |  
-| CaptureToClipboard | CaptureToClipboard  
-| ChannelOut | ChannelOut 1, 1000 | set first channel to 1000 (max value) | 
-| ClickFXStopAll |  
-| ClickFXTabMode | ClickFXTabMode 1 | 1-Master, 2-Cue, 3-Zone, 4-ProTrack |  
-| ClickFlash | ClickFlash   | optional argument: 1 or 2 (Grid number) |  
-| ClickFxVlj | ClickFxVlj 1 | Toggle first FX-VLJ  
-| ClickLCTabMode | ClickLCTabMode 1 | 1-Master, 2-Cue, 3-Zone, 4-ProTrack |  
-| ClickLive | ClickLive   | optional argument: 1 or 2 (Grid number) |  
-| ClickLockSize | ClickLockSize 1  |0,1,2 Off, On, toggle |  
-| ClickRestart | ClickRestart   | optional argument: 1 or 2 (Grid number) |  
-| ClickScrollA | ClickScrollA -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollAniSpeed | ClickScrollAniSpeed -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollB | ClickScrollB -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollColor | ClickScrollColor -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollFade | ClickScrollFade -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollG | ClickScrollG -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollHue | ClickScrollHue -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollHueShift | ClickScrollHueShift -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollR | ClickScrollR -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollSaturation | ClickScrollSaturation -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollScanRate | ClickScrollScanRate -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollSize | ClickScrollSize -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollVPoints | ClickScrollVPoints -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickScrollZoom | ClickScrollZoom -5 | scroll speed, recommended -5..-1, or 1..5. Zero will stop. |  
-| ClickSelect | ClickSelect  | optional argument: 1 or 2 (Grid number) |  
-| ClickSoloFlash | ClickSoloFlash   | optional argument: 1 or 2 (Grid number) |  
-| ClickTCTabMode | ClickTCTabMode 1 | 1-Master, 2-Cue, 3-Zone, 4-ProTrack |  
-| ClickToggle | ClickToggle  | optional argument: 1 or 2 (Grid number) |  
-| ClickTrack | ClickTrack   | optional argument: 1 or 2 (Grid number) |  
-| CloseUmax | CloseUmax |  
-| CodeColorMarker | CodeColorMarker 0x00FF00 | green color marker  
-| CodeName | CodeName "MyCode" | define name of  |  
-| CodeShortcut | CodeShortcut "Ctrl+D" 
-| ColorBGR | ColorBGR 0x0000FF | blue color |  
-| ColorOn | ColorOn 1| 1-enabled, 0-disabled |  
-| ColorRGB | ColorRGB 0x0000FF | red color,  
-| ColorSlider | ColorSlider 0 | 0..255 |  
-| ColorSliderDelta | ColorSliderDelta 0 |  
-| ControlCue | ControlCue 1,1 |  
-| ControlFromFxTab | ControlFromFxTab |  
-| ControlFromLcTab | ControlFromLcTab |  
-| ControlFromTcTab | ControlFromTcTab |  
-| ControlFromUI | ControlFromUI |  
  
- | ControlMaster |  +New for 2026, a tool has been created with all new fresh documentation of every Pango script Command. The tool linked below allows you to read every command as well as see examples the script commands in use. The tools is searchable with the search bar on the top. 
-ControlMaster | +
  
- | ControlProTrack |  +Click the link below to review this tool which will open in a new window. 
-ControlProTrack 1 | +
  
- | ControlProjector |  +[[https://wiki.pangolin.com/pangoscript-command-list.html|Click here to view the PangoScript command list.]]
-ControlProjector 1 +
  
- | ControlSelCues |  
-ControlSelCues |  
  
- | ControlSelProTracks |  
-ControlSelProTracks |  
  
- | ControlSelZones |  
-ControlSelZones |  
  
- | ControlZone |  
-ControlZone 1 | name as "Main Graphics", or zone number 1...N |  
  
- | CueDown |  
-CueDown 1,1 | page 1..100, cue 1..100 |  
  
- | CueUp |  
-CueUp 1,1 | page 1..100, cue 1..100 |  
  
- | DecreaseTrigger |  +----
-DecreaseTrigger 0,100,"MyLabel" | Min Value, Max Value, Label name | +
  
- | DefineDmxTrigger |  
-DefineDmxTrigger 1 | Channel |  
  
- | DefineMidiTrigger |  +Information below is being rewritten
-DefineMidiTrigger 0xC0, 0x00 | MIDI Cmmand, MIDI Data 1, Trigger Name (optional), MIDI Dev index from 0 to 3 (optional), but default - any | +
  
- | DefineTcTrigger |  +<code>
-DefineTCTrigger "TC Test"| hour, minute, second | +
  
- | DefineTrigger |  +==== Intro ====
-DefineTrigger "2+2" | expression... | +
  
- | DeletePropAni |  
-DeletePropAni | "variable", ["variable",..] |  
  
- | DisableLaserOutput |  +Currently, the main purpose of "scripting" is ability to add custom relation on various events, like a MIDI, DMX, ArtNet, Channels. The script typically has a few lines, and a line has one Command. Command may have a parameters. Typically parameter is a number (constant).
-DisableLaserOutput | +
  
- | DisplayPopup |  
-DisplayPopup "Hello world!" 
  
- | DisplayPopupOnTop |  +==== Numbers ====
-DisplayPopupOnTop "Hello world!"+
  
- | DisplayPreview |  +Supported float point , integer and hexadecimal numbers. As example: 
-DisplayPreview "Hello world!"0x0000ff | +100 
 +-20 
 +1.01 
 +0xBF 
 +All hexadecimal numbers much have 0x prefix, similar to C languagebut without ending H
  
- | DmxInMute |  +There is not strict separation on integer and float point numbers.
-DmxInMute 1, 255 | Channel index, 0 or 1; or ChannelIndex | +
  
- | DmxOut |  +Separator between command parameter could be space (" ") or a comma (",")
-DmxOut 1, 255 | set first DMX OUT channel to 255 (max value+
  
- | DmxOutRange |  
-DmxOutRange 1, 255 | set first DMX OUT channel  
  
- | DropFX |  +==== Special characters (separators) ====
-DropFX 1,1, 1000 | Layer, Index, duration ms | +
  
- | Echo |  
-Echo 2  | 0-none, 1-ok/error, 2-echo of input plus ok/error |  
  
- | EnableDmxIn |  + '.', ';', ',', ':', '!', '�', '''', '^', '+', '-', '*', '\', ' ', 
-EnableDmxIn Toggle  | ONOFFTOGGLE + '`''['']', '(', ')', '{', '}', '?', '%','|','&','=':
  
- | EnableFb3StyleDmxIn |  
-EnableFb3StyleDmxIn 1 | On(1), Off(0), Toggle(2) |  
  
- | EnableLaserOutput |  
-EnableLaserOutput |  
  
- | ExecCmd |  +==== Predefined constants ====
-ExecCmd "Blackout"+
  
- | Exit |  
-Exit |  
  
- | ExitBEYOND |  +There are a few constants mostly for readability of the code. Each constant will be transformed to a number 
-ExitBEYOND | Exit from BEYOND | +TRUE - numeric analog 1 
 +FALSE - numeric analog 0 
 +ANY equal to numeric -1. Used in a few WaitFor command 
 +OFF equal to numeric 0 
 +ON equal to numeric 1 
 +TOGGLE equal to numeric 2 
 +AsIs equal to -2. 
 +This is required for commands like "MasterPause". I hope it should be handy to see ON or OFF instead of 0 or 1.
  
- | FX |  +A few examples of using commands: 
-FX 0,0,0,0 | One or more layers. 0 stop. Effect 1..100 | +  VirtualLJ off 
 +  MasterPause Toggle 
 +  WaitForMidi 0x9010Any
  
- | FXAction |  +==== Math operations (expressions) ====
-FXAction 100,100,100,100 | One or more layers. Set effect action from 0% to 100% | +
  
- | FXCellClick |  
-FXCellClick 1,1 |  
  
- | FXCellDown |  
-FXCellDown 1, 1 | Layer number: 1..4, Effect number |  
  
- | FXClick |  +Standard: +  -  /    % 
-FXClick 1,1 +Inversion: ! 
 +bit OR: | 
 +bit AND: & 
 +bit XOR: ^ 
 +bit right shift: >> 
 +bit left shift: <<
  
- | FXScroll |  
-FXScroll 1 |  
  
- | FXScrollDelta |  +==== Operators ====
-FXScrollDelta 8 | +
  
- | FXTimeScaleAx |  + 
-FXTimeScaleAx 1,2,1 | Layer, Mask (1,2,3), multiplier | +
  
- | FXTimeScaleAxReset |  +IF operator.
-FXTimeScaleAxReset 1,2 | Layer, Mask (1,2,3) | +
  
- | FXTimeScaleDeltaAx |  +Syntax: if expression  operator
-FXTimeScaleDeltaAx 1,2,1 | Layer, Mask (1,2,3), increment value | +
  
- | FXTimeSync |  +expression - covered with brackets. Must be an expression with 
-FXTimeSync 1,1 | Layer, Source (1-Master, 2-Own time+numerical result that gives "0" or not a "0". Sofor numerical 
 +variable it's possible to write "if (variable...".
  
- | FocusCell |  +Compare operators are: ">" ">=" "<" "<=" "=" "<>"They produces numerical result "0" or "1".
-FocusCell 1,1 | Column (1..10), Row (1..6) | +
  
- FocusCellIndex |  +You can combine comparing operations with "&" and "|" bit-wise operators (but be sure that left and right side are "0" or "1"). It's recommended to cover complex operations into brackets - like "if ((1>2) & ((3+2)>1))"
-FocusCellIndex | cell index, 1..60 | +
  
- | FocusProTrack |  +operator will be executed if condition gets non-zero result. If you want to place other operator after "if (condition) operator" - it must be divided with ";" - but it's better to place next operator on the next line ;-)
-FocusProTrack 1 | Track index/name | +
  
- | FocusProjector |  +=== GOTO operator ===
-FocusProjector 1 | Projector index, 1..N. | +
  
- | FocusZone |  
-FocusZone 1 | zone index, 1..N. |  
  
- | GetFxControl |  +Syntax:  goto label
-GetFxControl | +
  
- | GetLiveControl |  +"label" is  a name of position for a jump. The label can be placed before any operator and separated by ":"  character. As example:
-GetLiveControl | +
  
- | GetPage |  +mylabel: WaitForBeat 4 
-GetPage | +... do something... 
 +goto mylabel
  
- | GetTimeControl |  
-GetPage |  
  
- | GoGridMode |  +Operator GOTO can work with the labels inside the string variables. It means that you declare string variable, assign a label name to variable, and then you a variable in GOTO. 
-GoGridMode | +Example:
  
- | GoPlayListMode |  +var s 
-GoPlayListMode | +s="mylabel" 
 +goto s
  
- | GoTimelineMode |  +DisplayPopup "It does not work" 
-GoTimelineMode | +exit
  
- | GoUniverseMode |  +mylabel: 
-GoUniverseMode | +DisplayPopup "It works"
  
- | GroupCue |  
-GroupCue |  
  
- | Hello |  
-hello | answer will be Hello! |  
  
- | HoldClick |  
-HoldClick ON |  
  
- | HtmlBody |  +=== VAR operator ===
-HtmlBody | +
  
- | HtmlClearBody |  
-HtmlClearBody |  
  
- | HtmlClearHead |  +PangoScript allow define local variables. The lifetime for the local variable defined by lifetime of the Scripter that execute PangoScript. As soon as the Scripter freed, all its local variables are removed as well.
-HtmlClearHead | +
  
- | HtmlHead |  +All variables must be declared before the using. No need to specify the type of variable. The variable automatically adjust the type depending on value. Internally supported integer, float and string variables. 
-HtmlHead | +The declaration start from VAR operation and the follow one or more variable names. As example:
  
- | HtmlHide |  +var MyVariable 
-HtmlHide | +var a,b,c
  
- | HtmlUpdate |  +Before using the variable must be initialized by some value. Otherwise BEYOND will generate error and stop script execution. Example: 
-HtmlUpdate | +var MyInteger, MyString 
 +MyInteger = 10 
 +MyString = "Hello!"
  
- | Hue |  +All variables declared as VAR are local.
-Hue 0 | +
  
- | HueDelta |  
-HueDelta 0 |  
  
- | HueShift |  +GLOBALVAR operator 
-HueShift 0 | +The variable can be declared as global. In this case, it visible in ALL scripts of BEYOND.
  
- | HueShiftDelta |  
-HueShiftDelta 0 |  
  
- | InRangeTrigger |  
-InRangeTrigger 0,100,"MyLabel" | Min Value, Max Value, Label name |  
  
- | InRangeTriggerCmd |  
-InRangeTriggerCmd 0,100,"Blackout" | Min Value, Max Value, Command |  
  
- | IncreaseTrigger |  +==== General functions ====
-IncreaseTrigger 0,100,"MyLabel" | Min Value, Max Value, Label name | +
  
- | InvertPlayersTime |  
-InvertPlayersTime |  
  
- | InvertProTrackTime |  +intstr(value:number):string - transform number to string 
-InvertProTrackTime | +value - number or float number 
 +result - string
  
- | InvertRotationX |  +floatstr(value:number):string - transform number to string 
-InvertRotationX | +value - number 
 +result - string
  
- | InvertRotationY |  +abs(value:number):number - value by modulus 
-InvertRotationY | +value - integer or float number 
 +result - same type as argument. result is absolute value
  
- | InvertRotationZ |  +int(value:number):integer - return integer part of float value 
-InvertRotationZ | +value - a float point number
  
- | LessThanTrigger |  +frac(value:number):float - return fractional part of float point value 
-LessThanTrigger 0,"MyLabel" | Value, Label name | +value - float
  
- | LinePerCycle |  +round(value:float):integer - return rounded float point value (to integer) 
-LinePerCycle 24 | +value - a float point number
  
- | LoadCue |  +sqr(value:number):number - return a square of argument 
-LoadCue "c:\MyAnimationFile.bani" | Enter correct file name! | +value - a float point number or integer
  
- | LoadCueFromBlob |  +sqrt(value:number):float - return a square root of argument 
-<internal commmand>+value - a float point number or integer
  
- | LoadPlaylist |  +cos(value:float):float - co-sinus 
-LoadPlaylist "c:\MyPlaylist.BeyondSL"+value - a float point number or integerangle in radians
  
- | LoadWorkspace |  +sin(valuefloat):float - sinus 
-LoadWorkspace "c:\MyWorkspace.BeyondWorkspace" | Enter correct file name! | +value - a float point number or integerangle in radians
  
- | LoadZoneFromBlob |  +tan(value:float):float - tangents 
-<internal commmand>+value - a float point number or integer. angle in radians
  
- | MakeSecuredFile |  +arcsin(value:float)float - arc sinus 
-MakeSecuredFile "Input file name", "Output file name", ClientHardwareSerial | +value - a float point number or integer. angle in radians
  
- | ManualBeat |  +arccos(value: float):float - arc cosinus 
-ManualBeat | +value - a float point number or integer. angle in radians
  
- | MasterAudioVolume |  +arctan(value: float):float - arc tangents 
-MasterAudioVolume 100 | in percents | +value - a float point number or integer. angle in radians
  
- | MasterAudioVolumeMute |  +arctan2(dxdy:float):float - arc tangents 
-MasterAudioVolumeMute 1 | On(1)Off(0), Toggle(2) | +dxdy - ....
  
- | MasterClockShift |  +min(a,b:number):number - return a minimum of two numeric values 
-MasterClockShift 0 | in seconds | +a,b  float or integer 
 +  
 +max(a,b:number):number - return a maximum of two numeric values 
 +a,b  float or integer
  
- | MasterCueLcSpeed |  +pi:float - return PI value - 3.1415926...
-MasterCueLcSpeed 100 | in percents | +
  
- | MasterCueSpeed |  +invert(value:number):integer - invert value. Boolean operation, but can be used with float point numbers. If value more than 0.5 then function return 0, otherwise return 1.
-MasterCueSpeed 100 | in percents | +
  
- | MasterEffectClockShift |  +==== Date and Time ====
-MasterEffectClockShift 0 | in seconds | +
  
- | MasterEffectMetroShift |  
-MasterEffectMetroShift 0 | in beats |  
  
- | MasterFXSpeed |  +now:float - date&time, calls now() function of Delphi
-MasterFXSpeed 100 | in percents | +
  
- | MasterLCSpeed |  +tickcount: integer - return number of millisecond from start of PC.
-MasterLCSpeed 100 | in percents | +
  
- | MasterMetroShift |  +hms(hour, minute, second):integer - transform hour, minute and second into seconds.
-MasterMetroShift 0 | in beats | +
  
- | MasterPause |  +GetYear:integer - function return current year by PC clock. Result
-MasterPause Toggle |ON, OFF, TOGGLE | +
  
- | MasterPauseTime |  +GetMonth:integer - function return current month by PC clock
-MasterPauseTime 1000 | time in milliseconds | +
  
- | MasterShowBrightness |  +GetDay:integer - function return current day by PC clock.
-MasterShowBrightness 100 | in percents | +
  
- | MasterShowSpeed |  +timestr(now:float) :string 
-MasterShowSpeed 100 | in percents | +now - is variable representing time. Function return string with time in short format such as "11:53", without seconds
  
- | MasterSpeed |  +timestrlong(now:float):string - 
-MasterSpeed 1 | From zero to one | +now - is variable representing time. Function return string with hours, minutes, seconds, such as "11:53:10"
  
- | MasterTransition |  +datestr(now:float):string - �������� ������ ����, � ��� ��� - 
-MasterTransition ON | +now - is variable representing date. Function return string short date format such as "21.11.2012"
  
- | MasterTransitionIndex |  +datestrlong(now:float):string - ������� ������ ����, ���� - 
-MasterTransitionIndex 2 | +now - is variable representing date. Function return string long date format such as "21 ������ 2012 �."
  
- | MasterTransitionTime |  +dayofweek(now:float):string - short version day of the week
-MasterTransitionTime 0.1 | +
  
- | MasterZoneFxSpeed |  +dayofweeklong(now:float):string - long version day of the week
-MasterZoneFxSpeed 100 | in percents | +
  
- | MeshCurve |  +==== String functions ====
-MeshCurve 1,2,3 | quad-spline between point 1,2 and 3 | +
  
- | MeshPoint |  
-MeshPoint -100,-100, 0, "LeftBottom" 
  
- | MeshPointChan |  +uppercase(string):string  - transform input string to upper case. Result is a string.
-MeshPointChan 1,0,0 | +
  
- | MeshPolygon |  +lowercase(string:string):string - transform input string to lower case. Result is a string.
-MeshPolygon 1,2 | connect 1st and 2nd point | +
  
- | MeshRect |  +crlf:string - return a stringline separator (13,10)
-MeshRect 1,2,3,4  | +
  
- | MeshSpline |  
-MeshSpline 1,2,3,4 | cubic-spline based on 4 points. 1,4 bases, 2,3 "handles" 
  
- | MeshTriangle |  
-MeshTriangle 1,2,3 |  
  
- | MidiOut |  +==== Clock And Metronome ====
-MidiOut 0x90, 0x40, 0x7F | +
  
- | MidiOutLong |  
-MidiOutLong 0x90, 0x40, 0x7F |  
  
- | MidiSysexAdd |  +b2s(beats) - transform beats to seconds
-MidiSysexAdd  "F0477F"  | add data to Systex buffer, string must represent sequence of hex values. In addition, you may use integer parameters | +
  
- | MidiSysexSend |  +b2ms(beats) - transform beats to milliseconds
-MidiSysexSend | send prepared sysex buffer | +
  
- | MidiSysexStart |  +s2b(seconds) - transform seconds to beats
-MidiSysexStart  | clear Sysex buffer | +
  
- | MoreThanTrigger |  +b2s(seconds) - transform beats to seconds
-MoreThanTrigger 0,"MyLabel" | Value, Label name | +
  
- | MoveFocus |  
-MoveFocus -1,0 | number of cells to go horizontally and vertically |  
  
- | MulFXMulAx |  +==== Functions ====
-MulFXMulAx 1, 3, 1 | Multiply multiplier... :-) Layer number: 1..4, Mask (1 is clock, 2 is beat, 3 is clock and beat), Value of multiplier | +
  
- | MultiCue |  
-MultiCue |  
  
- | MuteAllProTracks |  +There are a few functions for access of incoming data
-MuteAllProTracks | +
  
- | MuteProTrack |  +Dmx ( Channel, OutputMin, OutputMax ) 
-MuteProTrack 1 | index(esor name(s+Parameters: 
 +Channel - index of DMX channel, acceptable value from 1 to 2048 
 +OutputMin, OutputMax - defines the range resulting value of the function. Oupout value will start from OutputMin and increase up to OutputMax 
 +result  = OutputMin +  (DmxChannelValue / 255(OutputMax-OutputMin)
  
- | MuteSelected |  +Example: 
-MuteSelected | +  Position Dmx(10, -100, 100), Dmx(11, -100, 100), Dmx(12, -100, 100)
  
- | MuteSelectedZones |  +in this example we use Position command that has 3 arguments - X,Y,Z and we use DMX IN values (three channels, 10,11,12), and map the values range -100 to +100.
-MuteSelectedZones OFF | ONOFFTOGGLE | +
  
- | MuteZone |  +Dmx Channel  ) 
-MuteZone 0 | index(es) or name(s+or 
 +DmxChannel, OutputMin, OutputMax) 
 +Parameters: 
 +Channel - index of DMX channel, acceptable value from 1 to 2048 
 +Result of the function is value of DMX channel as it is, without anr range adjustments
  
- | MuteZonesOfProjector |  +OutputMinOutputMax - defines the range resulting value of the functionOutput value will start from OutputMin and increase up to OutputMaxInternally channels are normalized to 0...1 range 
-MuteZonesOfProjector 1 | projector index1..N+result  = OutputMin +  (ChannelValue) * (OutputMax-OutputMin) 
 +Example: 
 +  DisplayPopup Dmx(10) // display the value of 10th DMX channel.
  
- | OneCue |  +Note: version with min/max used for simplification of use of function in operators where you may need to transform DMX value range (0..255) to some other range. As example Size operator, you may want to use size range like 0...100, or 10...100, or -100..100.
-OneCue | one cue per workspace | +
  
- | OnePer |  +Channel ( Channel, OutputMin, OutputMax ) 
-OnePer | one cue per projectoin zone  | +or 
 +Channel( Channel )
  
- | OscOut |  +Parameters: 
-OscOut "/beam1/xy", -5100 | set beam position to [-5,100] | +Channel index of Channelacceptable value from 1 to 255 
 +OutputMinOutputMax - defines the range resulting value of the function. Output value will start from OutputMin and increase up to OutputMax. Internally channels are normalized to 0...1 range 
 +result  = OutputMin +  (ChannelValue) * (OutputMax-OutputMin)
  
- | OscOutTTS |  +If function has one argument then result is normalized channel value (range from 0 to 1)
-OscOutTTS "","" | Address, Type Tag String, Arguments (optional+
  
- | OutOfRangeTrigger |  +Example: 
-OutOfRangeTrigger 0,100,"MyLabel" | Min ValueMax ValueLabel name | +  Size Channel(10, 5, 100)ChannelIn(105, 100), ChannelIn(10, 5, 100),
  
- | OutOfRangeTriggerCmd |  +in this example we use Size command that has 3 arguments - XY,Z and we use Channel 10 value for all 3 axis.
-OutOfRangeTriggerCmd 0,100,"Blackout" | Min Value, Max Value, Command | +
  
- | Password |  +Channel ( Channel ) 
-password "enter pasword here" | +Parameters: 
 +Channel - index of Channel, acceptable value from 1 to 255 
 +Result of the function is channel value. Channel value is normalized, the range from 0 to 1.
  
- | PasteToCue |  
-PasteToCue |  
  
- | PauseCue |  +CC (ChannelControllerOutputMinOutputMax) 
-PauseCue 1,1TOGGLE | pagecue, action (ONOFF, TOGGLE+Get a value of of MIDI controller. BEYOND memorize all values of incoming MIDI controllers (Contrl Change Message) and you can get an access to it. 
 +Channel - value 0..15 
 +Controller - value 0..127. Thsi is Data1 in MIDI messages 
 +OutputMinOutputMax - defines the range resulting value. Result  = OutputMin +  (ChannelValue/127) * (OutputMax-OutputMin)
  
- | PlayListFirst |  
-PlayListFirst |  
  
- | PlayListLast |  +ExtValue( OutputMin, OutputMax ) 
-PlayListLast | +There are a few pretty big tables of code-sources. A tables such as DMX, ArtNet, ControlChange, PitchBand, NoteOn initiated by channel/message that has a value. This function allow get access to the channel that intiate the code. Better explain on example. Lets say I want to connect DMX channel to Master Live Control, Position X. In this case, code that will do ths is this: 
 +    PositionIndex 1, ExtValue(-100,100) 
 +In this example PositionIndex is a live control command, see below. 1 is index of axis. And finally ExtValue() is a fuction that take DMX channel value in map to rangle -100 to 100.
  
- | PlayListNext |  +ExtDelta( Delta ) 
-PlayListNext | +Function equal to ExtValue but made specially for MIDI encoders. There are many controlled with wheels and knobs that generate Control Change message and the data2 value is 00 or 7F. That is all, no values in between. For such cases has a sense to use "delta" version of commands and ExtDelta() for getting exact value of delta. Function return -Delta or +Delta. Only two values, no exceptions. Example of use
  
- | PlayListPlay |  +PositionDelta 0, ExtDelta(1), 0   // move vertically.
-PlayListPlay | +
  
- | PlayListPrev |  +another example:
-PlayListPrev | +
  
- | PlayListSetPos |  +AngleDelta 0,0, ExtDelta(45) // rotate by Z on 45 degrees.
-PlayListSetPos 1 | +
  
- | PlayListSetTime |  +Random( MaxValue ) 
-PlayListSetTime +Function return random value in range 0..MaxValue. Note, MaxValue included into the range
  
- | PlayListStop |  +RandomIn( MinValue, MaxValue ) 
-PlayListStop | +Functino return random value in range MinValue..MaxValue
  
- | PlayTimeline |  +Param( ParamIndex ) - newer name of OscParam() function. It get the value of parameter supplied into the script. See commend about OscParam()
-PlayTimeline | +
  
- | PlayersDisk |  +OscParam( ParamIndex ) 
-PlayersDisk 1, 0.1 +Specialy designed for use in "OSC to CODE" table.. When BEYOND receive OSC message and supply it into interpreter to execution, then we can supply up to 10 parameters with OSC message. BEYOND put them into local array, and you may use it inside the Code. Note, data is there only during execution of current script. As soon  we exit from execution of this script, data will be lost. OK, parameter index is from up to 10. BEYOND check how many parameters the OSC message hasand if you will try to access non existing paramater then script will stop with errorSo, if OSC message has 3 parameters, then you can use index from to 3. Accepts f, i, and s type of OSC parameters. You can freely mix float and integer.
  
- | PlayersDiskShift |  +ParamRange( MinValue, MaxValue) function return TRUE (1)  if the first parameter inside the specified range.
-PlayersDiskShift 0.1 | +
  
- | PlayersResetJump |  +ParamRange(ParamIndex,  MinValue, MaxValue) function return TRUE (1)  if the specified parameter (pram index) inside the specified range (from MinValue to MaxValue)
-PlayersResetJump | +
  
- | PlayersSetJump |  +GetTransitionName( index ) 
-PlayersSetJump | +function return string, the name of transition. Index is number of transition. Range 0..23
  
- | PlayersSetLoop |  +BeatTime 
-PlayersSetLoop | +Function has no arguments. The result of function is float point number. Integer part of function is number of beat from the start of BEYOND. The fractional part is progress inside the beat.
  
- | Position |  +GetMidiDeviceIndex 
-Position 0,0,0 | X,Y,Z position +function return currently selected MIDI Device pairValue range 1..4.
  
- | PositionDelta |  +ObjectExists( AObjectName )  - function get object name a s string and return 1 if object existsor zero if object is not found.
-PositionDelta 0,0,0 | X,Y,Z  | +
  
- | PositionIndex |  
-PositionIndex 1,0 | one axiz only: 1 is X, 2 is Y, 3 is Z. Second paramater is Value, 0 center, 100 is max |  
  
- | PositionX |  +==== Timecode input ====
-PositionX 0 |-100..100 | +
  
- | PositionY |  
-PositionY 0 |-100..100 |  
  
- | PositionZ |  +GetTimeCode return latest timecode value as a float point value, value in seconds
-PositionZ 0 |-100..100 | +
  
- | PreviewMaster |  +GetTimeCodeTick - return the tick when the last timecode value arrived. Use function GetTick for getting the current tick value.
-PreviewMaster | +
  
- | PreviewNxN |  +==== Cue related functions ====
-PreviewNxN 1 | 1 - laser, 2 - 2x2, 3 - 3x3, 4 - 4x4 | +
  
- | ProTrackDisk |  
-ProTrackDisk 1, 0.1 |  
  
- | ProTrackDiskShift |  +CuePlaying( PageIndex, CueIndex) - function return 1 if cue is currently playing in the Grid, otherwise return 0. Indexing of page and cue starts from 1
-ProTrackDiskShift 0.1 +Example: CuePlaying(1,1) //return state of first cue on a first page. Note, function is not applicable for ProTracks and DMX server.
  
- | ProTrackResetJump |  +CueEmpty(PageIndex, CueIndex) - function return 1 if cue is empty, otherwise return 0. Indexing of page and cue starts from 1.
-ProTrackResetJump | +
  
- | ProTrackSetJump |  +GetCueCaptionColor(PageIndex, CueIndex)  - return cue caption color in GDI format. Format is 24bit RGB, red is LSB. Overall formula Blue*256*256 + Green * 256 + Red. Indexing of page and cue starts from 1.
-ProTrackSetJump | +
  
- | ProTrackSetLoop |  
-ProTrackSetLoop |  
  
- | ProjectionZonesDialog |  +==== Misc ====
-ProjectionZonesDialog | +
  
- | PulseEvent |  
-PulseEvent "MyEventName" 
  
- | QLog |  +GetBeyondBuild - return integer value, build of BEYOND application.
-QLog "My message to QLog tab" | +
  
- | RGBA |  +GetMidiDeviveIndex - return current MIDI device index associated with this scriptBEYOND can use 4 MIDI devicesBy default script associated with 1st device. There is a command for change device index. This function allows to check current association. Indexing from 1.
-RGBA 255,255,255,255 | R,G,B,Alpha0..255 | +
  
- | RGBADelta |  +GetMidiDeviceLayer - return current layer of MIDI device mapping.  Indexing from 1. Layering introduced because BEYOND has big number of functionsand at the same timeMIDI device has limited number of sliders and buttons. MIDI settings allow to organize several layersand as a result, MIDI controller will do several functions (depending on current layer). GetMidiDeviceLayer return currently active layer of MIDI device associated with this script.
-RGBADelta 0,0,0,0 | +
  
- | ReStartCell |  +==== User Interface ====
-RestartCell | restart current cell | +
  
- | ReStoreZoneSelection |  
-ReStoreZoneSelection |  
  
- | RebootConnectedFB4 |  +GetLcTabMode:integer - function return mode (destination of controlof Live Control tab. Basically, it tell what button selected - Master, Cue, Zone or ProTrack 
-RebootConnectedFB4 | If you need to use this command then please contact Pangolin (report@pangolin.comand tell what is wrong with your FB4. Thanks. | +Values are: 
 +1 - Master 
 +2 - Cue 
 +3 - Zone 
 +4 - ProTrack
  
- | RefreshDmxIn |  +GetTcTabMode:integer - function return mode of Time Control tab.Constant is same as in  GetLcTabMode
-RefreshDmxIn | activate update of DMX IN reactions, independently on data changed or no | +
  
- | RegisterOscFeedback |  +GetFxTabMode:integer - function return mode of  FX tab.Constant is same as in  GetLcTabMode
-RegisterOscFeedback "/beyond/master/brightness", "master.brightness"+
  
- | ResetCuesFX |  +GetGrid1Mode:integer - function return currently selected click mode of main Grid. Result is one of following values 
-ResetCuesFX | +0 - Select mode 
 +1 - Flash mode 
 +2 - FlashSolo mode 
 +3 - Toggle mode 
 +4 - Restart mode 
 +5 - ProTrack mode
  
- | ResetFxTiming |  +GetGrid2Mode:integer - function return currently selected click mode of secondary Grid. Constants same as for function GetGrid1Mode
-ResetFxTiming | +
  
- | ResetLCTab |  
-ResetLCTab |  
  
- | ResetLiveControl |  +==== Timeline mode functions ====
-ResetLiveControl | +
  
- | ResetMasterFX |  
-ResetMasterFX |  
  
- | ResetMidiFeedback |  +GetTimelinePos:float - function return time position of current timeline. Value in seconds. Fractional part contain millisecond part.
-ResetMidiFeedback | +
  
- | ResetOscFeedback |  +GetTimelineDuration:float - function return duration of current timeline. Value in seconds. Fractional part contain millisecond part.
-ResetOscFeedback | +
  
- | ResetPosition |  +GetTimelineOnline:integer function return 1 when "Enable laser output" is enabled in Timeline mode, otherwise return value is 0.
-ResetPosition | +
  
- | ResetProTrackFX |  +GetTImelinePlaying:integer function return 1 when timeline is currently playing, otherwise return value is 0.
-ResetProTrackFX | +
  
- | ResetRotation |  +GetTimlineTabIndex:integer. Timeline editor can work with multiple timelines. Function return index of currently selected timeline.
-ResetRotation | +
  
- | ResetRotationX |  +GetTimelineTabName:string - function return tab name of currently selected timeline.
-ResetRotationX | +
  
- | ResetRotationY |  
-ResetRotationY |  
  
- | ResetRotationZ |  
-ResetRotationZ |  
  
- | ResetZonesFX |  +==== FX and Live Control commands ====
-ResetZonesFX | +
  
- | Restart |  
-Restart |  
  
- | RestartCue |  +The Destination
-RestartCue 1,1 | page, cue | +
  
- | RestorePlayer |  +A few words about commands of BEYOND. Each command of BEYOND has information about: 
-RestorePlayer | +Sender - who initiated the command 
 +Server - who is recipient / server of the command. As example - zone, cue, master, and so on 
 +Server index - index of server, of there are many such servers. As example - Projection Zone 
 +Command - the command itself 
 +Arguments - depends on exact commands.
  
- | ResyncByCueClick |  +Lets consider example. We want to set the size of second projection zone to 50%. In this case, command will have such values 
-ResyncByCueClick On  | options: OnOffToggle | +Sender - BEYOND set it automatically, no worry about 
 +Server - Zone 
 +Server index - 2 
 +Command - Size 
 +Arguments - 50,50,50
  
- | RotoSpeed |  +For the scriptto make a complex command that include all fields is not practical. Because the process has two parts. The first part - you define the destination. By default it is Master. The second part is a Command itselfBEYOND memorize the setting of destination and all consequent commands will use it.
-RotoSpeed 0,0,0  | rotation speed by X,Y,Z axisdegree+
  
- | RotoSpeedDelta |  
-RotoSpeedDelta 0,0,0 | increment of rotation speed. X,Y,Z axis. |  
  
- | RotoSpeedX |  
-RotoSpeedX 0 | rotation speed, degree |  
  
- | RotoSpeedY |  +==== WaitFor command group ====
-RotoSpeedY 0 | rotation speed, degree | +
  
- | RotoSpeedZ |  
-RotoSpeedZ 0 | rotation speed, degree |  
  
- | RunApp |  +Sleep Time 
-RunApp "C:\Windows\Notepad.exe""" | full exe file nameparameters | +ParametersTime measured in milliseconds 
 +Purpose: Allow to pause execution to defined time 
 +Example 1: Sleep 100 // this will cause pause in execution on 1/10 of a second. 
 +Example 2: 
 +MidiOut 0x900x400x7F 
 +Sleep(500); 
 +MidiOut 0x90, 0x40, 0x00 
 +Sleep(500); 
 +Restart
  
- | Saturation |  
-Saturation 0 |  
  
- | SaturationDelta |  
-SaturationDelta 0 |  
  
- | ScanRate |  
-ScanRate 100 |  
  
- | ScanRateDelta |  +==== Timeline control ====
-ScanRateDelta 0 | +
  
- | SelectAllCat |  
-SelectAllCat |  
  
- | SelectAndFocusZone |  +PlayTimeline 
-SelectAndFocusZone 1 | zone index, 1..N. | +Start playback of current show in timeline editor
  
- | SelectCat |  +StopTimeline 
-SelectCat 1 | category index, 1..N. | +Stop playback of current show in timeline editor
  
- | SelectCatName |  +TimelineMarker 
-SelectCatName "Graphics" | define correct Category name+Add timeline marker. There are 3 modifications 
 +TimelineMarker (no arguments) - add marker at current position and current color 
 +TimelineMarker Color - addmarker with specified color at current time position 
 +TimelineMarker Color, Time - add marker with specified color at specified time 
 +Time - time in seconds, float point 
 +Color  - index, 1..10;
  
- | SelectCue |  
-SelectCue "Cue01" | Enter correct Cue name! |  
  
- | SelectFixt |  
-SelectFixt 0 | index(es) or name(s) |  
  
- | SelectGrid |  
-SelectGrid 1 | 1-main grid, 2-grid at bottom. 0-recently active |  
  
- | SelectMidi |  +==== Property Animation ====
-SelectMidi 1 | select MIDI device pair, 1..4. | +
  
- | SelectNextCat |  
-SelectNextCat |  
  
- | SelectNextCatGrid1 |  +Property animation designed for linear change of property from one state to another during some period of time. Technically, this is sort of micro script, but BEYOND does this job automatically. Internally BEYOND has internal list of the tasks for object property animation. The list is dynamic. The only way to create request for property animation is a script.
-SelectNextCatGrid1 | +
  
- | SelectNextPage |  +Note, the execution of property animation performed right after execution of all script by dedicated thread of BEYOND. The time resolution is ~ 40 "FPS" For animation of laser related properties it might be not perfect because laser projector frame rate may be much higher.
-SelectNextPage | +
  
- | SelectNextPageGrid1 |  +AnimateProp PropertyName,  StartValue, FinishValue, DurationMS, FinishEvent 
-SelectNextPageGrid1 | +PropertyName - string that contain complete name of object and its property. The property must be numeric. 
 +StartValue - number. Specify start value of the property during animation 
 +FinishValue - number. Specify final value of the property during animation. 
 +DurationMS - duration of animation in milliseconds 
 +FinishEvent - optional parameter, string. Specify name of Event that will be activated at the end of animation. Action equal to call of PulseEvent() procedure.
  
- | SelectNextTab |  +Exmaple: 
-SelectNextTab | +AnimapeProp "Master.Brightness", 100, 0, 1000 
 +// command change value of Master brightness from 100% to zero during 1000 ms (one second)
  
- | SelectNextTabGrid1 |  +Example2 : 
-SelectNextTabGrid1 | +AnimapeProp "Master.Brightness", Master.Brightness, 0, 500 
 +// command change value of Master brightness from current value to zero during 500 ms (0.5 second)
  
- | SelectPage |  
-SelectPage 1 | tab index, 1..N. |  
  
- | SelectPageName |  +AnimatePropDelta PropertyName, TotalDelta, DurationMS, FinishEvent 
-SelectPageName "Graphics" | define Page name! | +PropertyName - string that contain complete name of object and its property. The property must be numeric. 
 +TotalDelta- number. Specify how much will change the value of specified property 
 +DurationMS - duration of animation in milliseconds 
 +FinishEvent - optional parameter, string. Specify name of Event that will be activated at the end of animation. Action equal to call of PulseEvent() procedure.
  
- | SelectPrevCat |  +Example: 
-SelectPrevCat | +AnimatePropDelta "Master.Brightness", -25, 300    // decrease master brightness on 25% during 0.3 second
  
- | SelectPrevCatGrid1 |  +Example 2: 
-SelectPrevCatGrid1 | +AnimatePropDelta "Master.Color", -32, b2ms(1)    // shift color "slider" of master on 32 during 1 beat
  
- | SelectPrevPage |  +DeletePropAni PropertyName, PropertyName, PropertyName,,,, 
-SelectPrevPage | +Commamd delete existing animation-tasks from the pool. If no one parameter specified then command delete ALL tasks. Command can contain one or more names of properties. 
 +PropertyName - string that contain complete name of object and its property. The property must be numeric.
  
- | SelectPrevPageGrid1 |  +Example1: 
-SelectPrevPageGrid1 | +DeletePropAni   // delete all
  
- | SelectPrevTab |  +Example2: 
-SelectPrevTab | +DeletePropAni "Master.Brightness" 
  
- | SelectPrevTabGrid1 |  +Example3: 
-SelectPrevTabGrid1 | +DeletePropAni "Master.Brightness",  "Master.Color",
  
- | SelectProTrack |  
-SelectProTrack 1 | index(es) (1..N) or name(string). Can be used more than one argument |  
  
- | SelectProjector |  +==== MIDI Surface Layer (MSL====
-SelectProjector 1 | index(es(1..N) or name(string). Can be used more than one argument | +
  
- | SelectTab |  
-SelectTab 1  | tab index, 1..N. |  
  
- | SelectTabName |  +BEYOND offer more functions that can be mapped to MIDI sliders/buttons of overage MIDI console has. The soluion is map a few function to one slider, and enable only one of them. For making this possible BEYOND intoduce conception of "layers". You organize some set of functions grouped into layers, and after that you can change the layer, what give quick access to the groups of functions.
-SelectTabName "Graphics| define Page name! | +
  
- | SelectZone |  +MIDI Sufrace Layering allow connect multiple BEYOND features to one MIDI command (message). Layeing work with Main GridSecondary Grid, Sufrace Buttons, Surface Sliders, FX and Zone selection. Currently available 12 layers. Counting starts from and up to 12The function of BEYOND may belong to more than one layerIn this case this function stay active in all layers where it enabled. If the function of BEYOND is not enabled in current layer, then it will not react on assigned MIDI message, same as will not generate a feedback messages.
-SelectZone 1 | zone index, 1..N+
  
- | SelectZoneName |  +Simplified Layer control.
-SelectZoneName "Main Graphics" | enter Zone name | +
  
- | SetActiveGrid |  +Each MIDI Mapping object has preperty Layer. When you write to this propetry then it change Layer of all tables. Such operation equal to using of 12 commands descrived below.
-SetActiveGrid 1 | or 2  | +
  
- | SetAttractionSlider |  +Example: 
-SetAttractionSlider 10 +Midi1.Layer=1 
 +Midi2.Layer=10 
 +Midi3.Layer=5
  
- | SetAudioGain |  
-SetAudioGain 10 | 1..15 |  
  
- | SetAudioInGain |  +Detailed control.
-SetAudioInGain 10 | 1 is min, 15 is max, 10 default | +
  
- | SetAudioInRelease |  +Each table has own Layer property that you can control independently.
-SetAudioInRelease 75 | 1 is min, 99 is max (slowest) 75 is default | +
  
- | SetAudioRelease |  
-SetAudioRelease 75 | 1..99 |  
  
- | SetBpm |  
-SetBpm 120 |  
  
- | SetBpmDelta |  +==== Triggers ====
-SetBpmDelta 1 | +
  
- | SetButtonMSL |  
-SetButtonMSL 1 |  
  
- | SetChannelToChannelRatio |  +"Trigger" is a special mode for the scripterThe trigger as two part - Definition and Action. The the Definition part you define the type of the trigger, range of values and labels for corresponding sections of code. In the Action part has one or more code sections that will be activated - depending on the definition. Lets talk a bit more about when trigger may be in help and why it done this way.
-SetChannelToChannelRatio 0 | 0..100 | +
  
- | SetCueCaptionColor |  +The simplest and classic example is when DMX  come into some range of valuesand the fact that the value is in range now it create some reaction. If the is not the same as "if value is in range then we do something". No.It is like - we do it every time as value come into the range. The next time it will happen when the value will go out of range and back to the range.
-SetCueCaptionColor 1,20x0000FF  | page 1, cue 2, color (windows, 24bit color) | +
  
- | SetDmxEditorChannel |  +No doubt it is possible to make a trigger by means for "standard" PangoScrtipt commandsbut it require much more complex script code, more lines, and at the end it will be more slow. The Trigger use a hybrid method. You define what to check and the ranges, and BEYOND software do the idle job for you - BEYOND read the state and compare with ranges, take care about the state and other things. All it done in native code. If you will do it all in PangoScript then it will require much more CPU time. So, this part can be more optimal. What say in PangoScript is a reaction (action). You need to define a section(s) of code that will be activated.
-SetDmxEditorChannel 1128 | +
  
- | SetDmxToChannelRatio |  
-SetDmxToChannelRatio 0 | 0..100 |  
  
- | SetEffectChannelAction |  +Trigger definition commands
-SetEffectChannelAction 0 |0..100 | +
  
- | SetFFTToChannelRatio |  +DefineDmxTrigger ChannelIndex - this command set the scripter into trigger mode, and define that trigger react on DMX channel number "ChannelIndex "
-SetFFTToChannelRatio 0 | 0..100 | +
  
- | SetFX |  +DefineMidiTrigger MessageData1 - this command set the scripter into trigger modeand define that trigger react on MIDI messageYou need to specify the message n
-SetFX 11 | Layer number: 1..4Effect index: 1..100 | +
  
- | SetFX1MSL |  +DefineTrigger String-Expression, Caption - this command set the scripter into trigger mode, and define that trigger depends on expression. The expression is math formula. it has a syntax of string. The dumb exampe: DefineTrigger "2+2" In this example 2+2 is expression. But, according to syntax of this command we put expression inside "..". The Caption is just text string for PangoScript tab
-SetFX1MSL 1 | +
  
- | SetFX2MSL |  +The top level logic of these command is this. The most possible, the triggers will work with  MIDI and DMX consoles. The trigger must be fix, and effective, because it will work on a high speed, because we have a trigger specially made for MIDI and DMX. BEYOND precalculate values and do it all in native code. But, not doubt will appear a need in some universal method, and in this case will help universal command DefineTrigger. This command work with expression, it is more slow because BEYOND need to calculate expression all the time, but it is very flexible, and work for all types of input data. You can use objects, variables, functions, expression and so on. It can work with Audio, Kinect or DMX, Universe or GamePad and any mix of this. So, for DefineTrigger we need to supply text of expression to trigger engine, and it is a string.
-SetFX2MSL 1 | +
  
- | SetFX3MSL |  
-SetFX3MSL 1 |  
  
- | SetFX4MSL |  +Trigger range commands
-SetFX4MSL 1 | +
  
- | SetFX5MSL |  +Here a formal description of commands, examples and logic after that.
-SetFX5MSL 1 | +
  
- | SetFX6MSL |  +InRangeTrigger MinValue, MaxValue, LabelName 
-SetFX6MSL 1 | +The action will be activated when values comes in range between MinValue and MaxValue. When it happen the scripter does goto to LabelName 
 +MinValue - number, a minimum value of the range 
 +MaxValue - number, a maximum value of the range 
 +LabelName - string that contain label name
  
- | SetFXAction |  +InRangeTriggerCmd MinValueMaxValueCommand 
-SetFXAction 1100 | Layer number: 1..4Action 0..100 percent | +The action will be activated when values comes in range between MinValue and MaxValueWhen it happen the scripter execute Command. 
 +MinValue - number, a minimum value of the range 
 +MaxValue - number, a maximum value of the range 
 +Command- string that contain a PangoScript command
  
- | SetFXAction1 |  
-SetFXAction1 100 | Action 0..100 percent |  
  
- | SetFXAction2 |  +OutOfRangeTrigger MinValue, MaxValue, LabelName 
-SetFXAction2 100 | Action 0..100 percent | +The action will be activated when values comes out of range of MinValue and MaxValueWhen it happen the scripter does goto to LabelName. 
 +MinValue - number, a minimum value of the range 
 +MaxValue - number, a maximum value of the range 
 +LabelName - string that contain label name
  
- | SetFXAction3 |  +OutOfRangeTriggerCmd MinValue, MaxValue, Command 
-SetFXAction3 100 | Action 0..100 percent | +The action will be activated when values goes out of range of MinValue and MaxValueWhen it happen the scripter execute Command. 
 +MinValue - number, a minimum value of the range 
 +MaxValue - number, a maximum value of the range 
 +Command- string that contain a PangoScript command
  
- | SetFXAction4 |  
-SetFXAction4 100 | Action 0..100 percent |  
  
- | SetFXAction5 |  +IncreaseTrigger MinValue, MaxValue, LabelName 
-SetFXAction5 100 | Action 0..100 percent | +The action will be activated when value increase and stay in range of MinValue and MaxValueWhen it happen the scripter does goto to LabelName. 
 +MinValue - number, a minimum value of the range 
 +MaxValue - number, a maximum value of the range 
 +LabelName - string that contain label name
  
- | SetFXAction6 |  
-SetFXAction6 100 | Action 0..100 percent |  
  
- | SetFXAction7 |  +DecreaseTrigger MinValue, MaxValue, LabelName   
-SetFXAction7 100 | Action 0..100 percent | +The action will be activated when value decrease and stay in range of MinValue and MaxValueWhen it happen the scripter does goto to LabelName. 
 +MinValue - number, a minimum value of the range 
 +MaxValue - number, a maximum value of the range 
 +LabelName - string that contain label name
  
- | SetFXAction8 |  +About the logic
-SetFXAction8 100 | Action 0..100 percent | +
  
- | SetFXMul |  +The most simple is InRangeTrigger command. When values comes in rangethen something happen. We can define a few rangesand when value comes into the range then something will happenWhat will happen? We considered a few options, and appeared that in simplest case one simple command will be enoughI meanBlackout, or EnableLaserOutput, or StopAllCue , who knows. In many cases one command will be enough. But, what is not enough? I this case we should do goto to a second of code. In fact, you simply put a name of label, and BEYOND will do a goto (this process is optimized too). So, we have two options Command or Label for Goto.
-SetFXMul 11,1 | Layer number: 1..4Multiplier 1 default value for clock and metronome | +
  
- | SetFXMulAx |  +There is inverted version of InRangeTrigger - OutOfRange triggerThe only different is goes to be activated when value goes out of rangeAll the rest is equal. There in Min and Max valueand there version of command for Command and for Label.
-SetFXMulAx 1, 3, 1 | Layer number: 1..4, Mask (1 is clock, 2 is beat, 3 is clock and beat)Value of multiplier | +
  
- | SetFXMute |  +The third variation of trigger allow define reaction on the increase or decrease of the value. it work like this: scripter memorize current valueand if the new value is bigger (or smaller) than current state then it active the trigger Command IncreaseTrigger create a reaction when new value is more than current. Command DecreaseTrigger create a reaction when new value is less than current
-SetFXMute 10 | Layer number: 1..4, 0-Off, 1-On, 2-Toggle | +
  
- | SetFrictionSlider |  +No doubt, we can add more commands, add more functionality to trigger. The range oriented commands is a classic. The increase/decrease has a practical use too.
-SetFrictionSlider 10 | +
  
- | SetGrid1MSL |  +Rule of 3 words: Type, Range, Interaction 
-SetGrid1MSL 1 | +T - type of the trigger - DMX, or MIDI, or universal 
 +R  - range,  when value in range the we do something 
 +I - interaction, the trigger is only a way to do some action, we need define what it will do.
  
- | SetGrid1Page |  +Example 1: Enable/Disable laser output from MIDI
-SetGrid1Page +
  
- | SetGrid2MSL |  +DefineMidiTrigger 0xB0, 0x00, "Enable Laser test" 
-SetGrid2MSL 1 | +InRangeTriggerCmd 0,63,"DisableLaserOutput" 
 +InRangeTriggerCmd 64,127,"EnableLaserOutput"
  
- | SetGrid2Page |  +This trigger react in the MDI slider 0xB0, 0x00, and has values in range of 0..127. When slider in lower half the laser output will be disables, and when in higher half, then output will be disables. Now command bby comamnd:
-SetGrid2Page 1 | +
  
- | SetGridSize |  +DefineMidiTrigger 0xB0, 0x00, "Enable Laser test" 
-SetGridSize 8,5 | +DefineMidiTrigger  is  command 
 +0xB00x00 - this is slider parameter 
 +"Enable Laser test"  - this is optional parameter - caption of this scripter
  
- | SetGridView |  
-SetGridView |  
  
- | SetLimiterBeam |  +InRangeTriggerCmd 0,63,"DisableLaserOutput" 
-SetLimiterBeam 5 | +InRangeTriggerCmd - command, define the range and command 
 +0,63 - the range 
 +"DisableLaserOutput" - command as string.
  
- | SetLimiterDMX |  
-SetLimiterDMX 5 |  
  
- | SetLimiterFlash |  +InRangeTriggerCmd 64,127,"EnableLaserOutput" 
-SetLimiterFlash 4 | +InRangeTriggerCmd - command that define second range 
 +64,127 - second range 
 +"EnableLaserOutput" - command that will be executed.
  
- | SetLimiterHold |  
-SetLimiterHold 3 |  
  
- | SetLimiterPerGrid |  
-SetLimiterPerGrid 10 |  
  
- | SetLimiterPerZone |  +Example 2: Same as example 1, but with goto
-SetLimiterPerZone 3 | +
  
- | SetLimiterProfile |  +DefineMidiTrigger 0xB0, 0x00, "Enable Laser test 2" 
-SetLimiterProfile 1 | +InRangeTrigger 0,63, "D1"  // D1 is a name of  label, see below 
 +InRangeTrigger 64,127, "D2" // D2 is a name of  label, see below 
 +exit // we need to exit because we should stop script execution after the declaration
  
- | SetLimiterShow |  +D1:  // this is label used 1st range 
-SetLimiterShow 2 | +DisplayPreview "Disable" // visual indication in Preview panel 
 +DisableLaserOutput // Commamd 
 +exit // we should stop script execution, otherwise it will do below
  
- | SetLocation |  +D2: // this is label used 2nd range 
-SetLocation 1, 0,0,0 | set one of 256 positions/locations (index 1..256, X,Y,Z as normalized values (0..1) | +DisplayPreview "Ensable" // visual indication in Preview panel 
 +EnableLaserOutput 
 +exit // we should stop script executionThis is good practice to have it.
  
- | SetMassSlider |  +Commentaries for this example. The script itself is bigger, and there are sections for definition and for corresponding scripts. There are two typical mistakes 
-SetMassSlider 4 | +1. Do not forger to put exit instruction 
 +2. Ensure that label name in code and in definition is the same. Otherwise, it will not work. Label is case sensitive.
  
- | SetMidiLayer |  +And general advice - use DisplayPreview, DisplayPopup or qlog for debug purposeIt might be good idea to create a trigger definition with all jumps, and put inside commands like DipsplayPreview only, without real functionalityOnce you see that the logic works fine, the put there the rest of code.
-SetMidiLayer 1 | 1..8+
  
- | SetPage |  
-SetPage 1 |  
  
- | SetPhysicsCheckbox |  +Example 3: Slider at first time do Enable Laser, and and second time Disable Laser
-SetPhysicsCheckbox ON | +
  
- | SetPlayListView |  +This code based on previous, but it use variable. Variable organize a
-SetPlayListView | +
  
- | SetProTrackZones |  +DefineMidiTrigger 0xB0, 0x00, "Enable Laser test 3" 
-SetProTrackZones 11 | Track index/nameZone name(es)/index(es) | +InRangeTrigger 64,127"Trick1" 
 +var counter // declare variable 
 +counter=0 // initialize variable 
 +exit
  
- | SetSliderMSL |  
-SetSliderMSL 1 |  
  
- | SetTimelineView |  +Trick1: 
-SetTimelineView | +DisplayPreview Counter  // debug action 
 +if (Counter=0) EnableLaserOutput  // action when Count is 0 
 +if (Counter=1) DisableLaserOutput // action when Count is 1 
 +Counter=(Counter+1) % 2 // increment counter and divide by modulus 2, so, it will be 0,1,0,1,0,1 and so on 
 +exit // stop this section
  
- | SetTransitionIndex |  
-SetTransitionIndex 2 |  
  
- | SetTransitionTime |  +Example 4: The same as example 4, but with Goto
-SetTransitionTime 0.1 | +
  
- | SetUCenterPage |  +DefineMidiTrigger 0xB0, 0x00, "Enable Laser test 3" 
-SetUCenterPage | set first page | +InRangeTrigger 64,127, "Trick1" 
 +var counter 
 +counter=1 
 +exit
  
- | SetUEditPage |  +Trick1: 
-SetUEditPage | set first page | +DisplayPreview Counter 
 +Counter=(Counter+1) % 2 
 +if (Counter=0) goto When0 
 +if (Counter=1) goto When1 
 +exit
  
- | SetUMaxPage |  +When0: 
-SetUMaxPage 1 | set first page | +EnableLaserOutput 
 +exit
  
- | SetUPreviewPage |  +When1: 
-SetUPreviewPage 1 | set first page | +DisableLaserOutput 
 +exit
  
- | SetURightPage |  +Well, example, is similar, and show that you can use additional Goto instructions.
-SetURightPage 1 | set first page | +
  
- | SetUToolPage |  +Example 5
-SetUToolPage 1 | set first page | +
  
- | SetUniverseView |  +What I want to demonstrate by this example - BEYOND does a goto when it execute a trigger. It means this. You can do goto by means of script command. But trigger engine use the same goto. Look a the code, comments below
-SetUniverseView | +
  
- | SetVdjToChannelRatio |  
-SetVdjToChannelRatio 0 | 0..100 |  
  
- | SetWorkspacePageCount |  +DefineMidiTrigger 0xB0, 0x00, "Enable Laser test 3" 
-<internal commmand>+InRangeTrigger 64,127, "Trick1" 
 +InRangeTrigger 0,63, "StopIt" 
 +exit
  
- | SetZoneMeshPointPos |  
-SetZoneMeshPointPos 1, 1,1, 0,0 | Zone index, X node index, Y node index, X coordinate (-32K..32K), y coordinate |  
  
- | SetZoneMuteMSL |  +Trick1: 
-SetZoneMuteMSL 1 | +DisplayPopup "Yes" 
 +Sleep 1000 
 +DisplayPopup "No" 
 +Sleep 1000 
 +goto Trick1
  
- | SetZoneSelMSL |  +StopIt: 
-SetZoneSelMSL 1 | +DisplayPopup "I dont care" 
 +exit
  
- | ShiftFX |  +Two rangesand main action in range of 64..127. The main action is after label Trick1. It has a dead loop. At leastit looks like dead loop. You see message panel with Yes and No and it will work until you move the slider down. It will break this endless loop.
-ShiftFX 11 | Layer 1..4delta | +
  
- | ShiftFocus |  
-ShiftFocus -5 | go back and forth on N cells |  
  
- | ShowHint |  +Example 6: Lets try to use expressions... BPM notification
-ShowHint "Hello!" | show hint window in center of main window | +
  
- | ShowItNowSMS |  +DefineTrigger "Master.BPM" // expression... 
-ShowIsNowSMS 1 | +InRangeTrigger 0,50,"WhenSlow" 
 +InRangeTrigger 250,500,"WhenFast" 
 +exit
  
- | ShowMasterHelpFile |  +WhenSlow: 
-ShowMasterHelpFile | +DisplayPopup "Hey, dont sleep" 
 +exit
  
- | ShutDownWindows |  +WhenFast: 
-ShutDownWindows | require ShutDownWindows.exe application | +DisplayPopup "Hey, too fast!" 
 +exit
  
- | Size |  +This example use simplest expression - read the value of object property - Master.BPMand depending on the BPM show the message.
-Size 100,100,100 | Size X,Y,Z axis | +
  
- | SizeDelta |  +Example 7: Out of range.
-SizeDelta 0,0,0 | shift Size value | +
  
- | SizeIndex |  +This example based on previous. The only change is OutOfRangeTrigger. This section will be activate when BPM is too slow or too  fast. This is only example without big sensebut it it easy to test, because you can see BPM value on toolbar and have the slider that control it.
-SizeDelta 0,0 | +
  
- | SizeX |  +DefineTrigger "Master.BPM" // expression... 
-SizeX 100 | +OutOfRangeTrigger 60,250,"WhenOutOf" 
 +exit
  
- | SizeY |  +WhenOutOf: 
-SizeY 100 | +DisplayPopup "Hmm, this is not normal" 
 +exit
  
- | SizeZ |  +Example 8: Starts/Stop timeline
-SizeZ 100 | +
  
- | Sleep |  +DefineMidiTrigger 0xB0, 0x00, "Timeline control" 
-Sleep 1000 | +InRangeTriggerCmd  0, 63, "StopTimeline" 
 +InRangeTriggerCmd 64,127, "PlayTimeline"
  
- | SoloProTrack |  + 
-SoloProTrack 1 | index(es) or name(s) | +
  
- | StartAudioRecord |  +</code>
-StartAudioRecord |  +
- +
- | StartCell |  +
-StartCell | start current cell |  +
- +
- | StartCode |  +
-StartCode "MyCode" | put YOUR name of code |  +
- +
- | StartCue |  +
-StartCue 1,1 |  +
- +
- | StartPrevious |  +
-StartPrevious | "Back" button |  +
- +
- | StartTalkClient |  +
-StartUdpTalkClient |  +
- +
- | StartTalkServer |  +
-StartUdpTalkServer |  +
- +
- | StopAllAsync |  +
-StopAllAsync 0.5 | duration in seconds |  +
- +
- | StopAllNow |  +
-StopAllNow | no arguments |  +
- +
- | StopAllSync |  +
-StopAllSync  0.5 | duration in seconds |  +
- +
- | StopAudioRecord |  +
-StopAudioRecord |  +
- +
- | StopCell |  +
-StopCell | stop current cell |  +
- +
- | StopCode |  +
-StopCode "MyCode"  | put YOUR name of code |  +
- +
- | StopCue |  +
-StopCue 1,1 |  +
- +
- | StopCueNow |  +
-StopCueNow 1, 1 | page 1..100, cue 1..100 |  +
- +
- | StopCueSync |  +
-StopCueSync 1, 1, 0.5 | page 1..100, cue 1..60, time 0.. |  +
- +
- | StopCueType |  +
-StopCueType 255 |Mask: 1-Image, 2-Timeline, 4-DMX, 8-Sequence, 16-Beams, 32-Capture |  +
- +
- | StopFX |  +
-StopFX | One or more layers. 0 stop. Effect 1..100 |  +
- +
- | StopFxCell |  +
-StopFXCell | Layer index, optional Cell index (relative, take into account scrollbar) |  +
- +
- | StopOnBlackout |  +
-StopOnBlackout 1 |  +
- +
- | StopProTrack |  +
-StopProTrack 1 | index(es) (1..N) or name(string). Can be used more than one argument |  +
- +
- | StopProTrackFX |  +
-StopProTrackFX 1, 1 | Track index/name and FX line index(es). Counting from 1. If no arguments at all - stop all FX on all tracks |  +
- +
- | StopTalkClient |  +
-StopUdpTalkClient |  +
- +
- | StopTalkServer |  +
-StopUdpTalkServer |  +
- +
- | StopTimeline |  +
-StopTimeline |  +
- +
- | StoreZoneSelection |  +
-StoreZoneSelection |  +
- +
- | StrobeSpeed |  +
-StrobeSpeed 0.2 | period, flicker per second |  +
- +
- | StrobeSpeedDelta |  +
-StrobeSpeedDelta 0.1 | period, flicker per second |  +
- +
- | SynchronizePlayerToBeat |  +
-SynchronizePlayerToBeat On  | options: On, Off, Toggle |  +
- +
- | TapByCueClick |  +
-TapByCueClick On  | options: On,Off, Toggle |  +
- +
- | TimelineAddMarker |  +
-TimelineAddMarker  |  +
- +
- | TimelineEnableTC |  +
-TimelineEnableTC |  +
- +
- | TimelineFirstTab |  +
-TimelineFirstTab |  +
- +
- | TimelineJumpDelta |  +
-TimelineJumpDelta 1 | one second |  +
- +
- | TimelineJumpToEnd |  +
-TimelineJumpToEnd |  +
- +
- | TimelineJumpToStart |  +
-TimelineJumpToStart |  +
- +
- | TimelineLastTab |  +
-TimelineLastTab |  +
- +
- | TimelineMarker |  +
-TimelineMarker |  +
- +
- | TimelineNextEditPoint |  +
-TimelineNextEditPoint |  +
- +
- | TimelineNextMarker |  +
-TimelineNextMarker |  +
- +
- | TimelineNextTab |  +
-TimelineNextTab |  +
- +
- | TimelinePlay |  +
-TimelinePlay |  +
- +
- | TimelinePlayFromMarker |  +
-TimelinePlayFromMarker "" |  +
- +
- | TimelinePrevEditPoint |  +
-TimelinePrevEditPoint |  +
- +
- | TimelinePrevMarker |  +
-TimelinePrevMarker |  +
- +
- | TimelinePrevTab |  +
-TimelinePrevTab |  +
- +
- | TimelineQuickSave |  +
-TimelineQuickSave |  +
- +
- | TimelineSetPos |  +
-TimelineSetPos 10 | jump to second 10 |  +
- +
- | TimelineSetTabIndex |  +
-TimelineSetTabIndex |  +
- +
- | TimelineSetTabName |  +
-TimelineSetTabName "MyShow" |  +
- +
- | TimelineSetViewRange |  +
-TimelineSetViewRange 1,5 | from s to 5 second |  +
- +
- | TimelineShiftViewRange |  +
-TimelineShiftViewRange 1 | one second shift |  +
- +
- | TimelineShowItNow |  +
-TimelineShowItNow 1 | set online mode for timeline editor |  +
- +
- | TimelineStop |  +
-TimelineStop |  +
- +
- | TimerBeat |  +
-TimerBeat |  +
- +
- | ToggleCell |  +
-Toggle | start/stop current cell |  +
- +
- | ToggleCue |  +
-ToggleCue 1,1 |  +
- +
- | ToggleFX |  +
-ToggleFX 1 | Layer number: 1..4 |  +
- +
- | ToggleMuteProTrack |  +
-ToggleMuteProTrack 1 | index(es) or name(s) |  +
- +
- | ToggleMuteZone |  +
-ToggleMuteZone 0 | index(es) or name(s) |  +
- +
- | ToggleMuteZoneOfProjector |  +
-ToggleMuteZoneOfProjector 1 | 1st projector |  +
- +
- | TogglePrevious |  +
-TogglePrevious | "SWAP" button |  +
- +
- | ToggleSelectFixt |  +
-ToggleSelectFixt |  +
- +
- | ToggleSelectProTrack |  +
-ToggleSelectProTrack 1 | index(es) (1..N) or name(s) |  +
- +
- | ToggleSelectProjector |  +
-ToggleSelectProjector 1 | index(es) (1..N) or name(s) |  +
- +
- | ToggleSelectZone |  +
-ToggleSelectZone 1 | zone index, 1..N. |  +
- +
- | ToggleSoloProTrack |  +
-ToggleSoloProTrack 1 | index(es) or name(s) |  +
- +
- | ToggleUCenterPage |  +
-ToggleUCenterPage 1  | Relative command. +1 means next page, -1 means previous |  +
- +
- | ToggleUEditPage |  +
-ToggleUEditPage 1 | Relative command. +1 means next page, -1 means previous |  +
- +
- | ToggleUMaxPage |  +
-ToggleUMaxPage 1  | Relative command. +1 means next page, -1 means previous |  +
- +
- | ToggleUPreviewPage |  +
-ToggleUPreviewPage 1  | Relative command. +1 means next page, -1 means previous |  +
- +
- | ToggleURightPage |  +
-ToggleURightPage 1  | Relative command. +1 means next page, -1 means previous |  +
- +
- | ToggleUToolPage |  +
-ToggleUToolPage 1  | Relative command. +1 means next page, -1 means previous |  +
- +
- | Transition |  +
-Transition Toggle  | ON, OFF, TOGGLE |  +
- +
- | UnMuteZonesOfProjector |  +
-UnMuteZonesOfProjector 1 | projector index, 1..N. |  +
- +
- | UnSelectZone |  +
-UnSelectZone 1 | zone index, 1..N. |  +
- +
- | UnSelectZoneName |  +
-UnSelectZoneName "Main Graphics" | enter Zone name |  +
- +
- | UnSoloAllProTrack |  +
-UnSoloAllProTrack |  +
- +
- | UnSoloProTrack |  +
-UnSoloProTrack 1 | index(es) or name(s) |  +
- +
- | UnmuteAllProTracks |  +
-UnmuteAllProTracks |  +
- +
- | UnmuteAllZone |  +
-UnmuteAllZone |  +
- +
- | UnmuteProTrack |  +
-UnmuteProTrack 1 | index(es) or name(s) |  +
- +
- | UnmuteZone |  +
-UnmuteZone 0 | index(es) or name(s) |  +
- +
- | UnselectAllCue |  +
-UnselectAllCue |  +
- +
- | UnselectAllFixt |  +
-UnselectAllFixt |  +
- +
- | UnselectAllProTracks |  +
-UnselectAllProTracks |  +
- +
- | UnselectAllProjectors |  +
-UnselectAllProjectors |  +
- +
- | UnselectAllZones |  +
-UnselectAllZones |  +
- +
- | UnselectFixt |  +
-UnselectFixt 0 | index(es) or name(s) |  +
- +
- | UnselectProTrack |  +
-UnselectProTrack 1 | index(es) (1..N) or name(s) |  +
- +
- | UnselectProjector |  +
-UnselectProjector 1 | index(es) (1..N) or name(s) |  +
- +
- | VLJFX |  +
-VljFX 1, Toggle | index of FX-VLJ 1..4, and action: ON, OFF, TOGGLE |  +
- +
- | Version |  +
-version | remote server will get exe file version |  +
- +
- | VirtualLJ |  +
-VirtualLJ Toggle | ON, OFF, TOGGLE |  +
- +
- | VisiblePoints |  +
-VisiblePoints 100 | 0..100 (percents) |  +
- +
- | VisiblePointsDelta |  +
-VisiblePointsDelta 0 |  +
- +
- | WaitForAudioBeat |  +
-WaitForAudioBeat 1 |  +
- +
- | WaitForBeat |  +
-WaitForBeat 7, 1 |  +
- +
- | WaitForCellDown |  +
-WaitForCellDown 1 |  +
- +
- | WaitForCellUp |  +
-WaitForCellUp 1 |  +
- +
- | WaitForChannel |  +
-WaitForChannel 1 |  +
- +
- | WaitForCueStart |  +
-WaitForCueStart 1 1 |  +
- +
- | WaitForCueStop |  +
-WaitForCueStop 1 1 |  +
- +
- | WaitForDmx |  +
-WaitForDmx 1 |  +
- +
- | WaitForEvent |  +
-WaitForEvent "MyEventName" |  +
- +
- | WaitForHotKey |  +
-WaitForHotKey | waiting for hotkey assigned to this script in Code-tab |  +
- +
- | WaitForManualBeat |  +
-WaitForManualBeat 1 |  +
- +
- | WaitForMidi |  +
-WaitForMidi 0x90, -1, -1 |  +
- +
- | WaitForPageChange |  +
-WaitForPageChange |  +
- +
- | WaitForTC |  +
-WaitForTC 15,30,0,0 | hours, minutes, seconds, ms |  +
- +
- | WaitForTime |  +
-WaitForTime 15,30,0,0 | hours, minutes, seconds, ms |  +
- +
- | WaitForTimePos |  +
-WaitForTimePos 21,00,00,00 | hours, minutes, seconds, ms |  +
- +
- | WaitForTimerBeat |  +
-WaitForTimerBeat 1 |  +
- +
- | Write |  +
-write |  +
- +
- | WriteLn |  +
-writeln "Hello world!" |  +
- +
- | ZoneFXTimeScale |  +
-ZoneFXTimeScale 1,2,1 | Layer, Clock multipler, Metronome multiplier |  +
- +
- | ZoneFXTimeScaleDelta |  +
-ZoneFXTimeScaleDelta 0,0,0, |  +
- +
- | ZoneFXTimeShift |  +
-ZoneFXTimeShift 1,2,1 | Layer, Clock multipler, Metronome multiplier |  +
- +
- | ZoneFXTimeShiftDelta |  +
-ZoneFXTimeShiftDelta 0,0,0, |  +
- +
- | Zoom |  +
-Zoom 100 | value -100..100 |  +
- +
- | ZoomDelta |  +
-ZoomDelta 0 | shift zoom value |  +
- +
- +
beyond/pangoscript_commands.1590490249.txt · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki