lines
lines · sources · schema v1LINES is a procedural mono-video source that renders soft-edged parallel stripes whose orientation, count, thickness, and scroll you dial in. The shader rotates the UV space by Orient (0 = horizontal lines, 1 = vertical, anything between = diagonal), then computes wave = abs(sin(2pi * Amp * (position + Phase))) along that axis and lights up bright bands wherever the wave falls under the Thickness threshold, with a smoothstep soft edge straddling it. The result is a grayscale grating written equally to all three RGB channels (alpha 1). The pattern auto-scrolls on its own (Phase advances steadily over time, time * 0.15 wrapped to 0..1) so it is visibly alive without touching a knob; your Phase value adds on top of that drift. Patch the OUT into an OUTPUT screen, a video mixer, or a colorizer; use it as a structural test pattern or as a moving modulation texture for downstream video modules.
the faceplate
inputs
| id | cable | what it does |
|---|---|---|
fm | mono-video | mono-video FM modulator input. The fmDepth uniform is plumbed but this Phase 0 build does not yet feed the texture into the shader, so patching it has no visible effect for now; the port exists so the I/O surface stays forward-compatible (Phase 3 hookup). mono video stream |
orient | cv | CV input that modulates the Orient control, rotating the grating between horizontal (0) and vertical (1) through diagonal in between. control voltage (CV); modulates orient (additive offset — ±1 CV sweeps the full range, centered on the knob) |
amp | cv | CV input that modulates the Amp control, changing how many stripes pack across the screen (the spatial frequency of the grating). control voltage (CV); modulates amp (additive offset — ±1 CV sweeps the full range, centered on the knob) |
thickness | cv | CV input that modulates the Thickness control, widening or narrowing the bright bands (the stripe duty cycle). control voltage (CV); modulates thickness (additive offset — ±1 CV sweeps the full range, centered on the knob) |
phase | cv | CV input that modulates the Phase control, sliding the stripe pattern along its axis on top of the built-in auto-scroll. control voltage (CV); modulates phase (additive offset — ±1 CV sweeps the full range, centered on the knob) |
outputs
| id | cable | what it does |
|---|---|---|
out | mono-video | mono-video output carrying the rendered grayscale line/grating pattern. Route it to an OUTPUT screen, a video mixer, or a colorizer. mono video stream |
params
| id | label | range | default | curve |
|---|---|---|---|---|
orient | Orient | 0..1 | — | linear |
amp | Amp | 0.5..50lpx | — | linear |
thickness | Thickness | 0..1 | — | linear |
phase | Phase | 0..1 | — | linear |
fmDepth | FM Depth | 0..1 | — | linear |
controls
| control | what it does |
|---|---|
| Amp | Line frequency in lines-per-width (lpx), 0.5 to 50 (linear). Higher values pack more stripes across the frame; low values give a few broad bands. Default 12. |
| FM Depth | Depth of the forward-compatible FM modulator, 0 to 1 (linear). The uniform is plumbed but multiplied by 0.0 in this Phase 0 shader, and there is no CV input or card fader for it, so it currently has no visible effect. Default 0. |
| Orient | Line orientation, 0 to 1 (linear). 0 = horizontal lines (the wave varies along Y), 1 = vertical lines (varies along X), intermediate values rotate the grating diagonally through pi/2. Default 0. |
| Phase | Phase offset, 0 to 1 (linear), sliding the stripes along their axis. Added on top of the steady built-in auto-scroll, so the pattern drifts even at 0. Default 0. |
| Thickness | Band duty cycle, 0 to 1 (linear). It is the threshold below which the wave lights up: 0 = razor-thin bright lines, raising it fattens the bright bands until near 1 the frame goes mostly white. Default 0.35. |
source
lines.ts on GitHub.