Glenn Thompson
|
e712009d79
|
Implement DJ Console Phase 1 — dual-deck library mixing
New files:
- dj-session.lisp: DJ session state, deck management, crossfader
(constant-power curve), auto-playlist pause/resume, ICY metadata
auto-detect, library search, watchdog timer
- parenscript/dj-console.lisp: UI polling (500ms), deck controls,
crossfader, library search with load-to-deck, session management
- template/dj-console.ctml: Dark hacker-themed dual-deck interface
with progress bars, transport controls, crossfader slider, metadata
override, and library search table
Modified files:
- asteroid.lisp: 14 DJ API endpoints (session, deck, crossfader,
library search), define-page dj-console, dj-console.js serving
- asteroid.asd: Add dj-session and dj-console components
- cl-streamer/harmony-backend.lisp: Export update-all-mounts-metadata,
volume-ramp, pipeline-harmony-server for DJ deck control
- navbar-admin.ctml: DJ Console link (role-gated to :dj/:admin)
API endpoints all require :dj role. Session lifecycle:
GO LIVE -> pause auto-playlist -> mix -> END SESSION -> resume
External audio input stubbed for Phase 2.
|
2026-03-05 21:22:09 +03:00 |