Skip to content

v0.4.1 — tuneable beat detection + live BPM + analyzer punch

Choose a tag to compare

@ALunfb ALunfb released this 24 Apr 01:28
· 23 commits to main since this release

Tuning pass on v0.4.0's beat detection framework. Three quality-of-life wins, plus a plan doc for the stats-page tempo panel.

Install / upgrade

Download `tracklist-link.exe` below. Drop-in replacement for v0.4.0 — your existing config (paired token, autostart, preset folder) survives.

What changed since v0.4.0

Beat detection quality

  • Sensitivity slider in the Visualizer Tune panel. Drops beat detection threshold from the previous hardcoded 1.6× stddev all the way to 0.5× if you want a hot trigger. Critical for streamers running Spotify at reduced volume under voice chat — the v0.4.0 default was tuned for "music at full blast," which nobody actually does.
  • Slider applies live via Arc — no restart needed. Persists to config.

Visualizer reactivity

  • Beat events now drive a +55% gain pulse on the analyzer spectrum in the companion viz + the overlay card's bar analyzer. 88%-per-frame decay → ~180 ms half-life. Every preset visibly "punches" on kicks regardless of whether the preset itself keys on bass.
  • Overlay card's border-pulse CSS animation now has a beatPulse toggle in the dashboard Overlay tile. Defaults on; `?beat=0` URL param opts out.

BPM where it belongs

  • Running beat counter was noise. Replaced with a median-based BPM estimate in both the Visualizer header and the dashboard companion-status tile.
  • 8-beat rolling window + 12s staleness cutoff. Silence resets the display to "—" instead of hanging a stale 128.
  • docs/STATS_BPM_DISTRIBUTION.md scopes the persistent per-streamer tempo panel for the stats page: Spotify audio-features ingestion, genre-bucketed chart, clickable filtering back into the session archive. Plan only; separate PR when we're ready.

Known caveats

  • The default beat_sensitivity of 1.6 is unchanged. If your stream is quieter than most, open Settings → Tune panel → Beat detection and drop it to 0.9–1.2 until the visualizer starts pulsing reliably on kicks.
  • Beat detection remains energy-based. Real onset detection (spectral flux, with distinct kick/snare topics) is a future direction — see docs/REACTIVE_SIGNALS.md for the planned topic slots.

Verify the binary

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