Colophon
Analog TV Simulator draws on primary engineering sources, and on the wider community of people who reverse-engineer, document and recreate analogue television. These are some of the open-source projects and references that inspired or informed it. Do go and explore them.
A free, open-source analogue-video effect written in Rust. It models much of the NTSC and VHS chain in the signal domain: chroma is modulated onto luma, artefacts such as composite noise, snow, head-switching and tracking error are applied to that composite signal, and the result is demodulated back to baseband. Its artefacts therefore carry real luma/chroma crosstalk rather than being drawn onto the picture. It runs as a standalone app, in the browser, and as plugins for After Effects, Premiere and OpenFX hosts such as DaVinci Resolve.
An open-source analogue-television transmitter by fsphil (written in C, GPL-3.0). It generates a real, broadcastable signal for PAL, NTSC, SECAM and D/D2-MAC, along with the older 819, 405, 240 and 30-line systems and the NASA Apollo colour and mono standards, then transmits it through SDR hardware such as the HackRF or an fl2k VGA adaptor. It also implements teletext, NICAM stereo, and the Videocrypt, Nagravision Syster and Macrovision-style conditional-access systems. It covers much of the same ground this app models, including the Apollo formats and the pay-TV scramblers.
FreeNBTV, by smeezekitty, generates Narrow-Bandwidth Television (NBTV) signals, the low-line-count mechanical-television format kept alive by the Narrow-bandwidth Television Association. Its novelty is in the output path: it produces the picture as an audio signal through an ordinary sound card, which can be looped back to drive a display. It aims to be highly configurable, generating arbitrary NBTV formats with adjustable line counts, frame rates and colour modes, and it is free, open-source and cross-platform.
Kacper "kFYatek" and contributors recreate the BBC's historical test cards as faithfully as possible, accurate enough to programme into a real engineering test-signal generator. The main source is a recording of the BBC HD shutdown on 26 March 2013, which broadcast a run of classic test cards; the project recovers the original standard-definition images from that HD feed and cleans up the remaining artefacts. It is a set of open Python and VapourSynth processing scripts.
A real-time GLSL/HLSL shader by Mark Rejhon (Blur Busters) and Timothy Lottes that simulates a CRT electron beam's rolling scan and phosphor fade-behind, running on ordinary sample-and-hold LCD and OLED monitors rather than a tube. It uses variable per-pixel black-frame insertion, holding brighter pixels over more refresh cycles than dimmer ones, to reproduce how a CRT beam paints and decays. The goal runs the opposite direction from most of the sources on this page: reducing motion blur on high-refresh displays by reconstructing CRT beam behaviour, rather than adding CRT character to a signal. It runs live in the browser via TestUFO and Shadertoy, and has since been adapted into RetroArch's subframe shaders and the standalone ShaderBeam player for Windows.