Skip to content

Releases: stoatworks-labs/relay

Release list

Relay v0.1.0

Choose a tag to compare

@github-actions github-actions released this 24 Sep 21:18

First release of Relay: an A/B cut made by a relay, bounce and all, as an FFGL mixer for Resolume Arena and Avenue. The fleet's third mixer, after genlock and wipe.

What it does. Chosen as a layer's Blend Mode, it cuts between the layer below (A) and this layer (B) the way a relay-switched router did. The layer's opacity fader is the coil, with Pull-in and Drop-out hysteresis, so nothing dissolves: the cut lands at 0.7 on the way up and 0.3 on the way down. The contacts bounce, so the frame the switch lands on shows bands of A, black and B at the scanlines where each bounce fell, cut mid-line. The monitor's vertical PLL re-locks to the new source, so the picture rolls and settles, overshooting when underdamped. The open contact is a capacitor, so the unselected picture's edges leak through, 6 dB an octave. Switch Point set to Vert Interval is the good router's cure: the bounce lands in the blanking.

Controls. Raster: Standard (PAL/NTSC), Switch Point. Coil: Opacity, Pull-in, Drop-out, Operate Time (0–40 ms), Select, Take. Contacts: Bounce Time (0–4 ms), Restitution (0–0.9), Open Level. Sync: Genlocked, Phase Offset, Lock Time (0.05–2 s), Damping (0.1–2). Crosstalk: Crosstalk, Corner (0.25–4 MHz).

Measured, not asserted. An offline harness drives the real plugin class with two inputs at two sizes, at 640×360 and 320×180, on the GPU and on Apple's software renderer: the switching frame's bands sit where the bounce schedule puts them with every pixel away from a cut exactly right and all 16 contact events seen within one line's blanking; the coil switches at Pull-in and Drop-out 41 of 41 frames bitwise; the re-lock follows the second-order step response to 0.002 rows over 150 frames; the crosstalk doubles per octave to 0.013; every check carries a negative control that fails, and a one-character mutation of the shipped GLSL is caught. All 17 sweepable controls change the picture. Render cost on an M4 Max: 0.04 ms/frame at 1080p, 0.11 ms at 4K at rest, 0.13 ms at 4K with Crosstalk on.

In Resolume. Probed by hand in Arena 7.27.1 on Windows (software rendering): loads from Extra Effects, offered as a layer Blend Mode and as a transition, hides only Standard (index 0, so NTSC is unreachable in Arena, on purpose), binds Opacity to the layer's opacity fader, and a layer transition drives Opacity — one cut per fade. Never loaded into Resolume on macOS; no picture of its output inside Resolume has been captured.

Downloads. macOS universal .dmg/.zip (Apple silicon + Intel) and Windows x64 installer/.zip. Install into Extra Effects (Resolume has no other FFGL folder, even for a mixer), restart Resolume, and choose SW Relay as the upper layer's Blend Mode. The macOS build is now Developer ID-signed and notarised (signed on 2026-09-25, after publication); a copy downloaded before then is unsigned, so if macOS refuses it, download it again.

Not done. No presets, no OpenFX port. The dwell fraction, approach flight, tear and settle threshold are model constants, not measurements of any relay. See the README's Status and AGENTS.md for the full list.

User guide: https://stoatworks-labs.com/software/relay/guide/ · Project page: https://stoatworks-labs.com/software/relay/ · Browser demo: https://relay-demo.stoatworks-labs.com