github Nikita-sud/latentjam v0.6.0
LatentJam 0.6.0

latest releases: v0.9.3, v0.9.2, v0.9.1...
one month ago

SMART now knows who 350,000 artists are, search understands twenty languages and the years you type, and the app is a quarter smaller. Still fully on-device: no account, no catalogue, no network — nothing about your listening leaves the phone.

New

  • 🧠 SMART knows 350,000 artists. An offline teacher wrote about the 350,000 artists in the bundled MusicBrainz and Wikidata list; the app carries what it wrote at 21 bytes per artist, and a small adapter guesses for artists outside the pack. Queues follow the seed's style, language and era more closely, and SMART and search place a song without a year in its artist's decade.
  • 📈 Smoother queues. SMART avoids big jumps in energy between neighbouring songs (17–23 % fewer on the benchmark, with no loss in accuracy), and a song has to actually sound close to earn a bonus for its tags — no more film themes after an orchestral pop cover.
  • 🌍 Search in twenty languages. A new 5 MB multilingual text encoder finds the English equivalent of a query in any of 20 languages 95 % of the time instead of 38 %, and a query such as "Romanian songs" now fills 82 % of its top ten with songs in that language instead of 16 %.
  • 📅 Years and decades in search. 80s, песни 80-х, 1985, '85, rock 80s, 80年代 and their kin keep results to those years, read from the tags. A query that is only a time lists that range, most played first; titles like "Summer of '69" still lead, and names such as "50 Cent" or "blink-182" are never read as years.
  • 💿 Albums play in track order (#2), disc by disc, with unnumbered tracks by title. A leading "The" no longer decides the shelf: The Beatles sort under B.
  • 🎤 A collaboration appears under every artist it names (#3): "Gorillaz, Elton John" and "Dr. Dre feat. Snoop Dogg" split, while bands such as "Earth, Wind & Fire" stay whole, checked against the bundled MusicBrainz list.
  • 🔀 Shuffle all also floats over For You and Playlists.
  • 📦 A quarter smaller. The models take 50 MB instead of 87 MB, the Android download is 69 MB instead of 94 and the iOS one 59 MB instead of 84: the audio encoder runs in INT8 at half its size, the SMART nets drop from 24 MB to 10, the artist index from 21.5 MB to 12.
  • 📝 The listening history records how each song started — your pick, the previous one ending, a skip, a repeat, or SMART with its place in the queue — and the playlist, album, artist, genre or folder playback began from. Local backups carry it too. All of it stays on the device.

Fixed

  • "Play music on LatentJam" from a voice assistant resumes the music instead of doing nothing
  • A request from Android Auto, a voice search or another app that finds nothing no longer wipes the queue
  • Pressing Back while the artist chooser, the audio output sheet or the lyrics sheet closed itself could freeze the app behind an invisible layer
  • Two albums that share a title and an artist — Weezer's two "Weezer" albums — stay two albums instead of playing interleaved
  • On iOS, songs from the Music library carry their release year, so a year search finds them
  • A year search no longer hides an older song behind newer matches
  • A generic artist name such as "Traditional" or "Unknown" no longer borrows another artist's language and era
  • Resuming from a headset or the widget keeps the "Playing from" line, and a queue started from Android Auto or another app no longer shows the app's previous source
  • The alphabet rail keeps its letter bubble after a page change and stays put when you come back from the player, and a title rail appears only over titles that really are alphabetical
  • A queue row's menu opens the song's sheet directly
  • Listening history: tapping the playing row counts as a new listen, clearing the queue closes the last one, and a song resumed after leaving the app no longer swallows the next replay

Install (Android)

Download LatentJam-v0.6.0-arm64.apk (69 MB — right for virtually every phone from the last decade; if unsure, pick this one). LatentJam-v0.6.0-armv7.apk exists for old 32-bit devices. Open it on your phone — it upgrades any earlier release from here in place. You'll need to allow installing unknown apps, and tap through Play Protect's sideload warning. Requires Android 7.0+.

After the update, the app re-reads every song's text once in the background with the new encoder, and the map lays itself out anew.

Install (iOS)

LatentJam-v0.6.0-unsigned.ipa is an unsigned build: sideload it with AltStore, Sideloadly or similar (they re-sign it with your Apple ID). Built for iOS 15+, arm64.

F-Droid

LatentJam is on F-Droid; it builds this version from source on its own schedule, usually within a few days. That build is signed with F-Droid's key rather than the one used here, so the two cannot upgrade each other: to switch, export your data first (Settings → Local backup), uninstall, then install from F-Droid and restore.

⚠️ Still an early experimental build for sideloading — not a store release. SMART becomes good once a chunk of your library has been analysed in the background.

Don't miss a new latentjam release

NewReleases is sending notifications on new releases.