monoglitch
monoglitch · outputMONOGLITCH is a luma-driven scanline-displacement glitch effect that doubles as a chainable video OUTPUT. It quantizes the incoming video into a stack of horizontal scanlines (Lines count) and, per line, samples the source luminance at the row center and lifts that line's vertical position upward by luma x Z, so bright pixels bow the lines up while dark areas leave them flat. Each line is rendered as a thin tinted band whose thickness is set by Gap and whose color comes from the R/G/B tint (default a green-phosphor look); the source luminance also gives bright bands a subtle brightness bonus (band color scales by 0.4 + luma x 0.8). H Ramp and V Ramp pan the sampled image horizontally/vertically and wrap at the edges, so feeding them saw LFOs scrolls the whole field. Despite the historical RUTTETRA name it is NOT a true Rutt/Etra raster remap (see reshaper/ruttetra for that) - it is a stylized oscilloscope/CRT-glitch aesthetic. Patch a video source into IN, dial Lines and Z for the scan density and warp, tint to taste, then take OUT into another video module or to screen. With nothing patched it shows a dark-navy idle sweep. There is a live preview screen with the picture, and two switches beside it that do opposite things: SCREEN turns the preview off to reclaim its space (the module goes on rendering either way), and MONITOR hides the control bands so the picture has the whole plate to itself - drag the bottom-right corner to size it, and click MONITOR again to bring the controls back. Either way it is a viewport only; neither changes the output resolution.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
in | video | Video source. Its per-pixel luminance (sampled once per scanline at the row center) is what drives every scanline's vertical displacement; with no input the card shows a dark-navy idle sweep. Accepts video/image/keys via the engine's implicit upcasts. RGB video stream |
hRamp | cv | CV that modulates the H Ramp control (horizontal pan). Sampling wraps at the edges, so a saw LFO here scrolls the image left/right seamlessly. control voltage (CV); modulates hRamp (additive offset — ±1 CV sweeps the full range, centered on the knob) |
vRamp | cv | CV that modulates the V Ramp control (vertical pan). Wraps at the edges, so a saw LFO here scrolls the scanline field up/down seamlessly. control voltage (CV); modulates vRamp (additive offset — ±1 CV sweeps the full range, centered on the knob) |
intensity | cv | CV that modulates the Z control (luma-to-displacement scale) - the amount each scanline lifts upward in response to source brightness. control voltage (CV); modulates intensity (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
out | video | Glitched RGB video: the tinted, luma-displaced scanline field rendered into this module's own per-instance FBO. Chainable into downstream video modules or to an OUTPUT/screen. RGB video stream |
params
| id | label | range | default | curve |
|---|---|---|---|---|
hRamp | H Ramp | -1..1 | — | linear |
vRamp | V Ramp | -1..1 | — | linear |
intensity | Z | 0..1 | — | linear |
lines | Lines | 8..240 | — | linear |
spacing | Spacing | 0..0.95 | — | linear |
tintR | Tint R | 0..1 | — | linear |
tintG | Tint G | 0..1 | — | linear |
tintB | Tint B | 0..1 | — | linear |
controls
| control | what it does |
|---|---|
| H Ramp | H Ramp (labeled H, -1..1): horizontal pan offset applied to the sampled image; wraps at the edges so it scrolls rather than clips. 0 = no pan. |
| Z | Z (labeled Z, 0..1): luma-to-displacement scale. Higher values lift bright scanlines further upward (max upward shift = luma x Z x 0.4 of canvas height, so a fully-bright line at Z=1 won't overlap the line above by more than ~half a band); 0 leaves all lines flat at their nominal positions. Default 0.6. |
| Lines | Lines (labeled Lines, 8..240): number of horizontal scanlines the image is quantized into. More lines = a denser, finer scan; band thickness auto-shrinks as the count rises to stay readable. Default 96. |
| Spacing | Spacing (labeled Gap, 0..0.95): scanline gap / band thinning. 0 = thickest bands; toward 0.95 = thin lines with wide dark gaps between them. Default 0.2. The drawn band height is (1 / Lines) x (1 - Gap) x 0.5 of the frame - so it depends on BOTH controls, and neither dial can report it alone. That matters at the top of the Lines range: at Lines = 240 the band is under a device pixel tall on a 1080-line output even at Gap = 0, so raising Gap further stops making a visible difference and the picture just dims. |
| Tint B | Tint B (labeled B, 0..1): blue component of the band color. Default 0.5 (part of the green-phosphor default tint). |
| Tint G | Tint G (labeled G, 0..1): green component of the band color. Default 1.0 (part of the green-phosphor default tint). |
| Tint R | Tint R (labeled R, 0..1): red component of the band color. Default 0.4 (part of the green-phosphor default tint). |
| V Ramp | V Ramp (labeled V, -1..1): vertical pan offset applied to the sampled image; wraps at the edges so it scrolls rather than clips. 0 = no pan. |
source
monoglitch.ts on GitHub.