Skip to content

Add synchronized channel and mix master controls - #10

Open
gabrielbaez wants to merge 1 commit into
2c2t-dev:mainfrom
gabrielbaez:feat/synchronized-master-controls
Open

gabrielbaez wants to merge 1 commit into
2c2t-dev:mainfrom
gabrielbaez:feat/synchronized-master-controls

Conversation

@gabrielbaez

@gabrielbaez gabrielbaez commented Nov 8, 2026 •

Copy link
Copy Markdown

What changes, and why

OpenDeck can change channel or mix master volume while the mixer grid continues to show only the independent per-cell faders. Add master sliders and mute buttons to the channel cards and mix headers so those changes are visible and adjustable directly in Pipedeck. Master controls stay outside the settings/reorder buttons, and engine notifications update them without echoing commands back.

Muted speakers now use a red muted icon throughout the mixer and settings. Physical input rows also get working master gain and mute: compose the master into each connected cell after processing, preserve each cell's saved gain/mute, and leave the capture device's hardware controls unchanged. Show the same master controls in input-channel settings and account for their gain in the meters.

Checked

  • cargo fmt --all, cargo clippy --workspace --all-targets -- -D warnings, and cargo test --workspace pass (172 unit tests).
  • Explicit GTK synchronization test passes for external master changes, independent cell faders, mute icons, and preventing command feedback; included in CI.
  • All eight new input-master audio checks pass against an isolated PipeWire server, including recorded signal becoming silence on mute, retaining cell balances and mutes, unchanged device controls, and restored graph state.
  • Fork CI passes.
  • README and changelog describe the new controls.

Full-smoke baseline comparison: on isolated PipeWire 1.4.11, this branch passes 92 checks and hits the existing dock-disconnect cleanup failure fixed by #9. All eight new input-master checks pass. On host PipeWire 1.6.11, this branch and untouched upstream 6864b2f reproduce the same three failures: dock cleanup and two ZamAutoSat plug-in checks. No new smoke failures were introduced.

This branch starts directly from upstream main (6864b2f) and builds independently of #9. The two branches merge without conflicts. Merging #9 first is preferable for the existing dock-recovery test.

This branch has not been deployed

No deployments
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.

1 participant