Skip to content

v0.3.0 — Tune panel + one-click preset install + autostart + hardened CSP

Choose a tag to compare

@ALunfb ALunfb released this 24 Apr 00:45
· 26 commits to main since this release

Follow-up to v0.2.0. The companion is now a legitimately polished desktop app — tuneable visualizer, one-click preset installs, start-on-login with silent tray boot, locked-down Content Security Policy.

Install

  1. Download `tracklist-link.exe` below.
  2. Double-click to run. A 1280×820 window + tray icon appear.
  3. Tray → Pair dashboard pairs with your Tracklist account in one click.
  4. Browse music.blackpearl.gg/visualizers for presets — click Install URL, paste into the companion's Presets tab → Install. The new preset appears in the Visualizer dropdown with a ◯ prefix.

What's new since v0.2.0

Visualizer tuning

  • Tune panel (Visualizer → Tune button): live sliders for audio gain (0.1×-5×), attack + release envelope smoothing, spectrum tilt (bass ↔ treble), noise gate, auto-cycle interval (5-300 s), preset blend time (0-5 s). All persist to localStorage.
  • Layout fix: canvas no longer squishes vertically when Tune is open; row pins to `min(70vh, 560px)`.

Preset management

  • Install from URL: paste any HTTPS preset URL → fetch + validate + save, with path-traversal + extension + size + JSON-parse guards.
  • Visualizer tab merges user + bundled presets: installed `.json` files appear with a ◯ prefix at the top of the dropdown. Rescan button reloads the folder without restart.

Startup behavior

  • Launch on Windows startup: Settings toggle writes HKCU...\Run — no admin needed.
  • Start minimized to tray: pairs with autostart for a silent login boot.
  • Window state persistence: size + position restore on next launch.

Security

  • Hardened CSP: `script-src 'self' 'unsafe-eval'` (Butterchurn's compiler needs eval), everything else locked — `object-src 'none'`, `frame-ancestors 'none'`, `base-uri 'self'`. Defense-in-depth against preset-injected XSS.

Fixes

  • Visualizer crash: `sampleAudio` override is now Butterchurn-version-tolerant (iterates known stereo-split fields instead of hard-coding mono).
  • Settings toggle: knob slides correctly between states now.
  • Default window 960×640 → 1280×820.

Platform-side (music.blackpearl.gg)

Shipped alongside:

  • Preset gallery (/visualizers): 1738 MIT-licensed presets, search / author filter / reactivity filter (bass / mid / treb / vol) / sort / paginate. Reactivity tags computed at build time by scanning each preset's compiled equations for `a.bass` / `a.mid` / `a.treb` / `a.vol` references.
  • Offline fallback: streamer pages, overlay (opt-in `?offline=1`), and discover cards all show the last session's tracks when the stream is down.

Verify the binary

git clone https://github.com/ALunfb/tracklist-link.git
cd tracklist-link
git checkout v0.3.0
cd frontend && npm install && npm run build && cd ..
cargo build --release
sha256sum target/release/tracklist-link.exe