scaler-glitch

VFPGA scaler-glitch · runs in vfpga-runner

Model

An early-HD circuit-bent VFPGA that corrupts the upscaler / line-doubler / deinterlacer of a cheap SD→HD set-top box. The star is a BRAM line buffer — the authentic FPGA video staple: a scaler reads a window of prior scanlines out of an on-chip line buffer and resamples them to the output raster. Bending it = addressing those rows wrong: a deinterlace error gives comb/weave zipper edges on alternating lines (field mismatch), corrupt bilinear tap weights snap to nearest-neighbour blockiness, a wrong scale ratio stretches the picture, and a line-buffer overrun re-reads a stale row as a stuck-row horizontal smear. p1 sets the deinterlace error (weave↔bob zipper), p2 the scale ratio, p3 the tap-weight corruption, p4 the stuck-row density. CIN1 adds onto the scale ratio; GIN1 flips the field parity (a fresh field mismatch). Every "random" term is deterministic (row + seed hashed) so the bend is reproducible.

I/O

  • Video in: 1 (vin1…vin1)
  • Video out: 1 (vout1)

Controls (param knobs)

SlotKnobRangeDefaultWhat it does
p1deint0 … 10.5Deinterlace error: 0 weave (zipper on motion) ↔ 1 bob (line-double a field).
p2scale0.5 … 21.3Vertical scale-ratio error (wrong pixel/aspect-ratio stretch).
p3tap0 … 10.6Bilinear tap-weight corruption: 0 correct ↔ 1 nearest/broken weights.
p4stuck0 … 10.25Per-row line-buffer-overrun probability (a stuck-row horizontal smear).

CV roles

InputRoleWhat it modulates
cv1SCALEAdds onto the scale ratio (patch an LFO to breathe the stretch).

Each CV input has a bipolar SCALE attenuverter + OFFSET on the card, and an always-on scope.

Gate roles

InputRoleWhat it triggers
g1FIELDA TRIGGER: each rising edge flips the field parity → a fresh field mismatch.

Gate inputs raw-pass into the host's synthetic gN_evt params; the factory hysteresis edge-detects rising edges (rise > 0.6 / fall < 0.4).

Usage

Add a vfpga-runner, pick scaler-glitch from the card's load preset… menu, and patch the active outputs into OUTPUT / a video mixer / a downstream effect.

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