This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
beyond:pangoscript [2020/05/26 16:56] Bob Varkevisser [Clock And Metronome] |
— (current) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PangoScript ====== | ||
- | |||
- | The main purpose of " | ||
- | |||
- | |||
- | ===== Numbers ===== | ||
- | |||
- | Supported float point , integer and hexadecimal numbers. Example: | ||
- | |||
- | * 100 | ||
- | * -20 | ||
- | * 1.01 | ||
- | * 0xBF | ||
- | |||
- | All hexadecimal numbers much have 0x prefix, similar to C language, but without ending H.\\ | ||
- | There is not strict separation on integer and float point numbers.\\ | ||
- | Separator between command parameter could be space (" ") or a comma ("," | ||
- | |||
- | |||
- | ===== Special characters (separators) ===== | ||
- | |||
- | . ; ' : ! � ^ + - * \ [ ] ( ) { } ? % | & = | ||
- | |||
- | ===== Predefined constants ===== | ||
- | There are a few constants mostly for readability of the code. Each constant will be transformed to a number | ||
- | * **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 " | ||
- | |||
- | A few examples of using commands: | ||
- | VirtualLJ off | ||
- | |||
- | MasterPause Toggle | ||
- | |||
- | WaitForMidi 0x90, 10, Any | ||
- | |||
- | ===== Math operations (expressions) ===== | ||
- | |||
- | * Standard : + - / * % | ||
- | * Inversion : ! | ||
- | * bit OR : | | ||
- | * bit AND : & | ||
- | * bit XOR : ^ | ||
- | * bit right shift : >> | ||
- | * |bit left shift : << | ||
- | |||
- | |||
- | ===== Operators ===== | ||
- | |||
- | |||
- | ==== IF ==== | ||
- | |||
- | Syntax: if (expression) operator | ||
- | |||
- | expression - covered with brackets. Must be an expression with | ||
- | numerical result that gives " | ||
- | variable it's possible to write | ||
- | |||
- | if (variable) | ||
- | |||
- | Compare operators are: >, >=, <, <=, =, <>. They produces numerical result 0 or 1. | ||
- | |||
- | You can combine comparing operations with "&" | ||
- | |||
- | if ((1>2) & ((3+2)> | ||
- | |||
- | 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. | ||
- | |||
- | ==== GOTO ==== | ||
- | |||
- | Syntax: goto label | ||
- | |||
- | " | ||
- | |||
- | mylabel: WaitForBeat 4 | ||
- | ... do something... | ||
- | goto mylabel | ||
- | |||
- | 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. Example: | ||
- | |||
- | var s | ||
- | s=" | ||
- | goto s | ||
- | DisplayPopup "It does not work" | ||
- | exit | ||
- | | ||
- | mylabel: | ||
- | DisplayPopup "It works" | ||
- | | ||
- | ==== VAR ==== | ||
- | |||
- | |||
- | 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. | ||
- | |||
- | 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. | ||
- | |||
- | var MyVariable | ||
- | var a,b,c | ||
- | |||
- | Before using the variable must be initialized by some value. Otherwise BEYOND will generate error and stop script execution. Example: | ||
- | |||
- | var MyInteger, MyString | ||
- | MyInteger = 10 | ||
- | MyString = " | ||
- | |||
- | All variables declared as VAR are local. | ||
- | |||
- | ==== GLOBALVAR ==== | ||
- | |||
- | A variable can be declared as global. In this case, it visible in ALL scripts of BEYOND. | ||
- | |||
- | globalvar s | ||
- | s=" | ||
- | goto s | ||
- | DisplayPopup "It does not work" | ||
- | exit | ||
- | | ||
- | mylabel: | ||
- | DisplayPopup "It works" | ||
- | | ||
- | ===== General functions ===== | ||
- | |||
- | **intstr**(value: | ||
- | value - number or float number\\ | ||
- | result - string\\ | ||
- | \\ | ||
- | **floatstr**(value: | ||
- | value - number\\ | ||
- | result - string\\ | ||
- | \\ | ||
- | **abs**(value: | ||
- | value - integer or float number\\ | ||
- | result - same type as argument. result is absolute value\\ | ||
- | \\ | ||
- | **int**(value: | ||
- | value - a float point number\\ | ||
- | \\ | ||
- | **frac**(value: | ||
- | value - float\\ | ||
- | \\ | ||
- | **round**(value: | ||
- | value - a float point number\\ | ||
- | \\ | ||
- | **sqr**(value: | ||
- | value - a float point number or integer\\ | ||
- | \\ | ||
- | **sqrt**(value: | ||
- | value - a float point number or integer\\ | ||
- | \\ | ||
- | **cos**(value: | ||
- | value - a float point number or integer. angle in radians\\ | ||
- | \\ | ||
- | **sin**(value: | ||
- | value - a float point number or integer. angle in radians\\ | ||
- | \\ | ||
- | **tan**(value: | ||
- | value - a float point number or integer. angle in radians\\ | ||
- | \\ | ||
- | **arcsin**(value: | ||
- | value - a float point number or integer. angle in radians\\ | ||
- | \\ | ||
- | **arccos**(value: | ||
- | value - a float point number or integer. angle in radians\\ | ||
- | \\ | ||
- | **arctan**(value: | ||
- | value - a float point number or integer. angle in radians\\ | ||
- | \\ | ||
- | **arctan2**(dx, | ||
- | dx, dy - ....\\ | ||
- | \\ | ||
- | **min**(a, | ||
- | a,b float or integer\\ | ||
- | \\ | ||
- | **max**(a, | ||
- | a,b float or integer\\ | ||
- | \\ | ||
- | **pi**: | ||
- | \\ | ||
- | **invert**(value: | ||
- | |||
- | ===== Date and Time ===== | ||
- | |||
- | **now: | ||
- | \\ | ||
- | **tickcount**: | ||
- | \\ | ||
- | **hms**(hour, | ||
- | \\ | ||
- | **GetYear**: | ||
- | \\ | ||
- | **GetMonth**: | ||
- | \\ | ||
- | **GetDay**: | ||
- | \\ | ||
- | **timestr**(now: | ||
- | now - is variable representing time. Function return string with time in short format such as " | ||
- | \\ | ||
- | **timestrlong**(now: | ||
- | now - is variable representing time. Function return string with hours, minutes, seconds, such as " | ||
- | \\ | ||
- | **datestr**(now: | ||
- | now - is variable representing date. Function return string short date format such as " | ||
- | \\ | ||
- | **datestrlong**(now: | ||
- | now - is variable representing date. Function return string long date format such as "21 ������ 2012 �." | ||
- | \\ | ||
- | **dayofweek**(now: | ||
- | \\ | ||
- | **dayofweeklong**(now: | ||
- | |||
- | ===== String functions ===== | ||
- | |||
- | **uppercase**(string): | ||
- | \\ | ||
- | **lowercase**(string: | ||
- | \\ | ||
- | **crlf**: | ||
- | ===== Clock And Metronome ===== | ||
- | |||
- | **b2s**(beats) - transform beats to seconds\\ | ||
- | \\ | ||
- | **b2ms**(beats) - transform beats to milliseconds\\ | ||
- | \\ | ||
- | **s2b**(seconds) - transform seconds to beats\\ | ||
- | \\ | ||
- | **b2s**(seconds) - transform beats to seconds\\ | ||
- | |||
- | |||
- | |||
- | ===== More to come ===== | ||