You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/news/XXXX-XX-XX-gsoc-2026-rebuild-latenight-qml.md
+36-3Lines changed: 36 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ summary: Introducing the Google Summer of Code 2026 project to port and rebuild
7
7
8
8
Hi everyone! I am Ayush Sah, and I am thrilled to share that I will be working with Mixxx for Google Summer of Code (GSoC) 2026. Over the next few months, my project will focus on one of the most exciting shifts in Mixxx’s user interface history: **rebuilding the iconic LateNight theme in native QML**.
9
9
10
-
As Mixxx paves the way toward the landmark 3.0 release, transitioning its user interface from legacy QWidgets to [Qt Quick / QML](https://en.wikipedia.org/wiki/QML) is a core priority. This shift will unlock rich aesthetics, superior scaling, touch support, and modular theme customization. My goal is to ensure that LateNight, arguably one of Mixxx's most popular skins, is fully ported to QML with perfect visual and functional parity, serving as a clean blueprint for future community-made QML themes.
10
+
As Mixxx paves the way toward the landmark 3.0 release, transitioning its user interface to the ["New UI"](https://mixxx.org/news/2025-08-06-qml-project/) is a core priority. Built on [Qt Quick / QML](https://en.wikipedia.org/wiki/QML), this shift unlocks modern aesthetics, fluid layout customization, and vector-based scaling. My goal is to ensure that LateNight, arguably one of Mixxx's most popular skins, is fully ported to QML with perfect visual and functional parity, serving as a clean blueprint for future community-made QML themes.
11
11
12
12
---
13
13
@@ -18,10 +18,43 @@ For years, **LateNight** has been a favorite for DJs performing in low-light env
18
18
By porting LateNight to native QML, we aim to achieve:
19
19
20
20
1.**Modern Typography & Pixel-Perfect Scaling**: Dynamic scaling across 4K displays, retina screens, and touchscreen laptops.
21
-
2.**Superior Performance**: Leveraging GPU acceleration for UI rendering, leaving the CPU free to handle real-time audio and waveforms.
21
+
2.**Hardware-Accelerated Rendering**: Leveraging modern, native graphics APIs, specifically **Apple Metal** on macOS and **Microsoft DirectX** on Windows, instead of legacy OpenGL. This keeps the CPU free to focus entirely on real-time audio processing, while the GPU handles UI and waveform rendering.
22
22
3.**Theme Extensibility**: Standardized, modular structure (`res/qml/themes/LateNight`) that other developers can use to construct their own custom layouts without duplicating core logic.
23
23
24
-
Ultimately, releasing this experimental LateNight QML skin in a 2.x release is just the beginning. Our goal is to give you a hands-on preview of what lies ahead: the plan for Mixxx 3.0 is to leverage powerful new QML capabilities, bringing completely re-written libraries, modern preference windows, fully custom hotcue layouts, and many more exciting visual and functional features.
24
+
---
25
+
26
+
## Design Choice: Laptops vs. Small Touch Screens
27
+
28
+
An interesting distinction between the theme layouts is how they address screen space. While the [New UI](https://mixxx.org/news/2025-08-06-qml-project/) features larger but fewer widgets optimized for touchscreen setups and tablet DJs, LateNight is packed with tiny widgets. This compact style is highly optimized for traditional laptop displays and desktop environments, where DJs want to maximize the amount of info and controls visible on a single screen without needing touch gestures. I know there are a lot of LateNight lovers in the community and I hope you all will like this new version of LateNight, a QML version, in which I'm trying my best to restore the same look and feel!
29
+
30
+
---
31
+
32
+
## Strategic Scope Reduction for a Stable Release
33
+
34
+
To ensure we deliver a reliable, fully functional skin by the end of this GSoC project, we have deliberately focused our scope. You might wonder why we are using a legacy library and legacy preferences bridge instead of a native QML implementation.
35
+
36
+
The main challenge with a fully native QML library is that it requires a new library backend. Because there is no clean separation between the legacy library backend and the legacy library widgets, we would have to rewrite the backend to support native QML. However, writing a new library backend is a massive, independent project on its own.
37
+
38
+
We can't wait for a new backend to get completed before moving forward with QML and more importantly, we didn't want to risk your music library in the process! So, to keep moving forward with QML without holding the project back we chose a pragmatic middle ground: safely bridging the legacy C++ widgets into the QML viewport via our bridge. This keeps your library robust and completely usable from day one. This concept applies to preferences as well, which is why we are using a legacy preferences bridge for now, which is planned to be adapted to our skin as part of my project.
39
+
40
+
---
41
+
42
+
## Planned Project Steps
43
+
44
+
To let the community know what work is currently planned, here are the main milestones for this project. **Note that our goal is to reuse the QML code from the New UI wherever possible**, as we are primarily building the LateNight-specific layout structures and styling, rather than implementing these widgets from scratch:
45
+
46
+
-**Legacy Library Bridge & Foundation**: Safely hosting the legacy C++ sidebar and track table inside the QML viewport (Completed).
47
+
-**Adapted Legacy Preferences**: Adapting the legacy preferences bridge to the new skin.
48
+
-**Decks & stacked waveforms**: Porting the compact LateNight deck layout structures while reusing native waveform rendering.
49
+
-**Deck transport & parameters**: Wiring the play, cue, sync, loops, rates, hotcues, and beatgrid controls, sharing the New UI's QML logic wherever possible.
50
+
-**Channel Mixer**: Styling the EQ/filter columns, VU meters, and crossfader orientation controls by wrapping existing Mixer QML code.
51
+
-**Layout Variants**: Designing compact and mini deck sizes specifically tailored for traditional laptop screen heights.
52
+
-**Effects, Sampler & Mic/Aux Racks**: Mounting the samplers and effects slots, reusing the New UI's expandable rack primitives.
53
+
-**Menu Bridge & Accessibility**: Bridging semantic menu options and ensuring native accessibility integration.
54
+
55
+
---
56
+
57
+
Ultimately, releasing this experimental LateNight QML skin in a 2.x release is just the beginning. Our goal is to give you a hands-on preview of what lies ahead: the plan for Mixxx 3.0 is to leverage powerful new QML capabilities, bringing completely re-written libraries, modern preference windows, fully custom hotcue layouts, and many more exciting visual and functional features as introduced in the [QML Project announcement](https://mixxx.org/news/2025-08-06-qml-project/).
0 commit comments