v0.2.0-alpha.3
This release is a major UI overhaul — new DAW-style mixer, song catalog panel, collapsible appbar, and a large number of UX fixes across the player, transport, and import flow.
What's new
DAW-style mixer
The stem mixer has been completely redesigned. Each stem row now uses a horizontal DAW layout: waveform icon → stem name → fader → VU meter → dB value → Mute → Solo → Download.
- Fader renders as a styled range input with stem-colored fill and a circular thumb. Boost above 0 dB works — each stem routes through a Web Audio
GainNodeinstead ofHTMLAudioElement.volume, which is capped at 1.0 by the browser. - VU meter shows a real-time level bar driven by a pre-computed RMS envelope — no
AnalyserNodeorrequestAnimationFrameneeded. The bar fills left-to-right with a gradient that tips into red on loud passages. - Solo button lights up gold when active; soloing any stem silences the rest.
- Mute button turns red and stays fully visible when active (previously it faded out along with the dimmed row, making it hard to see the muted state).
- Download button opens the stem file in the system browser, including in the Tauri desktop app where native
<a download>was previously silently blocked.
Song catalog
A new catalog panel on the left sidebar shows the history of processed tracks.
- Tracks are listed with thumbnail, title, duration, and stem count.
- Click any entry to instantly reload that track into the player without re-processing.
- Tracks can be organised into colour-coded folders via drag-and-drop.
- A search bar filters by title.
- The panel collapses to a thumbnail strip to save space.
Collapsible appbar
The import bar at the top now collapses to a compact icon strip on double-click, using the same grid-template-rows: 0fr ↔ 1fr animation as the widget sections. It auto-collapses when a track finishes processing so the waveform gets full vertical space.
The collapsed strip contains:
- SD monogram — expands the appbar
- URL icon — expands the appbar
- Per-stem coloured squares — show active/inactive state; click to toggle stem selection without expanding
- Process button — submits the job if a URL or file is set; otherwise expands the appbar
Version badge and update chip
The brand area now shows the current version. If a newer release is available on GitHub, a green "New release available" chip appears next to the version and links to the releases page.
Transport improvements
AudioContext.resume()fires beforemultitrack.play()in the same gesture handler (Safari requires this to unblock autoplay).- Loop region and playhead state reset cleanly on new track load; playhead snaps to loop start on play.
- Keyboard shortcut
Ltoggles loop;I/Oset loop in/out points at the current playhead position.
Import flow
- File drop onto the URL bar — drag an MP3 or WAV directly onto the input area. A pill shows the filename and size; a clear button removes it.
- Stem choice chips use Spotify-style filter semantics: first click on a chip while all are selected switches to "only this stem"; subsequent clicks add to the selection; deselecting the last chip wraps back to "all selected".
Diagnostics
- Global
window.errorandunhandledrejectionhandlers log to the console with file, line, and stack trace. - Per-stem
<audio>elements attach anerrorlistener that logs the MediaError code and message.
CI
- Fixed: all pipeline steps now carry
backend: kubernetes, ensuring they run on the k3s agent and not the local Windows agent on main-branch pushes and releases.
Setup (macOS / Linux)
Unchanged — ./run.sh setup && ./run.sh start.
Known limitations
Same as previous alphas. The Windows app is ALPHA — expect rough edges.