18. Editors and Advanced Views
The preceding chapters have treated Poly’s lanes through the lens of macro controls — Density, Complexity, Swing, Humanize, Mutation. These knobs operate at the level of character: they shape what kind of groove emerges, not which specific steps fire or how each individual note sits in time. For most creative work, that is exactly the right level of control. You describe the musical intent, and the engine handles the details.
But sometimes you need the details. A bell pattern that must not change. A surdo hit that needs to land 8 milliseconds late on every cycle. A 7/8 aksak grouping that Euclidean distribution approximates but does not quite capture. These are the cases where Poly’s three detail editors take over — providing step-level, timing-level, and cell-level control that operates beneath the macro layer.
All three editors live inside a lane’s deep pane — the expanded panel you open from a lane strip in Poly’s interface. Each lane strip carries an expand affordance; opening it reveals the deep pane, which is organized into a Pattern pane, a Timing pane, and an envelope pane. The step editor and additive-cell editor live in the Pattern pane; the micro-timing editor lives in the Timing pane. There is no separate window and no mode you leave the main view to reach — the editors are inline, attached to the lane they control.
Timeline Mode and the Step Editor
Section titled “Timeline Mode and the Step Editor”Timeline mode locks a lane to a fixed on/off pattern that is immune to macro modulation, mutation, and Euclidean redistribution. When timeline = true, the lane plays exactly the pattern defined in fixedPattern[], step by step. No algorithm decides where the hits go. You draw them, and they stay drawn.
The Pattern pane provides a step editor for these fixed patterns. Each step is a pulse cell — either on (filled) or off (dark). Click a cell to toggle it. The row length matches the lane’s cycle steps, or fixedPatternLength if you have overridden it to a different value.
To enter timeline mode, open the lane’s deep pane and turn on the Timeline mode toggle at the top of the Pattern pane. The Euclidean stepper controls (Steps, Hits, Rotation, Additive cells) are replaced by the fixed-pulse row, and clicking any pulse then paints its on/off state directly. The same steps are also reachable from the lane strip’s inline pulse ladder once timeline mode is on. Turn the toggle off again to return to Euclidean mode.
The critical difference from a normal lane is what timeline mode ignores. A timeline lane does not respond to Density — it will not add or remove hits when the macro changes. It does not respond to Complexity — no ghost notes, no fills. Syncopation has no effect. Mutation is suppressed. The lane plays the pattern you drew, identically, on every cycle. This is not a limitation. It is the point.
In West African ensemble music, one instrument holds a fixed repeating pattern — the bell timeline — against which every other part orients itself. The bell does not improvise. It does not respond to the energy of the room. It provides the stable temporal scaffold that makes everyone else’s rhythmic freedom possible. In Afrobeat, the twelve-beat bell pattern is the skeleton of the entire groove. In Afro-Cuban music, the clave serves the same structural role. In Bossa Nova, the tamborim pattern anchors the samba rhythm section.
Timeline lanes in Poly serve exactly this function. While other lanes respond to macro modulation, evolve through mutation, and shift character with scene morphing, timeline lanes hold steady. They are the reference that the ear locks onto — the rhythmic ground truth against which polymetric tension is perceived.
| Step | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Bell | x | . | x | . | x | x | . | x | . | x | . | x |
This is the standard Afrobeat bell pattern: seven hits across twelve positions, with the characteristic asymmetric clustering in the second half of the cycle (steps 5-6 and 9-10 are consecutive). This specific distribution is not Euclidean — E(7,12) produces a different arrangement. It is a culturally specific pattern that emerged from centuries of musical practice, and it sounds right in a way that no algorithm can derive from first principles. Timeline mode lets you enter it exactly as tradition dictates.
Use cases for timeline mode extend beyond bell patterns. Any part that must remain invariant belongs on a timeline lane: a clave pattern in an Afro-Cuban groove, a tamborim figure in a Bossa Nova patch, a tabla theka in a Carnatic-inspired composition, or a programmed breakbeat pattern that you have hand-placed and do not want the engine to touch. Timeline mode is the escape hatch from generative logic — the place where you assert direct authorship over a lane’s output. See Chapter 2 (Sub-Saharan Africa) and Chapter 4 (Afrobeat) for deeper context on the musical role of timeline instruments.
Micro-Timing Editor
Section titled “Micro-Timing Editor”The deep pane’s Timing pane provides per-step timing offsets in milliseconds, giving each step its own push or pull independently of the lane’s global timing parameters. Where Swing displaces alternate steps and Humanize adds random jitter, micro-timing lets you sculpt the exact temporal feel of individual hits — deterministically, repeatably, on every cycle.
The editor displays a vertical bar per step, centered at zero milliseconds. Drag a bar up to push the step late (positive offset, laid-back feel). Drag down to pull it early (negative offset, pushing feel). The range is approximately plus or minus 20 milliseconds per step — small enough that the displacement is felt rather than heard as a separate event, large enough to fundamentally alter the groove’s character.
These offsets are deterministic. Unlike Humanize — which in its white-noise default adds an independent displacement per step, and in its correlated mode drifts across several — micro-timing offsets apply identically every time. If you set step 3 to +5ms, step 3 will be 5 milliseconds late on every cycle, forever. This is the distinction between feel and liveness: micro-timing defines the underlying temporal signature of the pattern, while Humanize adds the organic variation on top.
Three Layers of Timing
Section titled “Three Layers of Timing”A step’s final timing in Poly is the sum of three independent layers:
timingOffsetMs is the global per-lane offset. It shifts every note in the lane by the same amount. Set the kick lane to -3ms and every kick hit arrives 3 milliseconds early, creating a subtle pushing feel across the entire part. This is the broadest timing control — a single value that characterizes the lane’s overall relationship to the grid.
microTimingMs[] is the per-step offset array. Each step has its own timing signature, independent of every other step. Step 1 might sit right on the grid, step 3 might push 5ms late, step 7 might pull 3ms early. This is where you encode the specific timing irregularities that define a style — the Bossa Nova ginga, the Afrobeat bell phrasing, the neo-soul pocket.
humanizeMs is random jitter. On each cycle, every note receives a random displacement within the specified range, drawn fresh each time. This is the liveness layer — it prevents the pattern from sounding mechanical by ensuring no two repetitions are timing-identical.
These three layers stack additively. A step’s final position is: lane offset + step micro-timing + random humanize. The first two are deterministic and repeat exactly on every cycle. The third adds controlled randomness. The separation matters because you can dial in a precise feel (the first two layers) and then independently control how much organic variation sits on top (the third).
When Micro-Timing Matters
Section titled “When Micro-Timing Matters”The Bossa Nova preset uses per-step micro-timing on surdo, agogo, and pandeiro lanes to encode the characteristic ginga — a lilting, swaying quality that is structural to the style, not the result of random variation. A straight quantized Bossa Nova pattern sounds stiff and foreign; the same pattern with correct micro-timing offsets sounds Brazilian. The difference is 5-10 milliseconds per step, and it is immediately audible.
The Afrobeat presets apply micro-timing to the bell pattern’s second half, where the consecutive-step clusters (steps 5-6, 9-10) are played with subtle timing asymmetries that a straight grid cannot capture. These are not random — they are characteristic of the style, reproduced by skilled players on every repetition.
Any style where timing irregularities are structural rather than random is a candidate for per-step micro-timing. If the displacement is part of the pattern’s identity — if removing it makes the groove sound wrong rather than merely different — it belongs in the micro-timing array, not in the Humanize parameter.
Note Sequences
Section titled “Note Sequences”A lane emits one pitch by default — a kick is a kick. Give it a note sequence and successive steps take successive pitches from a short list of up to eight, each with its own optional gate length. The lane is then a pitched voice, and everything else about it still applies: Euclidean generation, drift, kotekan complement, additive cells, the timeline weighting.
The sequence is indexed by position, not by how many notes have sounded. A five-note sequence on a seven-step lane therefore phases against its own cycle, and a mutation dropping a hit does not re-voice everything after it. The Reich Phasing preset uses this directly: both its voices play the same five-note cell and one drifts, which is the technique Piano Phase is built on.
A note’s duration is its gate length only. The step grid still decides when notes start — subdivision profiles, additive cells and swing remain the only things that move an onset. A sequence changes what sounds and for how long, never when.
The guide’s traditions chapters do not yet use note sequences. They are documented here because the capability exists and you may want it; where a tradition would use it — a djembe’s bass, tone and slap on one voice rather than three lanes, or a bassline under a polymetric frame — is a question the chapters have not yet been written to answer.
Additive Cell Editor
Section titled “Additive Cell Editor”The Pattern pane’s additive-cell editor enables additive rhythm construction by defining unequal cell sizes that replace Euclidean equal distribution. Where Euclidean mode distributes hits as evenly as possible across the available steps, additive mode lets you specify exactly how wide each grouping should be — producing the unequal, asymmetric meters that define traditions from the Balkans to South India.
When cellCount > 0, the lane switches from Euclidean mode to additive mode. Turn on the Additive cells toggle in the Pattern pane to make the switch. Each cell is assigned a size in subdivision units. A rachenitsa in 7/8 is three cells of sizes 2, 2, and 3 — written [2+2+3], totalling 7 units. A Carnatic adi tala is three cells of sizes 4, 2, and 2 — written [4+2+2], totalling 8 units. Hits are placed at cell boundaries: one hit at the start of each cell, producing a pattern where the gaps between hits are unequal.
The editor displays cells as variable-width blocks, visually proportional to their size. Drag a cell up or down — or scroll over it — to set its width anywhere in the 1–16 range; a plain click steps the width up by one (wrapping back to 1 at the top). The + control adds a new cell to extend the meter. The total step count adjusts automatically to match the sum of all cell sizes.
Euclidean vs. Additive
Section titled “Euclidean vs. Additive”The distinction between Euclidean and additive distribution is subtle but musically fundamental.
Euclidean distribution solves an optimization problem: given K hits and N steps, place the hits as evenly as possible. E(3,7) produces the inter-onset pattern [2+2+3] — three hits, seven steps, maximum evenness. This happens to match the rachenitsa grouping, which is why Chapter 7 (Balkan) can demonstrate aksak patterns using Euclidean distribution. But the match is a fortunate coincidence, not a guarantee.
Additive distribution solves a different problem: place hits at the boundaries of explicitly defined groupings. Cells [2+2+3] place hits at positions 0, 2, and 4 — the same result as E(3,7), in this case. But cells [3+2+2] place hits at positions 0, 3, and 5 — a different pattern that E(3,7) at rotation 0 does not produce.
The feel is fundamentally different when the groupings diverge from Euclidean evenness. Additive meters have a characteristic lopsided quality — aksak literally means “limping” in Turkish. The long cells create a sense of weight or pause, while the short cells rush forward. This is not swing (which displaces alternate steps within an even grid) and it is not syncopation (which accents weak positions within a regular meter). It is a genuinely unequal meter, where the beats themselves are different sizes.
The Balkan Aksak preset ([2+2+3]) and the Carnatic Tala preset ([4+2+2]) demonstrate two distinct additive traditions. The Balkan pattern uses small cells (twos and threes) that create a quick limping dance rhythm. The Carnatic pattern uses a larger opening cell (four) followed by two short cells (two each), producing a longer opening phrase that resolves into rapid cadential strokes — a fundamentally different rhythmic architecture built from the same additive principle.
Building Custom Meters
Section titled “Building Custom Meters”The Cell Editor’s add and resize controls let you construct meters that do not appear in any preset library. A [3+3+2+2+3] grouping in 13/16 has no standard name in any tradition, but it might be exactly the lopsided, lurching feel that a particular composition needs. This is where the additive editor moves beyond historical recreation and becomes a compositional tool — you are not reproducing a known aksak pattern, you are inventing a new one.
The constraint is that cell sizes must be positive integers (minimum 1 subdivision unit per cell). Beyond that, any combination is valid. Five cells of [1+1+1+1+1] is functionally equivalent to a straight five-beat pattern. Two cells of [6+6] is a simple duple meter. The extremes are trivial; the interesting territory is everything in between.
Preview audio uses CC0 and CC-BY drum samples. Every sample is credited on theCredits & Licenses page.