Skip to content

Releases: Panther114/Prismatic

Prismatic 2.1.13

Choose a tag to compare

@github-actions github-actions released this 07 Aug 13:19

Prismatic 2.1.13

Quiet listening

Much lighter on CPU and RAM while music plays.

  • Frozen Now Playing backdrop during playback — the visualizer draws a single static frame when a track starts and only animates while paused; Studio exports keep the full animation
  • No WebAudio graph while listening — the analyser/recording graph is only built when Studio export needs it, so the WebRTC audio thread stays off during normal playback
  • Calmer UI clock — time sync rides the native ~4 Hz event instead of re-rendering the whole app 60×/s
  • Waveform memory cache capped (LRU) so long listening sessions stop accumulating

CPU while playing drops from ~8% to ~1%; RAM no longer grows with the waveform cache.

Upgrade

Install 2.1.13. Library under Music/Prismatic is preserved.


Prismatic 2.1.12

Playlists, redesigned

The Playlists page is now a browsable collection instead of a dense list.

  • Tile grid — each playlist is a big mosaic-artwork card (albums-style) with Play and Shuffle buttons that appear on the cover
  • Open a playlist — click a card to see the songs inside; click any song to start playing it. View all playlists takes you back
  • Sidebar quick play — every playlist in the left sidebar now has its own Play and Shuffle buttons
  • Zip export, video export, edit, and delete moved into the playlist's song view

Upgrade

Install 2.1.12. Library under Music/Prismatic is preserved.


Prismatic 2.1.11

Playlist zip transfer (replaces cloud share)

No server required for playlist transfer — no Railway, no share codes.

  • Archive (zip) icon on a playlist → packs its audio into {playlist name}.zip (save dialog)
  • Import zip → pick a zip; audio is added to your library and a playlist is forged from the zip file name

Removed

  • 4-digit cloud share / redeem code
  • Share host uploads and related UI

Upgrade

Install 2.1.11. Library under Music/Prismatic is preserved.

Prismatic 2.1.12

Choose a tag to compare

@github-actions github-actions released this 07 Aug 12:31

Prismatic 2.1.12

Playlists, redesigned

The Playlists page is now a browsable collection instead of a dense list.

  • Tile grid — each playlist is a big mosaic-artwork card (albums-style) with Play and Shuffle buttons that appear on the cover
  • Open a playlist — click a card to see the songs inside; click any song to start playing it. View all playlists takes you back
  • Sidebar quick play — every playlist in the left sidebar now has its own Play and Shuffle buttons
  • Zip export, video export, edit, and delete moved into the playlist's song view

Upgrade

Install 2.1.12. Library under Music/Prismatic is preserved.


Prismatic 2.1.11

Playlist zip transfer (replaces cloud share)

No server required for playlist transfer — no Railway, no share codes.

  • Archive (zip) icon on a playlist → packs its audio into {playlist name}.zip (save dialog)
  • Import zip → pick a zip; audio is added to your library and a playlist is forged from the zip file name

Removed

  • 4-digit cloud share / redeem code
  • Share host uploads and related UI

Upgrade

Install 2.1.11. Library under Music/Prismatic is preserved.

Prismatic 2.1.11

Choose a tag to compare

@github-actions github-actions released this 28 Jul 12:14

Prismatic 2.1.11

Playlist zip transfer (replaces cloud share)

No server required for playlist transfer — no Railway, no share codes.

  • Archive (zip) icon on a playlist → packs its audio into {playlist name}.zip (save dialog)
  • Import zip → pick a zip; audio is added to your library and a playlist is forged from the zip file name

Removed

  • 4-digit cloud share / redeem code
  • Share host uploads and related UI

Upgrade

Install 2.1.11. Library under Music/Prismatic is preserved.

Prismatic 2.1.10

Choose a tag to compare

@github-actions github-actions released this 28 Jul 10:41

Prismatic 2.1.10

Fix: share upload vs Railway 5‑minute body limit

Uploading an entire playlist in one multipart POST could not finish on typical home upload speeds before Railway (and Node’s default) cut the body at 5 minutes — error:

request or response body error for url (…/api/playlist-share)

New upload protocol (per track)

  1. POST /api/playlist-share/session — metadata only
  2. PUT /api/playlist-share/:code/tracks/:indexone audio file per request
  3. POST /api/playlist-share/:code/complete — finalize for redeem

Each track finishes well under the 5‑minute ceiling; large playlists no longer fail deterministically.

Speed + UI

  • Streams each file from disk (Part::file)
  • Progress bar + percent + debug line (track index, bytes, elapsed)
  • Share still runs off the UI thread (no freeze)
  • Node requestTimeout disabled; heap raised to 192 MB on Railway

Upgrade

Install 2.1.10. Redeploy Railway so the new share API is live before sharing from the new desktop build.

Prismatic 2.1.9

Choose a tag to compare

@github-actions github-actions released this 28 Jul 09:48

Prismatic 2.1.9

Speed + freeze (share)

2.1.7 felt frozen and ~30s per track. Two separate problems:

Issue Cause Fix
Freeze Blocking Rust share command held the UI thread 2.1.8+: background spawn_blocking + live progress events
Slow download Wake Railway on every track + push each file through JS IPC twice 2.1.9: wake once; stream download straight to library disk
Slow upload Load every MP3 into RAM and clone for multipart 2.1.9: stream with Part::file from disk

Also in 2.1.8+

  • Edit/create playlist dialog above the player (Save not covered)
  • Faster CI release builds

Upgrade

Install 2.1.9. Do not stay on 2.1.7 for share.

Prismatic 2.1.8

Choose a tag to compare

@github-actions github-actions released this 28 Jul 06:30

Prismatic 2.1.8

Fixes

  1. Share no longer freezes the app — packing/upload runs on a background thread with live progress events (share-progress). The share dialog keeps updating instead of going non-responsive during “Uploading…”.
  2. Edit/create playlist Save bar — dialogs sit above the bottom player and leave bottom padding so Save / Cancel are never covered.
  3. Faster release builds — CI no longer double-runs tests + full pnpm check; Rust uses thin LTO (was full LTO).

Share reliability

Desktop share still uses native Rust HTTP to Railway (not WebView fetch), with cold-start wake + retries.

Upgrade

Install 2.1.8. Library under Music/Prismatic is preserved.

Prismatic 2.1.7

Choose a tag to compare

@github-actions github-actions released this 28 Jul 05:59

Prismatic 2.1.7

Fix: Share stuck on “cold start — retry…”

Desktop was calling the Railway share API with WebView fetch, which keeps failing (Failed to fetch / endless cold-start retries) even when the server is healthy.

Desktop share now uses native HTTP (Rust reqwest):

  • Wake, upload, manifest lookup, and download all run outside the WebView
  • Tracks are read from disk in Rust and multipart-uploaded directly
  • Retries still handle Railway Serverless cold boots

Upgrade

Install 2.1.7. Library data is preserved. Prefer this over 2.1.5/2.1.6 for share.

Prismatic 2.1.6

Choose a tag to compare

@github-actions github-actions released this 28 Jul 04:34

Prismatic 2.1.6

Fix: Share “Failed to fetch”

Desktop share was packing tracks with fetch(asset://…) which WebView CSP blocks — so share failed before reaching Railway.

  • Read track bytes through a Rust command (read_track_bytes) instead of webview fetch.
  • Allow https://prismatic.up.railway.app and asset hosts in CSP connect-src.
  • Clearer errors when the share server is unreachable / still cold-starting.

Share UI (2.1.5)

Immediate share dialog with progress, large code, and copy button.

Upgrade

Install 2.1.6 over any previous build; library data is preserved.

Prismatic 2.1.5

Choose a tag to compare

@github-actions github-actions released this 28 Jul 04:17

Prismatic 2.1.5

Share UI

  • Share dialog opens immediately when you click Share on a playlist.
  • Shows live progress: packing tracks, waking the share server, uploading.
  • On success, shows the 4-digit code large and selectable, with Copy code.
  • On failure, shows the error inside the same dialog (not only a corner toast).

Notes

  • Cloud remains share-only at https://prismatic.up.railway.app (enable Railway Serverless for idle RAM ≈ 0).
  • Auto-update from GitHub Releases is unchanged.

Upgrade

Installing 2.1.5 preserves Music/Prismatic library data.

Prismatic 2.1.4

Choose a tag to compare

@github-actions github-actions released this 28 Jul 03:50

Prismatic 2.1.4

Railway: share-only + cold start

  • Website removed from Railway — the cloud service no longer serves the SPA. It is a playlist-share API only (/api/health, /api/playlist-share/*).
  • Desktop is the product — library, playback, studio, and auto-update stay on the desktop app (GitHub Releases).
  • Cold-start friendly client — share/import wakes https://prismatic.up.railway.app (health ping + retries on 502/network) before upload/download so Railway Serverless can sleep when idle.
  • Disk-backed share (from 2.1.3) + single concurrent upload + 128 MB heap cap kept.

You should enable (one toggle, huge idle savings)

Railway → service → Settings → Serverless → Enable (App Sleeping).
Until that is on, the container stays warm and still uses background RAM.

Auto-update

Unchanged: signed updates from GitHub Releases. Install 2.1.4 once; later versions update in-app.

Upgrade

Library data under Music/Prismatic is preserved.