Exhaustive List of Teletype State
Never Loaded From Scene
These state parameters are never altered when loading a scene (bar init script activity), and are clear candidates for INIT operators.
- Variables
- O
- Drunk
- Flip
- Pattern Number
- Queue
- Stack
- Output CV
- Output Triggers
- Input CV Scale
- Param Scale
- Input Triggers Mute
- Metronome
- Delays
- Turtle
- Position
- Speed
- Direction
- Fence
- Bounce Mode
- Script Last Time
- Every Count
- Every Last
Scene-Related State
These states are set when loading a scene. Although they may never need to be called by a script, they would be handy for clearing out unused parts of a scene.
- Scripts
- Text
- Pattern Data
Design Discussion
Granularity of Operators
Each of the above non-scene state datum represents a potential departure from power-on conditions, and should be accessible for reset to the user. We can say that each of them already has the finest granularity of control, e.g.: A 1 or TR.TIME 20, but this presumes that the user understands the power-up state.
The operators under design seek to create groups of these items that represent a common operation, but what constitutes “common” is arguable. For example, do we allow users to reset the parameters of:
-
individual trigger outputs, e.g:
TR.INIT 1 or INIT.TR 1
-
common parameters for all trigger outputs, e.g.:
INIT.TR.TIME
- only omnibus access, e.g:
TR.INIT or INIT.TR
Here we can see two separate axes of granularity. Each of them may be considered “useful” to one user or another, but which of them fit teletype the best?
Scope
- Is there anything on the first list that should be excluded for some reason?
- Do we want scene-clearing operators?
- Should we allow users to set values at granularities where they currently cannot?
- E.g.:
INIT.TR.TIME 125 to set all trigger times to 125.
- This can be accomplished with
L in the existing syntax, so maybe not.
Finest Granularity, Broadest Scope
Here’s an example set of the finest granularity of TR initialization operators using the INIT-with-suffix syntax. There are group-setting operators, and each grouping axis is represented.
INIT.TR | omnibus, clear all parameters of all triggers
INIT.TR 1 | clear all parameters on trigger 1
INIT.TR.TIME | clear the time value of all triggers
INIT.TR.TIME 20 | set the time value of all triggers to 20
Coarsest Granularity, Narrowest Scope
The most cut-down version is a single operator:
INIT | clear all state data
Scene-Related State
Same discussion to be had about granularity here, although I can’t see the use of grouping common parameters of the patterns together, e.g: INIT.P.I 5 (set all pattern indexes to 5), as this doesn’t seem useful. Also, these operators might get vetoed as they are scope creep above the original approval.
Finest Granularity, Broadest Scope
INIT.SCENE | load a blank scene
INIT.SCRIPT 1 | clear script 1
INIT.SCRIPT | clear all scripts
INIT.P 2 | clear pattern 2
INIT.P | clear all pattern data
INIT.TEXT | clear text (probably not useful)
Operator Verbage
- Traditionally in teletype, these sort of operations end up as a suffix of the existing operator, e.g.:
TR.INIT.
- It may be easier for users to understand to use
INIT as the base operator, however.
I think that I have explored all there is to think about with these operators. Now I need @tehn’s scalpel to cut the cruft out.
Once I have an approved set of operators, I’ll roll them into 2.2 .