void render(const RoomSense &s, const MoodPalette &pal, float dtSec, RingCanvas &c)
void drawGrains(const MoodPalette &pal, float dtSec, RingCanvas &c)
Grain mGrains[kMaxGrains]
void render(const RoomSense &s, const MoodPalette &pal, float dtSec, RingCanvas &c)
static const int kMaxGrains
void spawnGrains(const RoomSense &s, float dtSec, int ringSize)
Busy room without a beat.
Smoothed one-pole follower with independent attack and release.
float mCorrection
remaining phase correction, turns
void render(const RoomSense &s, const MoodPalette &pal, float dtSec, RingCanvas &c)
float mRotation
turns, advanced continuously
static const int kMarkers
Additive drawing helpers over a span of float pixels.
Small deterministic RNG for sparkle. No libc, no global state.
Everything a visual is allowed to react to.