Skip to content

v0.6.0 — One-click OBS install + silence detection + more polish

Choose a tag to compare

@ALunfb ALunfb released this 24 Apr 02:25
· 21 commits to main since this release

Big release. The companion's "Add to OBS" button becomes a real one-click install via obs-websocket, silence detection joins beat detection on the reactive-signals bus, and a handful of web-side features round out the stats and overlay stories.

Companion-side (tracklist-link v0.6.0)

One-click OBS install

  • New "One-click install" tab in the Add-to-OBS modal. Paste your OBS WebSocket password (from Tools → WebSocket Server Settings → Show Connect Info), hit Connect to OBS, then Install into "". The companion creates a Browser Source pointing at the visualizer URL, places it in your active scene, tells you it's done.
  • Remember-password option stores it in the companion's localStorage (Windows user profile scope).
  • Connection errors map to actionable messages: "OBS not running," "WebSocket server not enabled," "wrong password." Not silent.
  • The "Copy URL" tab remains for streamers who prefer to paste manually or use Streamlabs.
  • Zero new Rust dependencies — hand-rolled obs-websocket v5 client (~200 LOC) over the native WebSocket API that ships in Tauri's webview.

Silence detection

  • Second reactive-signal producer on the bus alongside beat detection. Emits `audio/silence` events on silence entry + exit with hysteresis — 1.5 s enter debounce, 250 ms exit debounce, so single dropouts don't trip and a single kick wakes it.
  • Edge-triggered, not per-frame. State-change semantics match future CS2 GSI events so the same consumers can bind.
  • Default RMS threshold 0.02 (tuneable in a future settings pass).

Other

  • CSP expanded to allow `ws:` in connect-src — needed for obs-websocket, nothing else. Everything else still locked.
  • docs/VERIFICATION_CHECKLIST.md captures the 7-step smoke test for this multi-commit landing.

Web-side (shipped alongside, auto-deploys)

Sessions BPM filter

  • /sessions accepts `?bpmMin=&bpmMax=` URL params. The Tempo panel's bucket rows link into this; click a bucket, see every session that played at least one track in that tempo range.
  • Active filter shows as a dismissible pill so the streamer always knows why results are scoped.

Mood chapter on /stats

  • Three-axis horizontal-rail view of the streamer's Spotify audio-features averages: Energy, Danceability, Valence (musical positivity). Coarse derived label at the top ("Dancey intense & moody," "Warm & melodic," etc.) as an identity hook.

Overlay ticker

  • `?ticker=bottom` renders a scrolling marquee under the card with the last 10 tracks + artists. CSS keyframe, 30 s loop, duplicated content so the scroll is seamless. Opt-in — most streamers want the minimal card, but VOD viewers joining mid-song love the backfill context.

Verify

After downloading the binary:

  1. Open it. Paste your OBS WebSocket password (Tools → WebSocket Server Settings → Show Connect Info) into the One-click install tab.
  2. Click Connect to OBSInstall into "".
  3. Check OBS — a new "Tracklist Visualizer " Browser Source should be in your scene, rendered at 1920 × 1080.
  4. Play audio. The viz flashes on kicks. When you pause, silence is detected after 1.5 s (no consumer UI yet — that's a future feature).

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