How owergungor/lyrow works
Lyrow is a native Windows music companion. The user-facing workflow is to launch the desktop app, detect the active GSMTC media session, normalize track metadata, retrieve lyrics and artwork, and present synchronized lyrics and playback controls; a shared timeline keeps track timing isolated. A parallel Ambient Glow module captures loopback audio, analyzes frequency/beat energy, and drives a non-interfering screen-edge overlay. The README documents these capabilities; unsampled UI and module implementations limit attribution of some internal calls, so those links are omitted rather than inferred.
Main entry points: App.xaml.cs App startup · MainWindow.xaml.cs Player window · GlowModule.cs Glow module · LyricsModule.cs Lyrics module
Components 27
Desktop experience
- App startup
src/Lyrow.App/App.xaml.cs - Player window
src/Lyrow.App/MainWindow.xaml.cs - Lyrics window
src/Lyrow.App/LyricsWindow.xaml.cs - Tray controls
src/Lyrow.App/Platform/LyrowTrayIconManager.cs - Artwork display
src/Lyrow.App/Platform/ArtworkBitmapManager.cs - Window platform
src/Lyrow.App/Platform/WindowsWindowPlatformAdapter.cs - Glow overlay
src/Lyrow.App/Platform/GlowOverlayManager.cs - Overlay window
src/Lyrow.App/Platform/GlowOverlayWindow.cs
Media and lyrics
- GSMTC session
src/Lyrow.Music/Session/WindowsGsmtcMediaSessionMonitor.cs - Metadata normalizer
src/Lyrow.Music/Metadata/MediaMetadataNormalizer.cs - Lyrics module
src/Lyrow.Core/Modules/LyricsModule.cs - LRCLIB client
src/Lyrow.Music/Lyrics/LrclibClient.cs - LRC parser
src/Lyrow.Music/Lyrics/LrcParser.cs - Lyrics cache
src/Lyrow.Music/Lyrics/LocalFileLyricsCache.cs
Ambient audio glow
- Glow module
src/Lyrow.Core/Modules/GlowModule.cs - WASAPI capture
src/Lyrow.Audio/Capture/WasapiAudioCaptureService.cs - Spectrum analysis
src/Lyrow.Audio/Analysis/SpectrumAnalyzer.cs - Beat analysis
src/Lyrow.Audio/Analysis/GlowBeatEngine.cs - Output routing
src/Lyrow.Audio/Routing/WindowsAudioRoutingService.cs - Volume control
src/Lyrow.Audio/Control/WindowsAudioVolumeService.cs
Shared core services
- Playback timeline
src/Lyrow.Core/Timeline/PlaybackTimelineEngine.cs - Artwork service
src/Lyrow.Core/Services/ArtworkService.cs - Settings manager
src/Lyrow.Core/Services/SettingsManager.cs - Module manager
src/Lyrow.Core/Services/ModuleManager.cs - Update service
src/Lyrow.Core/Services/GitHubUpdateService.cs
Other components
- Listener
- LRCLIB
Connections 26
- Listener → App startup: launches
README.md - App startup → Player window: creates
src/Lyrow.App/App.xaml.cs - App startup → Module manager: configures
src/Lyrow.App/App.xaml.cs - App startup → Glow module: registers
src/Lyrow.App/App.xaml.cs - App startup → Lyrics module: registers
src/Lyrow.App/App.xaml.cs - App startup → Tray controls: initializes
src/Lyrow.App/App.xaml.cs - Player window → Lyrics window: presents
- GSMTC session → Metadata normalizer: normalizes
src/Lyrow.Music/Session/WindowsGsmtcMediaSessionMonitor.cs - GSMTC session → Playback timeline: updates
src/Lyrow.Music/Session/WindowsGsmtcMediaSessionMonitor.cs - GSMTC session → Lyrics module: provides media
- Lyrics module → LRCLIB client: requests lyrics
- LRCLIB client → LRC parser: parses
src/Lyrow.Music/Lyrics/LrclibClient.cs - Lyrics module → Lyrics cache: uses cache
- LRCLIB client → LRCLIB: queries
src/Lyrow.Music/Lyrics/LrclibClient.cs - Lyrics window → Playback timeline: shows timing
- Player window → Artwork display: renders artwork
- Artwork display → Artwork service: loads artwork
src/Lyrow.App/Platform/ArtworkBitmapManager.cs - App startup → Settings manager: registers
src/Lyrow.App/App.xaml.cs - Glow module → WASAPI capture: captures audio
- Glow module → Spectrum analysis: analyzes spectrum
- Glow module → Glow overlay: drives glow
src/Lyrow.App/Platform/GlowOverlayManager.cs - Glow overlay → Overlay window: manages
src/Lyrow.App/Platform/GlowOverlayManager.cs - Glow module → Beat analysis: analyzes beats
- Player window → Output routing: selects output
- Player window → Volume control: controls volume
- App startup → Update service: registers
src/Lyrow.App/App.xaml.cs