Stemify iOS 1.1 and WebUI updates, repo restructure into desktop/ios/server/web

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
cdnutterandClaude Sonnet 5.5 committed 2026-10-24 17:08:51 -07:00
1 parent 894dd5a695
commit df5d847169
157 files changed
+3920 -727

No files matched your search

+2 -2
View File
@@ -2,5 +2,5 @@
*
!server/stemd.py
!server/stemd-requirements.txt
!stemify/*.py
!stemify/worker/*.py
!desktop/stemify/*.py
!desktop/stemify/worker/*.py
+11 -7
View File
@@ -78,7 +78,7 @@ mkdir -p /srv/stemify/stemserve/cache \
chown -R 1000:1000 /srv/stemify/stemserve /srv/stemify/stemd
```
**stemd** builds from the repo root because it uses the `stemify` package. Copy the repo (at least `stemify/`, `server/` and `.dockerignore`) to `/srv/stemify/stemd/src`, then:
**stemd** builds from the repo root because it uses the `stemify` package. Copy the repo (at least `desktop/stemify/`, `server/` and `.dockerignore`) to `/srv/stemify/stemd/src`, then:
```sh
docker build -f /srv/stemify/stemd/src/server/stemd.Dockerfile -t stemd /srv/stemify/stemd/src
@@ -241,9 +241,10 @@ It's plain HTML and JavaScript in `web/` with no build step. To run it somewhere
## Desktop
Linux, Python 3.12 and [uv](https://docs.astral.sh/uv/). PyTorch defaults to ROCm (AMD); point the torch index in `pyproject.toml` elsewhere for NVIDIA or CPU.
Linux, Python 3.12 and [uv](https://docs.astral.sh/uv/). PyTorch defaults to ROCm (AMD); point the torch index in `desktop/pyproject.toml` elsewhere for NVIDIA or CPU.
```sh
cd desktop
uv sync
uv run stemify # the drag-and-drop separator
uv run stemify-player # the player
@@ -252,7 +253,7 @@ uv run stemify-player # the player
**Stemify** is the separator. Drop files on the window and each one is separated with your last-used model and device. You get a lane per stem with a waveform, solo, mute, gain and export (everything, one stem, or the current mix, as WAV, FLAC or MP3). Separation runs in its own process, results are cached, and it works on AMD, NVIDIA and CPU.
**Stemify Player** is your Plex library and its stems, dressed up as Microsoft Excel 2016. Sheets are your library, the zoom slider is master volume, Cell Styles are mix presets, and Undo/Redo skip songs. It reports plays to Plex, supports media keys and MPRIS, and remembers your queue and mix. More in [`stemify/player/README.md`](stemify/player/README.md).
**Stemify Player** is your Plex library and its stems, dressed up as Microsoft Excel 2016. Sheets are your library, the zoom slider is master volume, Cell Styles are mix presets, and Undo/Redo skip songs. It reports plays to Plex, supports media keys and MPRIS, and remembers your queue and mix. More in [`desktop/stemify/player/README.md`](desktop/stemify/player/README.md).
## Stem Now
@@ -319,12 +320,13 @@ ios/ iOS and CarPlay app (SwiftUI, xcodegen project)
android/ Android and Android Auto app (Kotlin, Compose, Media3)
server/ stemd.py, stemserve.py, Dockerfiles, compose file
web/ web player (served by stemserve)
stemify/ desktop separator (PySide6 + QML) and shared separation code
desktop/ desktop apps (uv project)
stemify/ separator (PySide6 + QML) and shared separation code
worker/ Demucs and RoFormer backends, run in a separate process
player/ Stemify Player
library_core.py folder layout rules shared with stemd
scripts/ install-desktop.sh
specs.txt original design doc for the desktop separator
scripts/ install-desktop.sh
docs/specs.txt original design doc for the desktop separator
```
## Building and testing
@@ -333,7 +335,8 @@ specs.txt original design doc for the desktop separator
```sh
cd ios
scripts/build-ipa.sh # unsigned build/stemify-<version>.ipa
scripts/build-ipa.sh # unsigned build/public/stemify-<version>.ipa
scripts/build-remote.sh # from DevOps: build on White-M1 and pull IPAs back to build/{public,prov}
xcodegen generate # or open Stemify.xcodeproj in Xcode
```
@@ -352,6 +355,7 @@ The cache and index tests use a stemserve on `localhost:8765` and skip themselve
**Desktop** can be checked without a window:
```sh
cd desktop
QT_QPA_PLATFORM=offscreen uv run stemify-player --no-mpris --screenshot /tmp/p.png@5 --quit-after 6
```
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 157 files, more files were not shown because too many files have changed in this diff. Show more