Fractal Track — manual

A section-sampled CV/gate looper. Capture one or two source tracks, then reshape the loop with composable branches and ornaments.

1. Overview
2. Sources & Capture
3. The Trunk & Zones
4. Branches
5. Ornaments
6. Playback
7. The Hero Pages
8. Setup & Routing

Introduction

The Fractal track does not generate notes of its own — it watches one or two other tracks (or routing channels), summarizes what they emit over each loop section into a compact buffer (the trunk), and replays that captured loop. On top of the trunk you stack two composable layers: branches (chained transforms of the trunk that play after it) and ornaments (scale-snapped flourish notes injected inside a section). You record once, then reshape forever without re-touching the source.

Everything here is grounded in the firmware as built — defaults, ranges, enum members, key bindings, and step-grid maps come from the model, engine, and UI code.

Prerequisites

Part 1 · Overview

A Fractal track has no sequence data of its own in the usual sense. Instead it:

  1. Listens to source A and/or source B — another track's emitted gate+CV, or a single routing channel.
  2. Observes over each section: every tick while armed it accumulates how long the source gate was high and where in the section it first fired, then commits one summarized cell into the trunk buffer.
  3. Replays the captured loop through a loop window, optionally re-ordered, transposed, and ornamented.

The three layers stack:

It is a sampler/looper, not a stochastic or algorithmic note source. Everything it plays traces back to what it captured.

Where state lives. Track-wide params (sources, logic mix, buffer length, octave/transpose, quantize, delay, lock, ghost) live on the track. Per-pattern params (loop/record/orn zones, order mode, divisor, branch/ornament settings, the live scale group) live on the sequence. The scale group is on the sequence, not the track.

Part 2 · Sources & Capture

Source A and Source B

Each source slot (SrcA, SrcB) selects one of three kinds:

Self-reference is forbidden. A Track slot pointing at the Fractal track's own index would be output feedback. Setting it directly snaps to None; the encoder walk skips over it in the travel direction.

The two-source mix

With both slots set, the parents combine through two independent logic stages.

Gate logic (GATE)Result
Asource A gate
Bsource B gate
AndA and B
OrA or B
XorA xor B
Nandnot (A and B)
CV logic (CV)Result
Asource A CV
Bsource B CV
Minmin(A, B)
Maxmax(A, B)
SumA + B
Avg(A + B) / 2
Gated (Gat)whichever slot just fired, A-priority

With only one slot set, that slot passes through alone (no mix). The classic "A=CV, B=Gate" tailoring is just CV=A + GATE=B.

Record-muted (ghost source)

Rec Muted taps the parent's pre-mute intended gate. With it on, the Fractal track keeps capturing a source even while that source is muted — a silent rehearsal you record from without hearing the parent.

Capture cadence and fidelity

ParamMembersDefaultEffect
Capture (cadence)Section, EventEventSection commits one cell per loop-section boundary; Event commits on the parent's hysteretic note-change
FidelityQuantized, FeelFeelQuantized holds the last CV sample, discards onset; Feel S&Hs CV at the first rising edge and keeps the onset phase

Gate length is always proportional: gate-high ticks over total section ticks become a 4-bit gate length (0 = rest, 15 = tie). Feel additionally stores the onset nibble — when in the section the gate first fired — so playback reproduces the original feel.

Record arm, Replace vs Latch, R.Skip

Capture writes into the record zone (recF..recL); the record cursor wraps within it.

Part 3 · The Trunk & Zones

The trunk buffer holds up to bufferLength cells (default 16, max 128). Three brackets carve it up and must nest:

recordFirst ≤ loopFirst ≤ ornFirst ≤ ornLast ≤ loopLast ≤ recordLast

Moving an outer edge pushes the inner edges it would cross; moving an inner edge clamps against its outer neighbour. The invariant is always enforced.

Buffer Length shrinks pull edges in. Lowering bufferLength clamps every pattern's loop/record/orn edges down to fit the new last cell.

The tape

The Trunk page draws the buffer as a horizontal tape. Each captured cell is a filled bar: height = pitch (±5 octaves mapped into the tape), width = gate length (0..15 of the cell width). Cells inside the loop window are brighter; the sounding cell is brightest. A vertical playhead marks the read position. Above the tape, three thin lines show the rec / loop / orn zones stacked top-to-bottom, the focused bracket drawn bright.

Part 4 · Branches

A branch is one chained transform of the trunk, derived deterministically from a seed. branchCount (0-7) branches play one after another, concatenated after the trunk, so the global walk is trunk → B1 → B2 → … Each branch reads the previous segment and applies its transform on read; the trunk buffer is never mutated.

#LabelOpParam
0TraTranspose± a fixed interval: P4 (5), P5 (7), or octave (12)
1RevReversereads the segment backwards
2InvInversemirrors pitch around the loop-start cell
3RtIRetrograde Inversereverse + invert
4RotRotateshifts read position by an offset (1..loopLen-1)
5CmpCompressscales intervals around centre by ×0.5 or ×0.67
6ExpExpandscales intervals around centre by ×1.5 or ×2.0
7ThnGate-thinperiodically rests every Nth cell (N = 2..4), CV untouched

Count, Path, Pool, Seed

Jumping segments live

On the Branch page the top step row queues a beat-synced jump to a segment: it applies at the next section boundary. The playing block shows a bright border; a queued target shows a Q.

Part 5 · Ornaments

Ornaments inject short, scale-snapped flourish notes inside a section. They are probabilistic and live — rolled per eligible cell from a free-running PRNG. The trunk stays raw; ornament notes snap to the sequence scale on the way out.

#NameTier
0Anticipation2-step
1Suspension2-step
2Syncopation2-step
3Octave-Up2-step
4Fifth-Up2-step
5Half-Turn Toward2-step
6Half-Turn Away2-step
7Run Toward4-step
8Run Away4-step
9Turn4-step
10Arp Toward4-step
11Arp Away4-step
12Mordent Up4-step
13Mordent Down4-step
14Trilltrill

Rate and Intensity

The Ornament page labels the slider with a tier readout (off / 2-step / 4-step / 8-trill); the underlying eligibility uses the thresholds above.

Lock

LOCK freezes the ornament roll. While locked, every firing repeats the last-fired ornament and its realized shape (direction + lookahead) instead of re-adapting per cell. Capture is also blocked while locked. Toggle it with F4 (LOCK) on the Ornament page, or Shift+F1 on any hero page.

Queued punch-in

The Ornament page step row queues a forced ornament: it ignores rate, zone, and lock, and fires on the next gated cell. A queued ornament reads Q <name>, the last fired reads Last <name>. Consecutive ornament notes leave a one-tick retrigger gap so each note re-articulates.

Part 6 · Playback

Order mode

ModeReads
Fwd (Forward)0, 1, 2, …
Rev (Reverse)last, …, 1, 0
Pend (Pendulum)forward then back
Rand (Random)random within the window
Conv (Converge)0, last, 1, last-1, … inward
Div (Diverge)centre outward
Page4-cell pages, interleaved

Forward/Reverse/Pendulum/Random map to the shared sequence run-mode state; Converge/Diverge/Page advance linearly and remap the read index.

Quantize

Quantize is a playback-only snap: Raw (default) plays the captured pitch literally; On snaps the main note to the sequence scale. Trunk storage stays raw either way. Ornament flourishes always snap to their own scale regardless.

Track delay

Delay (trackDelay, 0-16 sections) shifts the resolved main note that many sections later through a fixed ring — a canon/echo against the source. Only the note is delayed; ornaments are re-rolled fresh when the delayed entry surfaces.

Other per-sequence timing: Divisor (default 12), Clock Mult (50-150%, default 1.00x), Reset Measure (off / N bars, default off), Rotate (-64..64), Loop Mode (Loop / Once).

Part 7 · The Hero Pages

Page+S0 opens the hero ring: one page object cycling Trunk → Branch → Ornament → Source via F5 (NEXT). Shift+F1 toggles Lock on any of them. The context menu offers INIT (clear sequence params), CLEAR BUF (erase the recorded loop), COPY, PASTE.

Holding Page + S9-S16 opens a quick-edit overlay for, in order: Rec First, Rec Last, Loop First, Loop Last, Orn First, Orn Last, Orn Rate, Orn Intensity. Page + any other step exits.

Trunk page

Fractal Trunk hero page
Trunk: captured-loop tape, nested rec/loop/orn zone lines, playhead, R.Skip + cell count.

F1 REC / F2 LOOP / F3 ORN focus that bracket for the encoder; F4 R.Skip focuses R.Skip. The encoder nudges the focused edge by ±1 (Shift = the bracket's last edge). Step keypad — top row S1-8 adds, bottom row S9-16 subtracts:

ColS1-8 (top, +)S9-16 (bottom, −)
1Rec First +8Rec First −8
2Rec Last +8Rec Last −8
3Loop First +8Loop First −8
4Loop Last +8Loop Last −8
5Orn First +8Orn First −8
6Orn Last +8Orn Last −8
7R.Skip +1R.Skip −1
8Divisor (faster)Divisor (slower)

All edge moves are nesting-clamped. On the Divisor column top = faster (lower divisor value). LEDs: top row dim green (+), bottom row dim red (−).

Branch page

Fractal Branch hero page
Branch: route readout, T+B chain blocks (playing border, queued Q), 8 transform-pool toggles.

F1 CNT / F2 PATH / F4 SEED focus for the encoder (SEED also reseeds on press). F3 POOL selects the pool layer; an encoder click toggles the focused pool bit. Steps: top row S1..S(N+1) queues a beat-synced jump to that segment; bottom row S9..S16 toggles the 8 transform-pool bits.

LEDs: top row — present segment dim green, playing bright amber, queued bright red. Bottom row — pool bit set = bright green.

Ornament page

Fractal Ornament hero page
Ornament: Rate / Intensity bars with tier ticks, Scale + zone, last-fired (and queued) ornament.

F1 RATE / F2 INT / F3 SCALE focus for the encoder; F4 LOCK toggles Lock. Steps S1-S15 queue a forced ornament (id 0-14), ignoring rate and zone. S16 is inert.

LEDs: S1-S15 — slot dim green, last-fired dim red, queued bright amber.

Source page

Fractal Source hero page
Source: SrcA / SrcB refs, gate-logic and cv-logic segmented rows, combined result readout.

F1 SrcA / F2 SrcB focus the slot; F3 GATE / F4 CV focus the logic row. Steps: top row S1-S6 selects the gate-logic mode; bottom row S9-S15 selects the cv-logic mode; S16 randomizes both logics.

LEDs: selected mode bright green, other modes in the row dim green; S16 bright amber.

Part 8 · Setup & Routing

Track-scope list (Page+S2)

Track-wide params, hosted by the generic Track page:

Sequence-scope list (Page+S1)

Per-pattern params: Loop First, Loop Last, Order Mode, Divisor, Clock Mult, Reset Measure, Rec First, Rec Last, Rec Mode, Rec Skip, Record (arm), Orn First, Orn Last, Orn Rate, Orn Intens, Capture (cadence), Fidelity, Scale, Root Note, Scale Rotate.

What is routable

Only these Fractal params are routing targets — all per-sequence:

(Scale and Root Note also route through the shared scale targets.) No track-scope Fractal param is routable.

The four live controls

The hero-page step grids give four hands-on, beat-synced performance controls without leaving the edit page:

  1. Branch jump — queue a playback jump to any segment (Branch top row).
  2. Pool toggles — flip transforms in/out of the branch draw (Branch bottom row).
  3. Ornament punch-in — force any ornament on the next gated cell (Ornament S1-S15).
  4. Logic randomize — roll both gate and cv logic at once (Source S16).