Skip to content

Releases

v2.11.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 11:06

Updates can install themselves, with Shizuku.

  • Install updates through Shizuku, under Settings → About, for anyone who already runs Shizuku. An update then installs with nothing to confirm: no Android install screen, and no Play Protect scan prompt. Shizuku holds an identity you granted it yourself, and an install made with that identity is not asked about, the same as installing from a computer. The row only appears when Shizuku is on the device, the switch asks Shizuku for permission the first time, and an update falls back to Android's own installer whenever Shizuku is not running. It is the same APK from the same Releases page, and Android still refuses one signed with a different key.
  • Why an update asks at all, now written down in docs/INSTALL.md. Android skips its confirmation only for the app recorded as having installed the current copy, so the first in-app update asks and later ones do not. Play Protect is separate: it offers to scan every APK it has not seen, which is every release. Tapping Scan app is the quickest way through it — Google answers in seconds, and that release then installs quietly.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.10.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 09:24

A new free source: lrc.red, Apple Music's lyrics without a token.

  • lrc.red serves Apple Music's word-by-word lyrics — official romanizations and translations included — looked up by the recording's ISRC, with no account or token. Together with the recording identification from v2.9.0 that makes it an exact match for most songs, on any player. It is on by default, including for anyone who installed earlier, and sits with Apple Music in Settings → Where lyrics come from. Its lyrics are credited to lrc.red under the last line, as its terms ask — that line stays even with credits switched off, and tapping it opens lrc.red.
  • Tapping the source line under any song now opens the source, for the sources that have somewhere to go.
  • Installing is explained. docs/INSTALL.md covers the unknown-sources switch, Play Protect's warning, and Android 13's greyed-out notification access switch ("Restricted setting"); the permission screen now says what to do about the last one and opens the right settings page.
  • Developer → What players publish now says who installed the app, which is what decides whether an update asks before installing.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.9.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 02:17

Furigana on every Japanese song, not only word-timed ones.

  • Readings were only drawn over word-by-word lyrics, so a Japanese song from a line-timed or unsynced source — most of what LRCLIB and Spotify return, and Musixmatch's line-timed songs — showed none whatever the setting said. They show now, placed over the kanji alone (帰る wears かえ over 帰), and a reading is never split from its characters when a line wraps.
  • Android Auto: some phones list only apps Google Play is recorded as having installed, whatever Unknown sources says. docs/ANDROID-AUTO.md now says how to install that way (adb install -i com.android.vending, or KingInstaller) and that an update installed from inside the app undoes it.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.9.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 03:43

Pick the source for a song, and exact matches from more than Spotify.

  • Settings → This track → Lyrics from lists every source and shows the one you pick for that song from then on — say Spotify's line timing over a word-by-word match made for a different cut. Automatic hands the choice back to the ranking. Kept on this phone.
  • Deezer, TIDAL and Amazon Music now get the same exact lookups Spotify always had. Each publishes its own track id; a Deezer id is turned into the recording's ISRC on the phone, with no account, and TIDAL and Amazon ids are resolved by your cache server. Every source then asks for the recording itself instead of searching for a title.
  • YouTube Music and anything else that publishes no id is identified by name: MusicBrainz and Deezer are asked for a recording whose title, artist and length all agree, and the match is remembered so each song is identified once. A song this finds after the sources came up empty is looked up again straight away.
  • Settings → Where lyrics come from → Identify the recording switches all of this off. Only the names and the player's id leave the phone.
  • Spotify's full-size cover no longer needs a token. The Spotify app publishes its address with every track, and it is used before any cover search.
  • Fixed: Look this track up again, or changing a reading quickly, could leave an earlier result on screen.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.8.0

Choose a tag to compare

@github-actions github-actions released this 22 Oct 01:37

See what your player tells Android.

  • Settings → Developer → What players publish lists every media session on the phone with everything it publishes: the title, artist and ids Melisma reads, the playback state, every metadata field, the session's extras and the queue around the playing song. Each session says whether the lyrics follow it and, if not, why it was passed over. Copy the report puts it on the clipboard for a bug report. Nothing is sent anywhere.
  • If lyrics stop appearing and the player's name at the top of the screen is not your music app, another app is publishing a media session of its own. Switch it off under Settings → Players to follow, and send the report so the app can learn to pick the right one by itself.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.7.2

Choose a tag to compare

@github-actions github-actions released this 30 Sep 01:25

Romanized lines stay on the screen.

  • A romanized line no longer runs off the edge when the lyrics time several characters as one syllable, as Apple Music does with phrases like 用言語完整表. The reading now breaks onto the next row, and with Show original under romanization on, each character stays under its own reading.
  • Lines that arrive as a single long syllable keep their original characters underneath when they wrap, instead of losing them.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.7.1

Choose a tag to compare

@github-actions github-actions released this 28 Sep 21:42

Free reading: a way back to the line being sung.

  • A Now playing pill appears at the top or bottom edge when free reading has left the line being sung off the page, with an arrow pointing to it. Tap it and the page glides there and stays; the pill goes once the line is in view. Scroll back in the top bar, or a tap on an empty spot, glides the same way.
  • A new song starting mid-glide now opens on its own playing line instead of drifting toward where the last song was.

Apple Music lyrics, from Spicy Lyrics 6.3.98.

  • A backing vocal's romanization and translation now show under the backing vocal, instead of being added to the main line's.
  • A line written only in romanization is no longer dropped, and shows once with Show original under romanization on.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.7.0

Choose a tag to compare

@github-actions github-actions released this 28 Sep 19:42

Free reading: every line lit, and the lyrics stay where you scroll them.

  • Tap the book button in the top bar to read the whole song at your own pace. Every line is bright and sharp, nothing is dimmed, blurred or hidden, and the page no longer scrolls to follow the song, so you can scroll anywhere and stay there.
  • The line being sung still animates, so you can always see where the song is. Scroll back in the top bar, or a tap on an empty spot, brings it into view; tapping a line still jumps the song to it.
  • Tap the book again to go back to following the song.
  • Only the main screen reads freely; popup lyrics and Android Auto keep following the song.
  • Unsynced lyrics no longer keep redrawing after you scroll them while paused.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.6.2

Choose a tag to compare

@github-actions github-actions released this 25 Sep 20:56

Sing 了 as liǎo, for a song whose singer does.

  • Settings → This track → Sing 了 as liǎo reads every particle 了 in the playing song as liǎo instead of le, for singers who sing it that way throughout. Words like 了解 keep their usual reading. It appears for Mandarin songs that have a 了, and the choice is kept on this phone. Held notes already read liǎo on their own in word-synced lyrics.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.

v2.6.1

Choose a tag to compare

@github-actions github-actions released this 25 Sep 19:46

Korean romanization works again, and Chinese reads better, especially in Traditional characters.

  • Korean songs are romanized again. 2.6.0 mistook Korean lyrics for Taiwanese Hokkien and left them unromanized. Hokkien is now only considered for songs written in Chinese characters, and a Korean or English phrase inside a Hokkien song is romanized as usual.
  • Songs in Traditional characters read by the word, as Simplified ones already did: 音樂 is yīn yuè and 銀行 yín háng, no longer yīn lè and yín xíng.
  • 的, 了 and 着 read as particles where a rare word used to take them: 愛你的真心 is de zhēn xīn, not dí zhēn xīn.
  • A held 了 is sung liǎo, and now reads that way in word-synced lyrics. Sung in passing it stays le.

Download the APK below and open it; Android will ask you to allow installing from this source. Grant notification access on first run — that is how it sees what is playing.

Signed with the project release key; arm64-v8a, minSdk 29.