How callmerev95/chordly works
Chordly is an Android-first YouTube Music player with discovery, playback, synced lyrics, downloads, and audio-output controls; it also includes listening-party support and TV, Wear OS, and web code. The primary flow is listeners browsing account-backed music and playing it through a background service, with optional audio processing and casting. The map preserves major README capabilities and substantial indexed modules. Edges are limited to documented README behavior or visible excerpts and SOURCE INDEX references; unsampled subsystems are represented without speculative wiring.
Main entry points: MainActivity.kt Android app · PlaybackService.kt Playback service · YtMusicRepository.kt Home and explore · CastController.kt Cast control
Components 20
Listener experience
- Android app
app/src/main/java/com/chordly/MainActivity.kt - Home and explore
shared/src/jvmSharedMain/kotlin/com/chordly/data/YtMusicRepository.kt
Music and library
- Synced lyrics
shared/src/jvmSharedMain/kotlin/com/chordly/data/lyrics/LyricsQuery.kt - Account settings
app/src/main/java/com/chordly/data/settings/AppSettings.kt - YouTube Music data
shared/src/jvmSharedMain/kotlin/com/chordly/data/YtMusicRepository.kt - Music sources
app/src/main/java/com/chordly/data/sources/SourceRegistry.kt
Playback and audio
- Playback service
app/src/main/java/com/chordly/playback/PlaybackService.kt - Smart crossfade
app/src/main/java/com/chordly/playback/CrossfadeController.kt - Bit-perfect output
app/src/main/java/com/chordly/playback/audio/bitperfect/BitPerfectOutput.kt - Cast control
app/src/main/java/com/chordly/playback/cast/CastController.kt - Cast playback
app/src/main/java/com/chordly/playback/cast/CastPlayback.kt
Offline and social
- Offline playlists
app/src/main/java/com/chordly/data/OfflinePlaylists.kt - Download manager
app/src/main/java/com/chordly/download/Downloads.kt - Download workers
app/src/main/java/com/chordly/download/DownloadService.kt - Listen together
app/src/main/java/com/chordly/data/listentogether/ListenTogether.kt - Party server
backend/main.go
Other platforms
- TV app
tv/src/main/java/com/chordly/TvActivity.kt - Watch playback
wearos/src/main/java/com/chordly/wear/playback/WatchPlaybackService.kt - Web player
web/app/src/playback/youtube/engine.ts
Other components
- Listener
Connections 20
- Listener → Android app: uses
README.md - Android app → Home and explore: browses
- Home and explore → YouTube Music data: loads catalog
shared/src/jvmSharedMain/kotlin/com/chordly/data/YtMusicRepository.kt - YouTube Music data → Account settings: uses account
- Android app → Synced lyrics: shows lyrics
README.md - Android app → Playback service: starts playback
app/src/main/java/com/chordly/playback/PlaybackService.kt - Playback service → Account settings: loads settings
app/src/main/java/com/chordly/playback/PlaybackService.kt - Playback service → Smart crossfade: uses transitions
app/src/main/java/com/chordly/playback/PlaybackService.kt - Playback service → Bit-perfect output: configures output
app/src/main/java/com/chordly/playback/PlaybackService.kt - Playback service → Cast control: controls casting
app/src/main/java/com/chordly/playback/PlaybackService.kt - Cast control → Cast playback: delegates playback
app/src/main/java/com/chordly/playback/cast/CastController.kt - Android app → Music sources: selects sources
- Android app → Offline playlists: manages playlists
- Download manager → Download workers: starts workers
app/src/main/java/com/chordly/download/DownloadService.kt - Android app → Download manager: queues downloads
- Android app → Listen together: joins parties
- Listen together → Party server: exchanges party data
- Listener → TV app: uses
- Listener → Watch playback: uses
- Listener → Web player: uses