Falling trails
Glow, Sparkles, Speed lines, Blur, Ribbon, Rainbow and Stream, plus ghosting behind the note.
The visual engine
The stage runs a game loop of its own on a thread of its own: 16-bit HDR, multi-level bloom, up to 24,000 particles and an 88-key keyboard shaded by HLSL. A heavy frame costs frame rate — never latency, because your notes reach the sound engine and the renderer on the MIDI callback thread itself.

The render loop

Effect families
Glow, Sparkles, Speed lines, Blur, Ribbon, Rainbow and Stream, plus ghosting behind the note.
A bar, a breath, a vibration or an electric arc joining the keys you keep down.
Six ways for a note to leave the stage when you let go of the key.
Ring, Shockwave or Ripple, with Flash, Lightning or Plasma driven by how hard the note was hit.
Five particle bursts and five note morphs — Shatter, Melt, Absorb, Bounce and Star.
Energy, Nature, Light and Cosmic, each switchable on its own, plus acoustic motes, guide lanes and pedal glow.
Notes
| Group | What you can set |
|---|---|
| Style | Four: Solid, Neon outline, Glass, and Fire with an animated burning texture. |
| Colour | Five modes: gradient by pitch (six palettes or custom start/end colours), by hand with a movable split point, by MIDI track with an eight-colour table, rainbow by pitch and rainbow by time. |
| Shape | Width, corner radius, minimum length, gap between notes, 3D shadow, the note name printed on the bar, tint, bloom, border brightness and thickness, leading-edge glow and refraction. |
| Motion | Fall speed and direction — Down falls to the keys and sinks under the hit line, Up is born at the key with the note and rises out of the stage — plus shimmer and landing glow on the GPU stage. |
| Smart modulators | Velocity, octave, keyboard zone, pedal, tempo and audio reactivity feed the effects. |
All of it lives on the Notes page of the design dock, and every change applies live.
Ray-traced keyboard
The keyboard is drawn by a shader, not a bitmap: a Cook-Torrance GGX BRDF with Smith visibility and Schlick fresnel, a softbox with a real penumbra, contact occlusion inside the gaps between keys, image-based lighting from the environment, coloured light thrown back by the keys that are sounding, and an ACES filmic tonemap.

Backgrounds & hit line

Only on the GPU stage
Motion, timing and the layers that stay vector
Every animation — falling notes, petals, the backdrop, panels moving — runs on one vsync clock (FrameClock), so nothing judders and no frame is drawn twice; the clock lets go when the stage is at rest. A motion level of Off, Calm or Full applies to the whole interface and honours the reduce-animation setting of Windows.
The staff layer, the hand marker, the camera picture, the watermark and the key counter / FPS readout stay WPF vector layers composited over the GPU frame — sharp at any resolution.
What the stage does not do yet
There is no particle compute shader, no depth of field, no velocity-buffer motion blur and no camera keyframing. A 3D perspective camera is not supported either: the stage is a flat piano roll with slight parallax.
Where these settings live
Pictures
Click any picture to open it full size. Every frame is rendered by Keyflow in CI.




The GPU stage is the default from the first launch — there is nothing to switch on.