How zydr114/easydesktoplyrics works
EasyDesktopLyrics is a Windows desktop lyrics overlay that follows system media sessions, finds and times lyrics, then renders synchronized lyrics and optional visual effects. The main workflow is documented and the startup wiring is sampled; several internal lyric-processing and rendering links are inferred only at subsystem level, so uncertain call-level relationships are omitted.
Main entry points: LyricsOrchestrator.cs Lyrics orchestration · ILyricsProvider.cs Lyrics providers · SettingsService.cs Settings service · SmtcService.cs Media sessions
Components 27
Playback and lyrics
- Media sessions
Services/SmtcService.cs - Lyrics orchestration
Services/LyricsOrchestrator.cs - Lyrics matching
Services/LyricsMatcher.cs - Lyrics timeline
Services/LyricsTimelineBuilder.cs - LRC parsing
Services/LrcParser.cs - Lyrics providers
Services/Providers/ILyricsProvider.cs - Local LRC
Services/Providers/LocalLrcProvider.cs - Netease lyrics
Services/Providers/NeteaseLyricsProvider.cs - QQ lyrics
Services/Providers/QQMusicLyricsProvider.cs - LRCLIB lyrics
Services/Providers/LrclibLyricsProvider.cs - Lyrics cache
Services/LyricsCache.cs
Overlay and visuals
- Overlay state
ViewModels/OverlayViewModel.cs - Lyrics window
- Lyric modes
Views/Lyrics/LyricVisualModeRegistry.cs - Background effects
Views/BackgroundFxLayer.cs - Visual presets
Services/VisualPresetService.cs - Cover palette
Services/CoverPaletteExtractor.cs
Settings and persistence
- Settings interface
ViewModels/SettingsViewModel.cs - Settings service
Services/SettingsService.cs - Settings file
Infrastructure/AppPaths.cs
Audio features
- Audio features
Services/AudioFeatureService.cs - Spectrum engine
Services/SpectrumEngine.cs - Loopback capture
Services/WasapiLoopbackCapture.cs
Other components
- Listener
- SMTC players
- Lyrics services
- Windows audio
Connections 28
- SMTC players → Media sessions: publish sessions
- Media sessions → Lyrics orchestration: track updates
- Lyrics orchestration → Media sessions: playback state
- Lyrics orchestration → Lyrics providers: request lyrics
- Lyrics orchestration → Lyrics cache: read and write
- Lyrics orchestration → Overlay state: publish lyrics
- Lyrics providers → Local LRC: dispatch local
- Lyrics providers → Netease lyrics: dispatch source
- Lyrics providers → QQ lyrics: dispatch source
- Lyrics providers → LRCLIB lyrics: dispatch source
- Local LRC → Lyrics services: read local files
- Netease lyrics → Lyrics services: fetch lyrics
- QQ lyrics → Lyrics services: fetch lyrics
- LRCLIB lyrics → Lyrics services: fetch lyrics
- Overlay state → Lyrics window: update display
- Lyrics window → Lyric modes: render lyrics
- Lyrics window → Background effects: render effects
- Lyrics window → Cover palette: extract cover colors
- Settings interface → Settings service: update options
- Settings service → Settings file: load and save
- Settings interface → Visual presets: manage presets
- Settings service → Lyrics orchestration: configure sources
- Settings service → Media sessions: configure players
- Background effects → Audio features: consume features
- Audio features → Spectrum engine: analyze frames
- Spectrum engine → Loopback capture: capture samples
- Loopback capture → Windows audio: read loopback
- Listener → Lyrics window: view lyrics