Skip to content

Releases: stoatworks-labs/vocoder

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 21:01

A channel vocoder with the picture as the carrier, as an FFGL effect for Resolume Arena and Avenue. A channel vocoder splits the carrier into frequency bands and sets each band's gain from the matching band of the modulator; here the carrier is the frame, its frequency is spatial, and the modulator is the audio. The frame becomes a Laplacian pyramid of eight octave bands plus a residual, each multiplied by a gain and summed back — so at 1× the input comes back exactly, and that null is what makes everything else honest.

What is verified

By tools/verify.sh on an M4 Max, macOS 26.4:

  • Reconstruction is exact: max difference 0 at 720p, 1080p and 4K, all gains at 1×; 5.96e-08 through the Luma carrier. The check allows one float ULP and prints the number either way, so hardware that rounds the two sides differently stays visible.
  • The bands genuinely partition the picture: 9.54e-07.
  • Shipped shaders against an independent CPU Burt–Adelson implementation: 1.2e-07 worst over all eight bands.
  • Each band peaks where an octave bank requires, doubling from 2.0 px to 677.1 px.
  • Audio band k moves picture band k and no other: 16 mapping cases exact, 10 re-checked through the picture at max difference 0.
  • Envelope followers hold attack and release within 0.0% of their time constants.
  • All 19 swept parameters change the picture.
  • Render cost 0.77 ms at 720p, 0.66 at 1080p, 1.89 at 4K — macOS figures only.
  • Registered, loaded and instantiated in Resolume Arena 7.27.1 (build 15990) on Windows on 2026-09-21, with the shaders compiling — on a software rasteriser (Mesa llvmpipe), not a GPU.

What is not

  • Never run on a GPU in Resolume on either platform, never instantiated in Arena on macOS, and nothing timed on Windows.
  • No real audio reached it in Arena, so what Resolume's 64 FFT bins actually mean is still assumed rather than measured — the biggest open question in the repo.
  • No long session, no composition save or reload, no preset recall in the host.
  • No user guide, no factory presets, no browser demo, no OpenFX port.

The macOS build is signed and notarised; the Windows build is unsigned, so SmartScreen warns once.

Full Changelog: https://github.com/stoatworks-labs/vocoder/commits/v0.1.0