How echomusicapp/echo-music works
Echo Music is an Android music-streaming and library app centered on YouTube Music, with playback, offline downloads, lyrics, recommendations, recognition, and listening/social integrations. The graph summarizes the user-facing route from app entry into playback and highlights distinct product branches. The README documents capabilities, while sampled source confirms selected playback, recognition, recommendation, persistence, DSP, and USB-audio behavior; links for unsampled features are limited to README-supported relationships.
Main entry points: MusicService.kt Playback service · screens Browse and player UI · MusicRecognitionService.kt Echo Find recognition · MusicDatabase.kt Music database
Components 22
App experience
- App and navigation
app/src/main/kotlin/com/music/echo/MainActivity.kt - Browse and player UI
app/src/main/kotlin/com/music/echo/ui/screens
Playback and library
- Playback service
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Offline downloads
app/src/main/kotlin/com/music/echo/playback/ExoDownloadService.kt - Music database
core/src/main/kotlin/echo/music/iad1tya/db/MusicDatabase.kt - Library and history queries
core/src/main/kotlin/echo/music/iad1tya/db/DatabaseDao.kt - Song and playlist repositories
Discovery and recognition
- YouTube Music access
innertube/src/main/kotlin/com/music/innertube/YouTube.kt - Taste recommendations
app/src/main/kotlin/com/music/echo/generate/RecommendationEngine.kt - Echo Brain queue
app/src/main/kotlin/com/music/echo/musicflow/MusicFlowCoordinator.kt - Echo Find recognition
app/src/main/kotlin/com/music/echo/recognition/MusicRecognitionService.kt - Audio signatures
app/src/main/kotlin/com/music/echo/recognition/ShazamSignatureGenerator.kt
Integrations
- Lyrics providers and translation
lyrics/src/main/kotlin/echo/music/iad1tya/api - Spotify import and discovery
app/src/main/kotlin/com/music/echo/spotifyimport/SpotifyImportRepository.kt - Listen Together
app/src/main/kotlin/com/music/echo/listentogether/ListenTogetherManager.kt - Discord presence
app/src/main/kotlin/com/music/echo/discord/DiscordSocialPresenceClient.kt
Audio processing
- Playback DSP
audio-dsp/src/main/kotlin/echo/music/dsp/controller/DspControllerImpl.kt - USB audio output
usbaudio/src/main/kotlin/echo/music/usbaudio/UsbDacManager.kt - USB stream engine
usbaudio/src/main/cpp/usb_stream_engine.cpp
Other components
- Listener
- YouTube Music service
- Recognition service
Connections 21
- Listener → App and navigation: opens app
README.md - App and navigation → Browse and player UI: navigates
app/src/main/kotlin/com/music/echo/MainActivity.kt - Browse and player UI → Playback service: controls playback
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Playback service → YouTube Music access: resolves streams
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - YouTube Music access → YouTube Music service: requests music
- Playback service → Offline downloads: supports offline
README.md - Playback service → Music database: persists queue
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Music database → Library and history queries: provides queries
core/src/main/kotlin/echo/music/iad1tya/db/MusicDatabase.kt - Taste recommendations → YouTube Music access: fetches candidates
app/src/main/kotlin/com/music/echo/generate/RecommendationEngine.kt - Taste recommendations → Music database: reads listening data
app/src/main/kotlin/com/music/echo/generate/RecommendationEngine.kt - Echo Brain queue → Playback service: injects queue tracks
- Listener → Echo Find recognition: starts recognition
- Echo Find recognition → Audio signatures: generates signatures
- Echo Find recognition → Recognition service: identifies audio
README.md - Echo Find recognition → Music database: stores history
- Browse and player UI → Lyrics providers and translation: shows synced lyrics
README.md - Browse and player UI → Spotify import and discovery: imports playlists
README.md - App and navigation → Listen Together: joins shared rooms
app/src/main/kotlin/com/music/echo/MainActivity.kt - Playback service → Discord presence: updates presence
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - Playback service → Playback DSP: configures processors
app/src/main/kotlin/com/music/echo/playback/MusicService.kt - USB audio output → USB stream engine: streams audio
usbaudio/src/main/kotlin/echo/music/usbaudio/UsbDacManager.kt