Make mesh-audio a practical multi-speaker sync controller with clear UX, stable Bluetooth behavior, and optional VB-Cable workflow.
- Added 3-tab structure:
Devices,VB-Cable,Sync. VB-Cabletab moved to second position.Synctab works independently from VB-Cable.- Added signed per-device offsets and global delay model in backend.
- Added several sync presets in
VB-Cabletab. - Added
Reset All DelaysinVB-Cabletab. - Added in-app VB-Cable install/check commands:
check_vbcable_installedinstall_vbcable(requires UAC + reboot)
- Added concise bilingual
README.md.
- Perfect sync with system default output is physically limited in default loopback mode.
- VB-Cable install still depends on admin consent and reboot (Windows driver policy).
- No rich runtime health diagnostics in UI yet.
- No persistent room/profile storage in backend yet.
- Add robust
Apply all offsets/Reset all offsetsparity in bothSyncandVB-Cabletabs. - Add explicit user feedback for long operations:
- installing VB-Cable,
- applying profile,
- resync.
- Add post-install wizard state in
VB-Cabletab:- installed,
- reboot required,
- default route check.
Acceptance:
- User can complete setup without external notes.
- Every long action has visible status + error path.
- Add backend command: route health snapshot.
- Expose runtime metrics per target:
- queue depth estimate,
- underrun count,
- correction activity.
- Add
VB-Cabletab health panel with traffic-light statuses.
Acceptance:
- User can see which speaker drifts/drops and why.
- UI shows actionable hints (increase buffer, reduce aggressiveness, etc.).
- Add persistent room profiles (JSON):
- selected targets,
- global delay,
- warmup/ring,
- offsets,
- auto-adjust mode.
- Add recovery actions:
- re-init mirror worker,
- soft fallback profile,
- emergency stop + restore.
Acceptance:
- One-click load for common rooms/scenarios.
- Recovery works without app restart.
- Add dedicated mode flag in backend:
DefaultLoopbackvsVBCableRoute. - Validate and surface source identity clearly.
- Tune presets specifically per mode.
Acceptance:
- Behavior is predictable and explained by selected mode.
- No mixed assumptions between tabs.
- Music Room
- Movie / TV
- Low Latency
- BT Stable
- Front Near / Rear Far
- Party (Max Stability)
- Speech / Podcast
- Gaming (Balanced)
- Clean warnings in
audio.rs,main.rs,app.rs. - Normalize naming (snake_case warnings).
- Refactor large
audio.rsinto modules:- device discovery,
- mirror worker,
- sync controller,
- diagnostics.
npm run buildcargo checkcargo build --release- Manual smoke test:
- device selection,
- start/stop mirror,
- profile apply,
- reset offsets,
- VB install/check flow.
- Driver installation cannot bypass UAC.
- Reboot reminder must remain explicit after VB-Cable install.