Jump to: The Manual Variables Hardware Patterns Control Flow Maths Metronome Delay Stack Queue Turtle

Variables

A / A x
get / set the variable A, default 1
B / B x
get / set the variable B, default 2
C / C x
get / set the variable C, default 3
D / D x
get / set the variable D, default 4
DRUNK / DRUNK x
changes by -1, 0, or 1 upon each read saving its state, setting will give it a new value for the next read
DRUNK.MIN / DRUNK.MIN x
set the lower bound for DRUNK, default 0
DRUNK.MAX / DRUNK.MAX x
set the upper bound for DRUNK, default 255
DRUNK.WRAP / DRUNK.WRAP x
should DRUNK wrap around when it reaches it's bounds, default 0
FLIP / FLIP x
returns inverted state (0 or 1) on each read (also settable)
I / I x
get / set the variable I, this variable is overwritten by L, but can be used freely outside an L loop
O / O x
auto-increments after each access, can be set, starting value 0
O.INC / O.INC x
how much to increment O by on each invocation, default 1
O.MIN / O.MIN x
the lower bound for O, default 0
O.MAX / O.MAX x
the upper bound for O, default 63
O.WRAP / O.WRAP x
should O wrap when it reaches its bounds, default 1
T / T x
get / set the variable T, typically used for time, default 0
TIME / TIME x
timer value, counts up in ms., wraps after 32s, can be set
TIME.ACT / TIME.ACT x
enable or disable timer counting, default 1
LAST x
get value in milliseconds since last script run time
X / X x
get / set the variable X, default 0
Y / Y x
get / set the variable Y, default 0
Z / Z x
get / set the variable Z, default 0

Hardware

CV x / CV x y
cv target value
CV.OFF x / CV.OFF x y
cv offset added to output
CV.SET x
set CV value
CV.SLEW x / CV.SLEW x y
get/set the CV slew time in ms
IN
get the value of IN jack (0-16383)
PARAM PRM
get the value of PARAM knob (0-16383)
TR x / TR x y
set trigger output x to y (0-1)
TR.POL x / TR.POL x y
set polarity of trigger output x to y (0-1)
TR.TIME x / TR.TIME x y
set the pulse time of trigger x to y ms
TR.TOG x
flip the state of trigger output x
TR.PULSE x TR.P
pulse trigger output x
MUTE x / MUTE x y
disable trigger input x
STATE x
read the current state of input x

Patterns

P.N / P.N x
get/set the pattern number for the working pattern, default 0
P x / P x y
get/set the value of the working pattern at index x
PN x y / PN x y z
get/set the value of pattern x at index y
P.L / P.L x
get/set pattern length of the working pattern, non-destructive to data
PN.L x / PN.L x y
get/set pattern length of pattern x. nondestructive to data
P.WRAP / P.WRAP x
when the working pattern reaches its bounds does it wrap (0/1), default 1 (enabled)
PN.WRAP x / PN.WRAP x y
when pattern x reaches its bounds does it wrap (0/1), default 1 (enabled)
P.START / P.START x
get/set the start location of the working pattern, default 0
PN.START x / PN.START x y
get/set the start location of pattern x, default 0
P.END / P.END x
get/set the end location of the working pattern, default 63
PN.END x / PN.END x y
get/set the end location of the pattern x, default 63
P.I / P.I x
get/set index position for the working pattern.
PN.I x / PN.I x y
get/set index position for pattern x
P.HERE / P.HERE x
get/set value at current index of working pattern
PN.HERE x / PN.HERE x y
get/set value at current index of pattern x
P.NEXT / P.NEXT x
increment index of working pattern then get/set value
PN.NEXT x / PN.NEXT x y
increment index of pattern x then get/set value
P.PREV / P.PREV x
decrement index of working pattern then get/set value
PN.PREV x / PN.PREV x y
decrement index of pattern x then get/set value
P.INS x y
insert value y at index x of working pattern, shift later values down, destructive to loop length
PN.INS x y z
insert value z at index y of pattern x, shift later values down, destructive to loop length
P.RM x
delete index x of working pattern, shift later values up, destructive to loop length
PN.RM x y
delete index y of pattern x, shift later values up, destructive to loop length
P.PUSH x
insert value x to the end of the working pattern (like a stack), destructive to loop length
PN.PUSH x y
insert value y to the end of pattern x (like a stack), destructive to loop length
P.POP
return and remove the value from the end of the working pattern (like a stack), destructive to loop length
PN.POP x
return and remove the value from the end of pattern x (like a stack), destructive to loop length

Control Flow

IF x: ...
if x is not zero execute command
ELIF x: ...
if all previous IF / ELIF fail, and x is not zero, execute command
ELSE: ...
if all previous IF / ELIF fail, excute command
L x y: ...
run the command sequentially with I values from x to y
W x: ...
run the command while condition x is true
EVERY x: ...
run the command every x times the command is called
SKIP x: ...
run the command every time except the xth time.
OTHER: ...
runs the command when the previous EVERY/SKIP did not run its command.
SYNC x
synchronizes all EVERY and SKIP counters to offset x.
PROB x: ...
potentially execute command with probability x (0-100)
SCRIPT / SCRIPT x
get current script number, or execute script x (1-8), recursion allowed
SCENE / SCENE x
get the current scene number, or load scene x (0-31)
KILL
clears stack, clears delays, cancels pulses, cancels slews, disables metronome
BREAK BRK
halts execution of the current script

Maths

ADD x y (alias +)
add x and y together
SUB x y (alias -)
subtract y from x
MUL x y (alias *)
multiply x and y together
DIV x y (alias /)
divide x by y
MOD x y (alias %)
find the remainder after division of x by y
RAND x
generate a random number between 0 and x inclusive
RRAND x y
generate a random number between x and y inclusive
TOSS
randomly return 0 or 1
MIN x y
return the minimum of x and y
MAX x y
return the maximum of x and y
LIM x y z
limit the value x to the range y to z inclusive
WRAP x y z
limit the value x to the range y to z inclusive, but with wrapping
QT x y
round x to the closest multiple of y (quantise)
AVG x y
the average of x and y
EQ x y (alias ==)
does x equal y
NE x y (alias !=, XOR)
x is not equal to y
LT x y (alias <)
x is less than y
GT x y (alias >)
x is greater than y
LTE x y (alias <=)
x is less than or equal to y
GTE x y (alias >=)
x is greater than or equal to y
EZ x (alias !)
x is 0, equivalent to logical NOT
NZ x
x is not 0
LSH x y (alias <<)
left shift x by y bits, in effect multiply by 2 to the power of x
RSH x y (alias >>)
right shift x by y bits, in effect divide by 2 to the power of x
| x y
bitwise or x
& x y
bitwise and x
^ x y
bitwise xor x
~ x
bitwise not x: inversion of x
BSET x y
set bit y in value x
BGET x y
get bit y in value x
BCLR x y
clear bit y in value x
ABS x
absolute value of x
AND x y (alias &&)
logical AND of x and y
OR x y (alias ||)
logical OR of x and y
JI x y
just intonation helper, precision ratio divider normalised to 1V
SCALE a b x y i
scale i from range a to b to range x to y, i.e. i * (y - x) / (b - a)
ER f l i
Euclidean rhythm, f is fill (1-32), l is length (1-32) and i is step (any value), returns 0 or 1. see the detailed guide for details.
BPM x
milliseconds per beat in BPM x
N x
converts an equal temperament note number to a value usable by the CV outputs (x in the range -127 to 127)
V x
converts a voltage to a value usable by the CV outputs (x between 0 and 10)
VV x
converts a voltage to a value usable by the CV outputs (x between 0 and 1000, 100 represents 1V)
EXP x
exponentiation table lookup. 0-16383 range (V 0-10)
CHAOS x
get next value from chaos generator, or set the current value
CHAOS.R x
get or set the R parameter for the CHAOS generator
CHAOS.ALG x
get or set the algorithm for the CHAOS generator. 0 = LOGISTIC, 1 = CUBIC, 2 = HENON, 3 = CELLULAR
R
generate a random number
R.MIN x
set the lower end of the range from 0 - 32767
R.MAX x
set the upper end of the range from 0 - 32767

Metronome

M / M x
get/set metronome interval to x (in ms), default 1000, minimum value 25
M! / M! x
get/set metronome to experimental interval x (in ms), minimum value 2
M.ACT / M.ACT x
get/set metronome activation to x (0/1), default 1 (enabled)
M.RESET
hard reset metronome count without triggering

Delay

DEL x: ...
delay command by x ms
DEL.CLR
clear the delay buffer

Stack

S: ...
place a command onto the stack
S.CLR
clear all entries in the stack
S.ALL
execute all entries in the stack
S.POP
execute the most recent entry
S.L
get the length of the stack

Queue

Q / Q x
modify the queue entries
Q.N / Q.N x
the queue length
Q.AVG / Q.AVG x
return the average of the queue

Turtle

@ / @ x
get or set the current pattern value under the turtle
@X / @X x
get the turtle X coordinate, or set it to x
@Y / @Y x
get the turtle Y coordinate, or set it to x
@MOVE x y
move the turtle x cells in the X axis and y cells in the Y axis
@F x1 y1 x2 y2
set the turtle's fence to corners x1,y1 and x2,y2
@FX1 / @FX1 x
get the left fence line or set it to x
@FX2 / @FX2 x
get the right fence line or set it to x
@FY1 / @FY1 x
get the top fence line or set it to x
@FY2 / @FY2 x
get the bottom fence line or set it to x
@SPEED / @SPEED x
get the speed of the turtle's @STEP in cells per step or set it to x
@DIR / @DIR x
get the direction of the turtle's @STEP in degrees or set it to x
@STEP
move @SPEED/100 cells forward in @DIR, triggering @SCRIPT on cell change
@BUMP / @BUMP 1
get whether the turtle fence mode is BUMP, or set it to BUMP with 1
@WRAP / @WRAP 1
get whether the turtle fence mode is WRAP, or set it to WRAP with 1
@BOUNCE / @BOUNCE 1
get whether the turtle fence mode is BOUNCE, or set it to BOUNCE with 1
@SCRIPT / @SCRIPT x
get which script runs when the turtle changes cells, or set it to x
@SHOW / @SHOW 0/1
get whether the turtle is displayed on the TRACKER screen, or turn it on or off