asteroid/parenscript
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
..
admin.lisp Remove Icecast/Liquidsoap, migrate fully to Harmony/CL-Streamer 2026-03-05 17:24:12 +03:00
auth-ui.lisp fix: Normalize USERS table timestamps before dm:save to prevent PostgreSQL type errors 2025-12-29 09:39:51 -05:00
dj-console.lisp Implement DJ Console Phase 1 — dual-deck library mixing 2026-03-05 21:22:09 +03:00
frameset-utils.lisp Fix geo stats peak tracking and migrate inline JS to ParenScript 2025-12-14 10:20:32 -05:00
front-page.lisp feat: add media session API on now-playing update 2026-03-02 17:51:26 -05:00
parenscript-utils.lisp fix: add parenscript utils file 2026-03-02 17:51:26 -05:00
player.lisp feat: add media session API on now-playing update 2026-03-02 17:51:26 -05:00
profile.lisp feat: Custom user playlists with submission and admin review 2025-12-21 18:45:35 +03:00
recently-played.lisp Fix listener count and recently-played rendering 2026-03-03 23:25:23 +03:00
spectrum-analyzer.lisp Add mini spectrum analyzer to player frame with theme/style sync 2026-01-11 13:25:55 -05:00
stream-player.lisp cl-streamer integration fixes: CORS, reconnect, stream config 2026-03-03 23:17:01 +03:00
users.lisp Fix last-login timezone handling 2025-12-19 18:00:30 -05:00