tmds-sparkle

VFPGA tmds-sparkle · runs in vfpga-runner

Model

An early-HD circuit-bent VFPGA that corrupts the HDMI/DVI TMDS digital link — the shimmering sparkle / bit-error look of a marginal HDMI cable. A real 4-input bitwise LUT (the literal FPGA LUT16 truth table) wired over the picture's bit-planes is the per-pixel TMDS bit-flip field; that bit-error field is XOR-combined onto a datapath that adds the rest of the bent-link artifacts — a DC-balance break drifts the running disparity into horizontal banding, a character-boundary slip shears each scanline sideways, and a control-period leak bleeds saturated sync-character speckle into the active video. p1 sets the bit-error rate (the sparkle density), p2 the LUT truth table (the flip mask), p3 the disparity drift, p4 the char-slip. CIN1 adds onto the error rate; GIN1 re-rolls the error seed (a cable-wiggle burst). Every "random" error is deterministic (frame + pixel + seed hashed) so the bend is reproducible.

I/O

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

Controls (param knobs)

SlotKnobRangeDefaultWhat it does
p1rate0 … 10.12Bit-error rate — the control-period sparkle density.
p2flip-mask0 … 6553527030The 16-bit LUT truth table (the per-channel bit-flip mask; 0x6996 = 4-input parity).
p3disparity0 … 10.25DC-balance break → running-disparity drift → horizontal banding.
p4slip0 … 0.50.06Char-boundary slip → per-line horizontal pixel shear.

CV roles

InputRoleWhat it modulates
cv1RATEAdds onto the bit-error rate (patch an LFO/envelope to pulse the sparkle).

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

Gate roles

InputRoleWhat it triggers
g1WIGGLEA TRIGGER: each rising edge re-rolls the error seed → a fresh cable-wiggle burst.

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 tmds-sparkle 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