bf561a6c81
* Add on-demand lead/backing vocal split, fix stems relocation bugs, and eager model pre-download (#275, #403) Lead/backing vocal split: - New on-demand POST /api/jobs/{id}/vocal-split endpoint, running UVR-MDX-NET Karaoke 2 (audio-separator) as a second pass over Demucs's vocals.wav - Desktop and mobile UI toggle to request the split, auto-chained once the base separation finishes, for both foreground and background jobs - Mixer shows Lead Vocals / Backing Vocals lanes in place of Vocals once split Stems relocation fixes (#403): - user-data.json (library metadata) now lives inside the jobs folder so it follows a Settings relocation instead of staying behind in Documents - The relocation endpoint's settings persist step was silently swallowing write failures and reporting false success; it now reports persisted: false and the Settings UI shows a clear warning instead Desktop setup wizard: - Demucs, beat-this, and the karaoke model now download eagerly during first-boot setup instead of lazily on first use Also: - Credit audio-separator / Ultimate Vocal Remover in the README per its license's attribution requirement, plus a license audit in docs/models.md - Add models/ to .gitignore * ci: install build-essential so diffq (audio-separator's dependency) can compile diffq has no prebuilt wheel for Python 3.11+ on Linux, its last release only ever shipped cp310 wheels, so uv sync must compile it from source, which needs gcc. Docker and the Linux desktop release build already install build-essential for the same reason; the plain lint/test CI container never needed it before audio-separator (#275) pulled diffq in. * chore: pin Unraid template to 0.12.0 This PR ships as v0.12.0, per the user's decision given it introduces the new lead/backing vocal split feature. --------- Co-authored-by: Thales <>
92 lines
1.3 KiB
Plaintext
92 lines
1.3 KiB
Plaintext
# Python bytecode / native artifacts
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
.Python
|
|
|
|
# Python environments and package caches
|
|
.venv/
|
|
venv/
|
|
env/
|
|
.uv-cache/
|
|
pip-wheel-metadata/
|
|
|
|
# Python build outputs
|
|
dist/
|
|
*.egg-info/
|
|
*.egg
|
|
.eggs/
|
|
|
|
# Version is git-derived (hatch-vcs); these are generated artifacts, never committed.
|
|
app/_version.py
|
|
static/version.json
|
|
|
|
# Desktop dependencies and build outputs
|
|
desktop/node_modules/
|
|
node_modules/
|
|
|
|
# Playwright browser-test output (tests/e2e)
|
|
test-results/
|
|
playwright-report/
|
|
blob-report/
|
|
desktop/src-tauri/target/
|
|
desktop/src-tauri/gen/
|
|
|
|
# Test, coverage, and type-check caches
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
.mypy_cache/
|
|
.coverage
|
|
.coverage.*
|
|
htmlcov/
|
|
.tox/
|
|
|
|
# Runtime job artifacts and local build scratch
|
|
data/
|
|
jobs/
|
|
cache/
|
|
models/
|
|
settings.json
|
|
.run/
|
|
.build
|
|
|
|
# Local environment and secrets
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Logs
|
|
*.log
|
|
logs/
|
|
|
|
# Local dev scripts
|
|
.local/
|
|
|
|
# Local notes and agent/tool state
|
|
.docs
|
|
.issues_docs
|
|
.claude/
|
|
.playwright-mcp/
|
|
|
|
# Codex: keep repo guidance, ignore local state/cache
|
|
.codex/*
|
|
.codex/AGENTS.md
|
|
.codex/skills/
|
|
.codex/skills/**
|
|
.codex/cache/
|
|
.codex/logs/
|
|
.codex/tmp/
|
|
|
|
# Editors and OS metadata
|
|
.idea/
|
|
.vscode/
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# Tool versions
|
|
.python-version
|
|
|
|
# Imported design references (kept local, not shipped)
|
|
design/
|