Allow user to color code tracks

Bug #1100882 reported by x
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Fix Released
Jan Holthuis

Bug Description

An extremely useful feature that Mixxx could benefit from is having the ability to color code individual tracks.

Use Case:

I want to organize my music collection in a very quick and easy way that allows me to simply glance at tracks and know how they sound, etc. I would right click on a song and select mouse over "Set Color". Another menu would open up at which point I would be able to select a set of predefined colors for the text in the library.

Predefined colors could include:

Light blue (I would use this for chill songs)
Royal Blue (songs that I'll play after the party, club, etc, gets going)
Orange (getting more intense)
Red (the real bangers' of my collection)

The colors above should look good on most dark backgrounds, but darker variations could also be included if one is using a theme with a light background.

description: updated
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Neat side-project / wishlist idea. I agree color is a useful organizational tool that your brain is good at dealing with.

Changed in mixxx:
status: New → Confirmed
importance: Undecided → Wishlist
RJ Skerry-Ryan (rryan)
tags: added: easy usability weekend
Revision history for this message
Hasit Mistry (hasitnm) wrote :

Oh yes. Something on the lines of tags in Mac? It could be added as a column next to the track name list with a drop down menu to select a colour. This would be a good addition indeed.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

This is a good start.

* extend this to bitmaps
* overlays

Revision history for this message
Karan Sanwal (karansanwal) wrote :

Hey. I would like to work on this bug, but I had a suggestion/modification :

Rather than adding a new column for the color tag, we could make changes in dlgtrackinfo.cpp such that, it sets the background color for Trackno or Trackname ( or the entire cell, but that could look ugly) based on the what ptrack->getgenre() returns ?

We could think out the default colors for genre, and also the default for when none is specified.

Let me know if this is acceptable, otherwise i will work on what was specified till now.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

You heading for a color code for genres only, right?
This is only useful for users who have cleaned up the genre tags for their entire library, so thats might be a bit to short to be a
gneric solution.

I would prefer to color tag the tracks independent from any other metadata, but add a feature that calculates a color from any cloumn on demand. This way we may use genre colors for some users, other my prefer Key or BPM.

For me the tack number column is useless for DJing, so it is hidden on my setup.
Using the Track name background or the font color would work for me.

An additional "cover" column for adding genre covers, colored rectangles or any other picture giving useful information would be also a good solution. We have also discussed to generate a picture using genre bpm and Key, but that is too advanced for this.

Revision history for this message
Karan Sanwal (karansanwal) wrote :

Oh yes, that makes more sense.
To give user the power to select the color, would require a pallete for them to the select color from ?

Could you hint me on how to get started ?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

What will you go for? An extra column or a changing the background?
You may start with adding functions that allow to change the color of a track title.
I have now idea how, but I am sure you find something in the WWW.

If you go for the coloum solution. You may have a look at the cover column code. I am sure you can reuse a lot of this code.

For the color editor, it would be nice to do a scribbled mock-up, (you may use just inkscape or any other drawing tool of your choice)

In on of your early version it is OK, to use a hard coded color mapping of genres as you have purposed above.
This way we can have a early prove of concept.

Hope that helps, please keep asking if required.

Revision history for this message
jus (jus) wrote :

No changing background colors in track names or other tricks please.
Keep it simple and add an separate color column, that can be hidden eventually.

Leave it to the user what they use the color column for.
A strict categorization based on existing genre tags is not flexible enough. If the user decide to use it like that , fine. He can filter by genre, select all, and apply a color. Others might want to apply color labels based on track energy, or track notation.

Id suggest to allow to select from a simple color scheme, according to

Revision history for this message
Karan Sanwal (karansanwal) wrote :

Firstly, Thanks for helping out here.

Oh alright, though it was not the option i was working on, I think your suggestion is valid, as adding an extra coloumn is always better.

This might take time, as i am travelling this week, but i'll try to make most of the time i get.

Revision history for this message
Karan Sanwal (karansanwal) wrote :

I was able to add the color column in the track properties section, but i am somehow finding it too hard to add it in the right place.
Can i be further hinted ?
Sorry to keep you guys waiting for this :|
Thanks a lot for the patience.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

You may add a pull request against master of your current state, and add a comment that there is work in progress.
Maybe we can give some hints than.

Revision history for this message
John doe (johndoemixxx) wrote :

See the attached patch which is inspired by the star rating library
column and other parts of the Mixxx code. The rest of the new code
modifications is public domain. Please feel free to test, fix bugs
and submit to the main Mixxxx code repository.

Changed in mixxx:
assignee: nobody → John doe (johndoemixxx)
status: Confirmed → In Progress
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Thank you very much for the patch.

I have not yet looked into it.

Did you consider to publish it as GitHub pull request.
This simplifies the review process a lot.

Here are some more hints:

In order to commit your patch, we need your permission.
Please sign:

and comment here when done.

By the way, what happens with your patch here?

Revision history for this message
John doe (johndoemixxx) wrote :

Simplified and removed the editor class. I won't sign the
contributors agreement, but everyone is free to do whatever
they want with the code including uploading it to github.

Revision history for this message
John doe (johndoemixxx) wrote :

PR#1771 beenisss (Y)

I probably would sign the agreement if the code
would be GPL with no exceptions and changes would
require my approval, no time limit.

But this patch is is free for all. Hope someone
can get this feature into Mixxx with or without
this patch.

Revision history for this message
Benis (beenisss) wrote :

It doesn't sound like it will be possible to use that patch if you don't want to sign the agreement, even if you otherwise consent to it explicitly.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

@John Doe -- by "everyone is free to do whatever they want with the code", do you mean you are offering it into the public domain?

Be (
Changed in mixxx:
assignee: John doe (johndoemixxx) → nobody
status: In Progress → Confirmed
Revision history for this message
John doe (johndoemixxx) wrote :

The code I have posted in this bug report is in the public domain.

Changed in mixxx:
assignee: nobody → Jan Holthuis (holthuis-jan)
Revision history for this message
ronso0 (ronso0) wrote :

Great you start working on this! In conjunction with the star rating this will be very helpful.
To pick a color per mood, energy or custom 'code' a rainbow palette would work best IMO.

Changed in mixxx:
milestone: none → 2.3.0
status: Confirmed → Fix Committed
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.