How blueangelcpt/resonance works
Resonance is a native MP3 library manager and player with CLI and Qt desktop entry points sharing an application engine. The principal workflow is to scan read-only sources into a catalogue, group albums and enrich them, review uncertain decisions, compute a non-writing change plan, export safe organised copies, then verify or recover interrupted work. The README also documents local BPM analysis, artwork and lyrics lookup, privacy and gain cleaning, playback, and artwork review. The graph follows documented workflows and sampled call sites; unsampled implementation details are represented only where the tree supports a path.
Main entry points: LibraryEnrichment.cpp Enrichment and export · MainWindow.cpp Desktop workbench · Library.hpp Library engine · Library.cpp Scan and catalogue
Components 26
User interfaces
- CLI commands
src/MusicLibrary.Cli/src/main.cpp - Desktop app
src/MusicLibrary.Desktop/src/main.cpp
Library workflow
- Library engine
src/MusicLibrary.Application/include/mlapp/Library.hpp - Scan and catalogue
src/MusicLibrary.Application/src/Library.cpp - Enrichment and export
src/MusicLibrary.Application/src/LibraryEnrichment.cpp - Catalogue repository
src/MusicLibrary.Application/src/Catalogue.cpp
Domain decisions
- Album grouping
src/MusicLibrary.Core/src/AlbumGrouping.cpp - Artwork selection
src/MusicLibrary.Core/src/ArtworkPolicy.cpp - BPM and lyrics rules
src/MusicLibrary.Core/src/Enrichment.cpp - Change plan rules
src/MusicLibrary.Core/src/ChangePlan.cpp - Naming template
src/MusicLibrary.Core/src/NamingTemplate.cpp
Storage and media
- SQLite catalogue
src/MusicLibrary.Infrastructure/src/Sqlite.cpp - Tag reader
src/MusicLibrary.Infrastructure/src/TagReader.cpp - Tag writer
src/MusicLibrary.Infrastructure/src/TagWriter.cpp - Metadata providers
src/MusicLibrary.Infrastructure/src/Providers.cpp - Artwork asset store
src/MusicLibrary.Infrastructure/src/ImagePipeline.cpp - Image processing
src/MusicLibrary.Infrastructure/src/ImagePipeline.cpp - Safe output guard
src/MusicLibrary.Infrastructure/src/PathGuard.cpp
Desktop features
- Desktop workbench
src/MusicLibrary.Desktop/src/MainWindow.cpp - Artwork review
src/MusicLibrary.Desktop/src/AlbumReviewWidget.cpp - Audio playback
src/MusicLibrary.Desktop/src/AudioPlayer.cpp - Spectrum analysis
src/MusicLibrary.Desktop/src/VfdSpectrumWidget.cpp
Other components
- User
- LRCLIB service
- Source music files
- Organised copies
Connections 31
- User → CLI commands: runs command
- User → Desktop app: opens library
- CLI commands → Library engine: calls
- Desktop app → Desktop workbench: opens window
- Desktop workbench → Library engine: runs operations
- Library engine → Scan and catalogue: runs scan
- Scan and catalogue → Source music files: reads tags
- Scan and catalogue → Tag reader: reads frames
- Scan and catalogue → Catalogue repository: records inventory
- Catalogue repository → SQLite catalogue: reads and writes
- Library engine → Album grouping: groups albums
- Library engine → Enrichment and export: runs enrichment
- Enrichment and export → Catalogue repository: loads and records
- Enrichment and export → Artwork selection: ranks artwork
- Enrichment and export → BPM and lyrics rules: decides BPM and lyrics
- Enrichment and export → Metadata providers: requests matches
- Metadata providers → LRCLIB service: looks up lyrics
- Enrichment and export → Artwork asset store: stores artwork
- Enrichment and export → Image processing: makes derivatives
- Enrichment and export → Naming template: builds destinations
- Enrichment and export → Change plan rules: computes changes
- Enrichment and export → Safe output guard: guards output
- Enrichment and export → Tag writer: writes copy tags
- Enrichment and export → Source music files: copies audio payload
- Enrichment and export → Organised copies: writes and verifies
- Desktop workbench → Artwork review: shows artwork review
- Artwork review → Artwork asset store: loads candidates
- Artwork review → Image processing: previews derivative
- Desktop workbench → Audio playback: controls playback
- Audio playback → Source music files: plays track
- Desktop workbench → Spectrum analysis: shows spectrum