Two FFGL plugins, a source and an effect that draws over your clip, that doodle the music into the air: rings of sound on the kick, impact stars on the snare, zigzag bolts on the big hits, curls off…
翻訳待ち
プラグインC++ · ShellGitHub @stoatworks-labsオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Hand-drawn doodles to the music for Resolume (FFGL source and effect): rings on the kick, impact stars on the snare, zigzag bolts, curls off the hi-hats and a wobbly line that's the spectrum, redrawn on twos by a hand that can't hold still, so every line boils
翻訳待ち
Loading the full README.
Read the full README ↗AI-assisted project. This codebase was created with Claude (Anthropic), directed and reviewed by a human author. It has never been loaded into Resolume on macOS. On Windows both plugins load, register and draw in Resolume Arena 7.27.1 on a machine with software rendering and no GPU or sound device, with every control as declared. The numbers here are measured by an offline harness that drives the real plugin classes in a headless GL context: a held drawing is the same picture to the bit until the next one is due, the boil read back out of the rendered pixels matches the hand's stated law to 2-3%, a line's cross-section sums to Line Width to a few thousandths of a pixel, and a kick is on the page in the first drawing made after it. On Resolume's own drum loops (through a stand-in for its FFT, see Status) every band's onsets fall on the loops' sixteenth notes far beyond chance. The checks are re-run against fourteen models that are wrong on purpose and have to fail, eight one-character mutants of the shipped shaders and C++ have to be caught, and a control sweep fails if any parameter does nothing.
Hand-drawn doodles to the music, for Resolume Arena/Avenue, as two FFGL plugins: SW Scrawl, a source, and SW Scrawl Over, the same over your clip. Rings of sound coming off the speakers, impact stars on the snare, a zigzag bolt on the big kicks, little curls floating up off the hi-hats, and one long wobbly line that is the music itself. They're redrawn twelve times a second by a hand that can't hold still, so every line boils.
It's after the sound effects in Edgar Wright's Scott Pilgrim vs. the World (2010), where a basement band's noise gets drawn into the air in felt tip. The plugin borrows the idea and none of the film's artwork, and it has nothing to do with the film's makers.
SW Scrawl Over at its defaults on Resolume's own NeonRoom2 clip, with its Beat 001
loop driving it, 1.5 s in. Rendered by the plugin's offline harness (sctest --over --pipe --wav), not captured from Resolume.
v0.1.0 — prebuilt for macOS and Windows. Pick your platform:
| Build | Download | Size |
|---|---|---|
| Universal (Apple Silicon + Intel) · .dmg disk image | scrawl-0.1.0-macos-universal.dmg | 477 KB |
| Universal (Apple Silicon + Intel) · .zip archive | scrawl-macos-universal.zip | 422 KB |
| Build | Download | Size |
|---|---|---|
| x64 · .exe installer | scrawl-0.1.0-windows-x86_64-setup.exe | 236 KB |
| x64 · .zip archive | scrawl-windows-x86_64.zip | 256 KB |
All builds, checksums and release notes: github.com/stoatworks-labs/scrawl/releases.
macOS builds are signed and notarised and open normally. The Windows builds are unsigned, so SmartScreen warns once.
Every drawing is a new pass of a hand that can't hold still. Effects animation is drawn again for every drawing, twelve a second on twos, and no two passes of a pen land in the same place. So each doodle has an intended path, a ring or a spike or a zigzag, and each drawing of it gets its own error from the hand:
The error scales with the gesture, A = Wobble × (0.003 + 0.02 × extent) frame heights, so a big circle wanders further than a small tick. Between drawings everything holds still, the picture included. That's the whole look, and the rest falls out of it:
The GPU decides nothing. The hand makes every line on the CPU as a chain of capsules; the shaders rasterise their union, blur a quarter-size copy for the glow, and lay it over the clip.
This is the beginning of the README. Read the rest at the original. Read the full README ↗