asteroid/docker
Glenn Thompson b6be0ebab1 feat: Convert JavaScript to Parenscript with stream fixes and UX improvements
Major Changes:
- Convert all JavaScript files to Parenscript for better maintainability
- Move spectrum-analyzer to parenscript/ directory structure
- Add parenscript-utils.lisp for shared utilities
- Convert admin.js, player.js, front-page.js, auth-ui.js to Parenscript
- Convert profile.js, users.js, recently-played.js to Parenscript

Stream Reconnect Fixes (from merged PR):
- Add reset-spectrum-analyzer function to properly clean up Web Audio API
- Implement reconnect logic for pauses longer than 10 seconds
- Detect stale audio in 'playing' event and force stream reconnection
- Prevent 'Now Playing' updates while stream is paused
- Reduce reconnect delay to 200ms for faster response
- Add proper spectrum analyzer reset/reinit during reconnection

UX Improvements:
- Change live indicator from blink to smooth pulse (2s ease-in-out)
- Pulse animation like old PowerBook/MacBook sleep indicator
- Add MUTED indicator to spectrum analyzer when audio is muted
- Spectrum continues to flow even when muted (data still streaming)
- Red 'MUTED' text displayed in top-right corner of canvas

Technical Details:
- Parenscript files generate JavaScript via API endpoints
- All player modes updated: main player, front page, popout, frame player
- Improved audio context handling to only create once per element
- Added comprehensive error handling and logging
- Updated asteroid.asd to include parenscript module structure

Documentation:
- Updated all documentation dates to 2025-12-06
- Added PARENSCRIPT-EXPERIMENT.org documenting the conversion
- Updated PROJECT-HISTORY.org with Phase 9 (Visual Audio Features)
- Added comprehensive project statistics (408 commits, 9,300 LOC)

This conversion improves code maintainability by using Lisp throughout
the stack and makes it easier to share code between frontend and backend.
2025-12-06 11:55:24 -05:00
..
Dockerfile.liquidsoap fix: Revert unnecessary Docker image change 2025-10-02 16:51:59 +03:00
asteroid-radio-docker.liq fix: Use 'normal' mode instead of 'sequential' for playlist playback 2025-12-03 19:00:13 -05:00
docker-compose.asteroid.yml feat: add docker setup for asteroid app 2025-10-30 19:08:46 -04:00
docker-compose.yml feat: Add password management and fix listener count 2025-11-04 16:26:29 -05:00
docker-compose.yml.remote-backup feat: Complete Docker streaming integration with web interface 2025-10-02 16:51:03 +03:00
docker-streaming.org feat: Add Docker streaming infrastructure for Liquidsoap and Icecast2 2025-10-02 16:50:06 +03:00
icecast.xml feat: Convert JavaScript to Parenscript with stream fixes and UX improvements 2025-12-06 11:55:24 -05:00
init-db.sql Complete Templates section: CLIP refactoring, user management, pagination, playlists, UI fixes, PostgreSQL setup 2025-10-04 09:54:04 -04:00
radiance-default.conf.lisp small moves, ellie. small moves. 2025-11-04 17:37:13 -05:00
setup-complete.org feat: Add auto-scan on startup and live Icecast/Liquidsoap status checks 2025-10-04 09:54:04 -04:00
start.sh Improve audio quality and streaming performance 2025-10-15 06:38:53 -04:00
stop.sh feat: Restore Docker utility scripts per Fade's request 2025-10-02 18:32:56 +03:00