Skip to content

v0.7.1 — Preset sync across all visualizer instances

Choose a tag to compare

@ALunfb ALunfb released this 24 Apr 06:37
· 13 commits to main since this release
f004a1e

What's new

All your visualizer instances now show the same preset at the same time.

v0.7.0 synced Tune-panel settings (gain, tilt, etc.) but each visualizer (companion app, web /visualizer in a browser, OBS Browser Source pointed at /visualizer) was still picking its own random preset independently — three different visuals on screen at once, making the tool useless.

This release adds a new viz/preset WebSocket broadcast. Every time the companion loads a preset (auto-cycle or manual pick), it pushes the preset name to every connected client. All web instances mirror the companion's selection within one frame.

Bonus: a snapshot is sent the instant a client connects, so a freshly-opened OBS Browser Source lands on the companion's current preset immediately — no waiting for the next cycle.

How to install

  1. Download tracklist-link.exe below.
  2. Close the currently-running companion (right-click the tray icon → Quit).
  3. Replace your existing tracklist-link.exe with this one.
  4. Launch it. Your next auto-cycle or manual preset pick should immediately propagate to any /visualizer page you have open.

How to verify

  • Open the companion. Go to the Visualizer tab.
  • In a second browser window, open your /visualizer?token=… URL.
  • Optionally add it as an OBS Browser Source too.
  • Click a preset in the companion. All visualizers should jump to the same preset within a frame.
  • Enable auto-cycle — all instances cycle together.

Technical notes

  • New Topic::VizPreset, ServerMessage::VizPreset, and VizPreset struct.
  • set_viz_preset Tauri command invoked from the frontend's loadPreset effect.
  • Snapshot sent in the post-Hello handshake (empty name = skip, so nothing overrides the client's initial pick before the companion has loaded anything).
  • Always-on broadcast (like Heartbeat + VizSettings), no subscription needed.
  • Backward compatible: clients without the topic handler silently ignore the unknown kind.