Convx brings music discovery, playback, lyrics, and your library together in one Android app. It is built with Kotlin, Jetpack Compose, and Media3, with custom Cupertino-style controls and Liquid Glass surfaces.
- Browse and stream music through Convx's InnerTube client.
- Keep listening in the background with notification, lock-screen, and Android Auto controls.
- Save music for offline listening and manage a local library.
- Build queues and playlists, set a sleep timer, change playback speed, and use the equalizer.
- Use crossfade, Automix, and DJ-style transitions.
- Follow synchronized lyrics with word-level highlighting.
- Explore animated artwork and album-inspired colors.
- Browse lyrics from multiple providers.
- Browse local music and network shares, including SMB and WebDAV.
- Import playlists from Spotify.
- Connect Discord Rich Presence, Last.fm, music recognition, and Listen Together.
- Frosted, refractive glass surfaces for menus, sheets, and floating controls.
- Cupertino-style controls built for Convx's HIG and Android interaction patterns.
- Adaptive themes and layouts for phones and wider screens.
- Stable: Download the latest release.
- Nightly: Download the latest nightly build. Nightlies are pre-release builds and may be unstable. On a 32-bit-only phone (for example Galaxy A13) that says "app not compatible", download the
arm32APK from the same release.
Convx supports Android 8.0 (API 26) and later. Install APKs only from sources you trust. Android may ask you to allow installation from the app you used to download the APK.
Convx is a Gradle multi-module Android project. Keep code in the module that owns the capability, and use its existing public APIs when another module needs it.
| Path | Responsibility |
|---|---|
app/ |
Android application, screens, ViewModels, navigation, playback service, persistence, and app wiring. |
hig/ |
Shared Cupertino-style controls, theme primitives, accessibility helpers, and glass utilities. |
innertube/ |
InnerTube client and related models. |
lyrics/ |
Lyrics providers, parsing, and lyrics support. |
canvas/ |
Animated canvas and catalog features. |
artwork/ |
Artwork loading, caching, and transitions. |
spotify/ |
Spotify authentication and playlist import. |
integrations/ |
Discord, Last.fm, music recognition, and related integrations. |
network-storage/ |
SMB and WebDAV music sources. |
spine/ |
Add-on module hosting and lifecycle. |
listen-together-server/ |
Server component for Listen Together. |
The Android app uses Jetpack Compose for UI, Media3 for playback, Room for the local library, and DataStore for preferences. App modules are wired through the existing Hilt setup.
- JDK 21
- Android Studio with Android SDK 37 installed
- Android NDK for native components
Clone the repository, open it in Android Studio, and let Gradle sync. To build a debug APK or run unit tests from a terminal:
./gradlew :app:assembleUniversalFossDebug
./gradlew :app:testUniversalFossDebugUnitTestOn Windows, use gradlew.bat with the same task names. The Foss build omits Google Play services; the Gms build includes Google Cast support.
Bug reports, fixes, and feature contributions are welcome. Start with the Contributing Guide, follow the Code of Conduct, and read the Security Policy before reporting a vulnerability.
AI agents should also follow the Agent Contribution Guide. Its Android, animation, code review, and requirement discovery skills are bundled under contributor/skills/ and work offline.
Convx is an independent project and is not affiliated with, endorsed by, or connected to YouTube, Google, or their affiliates. Some features use unofficial third-party interfaces that may change or stop working. Users are responsible for following applicable laws and service terms.
Convx is licensed under the GNU General Public License v3.0. See LICENSE and NOTICE for license and third-party attribution details.
Maintained by Aryan (Cosmic Taser).
