Wipe
A 1970s vision mixer's wipe generator for Resolume

What it does
An FFGL mixer for Resolume Arena and Avenue, and the second mixer in the Stoatworks fleet. A vision mixer of the 1970s did not store its wipes as pictures. It made them live, from a few analogue waveform generators running at line and field rate: a horizontal ramp, a vertical ramp, and horizontal and vertical parabolas, combined in a small matrix by adding them or taking the larger, and compared against the fader's level. Where the waveform was below the level you saw B; above it, A.
So every pattern here is a formula in two ramps. Horizontal and Vertical are a ramp each, Box takes the larger of the two, Diamond adds them, Circle adds the two parabolas, Clock is the angle and Matrix is a per-cell threshold order. What the hardware was famous for then falls out rather than being drawn: softness is the comparator's gain, so an edge's width follows the waveform's slope and a circle's edge is softer near its middle than at its rim; the border is a second comparator a little above the level; modulation is a sine added to the waveform, which wobbles the edge; and a circle is an ellipse unless the generator compensates for the picture's aspect, as real ones had to.
The fader is called Opacity on purpose: Resolume binds a mixer parameter of that name to the layer's own opacity fader, so the layer fader drives the wipe. Edge law is what the hardware did, a level linear in the fader; Area law solves the level so the B area is exactly the fader, for every pattern. A positioner moves the closed patterns and the clock, Multiple runs the waveforms at up to eight times the line rate, and Flip-Flop reverses alternate transitions.
It is chosen as a layer's Blend Mode: the layer below is A, and the clip on this layer is B.
- Chosen as a layer's Blend Mode in Resolume, installed in Extra Effects like any FFGL plugin
- Horizontal, Vertical, Box, Diamond, Circle, Clock and Matrix wipes, each a waveform and a comparator
- The layer's opacity fader drives the wipe, in Edge or Area law
- Softness as comparator gain: a circle's edge is softer near its middle
- A border as a second comparator, in any colour, with its own softness
- Positioner, rotation, aspect, modulation and Multiple up to 8 × 8
- Reverse and Flip-Flop, as on the hardware
- Universal macOS bundle and a Windows x64 DLL
Where it stands
v0.1.0, and honestly early. The pattern generator is measured, not asserted: an offline harness drives the real plugin class headlessly with two inputs at two different sizes and checks each claim against a closed form at two rasters. Two padded inputs resolve with 0 padding pixels reaching the picture; Opacity 0 is A and 1 is B bitwise on all seven patterns with everything else switched on; a hard edge lands on its column with 0 pixels wrong and a soft one is recovered to 0.0000 px; every pattern's B area is within 0.33 px of area of the fader in Area law; a circle's soft edge is 41.855, 23.449 and 14.318 px wide at three radii, each the parabola's closed form to 0.001; the modulator's sine comes back at 16.0000 px of 16; and a one-character mutation of the shipped shader fails five checks. All 21 sweepable controls change the picture. Render cost on macOS is 0.12 ms/frame at 4K; Area law adds a CPU solve of up to about 8 ms on frames where something changed at Multiple 8 × 8. It has not yet been loaded into Resolume on macOS. On Windows, Resolume Arena 7.27.1 (software rendering, win-lab) loads it from Extra Effects, offers it as a layer Blend Mode, initialises it cleanly and binds its Opacity to the layer's opacity fader — probed over REST and read from the plugin's own log; no frame of its output in Resolume has been looked at yet. Arena hides a mixer's first parameter, and Wipe's first is Aspect Comp on purpose, so every other control is reachable. Premultiplied alpha is assumed. There is a user guide and a browser demo, which is a port rather than the plugin; no presets and no OpenFX port. The macOS builds are signed and notarised. 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