Repository navigation
UI/UX pass: working help, unsaved-changes prompt, clear hierarchy, Default Streaming default - #10
Merged
Merged
Conversation
…tatus badge, Default Streaming as the default master
- The shortcuts dialog was never added to the desktop, so "?" and Ctrl+/ showed
nothing and swallowed the next click; it now opens as a DialogWindow. Key names
and the batch em dash were built with the integer String constructor ("8212").
- Closing with unsaved changes now asks Save / Don't Save / Cancel; the header shows
"*" while the session differs from the last save or load.
- Clear's confirmation no longer contradicts itself or shows an internal ticket id.
- The status badge uses dark text where white failed contrast; READY replaces IDLE.
- New sessions default to the Default Streaming master preset instead of Udio Optimized.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…age separation controls - Button variants (primary/secondary/quiet/danger): Import is the one primary action until stems exist, then Mix + Master; Save/Load/Models/Settings are quiet; Clear is styled as destructive. - Actions that need stems are disabled until stems are imported; transport too. - The empty waveform is a bordered drop zone that highlights on drag and opens Import on click. - Vocal Model and the model name appear only when AI Stem Separation is on; model names are plain language instead of Hugging Face repo ids. - Renderer and Active chain move into Advanced; combos widened; tooltips for Master, Platform, Renderer and Mode; accessibility titles for combos, sliders and transport. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…at the minimum window size - The batch strip shows only while a batch has items (nothing fed it before, so it only ever showed placeholders); the log is collapsible, collapsed by default, and opens on failure; dialog-open noise is no longer logged; idle progress is hidden. - Meters read "--" instead of -70.0 when there is no signal. - The header profile selector, which was never populated, is hidden; the deck's Profile combo is the single profile control. - Settings has Export / GPU acceleration / Audio output sections, and removing the GPU runtime asks first. The Model Browser opens at 760x560. - Disabled buttons are outlined instead of filled, so they no longer outshine enabled ones. - At 960x640 the settings row wraps instead of clipping Platform, and action buttons use a compact font instead of wrapping. - Tests: ControlDeck stem gating, separation visibility, meter formatting and layout at 940/1500 px; TaskCenterPanel batch strip, log and idle progress visibility. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, restore the single-file tip - Quitting while a task runs now asks first, then continues into the unsaved-changes prompt. - The empty state opens Import only on a left click released inside it, and only when the session has no stems; stems without a preview show "Preview unavailable" instead of the import prompt. - The empty state again points single-file users at AI Stem Separation. - Session files saved before the master preset field existed load as Udio Optimized again, as they were mastered; new sessions still default to Default Streaming. - Unit tests cover the quit decision, the click decision and the preset fallback. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…nus glyph and clipped meter captions README - Corrects the shortcuts (Ctrl+Shift+A is Auto Master; Ctrl+/ opens the shortcut list) and the inference notes, which still said no audio-tensor path exists. - Adds presets, the light vocal model, export formats and sessions. - Build steps and developer notes move into collapsed sections. UI - The zoom-out button showed "?": a \u escape in a narrow string is mangled by MSVC. It is now UTF-8 bytes. - The L/R captions were drawn above the meter panel and clipped. - The loudness bar was painted behind the first readout. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A UI/UX pass from a heuristic review of the running app. UI-only: the renderer chain,
RendererPipelineandapplyPlan()stage order are untouched. Stacked on #9 (feat/tensor-inference).Bugs
DialogWindow, and key names show as letters instead of numbers.juce::Stringconstructor) is gone.Unsaved work
*while the session differs from the last save or load.Defaults
Hierarchy and empty state
Controls and wording
Less noise
--with no signal instead of -70.0.Dialogs and layout
Testing
ctest270/270 pass (two GPU tensor probes skip without the hardware). This includes the golden and regression tests, which are unchanged by the new default preset.isModified(); the default preset.*marker and quit prompt (Cancel stays, Don't Save quits, no false*at startup); the GPU-removal confirmation (Cancel keeps the runtime); meters, log and progress in the idle state; layout at 960x640.Not verified
Known gaps (already there, not addressed)
🤖 Generated with Claude Code