Multi-platform song prompter application for Linux, Windows and Android.
  • C# 95.5%
  • Shell 4.5%
Find a file
2026-10-15 23:52:24 +02:00
.vscode chore: migration from godot 4.4 to 4.6 2026-04-06 20:46:32 +02:00
project fix: sort songs and setlists. 2026-10-15 23:52:24 +02:00
test_data chore: adapt test data to new data format 2026-10-12 16:02:41 +02:00
tools feat: compile libgit2 for android and add it to the project. 2026-10-12 16:02:41 +02:00
.editorconfig feat: compile libgit2 for android and add it to the project. 2026-10-12 16:02:41 +02:00
.gitattributes feat: port song prompter to Godot 2025-03-31 21:12:30 +02:00
.gitignore feat: compile libgit2 for android and add it to the project. 2026-10-12 16:02:41 +02:00
README.md docs: add info about how to configure android release build. 2026-10-12 16:02:41 +02:00

Song Prompter

Multi-platform song prompter application for Windows and Android. This app aims to make a prompter using a simple cell phone. To fit in a small screen, it scroll the song using a metronome. You can add new songs using a markdown like format and make playlists by organizing them in folder.

Requirements

For Android export:

  • OpenJDK
    • sudo apt install openjdk-17-jdk
    • Set 'export/android/java_sdk_path' in Editor Settings to openjdk path '/usr/lib/jvm/java-17-openjdk-amd64/'
  • Android SDK
    • Install command line tools in ~/opt/android_sdk/: https://developer.android.com/tools/sdkmanager
    • cd ~/opt/android_sdk/
    • cmdline-tools/latest/bin/sdkmanager --sdk_root=sdk/ "platform-tools" "build-tools;35.0.1" "platforms;android-35" "cmdline-tools;latest" "cmake;3.10.2.4988404" "ndk;28.1.13356709"
    • Set 'export/android/android_sdk_path' in Editor Settings to sdk path '~/opt/android_sdk/sdk/'

Android release build

A release export must be signed with a release keystore.

  1. Create the keystore once, outside of the repository (keytool comes with OpenJDK):

    keytool -genkeypair -v -keystore ~/.local/share/godot/keystores/release.keystore -storetype PKCS12 -alias songprompter -keyalg RSA -keysize 4096 -validity 10000 -dname "CN=Your Name, O=Song Prompter"
    

    With PKCS12, the store and key passwords must be the same.

  2. In Godot, open Project > Export > Android > Options > Keystore and set:

    • Release: absolute path to the keystore file.
    • Release User: the alias (songprompter).
    • Release Password: the keystore password.

    These values are saved in project/.godot/export_credentials.cfg, which is not versioned.

  3. Export with "Export Project" and "Export With Debug" unchecked, or from the command line:

    godot --headless --path project --export-release "Android" .builds/android/SongPrompter.apk
    
  4. Check the signature:

    ~/opt/android_sdk/sdk/build-tools/35.0.1/apksigner verify --print-certs project/.builds/android/SongPrompter.apk
    

Keep a backup of the keystore and its password outside of your machine: .godot/ is a cache folder that can be deleted, and Android only accepts updates signed with the same key. Losing it means users must uninstall the app (and lose its data) to install a new version. For the same reason, a device with a debug build installed must uninstall it before installing the first release build.