Stage design studio
A whole look, in one line of text
Fourteen presets, three concert interfaces, a theme studio that derives twenty colours from five, a design dock of thirteen pages with a search box that answers in both languages — and a share code that carries your entire look to another machine.

The dock
Thirteen pages, one search box, everything saves itself
- Search matches the English label and the translated one, plus synonyms and setting ids: “speed”, “tốc độ”, “fps”, “tempo” and NoteFallSpeed all land on the same Fall speed slider, with the match highlighted in the accent colour and the first page that has results opened for you.
- Every parameter has a slider, a numeric box that accepts units, comma decimals and note names like C4, and its own reset button; rows that depend on a switch hide and show themselves.
- SAVE and RESET PAGE sit on every page, and changes save themselves after 0.65 s.
- Tab keeps focus inside the dock and walks the pages in the order their rows are printed; at 1080×700 every row still fits the scrolling column.

Interface map
Four groups, thirteen pages — the layout the code, the XAML and the tests all read
Stage design
- StylePresets, thirteen quick layer switches, the GO TO card and the share code.
- ThemeThree concert interfaces, motion level, backdrop density and the theme studio.
- NotesColour, shape, glow, fall direction and speed, hold effects, smart modulators.
- ParticlesSpark emitter and physics, plasma wisps, fire, rings, impact waves and flashes, trails, ghosts, release effects.
- KeyboardKey style, labels, red felt, lighting and the ray-traced shading group.
- BackgroundColour, picture or green screen, atmosphere, guide lanes, halo and the four ambient layers.
- Camera & FXParallax, zoom, frame, saturation, contrast, bloom, the camera overlay and hand tracking.
Sound & input
- AudioLoad a SoundFont, choose an instrument preset, toggle the hall reverb.
- MIDIInput and output devices, the track list with solo/mute/colour, and the metronome.
Session
- PracticePractice modes, tempo, the A-B loop and the automatic practice tempo.
- HistoryEvery run of the open song, the fourteen-day chart, the ghost, HTML export.
- RecordingThe OUTPUT card: format, resolution, frame rate, audio and transparency.
App
- GeneralInterface language, the graphics engine — GPU frame rate, VSync, the GPU stage window, the engine status line — and the settings profile.
Presets
Fourteen looks, each with the interface that suits it
| Preset | Character |
|---|---|
| Neon Violet | The default: a dark hall, violet neon and clean trails. |
| Inferno | Fire notes with an animated burning texture and warm sparks. |
| Aurora Rainbow | Rainbow colour by pitch over an aurora backdrop. |
| Ice Crystal | Cold glass notes, pale bloom and a still stage. |
| Two Hands | Per-hand colours with a split point you can move. |
| Classic Roll | A quiet, readable piano roll with almost no effects. |
| Green Screen | A pure green backdrop for keying in OBS or an editor. |
| Sakura Nocturne | Petals drifting through a night stage. |
| Concert Gold | Champagne gold on ebony, matched to the Concert Grand interface. |
| Moonlight Sonata | A restrained, moonlit look for slow movements. |
| Galaxy Voyage | Rainbow trails over a cosmic ambient layer. |
| Electric Storm | Speed lines and electric arcs between the keys you hold. |
| Ocean Depths | Deep water colours with the Ocean Flow shader background. |
| Retro Arcade | A retro grid backdrop and bright, flat colours. |
Three community presets ship inside the build as well, labelled COMMUNITY: they apply like any other preset but cannot be deleted or overwritten. Presets whose theme is meant to move — Galaxy Voyage, Electric Storm, Aurora Rainbow — pick the motion that fits; Classic Roll, Lo-Fi and Green Screen keep the stage still or plain when that suits the piece.
Your own presets
Saved with a real thumbnail of your own stage
- SAVE AS writes a small JSON file into the presets folder of your settings directory, together with a 192×112 picture rendered by the stage itself — so an exported preset shows its actual look on somebody else's machine.
- Older presets without a picture get a miniature drawn from their settings instead, so the list never shows an empty box.
- DELETE, IMPORT and EXPORT are on the same page, and the header shows the preset name with a * as soon as you have changed something.
- Copying the presets folder carries them to another machine — or use IMPORT/EXPORT for one at a time. A corrupt file is skipped instead of breaking the list.

Concert interfaces
Three interfaces, swapped in a single frame
- Concert Grand — Steinway ebony and champagne gold — is the default; Concert Noir is obsidian and platinum; Velvet Gold is mahogany velvet and brass.
- Changing the theme swaps every surface and accent through DynamicResource in the current frame — no restart, no half-themed window — and each theme brings its own animated backdrop: resonance waves, aurora, velvet.
- The same page holds the motion level and the backdrop density, and a QUICK LOOKS card with three one-click buttons: Concert Grand, Concert Gold and Moonlight.

The theme studio
Pick five colours; twenty more are derived so text stays readable
- Theme → USER THEMES → CREATE / EDIT / DELETE opens the studio: a name, a backdrop family (Acoustic, Obsidian or Imperial) and five colours — accent, secondary accent, glow, surface and bright particles.
- The other twenty interface tokens are derived from those five, which is why you cannot build a palette with unreadable text; a preview strip updates as you type.
- Themes are saved as small JSON files in the themes folder of your settings directory — hand editable, healed if you make a mistake, ignored if they are corrupt, and listed beside the three built-ins in both chip rows.
- The studio refuses to save without a name or with a colour that is not hex, and a theme's id stays stable because it comes from its name.

Undo & profiles
Thirty-two ways back, and one file that carries everything
- Ctrl+Z steps back and Ctrl+Shift+Z (or Ctrl+Y) steps forward through the last 32 states of the dock; one slider drag — or one burst of tweaks — counts as a single step, and Ctrl+Z never steals the undo of the box you are typing in.
- A snapshot is the JSON of the visual settings, so undo goes through exactly the same clamping as setting a value yourself; changing preset is a mark too, and importing a profile starts a new history you cannot undo past.
- IMPORT/EXPORT PROFILE… on the General page packs stage settings, language and interface into one Keyflow.profile.json — drag it onto the window to apply it.
- Drop a .mid or .midi file on the window to open it, or drop a picture to set it as the stage background. A language missing from the build falls back to English rather than leaving a half-translated interface.

On disk
Where your looks live
- %LOCALAPPDATA%\Keyflow\visual-settings.json
- The current settings. Delete this file — or press RESET TO DEFAULT in the dock — to start over.
- %LOCALAPPDATA%\Keyflow\presets\*.json
- Your presets, each with its rendered thumbnail. Copy the folder to carry them to another machine.
- %LOCALAPPDATA%\Keyflow\themes\*.json
- The themes you made, as small hand-editable files.
- %LOCALAPPDATA%\Keyflow\library.json
- Recent songs and the values each one was played at.
- %LOCALAPPDATA%\Keyflow\history\practice.jsonl
- One line per practice run, newest first.
- --settings-dir=<folder>
- Move all of it somewhere else — useful for a portable setup or a second profile.
Accessible by design, and checked
Every glyph-only button — the A, B and × loop buttons, the reset arrows, the window buttons, the Play dialog chevrons — has a screen-reader name taken from its own translated tooltip, so it follows the language. Auto-generated dock rows are named after their labels, Tab cycles inside the dock, and when Windows switches to high contrast the chrome is painted with the system colours while your chosen theme stays saved.
Make it look like yours
Pick a preset, or build a theme from five colours and share the whole look in one line.