You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
“Audio processing failed. Please try again.” is shown for OOM, bad file, GPU fault, and disk-full alike. The stderr tail is already captured in separate() — it just never reaches the user or the error record.
Store the classified cause in Job.error_detail (shown behind a “details” disclosure — error reporting, not a feature). Classify at least: out-of-memory, unsupported-device, disk-full, bad-input.
Any failure is answerable from disk, after the fact, without a reproduction: rotating stemdeck.log (server) + non-truncating backend.log (desktop) + jobs/failed/<id>/error.txt with device, model, timings, and stderr tail.
StemDeck runs htdemucs_6s, fixed, with default settings (no --shifts, default overlap). Assessment of where that sits in 2026:
Verdict: yes — and your instinct about the architecture is exactly what the field converged on. No single model splits a full mix into lead + backing well; the established approach is a second pass over the vocals stem with a “karaoke” (backing-vocal extraction) model:
Phases 1–3 are pure hardening — no feature surface changes, immediately shippable one PR per finding. Phase 4 is the state-of-the-art jump, and lands on infrastructure phases 1–2 make debuggable.
Activity
feat(pipeline): quarantine failed jobs with evidence; classify causes…