A free, open-source chord sheet and lyrics viewer for Android, designed as an alternative to OnSong. Built specifically for older Android devices (Android 4.4+) like the Samsung Galaxy Tab 2.
- Song Library: Browse and search your collection of chord sheets
- OnSong/ChordPro Support: Import and view songs in OnSong (.onsong) and ChordPro (.cho, .chordpro, .crd, .pro) formats, as well as plain text (.txt)
- Chord Transposition: Transpose songs up or down by semitones
- Auto-Scroll: Hands-free scrolling with adjustable speed
- Font Size Control: Increase or decrease text size for readability
- Dark/Light Theme: Toggle between dark and light modes for different lighting conditions
- Setlist Management: Create and organize setlists for performances
- Setlist Backup: Auto-backup to FreeSong folder, survives app reinstall
- Song Editor: Edit song files directly within the app with adjustable font size
- Chord Format Converter: Toggle between inline chords
[G]lyricsand chords-above-lyrics format while editing - Flat/Sharp Converter: Toggle between sharp (#) and flat (b) chord notation with intelligent enharmonic conversion
- Nashville Number System: Toggle between standard chords and Nashville notation (1-7) in the song viewer
- Key Change Support: Automatic transposition when key changes mid-song (
Key: Dor{key: D}) - Standalone Bass Notation: Support for bass movement notation (
/G,/Bb,/F#) meaning "keep previous chord, move bass" - Chord Reference: Help button in editor showing all supported chord notations
- Chord Move Toolbar: Floating toolbar to move chords character-by-character or word-by-word in the editor
- Delete from Editor: Quick delete button in editor, or auto-delete when saving empty songs
- Swipe Navigation: Navigate between songs with swipe gestures or edge taps (works in library and setlists)
- Bluetooth Page Turner: Support for CubeTurner and similar Bluetooth HID page turners with configurable modes
- OnSong Backup Import: Import songs directly from OnSong backup files (.backup, .zip)
- GitHub Sync: Backup songs and setlists to a GitHub repository for cloud backup and multi-device sync
- Screen Always On: Prevents screen from dimming during song viewing
- Fast Startup: Song metadata caching for ~26x faster app startup after first load
- Android 4.4 (KitKat) or higher
- Storage permission for accessing song files
- Download the latest APK from the Releases page
- Enable "Unknown sources" in your device settings if needed
- Install the APK
- Clone the repository:
git clone https://github.com/doobidoo/FreeSong.git
- Open in Android Studio or build with Gradle:
./gradlew assembleDebug
- Install the APK from
app/build/outputs/apk/debug/
- Place your song files in the
FreeSongfolder on your device's external storage - Supported locations:
/sdcard/FreeSong/,/sdcard/OnSong/,/sdcard/Download/ - Or use the Import button to import from OnSong backup files
FreeSong can import songs and setlists from OnSong backup files (.backup, .zip):
- Songs: Extracts all songs from the OnSong SQLite database (not just loose files)
- Setlists: Automatically imports your setlists and matches songs by title
- Binary Detection: PDF and image files are automatically skipped with a warning
Important for Android 4.4 users: OnSong creates backups using ZIP format version 4.5, which is not fully compatible with Android 4.4. If you get an error like "cannot read local header", you need to repack the backup on a PC:
# On Linux/Mac: mkdir onsong_temp && cd onsong_temp unzip /path/to/OnSong.backup "*.txt" "*.onsong" "*.chordpro" "*.cho" "OnSong.sqlite3" zip -1 ../OnSong_compat.backup * # Then transfer OnSong_compat.backup to your deviceThis creates a compatible ZIP (version 2.0) that works on older Android devices.
- Tap a song in the library to open it
- Long-press for options: Open, Add to Setlist, or Delete
- Swipe left/right or tap screen edges to navigate between songs
- Use the control bar to transpose, adjust font size, or enable auto-scroll
- Double-tap to toggle auto-scroll
- Use the ▼/▲ button to show/hide the speed control bar
- Search finds songs by title or artist name
- Tap Sets to manage your setlists
- Create new setlists with the + button
- Add songs from the library using long-press > "Add to Setlist"
- Reorder songs by dragging
- When viewing songs from a setlist, swipe left/right or tap screen edges to navigate
- Import setlists from OnSong: Setlists are automatically imported from OnSong backups
- Tap Edit while viewing a song to open the editor
- Use A- / A+ buttons to adjust the editor font size (saved between sessions)
- Use the Above/Inline button to convert between chord formats:
- Inline:
[G]Amazing [D]grace(ChordPro style) - Above: Chords on separate line above lyrics (OnSong style)
- Inline:
- Use the -> b / -> # button to convert chord notation:
- Converts between sharp and flat notation (C# ↔ Db, F# ↔ Gb, etc.)
- Useful when you prefer reading flats over sharps
- Use the Delete button to remove the song (also removes from all setlists)
- Make changes and tap Save
- Saving an empty song offers to delete it automatically
- Press Cancel or back to discard changes
FreeSong supports mid-song key changes for songs that modulate:
- Add
Key: Dor{key: D}anywhere in your song to indicate a key change - The viewer shows a visual indicator:
── Key: D ────────────── - All chords after the key change are automatically transposed
- Works with both OnSong and ChordPro formats
- Global transposition (+/-) also applies to key changes
Example:
{key: C} [Verse 1] [C]Amazing [G]grace Key: D [Verse 2] [C]Amazing [G]grace → displays as D, A Toggle Nashville notation in the song viewer with the "1-7" button:
- Converts standard chords to Nashville numbers based on the song's key
- In key of C: C→1, Dm→2m, Em→3m, F→4, G→5, Am→6m, B°→7°
- In key of G: G→1, Am→2m, Bm→3m, C→4, D→5, Em→6m, F#°→7°
- Chord qualities are preserved: Am7 → 6m7, G7 → 5⁷
- If no key is in the song metadata, a key selection dialog appears
- Tap "A-G" to switch back to standard chord notation
Tap the "?" button in the song editor to see all supported chord notations:
- Basic: C, Am, G7, Dm7, Cmaj7
- Extended: Cm7#5, CmMaj7, Cm(maj7), C7alt
- Slash chords: C/E, Am/G, Dm7/C
- Bass movement: /G, /Bb, /F# (keep previous chord, move bass)
- Unicode: C♯, D♭, C△7, C°, Cø
- And many more combinations
When editing a song in inline mode (ChordPro format), a floating toolbar appears when your cursor is inside a chord:
- ◀◀: Move chord one word to the left
- ◀: Move chord one character to the left
- ▶: Move chord one character to the right
- ▶▶: Move chord one word to the right
This makes it easy to align chords precisely above the correct syllables on touch devices.
FreeSong supports Bluetooth page turners like the CubeTurner:
- Tap Pedal button in song view to configure
- Three modes available:
- Scroll: Page up/down (scroll one screen)
- Navigate: Next/previous song (jump between songs)
- Smart: Scrolls to end, then shows warning, then navigates on second press
- Works with touch-based page turners (CubeTurner sends touch/swipe events)
- Tap the sun/moon button in the main screen to toggle dark/light mode
Sync your songs and setlists to a GitHub repository for cloud backup and multi-device synchronization:
- Create a GitHub repository for your songs (e.g.,
my-songs-backup) - Generate a Personal Access Token:
- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Generate a new token with
reposcope
- Configure FreeSong:
- Long-press the sync button (↻) in the header bar
- Enter your token and repository (format:
username/repo-name) - Tap "Test Connection" to verify
- Tap "Save"
- Sync your songs:
- Tap the sync button (↻) to start syncing
- New songs are uploaded to GitHub
- Songs only on GitHub are downloaded to your device
- Conflicts create a
_conflictfile so you can choose which version to keep
Note: Sync is manual only - tap the button when you want to sync.
Song Title Artist Name [Verse] G C Lyrics with chords above D G More lyrics here [Chorus] ... {title: Song Title} {artist: Artist Name} [Verse] [G]Lyrics with [C]inline chords [D]More lyrics [G]here [Chorus] ... Songs in OnSong or ChordPro format saved as .txt files are also supported.
FreeSong automatically handles character encoding:
- Files are read as UTF-8
- OnSong backup imports convert from Mac Roman to UTF-8
- Special characters (umlauts, accents, etc.) are preserved
USE AT YOUR OWN RISK. This software is provided "as is", without warranty of any kind, express or implied. The authors and contributors are not responsible for any damages or data loss that may result from using this application.
- No Support: There is no entitlement to support of any kind. While community discussions are welcome, responses are not guaranteed.
- No Warranty: This software is provided without any warranty. See the LICENSE file for details.
- Data Responsibility: You are responsible for backing up your own song files and data.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
Contributions are welcome! Please feel free to submit issues and pull requests.
- Inspired by OnSong for iOS/Android
- Built for musicians who need a simple, reliable chord sheet viewer