How rsgarrido/sazanami works
Sazanami is an offline Android music player centered on browsing a local library and playing tracks through a persistent background player. Its broader product capabilities include queue and playlist management, tag editing, listening analytics and Spotify-history import, local synchronized lyrics, audio processing, Android Auto, and backup/restore. The graph highlights these domains and the sampled wiring: playback-service queue initialization, equalizer preference/runtime updates, and lyric lookup. Several subsystems are documented by the README and tree but their internal call paths were not sampled, so those links are omitted.
Main entry points: EqualizerUiController.kt Equalizer controls · MainActivity.kt App entry · PlaybackQueueCoordinator.kt Queue coordination · PlaybackService.kt Playback service
Components 24
App and library
- App entry
app/src/main/java/io/github/rsgarrido/sazanami/MainActivity.kt - Music navigation
app/src/main/java/io/github/rsgarrido/sazanami/ui/MusicRouteState.kt - Library control
app/src/main/java/io/github/rsgarrido/sazanami/controller/LibraryController.kt - Music repository
app/src/main/java/io/github/rsgarrido/sazanami/data/MusicRepository.kt - App database
app/src/main/java/io/github/rsgarrido/sazanami/data/local/AppDatabase.kt
Playback and audio
- Playback service
app/src/main/java/io/github/rsgarrido/sazanami/player/PlaybackService.kt - Queue coordination
app/src/main/java/io/github/rsgarrido/sazanami/player/PlaybackQueueCoordinator.kt - Queue repository
app/src/main/java/io/github/rsgarrido/sazanami/data/PlaybackQueueRepository.kt - Player state
app/src/main/java/io/github/rsgarrido/sazanami/player/PlayerStateStorage.kt - Equalizer controls
app/src/main/java/io/github/rsgarrido/sazanami/ui/equalizer/EqualizerUiController.kt - Equalizer DSP
app/src/main/java/io/github/rsgarrido/sazanami/player/equalizer/dsp/KotlinEqualizerDspEngine.kt - Peak limiter
app/src/main/java/io/github/rsgarrido/sazanami/player/equalizer/limiter/LookaheadLimiterEngine.kt
Collections and metadata
- Playlist management
app/src/main/java/io/github/rsgarrido/sazanami/data/PlaylistsRepository.kt - Smart playlists
app/src/main/java/io/github/rsgarrido/sazanami/data/SmartPlaylistRepository.kt - File tag editing
app/src/main/java/io/github/rsgarrido/sazanami/data/TagEditorRepository.kt
Listening history
- Listening analytics
app/src/main/java/io/github/rsgarrido/sazanami/controller/ListeningAnalyticsController.kt - History projection
app/src/main/java/io/github/rsgarrido/sazanami/controller/ListeningHistoryUiPipeline.kt - Listening history
app/src/main/java/io/github/rsgarrido/sazanami/data/ListeningHistoryRepository.kt - Spotify import
app/src/main/java/io/github/rsgarrido/sazanami/data/importing/spotify/SpotifyListeningHistoryImportExecutor.kt
Local and Android features
- Lyrics playback
app/src/main/java/io/github/rsgarrido/sazanami/lyrics/LyricsPlaybackController.kt - Local lyrics
app/src/main/java/io/github/rsgarrido/sazanami/lyrics/DefaultLocalLyricsRepository.kt - Backup and restore
app/src/main/java/io/github/rsgarrido/sazanami/data/backup/BackupRepository.kt - Android Auto catalog
app/src/main/java/io/github/rsgarrido/sazanami/player/AndroidAutoCatalogRepository.kt
Other components
- Listener
Connections 8
- Listener → App entry: opens app
- App entry → Music navigation: presents navigation
- Playback service → Queue coordination: initializes queue
- Queue coordination → Queue repository: restores queue
- Equalizer controls → Equalizer DSP: previews runtime settings
- Equalizer controls → App database: persists preferences
- Lyrics playback → Local lyrics: looks up lyrics
- History projection → Listening history: projects history