tiler

tiler · effects · schema v1

TILER — a video MULTISCREEN / TILE effect PROCESSOR (the classic video-mixer "multiscreen" look). Repeats the input frame in an N×N grid: each cell shows the FULL input scaled to 1/N, so the tiled copies are lower-resolution by nature (a 4×4 grid is 16 thumbnails of the same source, a 16×16 grid is 256 tiny copies). STATELESS per frame — the tiling moves/transforms live with the source (no feedback, no history). Implemented as a single-pass fragment shader; the whole effect is one line: color = texture(input, fract(uv × N)) — uv×N stretches the 0..1 UV across N cells and fract() wraps each cell back to the full input, so every cell samples the entire source. TILE is a 6-step DISCRETE knob (the param is a step INDEX 0..5; the card shows the resulting grid, e.g. "8×8") mapping to the grid dimension N: idx 0 → N=1 (1:1 PASSTHROUGH, no tiling — the lowest step is deliberately a transparent inline node), 1 → 4×4, 2 → 6×6, 3 → 8×8, 4 → 12×12, 5 → 16×16. A matching TILE CV input (port id tile_cv, paramTarget tile, DISCRETE cvScale) MODULATES the grid: the CV snaps onto the index steps and SUMS into the knob index (the same plumbing every per-param CV input uses), and the module then SNAPS the summed (possibly fractional) value to the NEAREST VALID N — so a CV that nudges the knob a little past "6" lands cleanly on 8 (never an invalid 7×7), and a bipolar LFO sweeps the grid through the valid sizes. IN takes RGB; OUT is video — patch a source (CAMERA / VIDEOBOX / SHAPES / a generator) → IN, OUT → OUTPUT or a video mixer; dial TILE for the multiscreen grid or modulate tile_cv for a pulsing/animated grid. All ports live on the yellow drill-down PATCH PANEL (no raw side jacks). The pure knob→N mapping + the CV sum-then-snap-to-nearest-N math are unit-tested helpers in $lib/video/modules/tiler.

TILER is the classic video-mixer "multiscreen / tile" effect: it repeats the incoming frame across a landscape cols×rows grid, where every cell shows the FULL source scaled down to fit, so each tile is a lower-resolution thumbnail of the same picture. A 2×2 grid is 4 copies, an 8×8 grid is 64 tiny copies. It's a single-pass shader whose whole effect is one line — fract(uv * vec2(cols, rows)) stretches the UV across the cells and wraps each cell back to the full 0..1 input, so each tile samples the entire source; at the 1×1 step fract(uv)==uv, making it an exact 1:1 passthrough. TILER is stateless per frame (no feedback or history), so tiled copies move and transform live with whatever feeds it. Drop it inline on a video chain and dial the TILE knob up for a quick multiscreen wall, or sweep it (or modulate it via CV) to step between grid densities. With no input it outputs solid black.

the faceplate

tilerinvideotile_cvcvoutvideoaudiocvgatepitch
2 inputs · 1 outputs · 1 params

inputs

idcablewhat it does
invideoVideo source to tile. Each grid cell shows this entire frame scaled to fit the cell, so the picture is repeated cols×rows times across the output. With nothing patched here the output is solid black.
RGB video stream
tile_cvcvCV that modulates the Tile control. It uses a discrete scale, so the incoming CV snaps to the grid steps and sums into the Tile index; the module then resolves the (possibly fractional) summed index to the nearest valid grid step, so it always lands on a real grid (1/4/6/12/16/64), never an in-between.
control voltage (CV); modulates tile (integer buckets — CV selects a discrete step)

outputs

idcablewhat it does
outvideoThe tiled frame — the source repeated across the resolved cols×rows landscape grid. At the lowest Tile step (total 1) this is an exact 1:1 passthrough of the input.
RGB video stream

params

idlabelrangedefaultcurve
tileTile0..?discrete

controls

controlwhat it does
TileGrid size — a 6-step discrete knob selecting the TOTAL tile count: 1, 4, 6, 12, 16, or 64. Each maps to a landscape grid (1×1, 2×2, 3×2, 4×3, 4×4, 8×8) so each cell keeps the source's wide aspect. Default is step 0 (total 1 = 1:1 passthrough, no tiling); higher steps pack more, smaller copies of the source.

source

tiler.ts on GitHub.

Generated from packages/web/src/lib/{audio,video}/module-registry.ts · repo