Repository navigation
Sound: Add noise cancellation and equalizer controls - #310
Draft
Sean-StarLabs wants to merge 8 commits into
Draft
Sean-StarLabs wants to merge 8 commits into
Sean-StarLabs wants to merge 8 commits into
Conversation
This was referenced Oct 3, 2026
Add a noise cancellation switch for the selected input. Let settings-daemon own processing so it continues after Settings closes. Keep its internal streams out of Applications. Test=Private PulseAudio/PipeWire: InputPanel switch and device changes.
Show the selected output's five bands, with Reset below the sliders. Keep the physical output in the device list and show processing errors without adding routine confirmation messages. Test=Private PipeWire: GTK sliders, Reset, On/Off and failure recovery.
The device list takes up most of the window, so on high resolution displays it looks like a bug. Pilfer the layout from Mouse & Touchpad and keep each page's controls together when scrolling. Test=StarFighter MTL: Input/Output sidebars and scrolling.
The profile change may have already published its sink or source. Read the current endpoints after switching profiles, then check the property before waiting for another notification.
Keep the saved request separate from the confirmed switch state.
Keep the last confirmed state until the daemon acknowledges the new
preference, and clear it when the output or service changes.
Test=StarFighter: switch, gain sliders and Reset reach the physical
output and restore the saved curve.
Test=Private GTK regression covers delayed and failed removal, successful
retry, output changes and service disappearance.
Try enabling and disabling EQ with unrelated graphs already attached,
including a graph with no controls. Verify both requests preserve them.
Test=StarFighter: foreign graphs survive both requests; explicit
recovery works after removing them.
Let the daemon confirm processing instead of allowing GTK to confirm
it when the saved request changes.
Test=StarFighter: the input switch unloads and recreates one owned
echo-cancel module.
Sean-StarLabs
force-pushed
the
echo-cancellation
branch
from
October 7, 2026 20:53
08b0dd6 to
b9b6335
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add Noise Cancellation and five-band equaliser controls for the selected input and output.
The device list takes up most of the window, so on high resolution displays it looks like a bug. Pilfer the layout from Mouse & Touchpad and keep each page’s controls together when scrolling.
Use fixed band names, frequencies in tooltips and Reset below the sliders. Keep the normal physical output and let settings-daemon own processing. Switches distinguish the requested setting from confirmed processing.
Requires elementary/settings-daemon#248
Test=StarFighter MTL: input/output selection, Noise Cancellation, all five EQ controls, Reset, and physical volume/mute. Confirmed enable/removal, foreign-graph recovery and audio-server restart.