Skip to content

[GSoC] LateNightQML: Mixer - #16858

Open
xARSENICx wants to merge 5 commits into
mixxxdj:mainfrom
xARSENICx:LateNightQML/mixer
Open

[GSoC] LateNightQML: Mixer#16858
xARSENICx wants to merge 5 commits into
mixxxdj:mainfrom
xARSENICx:LateNightQML/mixer

Conversation

@xARSENICx

Copy link
Copy Markdown
Contributor

This PR continues the LateNightQML skin work, focusing on bringing the mixer to feature and visual parity with the legacy LateNight skin for both Classic and PaleMoon color schemes.

Testing the Experimental Skin

Since this is an early experimental milestone, you must first run Mixxx with the developer flag:

./build/mixxx --developer

Once Mixxx is open, switch to the experimental skin:

Preferences -> Interface -> LateNight QML (Experimental)

You can dynamically toggle between the Classic and PaleMoon color schemes under preferences.

Previews

Classic

PaleMoon

Scope of Changes

Implemented in this PR:

  • Provides a complete LateNightQML mixer for two-deck and four-deck configurations.
  • Implements channel-strip controls for gain, three-band EQ, EQ Kill, quick effects, filters, and channel volume.
  • Adds legacy LateNight VU metering for channel and main output levels using the corresponding image assets.
  • Implements monitoring and output controls, including PFL, main level, balance, headphone level, headphone mix, split cue, and FX routing.
  • Adds the crossfader with centered positioning, channel assignment, and orientation controls.
  • Wires mixer controls to the corresponding Mixxx engine controls for live interaction.

Tracking

GSoC: LateNightQML PR-8

@github-actions github-actions Bot added the skins label Aug 8, 2026
@xARSENICx
xARSENICx force-pushed the LateNightQML/mixer branch from 44b79b1 to a310c86 Compare August 8, 2026 19:24
@JoergAtGithub

Copy link
Copy Markdown
Member

Please fix the CI fail!
I tested this and it works really good!
I only noticed that the Mixer-> EQ Knobs setting doesn't hide the Quick-Effect Knob & button:
grafik
grafik

@SammyMcFly

Copy link
Copy Markdown

Thank you for the effort!

On CachyOs I found 3 things to note with the PaleMoon color scheme. I hope it helps:

  1. The crossfader assign button appears really small and its position is different depending on its state:
Screenshot_2026-08-09_13-17-27 Screenshot_2026-08-09_13-17-34 Screenshot_2026-08-09_13-17-37

The following warnings are emitted when pressing the left crossfader assign button:

warning [Main] file:///mnt/Code/mixxx/res/skins/LateNightQML/Mixer/CrossfaderAssignButton.qml:22:5: QML QQuickImage: Cannot open: file:///mnt/Code/mixxx/res/skins/LateNight/palemoon/buttons/btn__xfader_deck_mid_off.svg
warning [Main] file:///mnt/Code/mixxx/res/skins/LateNightQML/Mixer/CrossfaderAssignButton.qml:22:5: QML QQuickImage: Cannot open: file:///mnt/Code/mixxx/res/skins/LateNight/palemoon/buttons/btn__xfader_deck_left_off.svg
warning [Main] file:///mnt/Code/mixxx/res/skins/LateNightQML/Mixer/CrossfaderAssignButton.qml:22:5: QML QQuickImage: Cannot open: file:///mnt/Code/mixxx/res/skins/LateNight/palemoon/buttons/btn__xfader_deck_right_off.svg

There appear to be no such files in this directory --- there are only files with names that end on ..._warning and ..._default, instead of ..._off.

  1. The blue line between the crossfader and the middle position is vertically not correctly aligned. But this seems to happen only when starting mixxx with the PaleMoon color scheme. After switching to Classic and back to PaleMoon the positioning is correct.

  2. I wonder if the coloring of the following line is meant to be like it is:

Screenshot_2026-08-09_13-18-57a

@xARSENICx

Copy link
Copy Markdown
Contributor Author

Thanks a lot for your feedback @SammyMcFly , I really appreciate your help. I will be resolving the reported inaccuracies in a later commit.

@SammyMcFly

Copy link
Copy Markdown

The buttons are fixed now, nice.

The blue line is still slightly misaligned. The border color is not equal to the other three sides, but its definitely better.
Screenshot_2026-08-10_17-45-52

@ronso0

ronso0 commented Aug 10, 2026

Copy link
Copy Markdown
Member
  1. The crossfader assign button appears really small and its position is different depending on its state:

That might be because these are the joint SVGs from after #16665
(which still needs a follow-up for the Classic theme btw)

@SammyMcFly

SammyMcFly commented Aug 11, 2026

Copy link
Copy Markdown

I just noticed that

  • the loudness meters are not centered between the volume faders.
  • the right EQ knobs can touch the fader handle. This might be because the fader handles are bigger than in the old XML UI.
  • the star of the QuickEffectToggler is covered when on

@github-actions github-actions Bot added the qml label Aug 11, 2026
@SammyMcFly

SammyMcFly commented Aug 11, 2026

Copy link
Copy Markdown

On my computer, this partially fixes things. What's left is the blue line and the fader handle size, now. Whatever that's worth, the green highlight around the star is not rounded and also the font size of the L, M, H seems to be different.
old:
image

new:
image

@JoergAtGithub

Copy link
Copy Markdown
Member

The issue with the misaligned blue crossfader line depends on the display scaling. On Windows:

  • 100% system scaling is OK:
grafik
  • 125% system scaling is Not OK:
grafik
  • 150% system scaling is OK:
grafik
  • 175% system scaling is Not OK:
grafik
  • 200% system scaling is Not OK:
grafik

@JoergAtGithub

Copy link
Copy Markdown
Member

#16872 with the fixed classic cross-fader select symbols is now merged into main. Please merge upstream/main into this PR accordingly and recheck the classic scheme for correct visualization.

@JoergAtGithub

Copy link
Copy Markdown
Member

The behavior of the crossfader assign buttons in LateNight changed recently. Could you please adjust the behavior here to what was changed in #16665 .

@ronso0

ronso0 commented Aug 14, 2026

Copy link
Copy Markdown
Member

Just tried to grab a deb package and test in my VM, but there are no build artifacts except dmg?

@JoergAtGithub

Copy link
Copy Markdown
Member

@ronso0 There was a re-run because some jobs were failing in the frst attemp, you propably just looked on the artifacts generated by this re-run:
grafik

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.

4 participants