Standards
A PAL/NTSC standards converter for Resolume

What it does
An FFGL effect for Resolume Arena and Avenue. Until the 1990s a programme crossing the Atlantic went through a standards converter: a store of a few fields that interpolated twice, in time, making each output field from the input fields either side of it, and in space, making each output line from nearby lines of the field being read.
Standards is that box. The clip becomes fields of the source standard at that standard's own instants, and everything else follows. 50 into 60 is 5 into 6, so something moving smoothly advances in a stutter six fields long, and at 59.94 the cycle creeps. An output field that lands between two input fields blends them into a double image. Few vertical taps across interlaced lines give the soft look.
Temporal picks Drop/Repeat (a repeated field instead of a blend), Linear, or Four Field (sharper, and ringing). Vertical Taps picks 1, 2, 4 or 8. Motion Comp adds crude block vectors between the two fields either side, which remove the judder on a pan and tear wherever a block holds two motions, as the first motion-compensated converters did.
Directions are 625/50 to 525/59.94, the reverse, 625/50 to 525/60, and Same. Show As weaves or bobs the output fields; Output Size shows native lines or scales to the host.
- Fields of the source standard at its own instants, top field first
- Drop/Repeat, Linear and Four Field temporal apertures
- 1, 2, 4 or 8 vertical taps on the lines of the field being read
- Crude block motion compensation that smooths pans and tears at occlusions
- 625/50 ↔ 525/59.94, 625/50 → 525/60, and Same
- Weave or Bob, native lines or host size
- Universal macOS bundle and a Windows x64 DLL
Where it stands
v0.1.0, and honestly early. The conversion is measured, not asserted, by an offline harness that drives the real plugin class headlessly at two rasters: each output field's temporal weights, read back from field numbers painted into the input, sit where the time geometry puts them over 772 fields; 50 → 60 repeats bit for bit every six fields and 50 → 59.94 creeps 0.004997 of a field per cycle against 0.005; a moving bar's repeats and double images land where stated; the vertical impulse response matches the stated taps; Same returns the fielded input with 0 bytes different; and motion compensation steps a pan within 0.5 px. Sixteen negative controls and a one-character mutation of the shipped shader are caught. All 8 swept controls change the picture. Render cost on macOS at the defaults is 0.42 ms/frame at 4K, 1.81 ms with Motion Comp. It has not yet been loaded into Resolume on macOS. On Windows it has: a build of this source loads, registers and renders in Resolume Arena 7.27.1 on software rendering (win-lab, no GPU), with every parameter as declared and every control shown moving the picture, though on a still picture, so the judder itself was not seen there. There is a user guide and a browser demo; no presets and no OpenFX port. Check it in your own rig before trusting it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead