This document provides instructions for setting up the Echo Music project for development.
- Android Studio (latest version recommended)
- Android SDK (API level as specified in
build.gradle.kts) - JDK 11 or higher
- Git
git clone https://github.com/NullCoreDeveloper/EchoDpi-Music.git
cd Echo-MusicCreate a local.properties file from the example template:
cp local.properties.example local.propertiesEdit local.properties and set your Android SDK path:
sdk.dir=/path/to/your/android/sdkExample paths:
- macOS:
/Users/username/Library/Android/sdk - Linux:
/home/username/Android/sdk - Windows:
C:\\Users\\username\\AppData\\Local\\Android\\sdk
Firebase is used for analytics and crash reporting. If you want to use these features:
- Create a Firebase project at Firebase Console
- Add an Android app to your Firebase project
- Download the
google-services.jsonfile - Place it in the
app/directory
Alternatively, copy the example template and fill in your credentials:
cp app/google-services.json.example app/google-services.jsonNote: If you skip Firebase setup, the app will still build and run, but analytics and crash reporting will be disabled.
For release builds, you need to configure signing credentials. Set these as environment variables or in gradle.properties:
# Environment variables
export KEYSTORE_PATH=/path/to/your/keystore.jks
export STORE_PASSWORD=your_store_password
export KEY_ALIAS=your_key_alias
export KEY_PASSWORD=your_key_passwordOr add to gradle.properties (never commit this file):
KEYSTORE_PATH=/path/to/your/keystore.jks
STORE_PASSWORD=your_store_password
KEY_ALIAS=your_key_alias
KEY_PASSWORD=your_key_passwordOpen the project in Android Studio or build from the command line:
# For debug build
./gradlew assembleDebug
# For FOSS debug build (without Firebase)
./gradlew assembleFossDebug
# For release build (requires signing configuration)
./gradlew assembleReleaseEcho Music supports AI-powered lyrics translation. You can configure this in Settings -> AI Settings.
This is the recommended setup for most users.
- Get an API Key from OpenRouter.
- In the app, go to Settings -> AI Settings.
- Ensure Provider is set to OpenRouter.
- Enter your API Key.
Use this for other services like OpenAI, Anthropic, or local LLMs.
- In the app, go to Settings -> AI Settings.
- Select your Provider (e.g., ChatGPT, Gemini, or Custom).
- If using Custom, enter your provider's Base URL.
- Enter your API Key.
local.properties- Contains your local SDK pathapp/google-services.json- Contains Firebase credentials*.keystore- Contains signing keys for release buildsgradle.properties- May contain signing credentials
These files are already listed in .gitignore and should never be committed to version control.
local.properties.example- Template for local propertiesapp/google-services.json.example- Template for Firebase configuration
Make sure you've created local.properties with the correct SDK path.
If you're not using Firebase, you can build the FOSS (Free and Open Source) variant:
./gradlew assembleFossDebugTry cleaning and rebuilding:
./gradlew clean
./gradlew buildPlease read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.