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:
1 parent
894dd5a695
commit
df5d847169
157 files changed
+3935
-742
No files matched your search
+2
-2
@@ -2,5 +2,5 @@
|
||||
*
|
||||
!server/stemd.py
|
||||
!server/stemd-requirements.txt
|
||||
!stemify/*.py
|
||||
!stemify/worker/*.py
|
||||
!desktop/stemify/*.py
|
||||
!desktop/stemify/worker/*.py
|
||||
@@ -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
|
||||
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
|
||||
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
|
||||
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.
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.
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
Reference in new issue
Block a user