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.