diff --git a/docker/asteroid-radio-docker.liq b/docker/asteroid-radio-docker.liq index 515c79e..6831702 100644 --- a/docker/asteroid-radio-docker.liq +++ b/docker/asteroid-radio-docker.liq @@ -14,20 +14,46 @@ settings.server.telnet.set(true) settings.server.telnet.port.set(1234) settings.server.telnet.bind_addr.set("0.0.0.0") -# Create playlist source from mounted music directory -# Use playlist.safe which starts playing immediately without full scan -radio = playlist.safe( - mode="randomize", +# Create playlist source from generated M3U file +# This file is managed by Asteroid's stream control system +# Falls back to directory scan if playlist file doesn't exist +radio = playlist( + mode="normal", # Play in order (not randomized) + reload=5, # Check for playlist updates every 5 seconds + reload_mode="watch", # Watch file for changes + "/app/stream-queue.m3u" +) + +# Fallback to directory scan if playlist file is empty/missing +radio_fallback = playlist.safe( + mode="randomize", reload=3600, "/app/music/" ) -# Add some audio processing -radio = amplify(1.0, radio) -radio = normalize(radio) +# Use main playlist, fall back to directory scan +radio = fallback(track_sensitive=false, [radio, radio_fallback]) -# Add crossfade between tracks -radio = crossfade(radio) +# Add some audio processing +# Use ReplayGain for consistent volume without pumping +radio = amplify(1.0, override="replaygain", radio) + +# Add smooth crossfade between tracks (5 seconds) +radio = crossfade( + duration=5.0, # 5 second crossfade + fade_in=3.0, # 3 second fade in + fade_out=3.0, # 3 second fade out + radio +) + +# Add a compressor to prevent clipping +radio = compress( + ratio=3.0, # Compression ratio + threshold=-15.0, # Threshold in dB + attack=50.0, # Attack time in ms + release=400.0, # Release time in ms + radio +) # Create a fallback with emergency content emergency = sine(440.0) diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 5b05140..abe0ce8 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -26,6 +26,7 @@ services: volumes: - ../music/library:/app/music:ro - ./asteroid-radio-docker.liq:/app/asteroid-radio.liq:ro + - ../stream-queue.m3u:/app/stream-queue.m3u:ro restart: unless-stopped networks: - asteroid-network diff --git a/docker/start.sh b/docker/start.sh index 4857d9b..f46dd85 100755 --- a/docker/start.sh +++ b/docker/start.sh @@ -23,6 +23,7 @@ docker compose ps echo "" echo "🎵 Asteroid Radio is now streaming!" -echo "📡 High Quality: http://localhost:8000/asteroid.mp3" -echo "📡 Low Quality: http://localhost:8000/asteroid-low.mp3" -echo "🔧 Admin Panel: http://localhost:8000/admin/" +echo "📡 High Quality MP3: http://localhost:8000/asteroid.mp3" +echo "📡 High Quality AAC: http://localhost:8000/asteroid.aac" +echo "📡 Low Quality MP3: http://localhost:8000/asteroid-low.mp3" +echo "🔧 Admin Panel: http://localhost:8000/admin/"