-
Notifications
You must be signed in to change notification settings - Fork 18
Development
This page contains the essential information for building, testing and contributing to Levyra.
Levyra contains two native application targets:
- Android — Kotlin, Jetpack Compose and AndroidX Media3 / ExoPlayer
- Windows — Kotlin, Compose Multiplatform and libvlc
Clone the official repository:
git clone https://github.com/LUC4N3X/Levyra-deepsound.git
cd Levyra-deepsoundRepository:
github.com/LUC4N3X/Levyra-deepsound
The current Android build requires:
- JDK 17
- Android SDK Platform 37
- Gradle 9.7.0
- Android Studio or a compatible Android development environment
The repository includes the Gradle Wrapper, so a separate Gradle installation is normally not required.
./gradlew assembleDebug.\gradlew.bat assembleDebugThe generated APK can be found under:
app/build/outputs/apk/debug/
Enable Developer Options and USB debugging on the Android device, connect it to the computer and run:
./gradlew installDebug.\gradlew.bat installDebugADB should detect the device before installation.
You can verify this with:
adb devices./gradlew clean assembleRelease.\gradlew.bat clean assembleReleaseRelease output:
app/build/outputs/apk/release/app-release.apk
Release signing requirements may differ from local debug builds.
Levyra Desktop uses its own native desktop playback stack.
- Windows x64
- JDK 21 LTS
- VLC 3.0.x / libvlc
- WiX Toolset 3.14
Enter the desktop project:
cd desktopRun validation:
.\gradlew.bat checkCreate the release distributable:
.\gradlew.bat createReleaseDistributableBuild the Windows packages:
.\gradlew.bat packageReleaseMsi packageReleaseExeGenerated desktop artifacts are placed under:
desktop/app/build/compose/binaries/main-release/
Some of the main areas of the repository are:
app/
├── src/main/java/com/luc4n3x/levyra/
│ ├── ui/
│ ├── viewmodel/
│ ├── player/
│ └── data/
desktop/
├── app/
├── player/
├── core/
└── packaging/
baselineprofile/
docs/
scripts/
levyra-recognition/
ui/
: Jetpack Compose screens and visual presentation.
viewmodel/
: UI state and application coordination.
player/
: Media3 / ExoPlayer playback, MediaSession and playback services.
data/
: Data access, stream resolution, lyrics and persistent data.
desktop/app/
: Desktop UI and application lifecycle.
desktop/player/
: libvlc playback engine.
desktop/core/
: Desktop stream resolution, downloads and application storage.
desktop/packaging/
: Windows packaging and distribution.
Create a focused branch from the latest main:
git checkout main
git pull
git checkout -b feature/your-feature-nameKeep each pull request focused on a single concern whenever possible.
Before opening a pull request, run the repository quality gate:
python scripts/ai_quality_gate.py --profile fastAlso build and test the affected platform.
For Android changes, testing on a real Android device is strongly recommended when the change affects:
- Playback
- MediaSession
- Background behavior
- Downloads
- Local files
- Audio
- Permissions
- Performance
- Device-specific UI behavior
Changes should preserve the main engineering principles used by Levyra:
- Unidirectional data flow
- Predictable state ownership
- Immutable Compose UI state where appropriate
- Low-latency playback paths
- Local-first user data
- Minimal unnecessary main-thread work
- Resilient playback and stream resolution
- Platform-native behavior where Android and Windows differ
A good pull request should include:
- A clear description of the problem
- What was changed
- Why the chosen approach was used
- Testing performed
- Screenshots or recordings for visual changes
- Relevant issue links when applicable
For large features or architectural changes, opening an Issue before implementation is recommended.
Levyra is distributed under the GNU General Public License v3.0.
Contributions to the project must remain compatible with the project's license and third-party licensing requirements.
Levyra Wiki
Home · Getting Started · Features · FAQ & Troubleshooting
Development · Architecture · Roadmap · Privacy & Data
GitHub Repository · Latest Release · Issues · Website
Levyra is an open-source music application for Android and Windows.