Skip to content

feat(audio): Add per-output L/R stereo balance - #397

Open
macedot wants to merge 1 commit into
ronitsingh10:mainfrom
macedot:feature/per-output-balance
Open

feat(audio): Add per-output L/R stereo balance#397
macedot wants to merge 1 commit into
ronitsingh10:mainfrom
macedot:feature/per-output-balance

Conversation

@macedot

@macedot macedot commented Aug 1, 2026

Copy link
Copy Markdown

Summary

  • Adds per-output L/R stereo balance (0.0 = full left, 0.5 = center, 1.0 = full right), persisted by device UID
  • Hardware devices use CoreAudio VirtualMainBalance; software/DDC-backed devices apply macOS-style L/R gains in the process-tap DSP path
  • Re-applies persisted balance after FineTune volume writes so System Settings balance is no longer reset to center

Fixes #16

Test plan

  • On a hardware stereo output, drag the new L/R balance slider and confirm audible pan
  • Change device volume in FineTune and confirm balance stays where you set it (does not snap to center)
  • Quit and relaunch FineTune; confirm per-device balance is restored
  • Double-click the balance slider to reset to center
  • On a software-backed output (no native volume), confirm balance still works for apps FineTune routes
  • Confirm unit tests for StereoBalance mapping / settings round-trip / buffer balance pass

Persist balance by device UID, apply via VirtualMainBalance or DSP, and re-apply after volume writes so FineTune no longer resets macOS balance.

Co-authored-by: Cursor <cursoragent@cursor.com>
@macedot macedot changed the title Add per-output L/R stereo balance feat(audio): Add per-output L/R stereo balance Aug 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FR: add balance option

1 participant