Plexamp-style sort menu on each library list: pick a field, pick it again
to flip direction. Choice is saved per screen.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Shuffle used only the pages loaded so far (the A and B songs). It now
asks Plex for 1000 random tracks from the whole library.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Mini player floats as a solid card and every screen leaves room for it,
so it no longer covers the bottom of lists
- More space between title and scrubber; panel switches animate
- Play button no longer spins forever after changing tracks: the engine
now always reports buffering on load
- Springier button presses and play/pause symbol transitions
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
SwiftUI port of the Android app under ios/, with CarPlay browse and
Now Playing, Siri play-media intents, and a build-ipa.sh script that
makes an unsigned IPA for sideloading. README gets an iOS section and
the vibecoded disclaimer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Python package stemroller/ -> stemify/, Android package com.stemroller.mobile ->
com.stemify.mobile, app names, QML module, icons, desktop entries, MPRIS and Plex
product names
- Done-markers are now .stemify.json; stemd renames the old ones once at startup so
songs separated before the rename aren't separated again
- A top-level README covering the server, the Android and Android Auto app, the EQ,
Stem Now and the desktop apps
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- stemroller/: PySide6/QML desktop app and player for separating music into stems
- android/: Plex music player that plays per-stem mixes, with Android Auto support,
a graphic + parametric (Equalizer APO-style) EQ, and offline downloads
- server/: stemserve (serves stems to the app) and stemd (separates the library on
the server's GPU, with "Stem Now" priority requests)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>