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-gsoc2025-report-AntonioGiordano.md
+18-18Lines changed: 18 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,15 +7,15 @@ comments: yes
7
7
8
8
Hello everyone! I’m **Antonio Giordano**, and I’m excited to share the results of my **Google Summer of Code 2025** work on Mixxx. We’ve introduced **true multi-genre support** with smart autocompletion, a cleaner editing experience, and tools to migrate your existing library—without breaking your flow.
9
9
10
-
## Project Vision & Evolution
10
+
###Project Vision & Evolution
11
11
12
12
Our goal was to give DJs flexible, reliable control over genres—beyond a single free-text field. In earlier versions, you could type multiple genres (e.g., `Dance/Electronic/House`), but Mixxx treated that as **plain text**. It couldn’t understand or manage individual tags.
13
13
14
14
To get this right, we started with a **solid multi-genre foundation** that’s fast, consistent, and future-friendly. This foundation paves the way for richer features like hierarchical genres.
The **Track Properties** dialog now shows genres as compact **chips** with a white **×** to remove, plus **autocomplete** to add existing genres quickly.
21
21
@@ -26,23 +26,23 @@ The **Track Properties** dialog now shows genres as compact **chips** with a
26
26
27
27
**Note:** If you type a genre that doesn’t exist yet, Mixxx keeps it as a literal. You can map it later using the Orphan Genres tool (see below).
28
28
29
-
### 2 Multi-Track Editing (Experimental)
29
+
**2 Multi-Track Editing (Experimental)**
30
30
31
31
You can now edit genres across multiple tracks in one go (experimental):
32
32
33
33
-**Common view:** shows the **intersection** of genres shared by all selected tracks.
34
34
-**Batch operations:** add or remove genres for the whole selection.
35
35
-**Safe by design:** unique per-track genres are preserved.
36
36
37
-
### 3 A Smarter Library: Tree, Counts, and Drag & Drop
37
+
**3 A Smarter Library: Tree, Counts, and Drag & Drop**
38
38
39
39
Genres now live in a **tree**. Each node shows **track count** and **total duration**. When you select a track, the genres it belongs to become **bold** in the tree—crate-like ergonomics for quick navigation.
40
40
41
41
-**Drag & drop:** drag tracks from the Tracklist onto a genre to assign it.
42
42
-**Quick menu:** right-click a track then **Genres** to (de)select on the fly.
43
43
-**Rename safely:** renaming a genre changes the **name**, not the ID, so tracks keep their associations.
44
44
45
-
### 4 Clean Migration: “Orphan Genres”
45
+
**4 Clean Migration: “Orphan Genres”**
46
46
47
47
If your library contains free-text genres, Mixxx detects **orphans** and helps you clean them up:
48
48
@@ -51,7 +51,7 @@ If your library contains free-text genres, Mixxx detects **orphans** and helps
51
51
- Multi-word strings appear as both a full string *and* individual tokens; add the full string first if you want to keep it as a single genre.
52
52
53
53
54
-
## Why This Matters for DJs
54
+
###Why This Matters for DJs
55
55
56
56
**Before:**
57
57
@@ -70,41 +70,41 @@ If your library contains free-text genres, Mixxx detects **orphans** and helps
70
70
-**Library-aware:** a genre tree with counts, duration, and drag & drop.
71
71
-**Backwards-compatible:** your library keeps working; migrate at your pace.
72
72
73
-
## How to Use It
73
+
###How to Use It
74
74
75
-
### Single Track
75
+
**Single Track**
76
76
77
77
1. Right-click a track, **Properties**.
78
78
2. In **Genre**, start typing and pick from autocomplete.
79
79
3. Click the **×** to remove a tag.
80
80
4.**OK** or **Apply** to save.
81
81
82
-
### Multi Track (Experimental)
82
+
**Multi Track (Experimental)**
83
83
84
84
1. Select multiple tracks then right-click then **Properties**.
85
85
2. See the **common** genres across the selection.
86
86
3. Add or remove tags in bulk.
87
87
4. Save: Mixxx preserves track-specific genres.
88
88
89
-
### Clean Up Old Text Tags
89
+
**Clean Up Old Text Tags**
90
90
91
91
1. In the genre tree, right-click the **root** then **Edit Orphan Genres**.
92
92
2.**Add** new genres or **Link** strings to existing ones.
93
93
3. Repeat as needed, your sets keep running.
94
94
95
-
## Under the Hood (Brief)
95
+
**Under the Hood (Brief)**
96
96
97
97
-**Stable IDs** for genres and a fast **join table** (`genre_tracks`) so filtering and counts are snappy.
98
98
- A central **Genre DAO** (data access layer) that maps between IDs and names and normalizes raw data.
99
99
- The UI always shows **human-friendly names**; the storage format stays robust behind the scenes.
*This short video bundles all demos: single-track tag chips, multi-track bulk edit, the Genre Tree with drag-and-drop and **F2** rename, and the **Edit Orphan Genres** flow*
105
105
106
106
107
-
## What’s Next
107
+
###What’s Next
108
108
109
109
This foundation unlocks a lot of potential. Based on community input, we’re exploring:
110
110
@@ -115,12 +115,12 @@ This foundation unlocks a lot of potential. Based on community input, we’re ex
115
115
- Better **metadata export** across formats for multi-genre fields.
116
116
- Optional **auto-conversion** of known strings to stable IDs on import.
117
117
118
-
## Thank You
118
+
###Thank You
119
119
120
120
Huge thanks to the Mixxx mentors and community for guidance, reviews, and real-world feedback. This is a big step forward, and we’ll keep refining it together.
121
121
Please try it and tell us what works for you.
122
122
123
-
## Learn More
123
+
###Learn More
124
124
125
125
For comprehensive project details:
126
126
@@ -129,7 +129,7 @@ For comprehensive project details:
129
129
130
130
**Feedback & Support:**
131
131
132
-
-Report issues on GitHub, share ideas on the forums, or chat with us on Zulip. We'd love to hear about your experience with the new genre features:
132
+
Report issues on GitHub, share ideas on the forums, or chat with us on Zulip. We'd love to hear about your experience with the new genre features:
0 commit comments