Spaces:
Running
Running
Commit History
-
Add pitch/tempo shifting on download
Adds optional pitch_semitones (-12..+12) and tempo_pct (50..150) query params on the download endpoints. When either deviates from the defaults, ffmpeg transcodes the stem via asetrate+aresample+atempo before serving, and the result is cached in the per-job output directory so repeated downloads are fast. UI adds sliders on the download page with a reset control and a download-filename suffix that reflects the applied transform. Useful for karaoke (drop key) and practice (slow-down) workflows.fd9421b
-
Set baseline stats to 100 visits and 5 downloads
Ensures stats never reset to zero on HF Spaces redeployments by using a hardcoded baseline when no stats file exists.d074942 -
Add admin dashboard with download history and persistent storage
- Track original filenames and stems on every download in download_log.json - Add /admin/downloads backend endpoint to retrieve download history - Add /admin frontend page with summary cards and download log table - Use /data (HF Spaces persistent storage) when available so stats and download logs survive redeployments - Include audio analysis module (BPM, key detection) and its tests3b1b3cb
-
Fix before-clip playback by persisting original in output dir
03be5eb -
Add before/after clip preview and SEO landing pages
ee5588a -
feat(stems): add multi-stem downloads with Playwright e2e coverage
4369b06 -
feat(trim): add upload trim range with preview and backend segment processing
27df8ab
-
fix(backend): use asyncio.to_thread for stats IO, guard malformed JSON, isolate test side-effects
5d9f00f -
feat(backend): add file-based stats counter with /stats and /stats/visit endpoints
dc5236d
-
fix: threadpool executor for cleanup, shutdown hook, stronger download tests
d52edae -
feat: GET /download/{job_id} endpoint and APScheduler file cleanup
- Created backend/cleanup.py with _cleanup_old_files (removes mp3s older than 1h) and start_cleanup_scheduler (APScheduler interval job every 15 min) - Updated main.py startup to call start_cleanup_scheduler and added GET /download/{job_id} returning FileResponse or 404/409 - Added 3 download tests covering done→200, processing→409, and unknown job→404432f562 -
fix: cleanup on enqueue failure, MP3 magic byte validation, stronger upload tests
ac2e3da -
feat: POST /upload endpoint with MP3 validation and size limit
360e6f2 -
fix: init asyncio queue inside startup event, add QueueFull guard
56f2ba5 -
feat: job store and GET /status/{job_id} endpoint
a0cee5d -
feat: backend scaffold with health endpoint and pytest setup
0d0fd8d