Nova Music System Architecture

Visual architecture diagram and component-level technical specifications for Jetpack Compose UI, ViewModels, Repositories, Room DB, ExoPlayer Media3, LrcLib lyrics API, and DSP audio processing.

Visual Architecture Diagram

Nova Music Architecture Diagram

Component Layer Specifications

1. Jetpack Compose UI Layer (com.example.ui.*)

Declarative Material Design 3 UI composables managing state render, user gesture events, and dynamic theme switching. Includes single-activity entry (MainActivity.kt), bottom navigation bar, hero carousels, artwork vector renderers, canvas visualizers, and sheet dialogs.

2. State & Playback Management (com.example.player.*)

Coordinates playback queueing, shuffle/repeat modes, seek positions, sleep timers, pitch shift, and playback rate via Kotlin StateFlow and PlaybackManager.

3. Repository Layer (com.example.data.repository.*)

Acts as the single source of truth orchestrating local SQLite queries, MediaStore device audio indexing, duplicate file hashing, LrcLib REST API network calls, and DataStore preference synchronization.

4. System Services & Room Database (com.example.data.db.*)

Houses NovaDatabase SQLite database, AndroidX Media3 MusicService foreground service, and Android AudioEffect 10-band DSP hardware filters.