LiveShader
A shader drawing whose program can be swapped while it runs. Made for writing new ones.
Hand replace new source whenever the file it came from is saved. If it compiles, the drawing switches to it on the next frame. If it does not, the old program keeps running and the compiler's message is kept in error, so a typo shows up as a message rather than as a black screen. The source is only the body: the shared library, with the spectrum, the palette and the rest, is put in front of it the same way it is for every built-in shader.
Properties
Radians per second the surviving frame turns by. Echoes spiral instead of expanding straight.
How much the surviving frame grows before the new one is drawn on top. 1 leaves it alone.
The form on screen and the count of its changes, or null for a drawing with no named forms.
What this drawing does with the audio, in a form a test and a menu can read.
Different settings for calm and lively music. Overrides trail, feedbackZoom, feedbackSpin.
True for drawings that paint every pixel themselves, such as the full-screen shaders.
The ways this drawing can arrive. The director picks among these and what suits the music. A drawing with no trail has no echoes to inherit, so the hand-off is only on offer to drawings that feed their frames back.
Functions
How much of the trail's budget the wide copies take, for this mood.
Drawn after the echo layer, straight on the canvas, for things that must stay sharp.
How the last frame comes back this frame. The default reads the zoom, spin and drift for the mood, and settles all three towards neutral as the music goes quiet.
The feedback spin for this mood.
The feedback zoom for this mood.
The echo layer as it stood a frame ago, handed over just before draw, or null when there is no echo buffer yet. Most drawings ignore it; one that breaks the picture apart cuts its pieces from it.
How long the trail takes to fade to half, in seconds, for this mood.