text-glitch

For the moment the signal almost dies. The headline that’s already been a ghost for a while. Type that doesn’t quite trust itself to stay on screen.

text-glitch sample frame rendered from the demo project
Frame from the bundled demo.cinerune — exported from the Glitch & analog noise demo project.

What it’s for

The look of a frame that’s about to lose itself. A VHS tape played one too many times. A CRT pulling the wrong signal. An opening title that comes in haunted instead of clean — the audience already knows something’s off before the first cut. text-glitch is a four-layer collapse baked into a single pass: red and blue ghosts split off the letters, the whole line jitters like a tracking error, scanlines drop a held-down EQ across the frame, and every once in a while a white tear rips the row apart and snaps back.

Falls naturally onto: cold opens, error screens with attitude, last-frame stingers, music-video lyric cards, dystopian UI chrome, anything where the type has to feel like it was recovered rather than typed. Push tearProbability and the screen starts to actively misbehave — drop it, take the ghosts down, and you get a quieter “degraded archive” rather than a full breakdown.

Where it lives in the app

Effect group Glitch & analog noise. Add it to any text-render layer from the effects tray; runs before rasterization so the glitch is applied per-letter and the result still rounds to ASCII cells.

Parameters

KeyRangeDefaultEffect
shiftAmp0–14 px6Peak offset of the R/B ghost copies
shiftBase0–6 px2Minimum ghost offset (the “always-on” floor)
shiftSpeed0–0.30.08Ghost animation rate
jitterAmp0–10 px4Vertical wobble amplitude
jitterSpeed0–0.20.03Vertical wobble frequency
scanDarken0–0.80.35How dark scanlines get
scanPeriod1–8 px3Row spacing of scanlines
tearProbability0–0.40.07Chance of a block-tear per frame
ghostAlpha0–10.8Opacity of the R/B ghost copies

Pairs well with

Demo project

The downloadable demo.cinerune is a single text layer with text-glitch applied — no imported media, no source attribution needed. Drop it into the editor (File → Open from disk…) to tweak parameters live. The frame shown above is exported from the same project.