Add audio visualizer with spectrogram, beat-reactive art, and device selection
- New audio_analyzer service: loopback capture via soundcard + numpy FFT - Real-time spectrogram bars below album art with accent color gradient - Album art and vinyl pulse to bass energy beats - WebSocket subscriber pattern for opt-in audio data streaming - Audio device selection in Settings tab with auto-detect fallback - Optimized FFT pipeline: vectorized cumsum bin grouping, pre-serialized JSON broadcast - Visualizer config: enabled/fps/bins/device in config.yaml - Optional deps: soundcard + numpy (graceful degradation if missing) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
"player.source": "Source:",
|
||||
"player.unknown_source": "Unknown",
|
||||
"player.vinyl": "Vinyl mode",
|
||||
"player.visualizer": "Audio visualizer",
|
||||
"state.playing": "Playing",
|
||||
"state.paused": "Paused",
|
||||
"state.stopped": "Stopped",
|
||||
@@ -123,6 +124,15 @@
|
||||
"settings.section.scripts": "Scripts",
|
||||
"settings.section.callbacks": "Callbacks",
|
||||
"settings.section.links": "Links",
|
||||
"settings.section.audio": "Audio",
|
||||
"settings.audio.description": "Select which audio output device to capture for the visualizer.",
|
||||
"settings.audio.device": "Loopback Device",
|
||||
"settings.audio.auto": "Auto-detect",
|
||||
"settings.audio.status_active": "Capturing audio",
|
||||
"settings.audio.status_available": "Available, not capturing",
|
||||
"settings.audio.status_unavailable": "Unavailable",
|
||||
"settings.audio.device_changed": "Audio device changed",
|
||||
"settings.audio.device_change_failed": "Failed to change audio device",
|
||||
"quick_access.no_items": "No quick actions or links configured",
|
||||
"display.loading": "Loading monitors...",
|
||||
"display.error": "Failed to load monitors",
|
||||
|
||||
Reference in New Issue
Block a user