Skip to content

Conversation

@Warchamp7
Copy link
Member

Description

Moves a bunch of logic out of OBSBasic into a central AudioMixer class, refactors a bunch of code to clean up, and adds a pile of new functionality to the mixer.

Adds a new MenuCheckbox widget for having a checkbox toggle inside a QMenu that does not close the menu after clicking.

The primary addition in this PR is a new audio monitoring toggle button in the mixer itself. Other features have also been added such as the ability to show Hidden sources, Inactive sources, adjust how they get sorted, and an easier way to toggle the layout.

image

PR also depends on #12734 for icon coloring.

Motivation and Context

With the fixes made as part of #12175, it is now far more reasonable for us to expose audio monitoring more directly to users. It is often very desirable to be able to toggle on monitoring for things like Media Sources or some Video Devices such as capture cards.

I elected to also clean up the Audio Mixer code a bunch while working on this feature addition, and add some other additional features and UI adjustments.

There is more that I want to do and clean up still but I'm trying to keep this PR at least moderately reasonable.

How Has This Been Tested?

Tested muting and monitoring on multiple audio sources both via the Mixer dock, the Advanced Audio Properties window, as well as a separate Audio Mixer window utilizing the same widget, to test that things are properly encapsulated and not kept in any local widget state.

Types of changes

  • New feature (non-breaking change which adds functionality)
  • Code cleanup (non-breaking change which makes code smaller or more readable)

Checklist:

  • My code has been run through clang-format.
  • I have read the contributing document.
  • My code is not on the master branch.
  • The code has been tested.
  • All commit messages are properly formatted and commits squashed where appropriate.
  • I have included updates to all appropriate documentation.

@Warchamp7 Warchamp7 added Enhancement Improvement to existing functionality Seeking Testers Build artifacts on CI New Feature New feature or plugin UI/UX Anything to do with changes or additions to UI/UX elements. labels Oct 15, 2025
@Warchamp7 Warchamp7 force-pushed the audio-mixer-updates branch 3 times, most recently from 8a0fd00 to caa02d3 Compare October 16, 2025 00:17
@gbdlin
Copy link

gbdlin commented Oct 18, 2025

Small request for this redesign, if it's feasible and easy enough: can you add one more checkbox to the menu to show sources that are inactive, but present on the previewed screen? Of course it only makes sense in the studio mode, but it would be a great help when you need to adjust levels of a source that will become active with next transition, but without having to find it in the list of all available sources.

@Warchamp7 Warchamp7 force-pushed the audio-mixer-updates branch 4 times, most recently from 56c2845 to 1ce7b5d Compare October 24, 2025 22:52
@Warchamp7 Warchamp7 force-pushed the audio-mixer-updates branch 4 times, most recently from 895cced to 95167b7 Compare October 29, 2025 02:49
@Warchamp7
Copy link
Member Author

Small request for this redesign, if it's feasible and easy enough: can you add one more checkbox to the menu to show sources that are inactive, but present on the previewed screen? Of course it only makes sense in the studio mode, but it would be a great help when you need to adjust levels of a source that will become active with next transition, but without having to find it in the list of all available sources.

This was in fact not straightforward but I added it as default behaviour

image

@Warchamp7 Warchamp7 force-pushed the audio-mixer-updates branch from f65b084 to a64d278 Compare October 29, 2025 19:52
@Warchamp7 Warchamp7 force-pushed the audio-mixer-updates branch from a64d278 to f506e3e Compare October 29, 2025 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Enhancement Improvement to existing functionality New Feature New feature or plugin Seeking Testers Build artifacts on CI UI/UX Anything to do with changes or additions to UI/UX elements.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants