I keep coming back to the Capsize Audio Visualizer because it is small enough to finish. It is a C++ and Qt desktop application that turns live audio into shader-driven scenes, with controls for changing how the signal affects the picture.
This week it picked up CRT presentation work, floating mode, cross-shader audio mappings and three releases. The project is written in C++ and Qt with a native audio path and a collection of shader-driven scenes. The visual identity is not a web-only skin. The same shader language and palette now appear across the desktop app, the public site and the other Capsize properties.
Floating mode is a small feature with a large effect on how the application is used. The visualizer can sit beside another application instead of taking over the whole screen. Cross-shader mappings make the audio signal feel like one input to a set of related scenes rather than a separate toggle in every effect.
Try the public build at av.capsizegames.com or see the desktop edition on itch.io. The full four-week overview is on capsize.online.
A useful way to extend it
Pick one audio feature and map it to one visual parameter. Keep the mapping visible in the shader or effect configuration. Then add a second effect that responds to the same signal in a different way. The result is easier to tune when the signal path is shared and the visual differences live at the edge.
That is the balance I want from the project: a small program people can use tonight, with enough structure that the next visual idea has somewhere to go.
The public build makes the idea easy to test. Start a track, put the window beside another application, change the mapping and watch the same signal move through a different scene. If the effect needs a paragraph before it makes sense, the effect probably needs another pass.
The release work also keeps the boring edges in view: a local queued build, a repeatable package and a public page that explains what the download is. A visual tool gets better when the distance between changing a shader and trying the result stays short.
Top comments (0)