T9type Track

The complete T9type Track manual for XFORMER — teletype scripting on a sequencer track, from the two track types and how patterns/scenes work, through the full keyboard map and I/O grid, to the Performer-only op families and a step-by-step tutorial.

1 · Overview & track types
2 · w-patterns vs tt-patterns
3 · Scenes (TT2-Mini)
4 · Keyboard shortcuts
5 · I/O setup
6 · Performer-added ops
7 · Tutorial

1 · Overview & track types

The T9type Track puts a full teletype on a sequencer track. It gives you:

What you actually get depends on which of the two track types you load. They share the same parser, the same op set, and the same I/O grid; they differ in how much program lives on the track and how the pattern selector is used.

TT2 (full) TT2 — TrackMode::TeletypeV2

The classic full teletype on a track. One large program:

Use full TT2 when you want one big patch with the whole teletype surface available.

TT2-Mini MINI — TrackMode::TeletypeMini

A compact variant that stores 4 scenes in the track and switches between them with the w-pattern selector (see Scenes). Each scene is a small, complete program:

Live command eval and SD scene save/load are not available on Mini (v1). Use Mini when you want several small, switchable scenes on one track.

When to use which

 TT2 fullMINI
Scripts8 + Metro + InitScript 1 (boot+TI-TR1) + Script 2 + Metro
Trigger inputs82
CV / gate outputs8 / 8mapped per I/O grid
Scenes on the track14 (w-pattern selects)
tt-patterns4 × 644 × 64 per scene
Live eval / SD scenesyesno (v1)

2 · w-patterns vs tt-patterns

Two different things are casually called "patterns." Keep them apart.

How the w-pattern selector is used differs by track type:

w-pattern0 · 4 · 8 · 121 · 5 · 9 · 132 · 6 · 10 · 143 · 7 · 11 · 15
Scene (Mini)Scene 0Scene 1Scene 2Scene 3
The WP opcode (Performer-added ops) reads the w-pattern index of any track. It is not a tt-pattern op.

3 · Scenes (TT2-Mini)

A scene is a complete program: its own 3 scripts (Script 1 + Script 2 + Metro), its own 4 tt-patterns × 64 steps, and its own I/O config. A TT2-Mini track holds 4 scenes. All four scenes share one runtime.

TT2-Mini Script View with the S1/4 scene chip
Script View — the active scene shows as the S1/4 … S4/4 chip (1-based) top-right; editing scripts edits the active scene's program.

Seamless switching

Changing the w-pattern retargets the active scene with no reset. The shared runtime — variables, the delay queue, and the metro tempo + phase — carries across the switch. Scripts simply start running from the new scene's program.

Nothing reboots on a scene change. Script 1 (boot) does not re-run when you switch scenes.

Put per-scene config in the Metro script

Per-scene config goes in the Metro script. Because the runtime carries across and boot does not re-run, a scene cannot rely on Script 1 to apply its own tempo or setup — Script 1 runs only once at track start. The Metro script runs every tick on the active scene, so per-scene differences belong there. A scene that wants its own tempo sets M <ms> in its Metro script; it takes effect on the next tick after you switch.

Transport stop

A transport stop (reset) is a partial reset: it clears outputs, the delay queue, and the metro accumulator, and re-runs the boot script — but it does not wipe variables. (Full TT2 behaves the same way.)

4 · Keyboard shortcuts

Script View — function keys

KeyAction
F1Select S0
F2Select S1
F3Select S2
F4Toggle S3 / Metro
F5Toggle Pattern View → Live View → Script View
Shift+F1–F4Fire script S0–S3 (TI-TR1..4)

Script View — step keys (default mode)

Each step key cycles through characters: digit → two letters.

StepCycleStepCycle
11 → A → B99 → Q → R
22 → C → D100 → S → T
33 → E → F11. → U → V
44 → G → H12: → W → X
55 → I → J13; → Y → Z
66 → K → L14Backspace
77 → M → N15Insert space
88 → O → P16Commit line and advance

Script View — Shift + step (symbols & commands)

Shift + StepCycleShift + StepCycle
1+ → -9CV → CV.SLEW
2* → /10TR. → TR.TIME
3= → !11PARAM → SCL
4< → >12P.NEXT → P.HERE
5% → ^13ELIF → OTHER
6& → |14RRAND → RND.P
7$ → @15DRUNK → WRAP
8? → ;16M.ACT → M.RESET

Script View — Page + step (clipboard & edit)

KeyAction
Page+9Copy current line
Page+10Paste line
Page+11Duplicate line
Page+12Comment / uncomment line
Page+13Delete line

Script View — navigation & encoder

ControlAction
←Backspace (delete character to the left)
Shift+←Move cursor left
→Insert space
Shift+→Move cursor right
Encoder pressLoad selected line into edit buffer
Shift+encoder pressCommit line (save changes)
Encoder turnMove cursor left/right (normal) or select line (with Shift)
Page+←/→History prev/next (live/edit)

USB keyboard (Script View)

Connect a USB keyboard via the USB Host port. Letters are auto-uppercased for the teletype parser.

KeyAction
EnterCommit line and advance
Shift+EnterCommit line, insert blank line
BackspaceDelete character before cursor
DeleteDelete character after cursor
← / →Move cursor left/right
↑ / ↓Recall history (previous/next)
EscClear edit buffer
TabInsert space
Home / EndCursor to start/end of line
Ctrl+Home/EndCursor to start/end
Ctrl+CCopy current line
Ctrl+VPaste clipboard
Ctrl+XCut current line
[ / ]Previous/next script
F1–F4Run script S0–S3
F5Run metro script
Alt+F1–F4Jump to edit script S0–S3
Alt+F5Jump to edit metro script
Alt+/Toggle line comment

Pattern View — keys & encoder

ControlAction
F1–F4Select pattern 0–3
F5Toggle back to Script View
Steps 1–9Insert digits 1–9
Step 10Insert digit 0
Step 14Backspace digit
Step 16Commit edited value
Page+4Set pattern length to current row
Page+5Set pattern start to current row
Page+6Set pattern end to current row
←Backspace digit; Shift+← deletes row
→Insert row; Shift+→ toggles turtle display
Encoder turnMove up/down through pattern rows
Encoder pressNegate current value
Shift+encoder pressCommit edited value

USB keyboard (Pattern View)

KeyAction
↑ / ↓Move up/down through rows
Alt+↑/↓Page up/down (8 rows)
← / →Previous/next pattern column
Alt+←/→Jump to first/last pattern column
EnterCommit edit, advance to next row
Shift+EnterInsert/duplicate row
BackspaceBackspace digit
DeleteDelete row
SpaceToggle 0/1
EscCancel edit
Ctrl+Home/EndJump to first/last row
Ctrl+C/V/XCopy / paste / cut cell value
[ / ]Decrement/increment value by 1
- / _Negate value
Digits 0–9Numeric entry (enters edit mode)

5 · I/O setup

If your T9type track is new, set up its I/O first so scripts can see the correct inputs/outputs.

  1. Select the track. Press the Track button for the slot where teletype is loaded.
  2. Open the Track page (I/O list). Press Page+Track to open the track list model.
  3. Map inputs. TI-TR1..TI-TR4 assign trigger sources; TI-IN picks the CV source for IN; TI-PARAM for PARAM; TI-X / TI-Y / TI-Z / TI-T optional CV sources for the X/Y/Z/T variables. CV inputs here are direct hardware inputs (no routing needed).
  4. Map outputs. TO-TRA..TO-TRD map trigger outputs A–D to gate outputs; TO-CV1..TO-CV4 map CV outputs 1–4 to CV outputs. F5 (SYNC OUTS) fills TO-CV/TO-TR from the Layout-owned outputs (does not overwrite unmatched slots). A ! means the slot points at an output not owned by this track in Layout.
  5. (Optional) ranges/offsets. CV1 RNG/OFF .. CV4 RNG/OFF set per-output voltage range and offset.
  6. Trigger input presets. F1 (TI PRESET) cycles TI-TR presets: CV1-4, G1-4, G5-8, L-G1-4, L-G5-8, None.
Defaults on a new track: only IN → CvIn1 and PARAM → CvIn2 are mapped. X/Y/Z/T default to None — they are plain scratch variables until you assign a CV-input source to them. To read CV into X/Y/Z/T, set their source explicitly in the I/O grid.
TT2-Mini I/O inputs page with 2 trigger rows
TT2-Mini input page — 2 trigger rows (TI-TR1/2) plus IN, PARAM, and X/Y/Z/T sources.

Layout prompt for T9type tracks

Committing a track mode change to teletype from the Layout page prompts ASSIGN OUTS i-i+3?. Answering Yes assigns both gate and CV outputs in that range to the track (no wrap beyond output 8).

Track LED note: in teletype mode, TR activity captures the track LEDs regardless of CV/gate output mapping. TR1 uses the assigned track LED; TR2–TR4 use the next track LEDs (no wrap).

Script View I/O grid

Script View shows a real-time I/O grid in the top-right corner. Five sections:

Script View I/O grid
Script View I/O grid — BUS meters, TI / TO rows, CV bar graph, and IN/PARAM values.
BlockShows
BUS (left)Four CV bus meters A–D (BUS 1-2 top row, BUS 3-4 bottom).
TI (top row)TI-TR1..TI-TR4 state. Dim = unassigned (None); medium = assigned but inactive; bright = assigned and high.
TO (middle row)TO-TRA..TO-TRD. Solid block = owned by this track (bright when active); outline = owned by a different track (Layout mismatch); dim = target gate assigned elsewhere.
CV (bottom, double height)TO-CV1..TO-CV4 as a bipolar bar from center (0V). Up = positive, down = negative. Bright = owned by this track, dim = mismatch; hidden bar if assigned to another track.
IN / PARAM (right)IN value top, PARAM value bottom. Brighter when assigned, dim when unassigned.

Teletype panic

Page+Track 6 → TT PANIC instantly silences all teletype tracks: disables metro (M.ACT 0), clears pending DEL commands, clears TR pulses and forces gates low, zeroes all teletype CV outputs, stops E.*/LFO.*/G.* modulation, and clears Geode routing/phase.

Default scripts on a new track

When a track has no scripts, it seeds two defaults:

S0       M.ACT 1               # enables metro
M        CV 1 N 48 ; TR.P 1    # C3 on CV1 + trigger pulse
Boot runs transport-independent. The Init/boot script runs once on the first engine refresh, not when you press play. A metro period set in Init/boot (full TT2) — or in Script 1 (Mini, where Script 1 is the boot script) — is already in effect before transport starts.

6 · Performer-added ops beyond stock teletype

These op families are XFORMER additions and do not exist in stock teletype. For full per-op detail see docs/new-teleops.md. (Stock-teletype ops live in the upstream teletype/tl-manual.md.)

CV modulation — LFO (LFO.*)

Per-CV low-frequency oscillator with waveform, amplitude, fold, and offset control.

LFO.R 1 2000   # 2s cycle
LFO.W 1 15     # triangle → saw
LFO.A 1 80     # amplitude
LFO.F 1 0      # no fold
LFO.O 1 8192   # offset/bias
LFO.S 1 1      # start

Defaults: LFO.R=1000 ms, LFO.W=0, LFO.A=100, LFO.F=0, LFO.O=8192, LFO.S=0.

CV modulation — Envelope (E.*)

Per-CV attack/decay envelope with target/offset.

E.O 1 0        # offset/baseline
E 1 12000      # target (raw 0-16383)
E.A 1 10       # attack ms
E.D 1 80       # decay ms
E.T 1          # trigger envelope

E.R 1 1        # pulse TR1 at end of rise
E.C 1 2        # pulse TR2 at end of cycle
E.L 1 4        # loop 4 cycles (0 = infinite)

Defaults: E=16383, E.A=50 ms, E.D=300 ms, E.O=0, E.L=1.

CV modulation — Geode (G.*)

Polymetric rhythm generator with per-voice timing control.

G.R 1 0        # mix to CV1
G.V 1 7 8      # voice 1: 7-div, 8 repeats (immediate trigger)
ParameterBehavior
G.TIME0 fast (~166.7 ms / 6 Hz), 16383 slow (~60 s)
G.TONE8192 no spread; <8192 undertones; >8192 overtones
G.RAMP0 percussive, 8192 triangle, 16383 reverse
G.CURVlow step/log, 8192 linear, high smooth
G.RUN8192 neutral; positive emphasizes; negative reverses/slows
G.MODE0 Transient, 1 Sustain, 2 Cycle
G.V v divs repsimmediate trigger; divs events per bar; reps extra hits (0 single, -1 infinite)

Defaults: G.TIME=8192, G.TONE=8192, G.RAMP=8192, G.CURV=8192, G.RUN=8192, G.MODE=0, G.O=0, G.BAR=4, tune ratios 1/1..6/1. Aliases: G.T/G.I/G.RA/G.C/G.N/G.M/G.B/G.L. Compound: G.S t i n sets TIME/TONE/RUN (no trigger). When transport is stopped, Geode free-runs using the last known bar duration (defaults to 120 BPM if none).

BUS routing

BUS is a shared CV bus (4 slots) that lets teletype modulate other tracks without using hardware CV outputs. Set BUS 1 X in a script, then in the Routing page create a route with source BUS 1 and target Transpose (or any track target). BUS is global — multiple teletype tracks can read/write the same slot directly without routing.

TV — shared variable bank

Shared integer variable bank (16 slots, TV 0..TV 15) that lets teletype tracks pass values to each other. TV i reads slot i; TV i v writes it (int16).

TV 0 ADD TV 0 1    # track A: shared counter in its metro
CV 1 N TV 0        # track B: read the counter
Like BUS, but for ints across teletype tracks. TV carries ints not CV, is teletype-only (invisible to Performer routing and other track types), is last-writer-wins (not summed), and is 0-based. An out-of-range index (TV 99, TV -1) is a silent no-op and reads 0. Slots are session-global and ephemeral: zeroed at power-on, held across frames, transport stop, and project load until overwritten, and never saved with the project.

BAR — tempo-locked modulation

Read-only opcode returning position within the current musical bar (0-16383), auto-adjusting to the project time signature. Zero overhead (reads the already-computed measure fraction), updates at 192 PPQN.

CV 1 V BAR                # 0→10V ramp over each bar
CV 1 V BAR 4              # ramp spanning 4 bars
CV 2 V SUB BAR 8192       # bipolar -5V..+5V (centered)
IF GT BAR 8192: TR.P A    # pulse only in 2nd half of bar

Transport & tempo — WR / W.ACT / WBPM

IF WR: TR.P A     # WR = 1 when playing, 0 when stopped
W.ACT 1           # start    (0 = stop, 2 = pause)
X WBPM            # read current BPM
WBPM.S 120        # set tempo (1-1000 BPM, direct value)

Timing helpers — WMS / WTU

Return tempo-derived durations in milliseconds; n/m clamp to 1-128.

X WMS       # 1/16 note in ms
X WMS 16    # one bar in 4/4
X WTU 3     # beat / 3 (triplet)
X WTU 7 2   # 2 * (beat / 7)

Note-step access — WNG / WNN

Per-step gate and note access for Note tracks (track 1..8, step 1..64). Operate on the playing pattern; non-Note tracks return 0 / do nothing.

WNG t s      # get gate (0/1); WNG t s v sets it
WNN t s      # get note 0..127; WNN t s v sets it
WNG.H t      # gate at current gate step
WNN.H t      # note at current note step

Cross-track TT2 — WPN / WS

Reach into another TT2-family track's patterns and scripts (track 1-based). These are to TT2 targets what WNG/WNN are to Note tracks. Works full↔full, full↔Mini, Mini↔Mini.

WPN t b i      # get cell i of bank b on track t's active program
WPN t b i v    # set that cell to v
WS t n         # trigger script n (1-based) on track t, with t installed as host

WPN 3 0 0 60   # track 3, bank 0, step 0 := 60
WS 3 1         # run track 3's script 1
WPN is the cross-track form of PN. Identical normalisation: bank clamps to the pattern range, and a negative idx counts back from the pattern's length (WPN 2 0 -1 hits the last step). A Mini target resolves to its active scene. Non-TT2 targets read 0 / write nothing. WS range is 1..ScriptCount (full: 1–10 incl. metro/init; Mini: 1–3); out-of-range reports an error, and cross-track recursion is bounded by a small depth cap (returns an overflow error rather than blowing the stack).

Route & pattern readback — RT / WP

CV 1 V RT 1            # mirror Route 1 source (pre-shaper, 0-16383)
CV 1 N SCALE WP 1 1 16 60 75   # map track 1's w-pattern 1-16 to notes
IF EQ WP 1 5: TR.PULSE 1       # trigger when track 1 on pattern 5
WP.SET 1 2            # force track 1 to pattern 2 (1-based)

WP i returns the 1-16 pattern index of track i (1-8); invalid tracks return 0. Read-only getter; settable only via WP.SET.

tt-pattern ops — math / analysis / randomize

Process the active pattern range P.START..P.END; PN.* variants target a specific pattern.

P.PA 100        # shift all steps +100  (P.PS/P.PM/P.PD/P.PMOD = sub/mul/div/mod)
P.SCALE 0 16383 48 72   # remap values to MIDI range
X P.SUM         # density (P.AVG/P.MINV/P.MAXV)
I P.FND 0       # find first zero
RND.P 0 4095    # randomize working pattern (RND.PN 2 ... targets pattern 2)

Trigger divider & width — TR.D / TR.W

TR.D 1 2     # every other pulse on TR1
TR.W 1 50    # 50% width based on post-div interval
TR.W 1 0     # disable width mode (back to TR.TIME)

Signal generation

OpPurposeExample
PERLINsmooth Perlin noise, 0-16383CV 1 V PERLIN
NORMALGaussian (Box-Muller), clamped ±3σCV 1 V NORMAL
PINK1/f pink noise (Voss-McCartney)CV 1 V PINK
WALK step startbounded random walk as a CV sourceCV 1 V WALK 100 8192
LFO.V nread LFO n's output into a variableX LFO.V 1

Algorithmic generators (P.*)

Fill the active tt-pattern from an algorithm.

OpPurposeExample
P.LSYS axiomL-system string rewritingP.LSYS A
P.THUE nThue-Morse aperiodic sequenceP.THUE 16
P.CA1D rule n1D Wolfram cellular automatonP.CA1D 30 16
P.CA2D B/S w h2D Life-like automaton (rows=voices)P.CA2D B3/S23 8 8
P.MARKOV ...first-order Markov chainP.MARKOV (0 60 0.7)(1 64 0.3)
P.LORENZ s r bLorenz attractor → valuesP.LORENZ 10 28 2.667
P.DBRU winDe Bruijn sequence (every N-gram once)P.DBRU 2
P.REAC feed killreaction-diffusion (Gray-Scott) rhythmP.REAC 0.037 0.06
P.FIB n lengolden-angle event spacingP.FIB 8 16
FIB nnth Fibonacci number as a valueCV 1 V FIB 10
BIN val leninteger's bits as a gate patternBIN 13 16

Rhythm logic

OpPurposeExample
CANE.TR.AND/OR/XOR p1 p2bitwise combine two trigger patternsCANE.TR.AND P1 P2
CANE.TR.NOT p1invert a trigger patternCANE.TR.NOT P1
P.BRES hits stepsBresenham-line rhythm (Euclidean alt.)P.BRES 3 8
P.GHOST prob biasrhythm-aware probability fillP.GHOST 0.3 offbeat
P.THIN bias probrhythm-aware note removalP.THIN sixteenths 0.2
LCM a b / GCD a bpolyrhythm math helpersLCM 3 4 → 12

Pattern transforms (P.*)

Operate on the active tt-pattern range.

OpPurposeExample
P.PALpalindrome: alternate forward/reverseP.PAL
P.WTH a b XFORMapply a transform to only steps a..bP.WTH 2 6 REV
P.STR lenstretch/resample to a target lengthP.STR 16
P.URN npick n distinct values (no replacement)P.URN 4
P.INV centermirror values around a center pointP.INV 8192
P.WALK maxstep startfill via random walkP.WALK 4096 0
P.SAWALK lo hiself-avoiding walk fill (no repeats)P.SAWALK 0 127
P.COMP mask...keep values where mask is 1P.COMP 1 0 1 0
P.UNDUPremove consecutive duplicatesP.UNDUP
P.ACCUMcumulative sum (running total)P.ACCUM
P.STUTT nratchet: repeat each value n timesP.STUTT 3
P.OFF amt delaydelayed transformed copy combined inP.OFF 7 0.5
P.SINE / P.COS / P.SQR len periods lo hiwave-fill a patternP.SINE 16 1 0 16383

Timing / phase

OpPurposeExample
FLIP ratiotrue for first ratio% of each chunkIF FLIP 50: TR.P 1
ODDS n beatstime-windowed probability (clock-normalized)ODDS 0.5 1: TR.P 1
INTOX mode amtnamed timing jitter: BEER/HASH/COFFEE/LSD/DETOXINTOX BEER 5
FUTURE bars:reps CMDschedule a command N bars out, M timesFUTURE 4:2 SCRIPT 1

CV mapping

SuperCollider-style mapping curves.

OpPurposeExample
LINLIN / LINEXP / EXPLIN / EXPEXP / LINCURVElinear/exponential value remapCV 1 N SCALE 0 127 LINLIN 10 100
SMOOTHSTEP xcubic smooth interpolation, [0,1]→[0,1]CV 1 V SMOOTHSTEP 0.5

Control flow

OpPurposeExample
CHOOSE a b c ...pick one of N args with equal probabilityCHOOSE 60 64 67 72
WCHOOSE v w v w ...weighted pick from (value, weight) pairsWCHOOSE 60 50 64 30 67 20
SUPERIMPOSE out XFORMsum original + transformed onto one outputSUPERIMPOSE 2 REV

7 · Tutorial

Intended for intermediate teletype users. Assumes basic teletype syntax, familiarity with the XFORMER interface, and CV/gate concepts.

  1. First script — toggle a gate. Toggles gate output A each time the trigger input fires.
    TR.TOG A
  2. Add CV output. Toggle gate A and set CV 1 to 5 V.
    TR.TOG A
    CV 1 V 5
  3. Use variables. Increment X, drive CV 1 from it, toggle gate A.
    X ADD X 1
    CV 1 V X
    TR.TOG A
  4. Basic pattern usage. CV 1 to the next note in the pattern on each trigger.
    CV 1 N P.NEXT
  5. Load pattern values (LIVE mode). A 4-step pattern of semitone offsets.
    P.PUSH 0
    P.PUSH 12
    P.PUSH 7
    P.PUSH 5
    P.L 4
  6. Multiple patterns. Build pattern 1, then read it from a script.
    P.N 1
    P.PUSH 0
    P.PUSH 2
    P.PUSH 4
    P.PUSH 5
    P.L 4
    
    CV 1 N PN.NEXT 1   # in your script: next value from pattern 1
  7. EVERY for clock division.
    EVERY 2: TR.P A
    EVERY 4: TR.P B
    CV 1 V RAND 5
  8. Conditional logic with IF.
    IF GT X 5: CV 1 V 5
    IF LTE X 5: CV 1 V 0
    X ADD X 1
    TR.TOG A
  9. Loops with L.
    L 1 4: TR.P I       # pulse gates 1-4 in sequence
    CV 1 N RAND 24      # random note in 2-octave range
  10. Clock-based timing. In Clock mode M/M!/M.A are derived from tempo/div/mult and read-only (edits show "Clock Mode").
    M.ACT 1             # enable metro
    M 500               # 500 ms (120 BPM) [MS timebase only]
    M.A 500             # set all teletype metros
    M.ACT.A 1           # enable metros on all teletype tracks
    M.RESET.A           # reset all teletype metro timers
  11. Metro script. Runs at the metronome interval.
    CV 2 V DRUNK
    DRUNK.WRAP 1
  12. CV inputs & scaling.
    CV 1 V IN
    CV 2 V PARAM
    X SCALE 0 16383 0 10 IN   # scale IN to 0-10V
    CV 1 V X
  13. Pattern manipulation & ranges.
    P.I ADD P.I 2       # skip 2 steps
    CV 1 N P.HERE       # current pattern value
    P.START 2
    P.END 6
    P.WRAP 1            # wrap within the range
  14. Randomness.
    PROB 50: TR.P A     # 50% chance to pulse A
    CV 1 V RRAND 2 8    # random voltage 2-8V
    CV 1 V DRUNK
    DRUNK.MIN 0
    DRUNK.MAX 16383
  15. MIDI (Performer-specific).
    MI.NV               # latest MIDI note as voltage
    MI.CCV              # latest MIDI CC as voltage
    CV 1 V MI.LNV
  16. Delays & stacks.
    TR.P A
    DEL 100: TR.P B     # B 100ms after A
    DEL 200: TR.P C
    
    S: CV 1 V 5         # stack commands
    S: TR.P A
    S.ALL               # execute the stack
  17. Scripts as functions ($F).
    # Script 1 returns the square of X:
    * X X
    # Caller:
    A $F 1              # A = X squared
    
    # $F1 / $F2 pass 1 or 2 parameters via I1/I2:
    FR + I1 I2          # Script 1
    A $F2 1 3 4         # A = 7
  18. Queue smoothing.
    Q CV 1              # push current CV 1
    Q.N 4               # queue length 4
    CV 2 V Q.AVG        # CV 2 = average of queue
  19. Complete pattern sequencer.
    # Script 1 (triggered by input):
    CV 1 N P.NEXT
    TR.P A
    X ADD X 1
    MOD X 8
    EQ X 0
    PROB 75: SCRIPT 2
    
    # Script 2 (called conditionally):
    CV 2 V RAND 10
    TR.P B
Troubleshooting. Scripts not running → check trigger input mapping. CV not working → verify CV output mapping. Pattern not advancing → use P.NEXT or increment P.I manually. Keep scripts efficient, use clock timing for synced sequences, and split purposes across the four tt-pattern banks.