Skip to content

Mixer controls pt2 - #15603

Open
ronso0 wants to merge 6 commits into
mixxxdj:mainfrom
ronso0:mixer-controls-pt2
Open

Mixer controls pt2#15603
ronso0 wants to merge 6 commits into
mixxxdj:mainfrom
ronso0:mixer-controls-pt2

Conversation

@ronso0

@ronso0 ronso0 commented Nov 13, 2025

Copy link
Copy Markdown
Member

Rebased version of #12023


Part of #11931.

There were many conflicts, not sure if I resolved all correctly.

(there may even be unresolved ones in res/controllers)

Targetting 2.7 so we have the beta period to find regressions in mappings.


Next up: remove only remaining [Master] and [MasterOutput] from the effects engine

@ronso0

ronso0 commented Nov 17, 2025

Copy link
Copy Markdown
Member Author

@mixxxdj/developers
This is cumbersome to maintain, so let's agree on a deadline.
I propose to get this ready for 2.7-beta

There were many conflicts so I need more eyes on this, especially the c++ changes.
I'll do another check of the mapping changes and potentially revert some where I'm not 100% sure the changes are safe.
Also, there are plenty of eslint complaints, how should we deal with them?

@github-actions

Copy link
Copy Markdown

This PR is marked as stale because it has been open 90 days with no activity.

@github-actions github-actions Bot added the stale Stale issues that haven't been updated for a long time. label Feb 16, 2026
@ywwg

ywwg commented Feb 24, 2026

Copy link
Copy Markdown
Member

I can throw copilot at this if you resolve the conflicts

@ronso0
ronso0 force-pushed the mixer-controls-pt2 branch from 487396a to 5435d47 Compare February 24, 2026 22:23
@ronso0

ronso0 commented Feb 24, 2026

Copy link
Copy Markdown
Member Author

I rebased, @ywwg go ahead!

@github-actions github-actions Bot removed the stale Stale issues that haven't been updated for a long time. label Feb 25, 2026
@ywwg
ywwg requested a review from Copilot February 26, 2026 15:18

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR is part of #11931 (removal of offensive terms from codebase) and renames mixer controls from [Master] to [Mixer] group. It updates EngineMixer to remove the hardcoded group parameter, moves control objects to the new [Mixer] group, renames controls for clarity (e.g., headMixheadphone_mix, gainmain_gain), and adds backward compatibility aliases for the legacy [Master] group.

Changes:

  • EngineMixer constructor no longer takes group parameter; uses [Mixer] internally
  • Core mixer controls moved from [Master] to [Mixer] group
  • Control names updated for consistency and clarity
  • Backward compatibility aliases added for [Master] group
  • Tests, skins, and controller mappings updated to use new names

Reviewed changes

Copilot reviewed 209 out of 209 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
src/engine/enginemixer.h/cpp Removed group parameter from constructor, moved controls to [Mixer] group, added aliases
src/engine/enginetalkoverducking.h/cpp Added alias support, updated control names
src/test/*.cpp/h Updated tests to use [Mixer] group and new control names
src/mixer/playerinfo.cpp ISSUE: Still uses [Master] for crossfader
src/preferences/dialog/*.cpp Updated to use [Mixer] group and new control names
src/controllers/controlpickermenu.cpp Updated control picker to use new names
res/skins/* ISSUES: Several inconsistencies in control names
res/controllers/* ISSUES: Some controller scripts not fully updated

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread res/controllers/Yaeltex-MiniMixxx-scripts.js Outdated
Comment thread res/controllers/Denon-MC3000-scripts.js Outdated
Comment thread res/skins/Tango/mixer/mixer_headphone.xml
Comment thread res/controllers/Korg-nanoKONTROL-2-scripts.js Outdated
Comment thread src/mixer/playerinfo.cpp Outdated
Comment thread res/skins/Tango/mixer/mixer_headphone.xml Outdated
Comment thread res/skins/Tango/mic_aux_rack.xml Outdated
@ronso0

ronso0 commented Feb 26, 2026

Copy link
Copy Markdown
Member Author

TODO

  • migrate controls in MiniMix mapping
  • ... Denon-MC3000-scripts.js
  • Korg-nanoKONTROL-2-scripts.js
  • Tango/mixer/mixer_headphone.xml
  • Tango/mic_aux_rack.xml

@ronso0

ronso0 commented Feb 26, 2026

Copy link
Copy Markdown
Member Author

One question before I do a mass-renaming:
do we go with "Headphone" or "Headphones"?
Current tr stings (tooltips, control picker menu) use "Headphone", same for the old/new controls in @Holzhaus refactoring.

@ronso0

ronso0 commented Feb 26, 2026

Copy link
Copy Markdown
Member Author

I addressed all valid review comments.

Question remains: do we want to mass-reformat mappings because of the eslint complaints about indentation, missing whitespaces etc.?

@ronso0
ronso0 marked this pull request as ready for review February 26, 2026 19:35
@ywwg

ywwg commented Feb 27, 2026

Copy link
Copy Markdown
Member

Since this is already pretty much a no-op refactor, I am ok with fixing the eslint issues

@ywwg

ywwg commented Feb 27, 2026

Copy link
Copy Markdown
Member

we mostly use the singluar form of "headphone" in the code

@ronso0

ronso0 commented Feb 27, 2026

Copy link
Copy Markdown
Member Author

Since this is already pretty much a no-op refactor, I am ok with fixing the eslint issues

oh, we need #16049 in order to get a patch file.
I ran pre-commit run --from-ref 6c306a3d80 --to-ref 4457e176a0 but it passed 🤷‍♂️

Btw applying the eslint fixes leads to inconsistencies, for example:

    engine.softTakeover("[Mixer]", "crossfader", true); // <-- fix
    engine.softTakeover("[Mixer]","crossfader",true);   // <-- old code
    engine.softTakeover("[Channel1]","volume",true);
    engine.softTakeover("[Channel1]","rate",true);
    engine.softTakeover("[Channel2]","volume",true);
    engine.softTakeover("[Channel2]","rate",true);
    engine.softTakeover("[Sampler1]","volume",true);

and also nonsense proposals like this

  CMDMM.crossfader = new components.Pot({
    midi: [MIDI.CC,0x40],
    inKey: "crossfader",
        group: "[Mixer]", // eslint breaks indentation

I'll apply what makes sense IMO and ignore the rest.

EXPECT_DOUBLE_EQ(indicator500ms.get(), indicator500msLegacy.get());
}

TEST_F(ControlObjectAliasTest, EngineMixer) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to fail now

@ronso0 ronso0 Mar 5, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I fixed that in 5842d3b
CI is stuck though.. will push again

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed. The alias for talkover_mix is talkoverDucking

@ronso0 ronso0 Mar 6, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure if this was the issue, but ducking aliases were added twice, once in EngineTalkoverDucking ctor and again in EngineMixer by calling EngineTalkoverDucking::addAlias().
Remove the duplication, let's see how this works
(aah, forgot to append something.. pushed again)

@ronso0
ronso0 force-pushed the mixer-controls-pt2 branch from 7550b2d to a523693 Compare March 5, 2026 17:49
@ronso0
ronso0 force-pushed the mixer-controls-pt2 branch 2 times, most recently from 84db5b8 to eae6851 Compare March 6, 2026 15:50
@ronso0

ronso0 commented Mar 6, 2026

Copy link
Copy Markdown
Member Author

Nice, all green.
Will squash now to unlock

@ronso0
ronso0 force-pushed the mixer-controls-pt2 branch from eae6851 to b8a3440 Compare March 6, 2026 21:55
@ronso0

ronso0 commented Apr 30, 2026

Copy link
Copy Markdown
Member Author

CI is all green, pre-commits format fixes are mostly nonsense (read: they are formally correct but break existing indentaion schemes, and fixing those would lead to huge diffs)
So can we move on here?
I'm not sure how long I'll be motivated to resolve conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants