Teletype version 2.1 introduces new operators that mature the syntax and capability of the Teletype, as well as several bug fixes and enhancement features.
Major new features
Tracker Data Entry Improvements
Data entry in the tracker screen is now buffered, requiring an
ENTER keystroke to commit changes, or
SHIFT-ENTER to insert the value. All other navigation keystrokes will abandon data entry. The increment / decrement keystrokes (
[), as well as the negate keystroke (
-) function immediately if not in data entry mode, but modify the currently buffered value in edit mode (again, requiring a commit).
The Turtle operator allows 2-dimensional access to the patterns as portrayed out in Tracker mode. It uses new operators with the
@ prefix. You can
@MOVE X Y the turtle relative to its current position, or set its direction in degrees with
@DIR and its speed with
@SPEED and then execute a
To access the value that the turtle operator points to, use
@, which can also set the value with an argument.
The turtle can be constrained on the tracker grid by setting its fence with
@FY2, or by using the shortcut operator
@F x1 y1 x2 y2. When the turtle reaches the fence, its behaviour is governed by its fence mode, where the turtle can simply stop (
@BUMP), wrap around to the other edge (
@WRAP), or bounce off the fence and change direction (
@BOUNCE). Each of these can be set to
1 to enable that mode.
@SCRIPT N will cause script
N to execute whenever the turtle crosses the boundary to another cell. This is different from simply calling
@STEP; @SCRIPT N because the turtle is not guaranteed to change cells on every step if it is moving slowly enough.
Finally, the turtle can be displayed on the tracker screen with
@SHOW 1, where it will indicate the current cell by pointing to it from the right side with the
New Mods: EVERY, SKIP, and OTHER, plus SYNC
These mods allow rhythmic division of control flow. EVERY X: executes the post-command once per X at the Xth time the script is called. SKIP X: executes it every time but the Xth. OTHER: will execute when the previous EVERY/SKIP command did not.
Finally, SYNC X will set each EVERY and SKIP counter to X without modifying its divisor value. Using a negative number will set it to that number of steps before the step. Using SYNC -1 will cause each EVERY to execute on its next call, and each SKIP will not execute.
Script Line “Commenting”
Individual lines in scripts can now be disabled from execution by highlighting the line and pressing
ALT-/. Disabled lines will appear dim. This status will persist through save/load from flash, but will not carry over to scenes saved to USB drive.
W [condition]: is a new mod that operates as a while loop.
BREAK operator stops executing the current script
BPM [bpm] returns the number of milliseconds per beat in a given BPM, great for setting
LAST [script] returns the number of milliseconds since
script was last called.
New Operator Behaviour
SCRIPT with no argument now returns the current script number.
I is now local to its corresponding
IF/ELSE is now local to its script.
CTRL-8 toggle the mute status for scripts 1 to 8 respectively.
CTRL-9 toggles the METRO script.
SHIFT-ENTER now inserts a line in Scene Write mode.
Temporal recursion now possible by fixing delay allocation issue, e.g.: DEL 250: SCRIPT SCRIPT
KILL now clears
TR outputs and stops METRO.
SCENE will no longer execute from the INIT script on initial scene load.
Q.AVG now round up from offsets of 0.5 and greater.
I is now local to
L loops, it is no longer usable across scripts or as a general-purpose variable.
IF/ELSE is now local to a script, scenes that relied on IF in one script and ELSE in another will be functionally broken.