Waveform colour shades are illogical

Bug #1321562 reported by naught101
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Low
Stéphane Guillou

Bug Description

The attached image shows the same song in both decks. The first, third etc. beats are a bass kick, and the 2nd, 4th, etc. are snares.

As far as I can tell, the current colour scheme for the waveforms is:

Top/Blue:
Light: Bass
Dark: Treble
Mid: Mid

Bottom/Yellow:
Dark: Bass
Light: Treble
Mid: Mid

in that order (from the top of the waveform to the middle, reversed for the bottom half).

*Problems:*

* The two formats aren't consistent.
* The bass, treble, mid ordering doesn't make sense and is confusing.

*Proposed solution:*

Adopt this ordering for both decks:
Light: Treble
Mid: Mid
Dark: Bass

Rationale:
* Treble is generally considered "higher" than bass, and lighter colours are also generally considered higher (I think this is probably somewhat universal, due to the sky usually being lighter than the ground).
* This places the bass at the centre of the waveform. Because the bass is usually the most cleanly rhythmic section, it is the most useful for timing. Putting the bass in the middle allows bass kicks to be seen more clearly.
* Treble/light being on the outside gives the best contrast with a dark background. These colours should be inverted for a light background interface.
* Consistency between decks.

Revision history for this message
naught101 (naught101) wrote :
Revision history for this message
Lee Matos (lbot) wrote :

If I'm not mistaken this is actually editable via the skin. It would be cool to "reorder" them from darkest in the back to lightest on top for the deere skin.

Revision history for this message
jus (jus) wrote :

Agree, this bugs me as well.
The main issue is that some skins do not provide values for <SignalHighColor>, <SignalMidColor>, and<SignalLowColor> in skin.xml.

If none of the above values are present, the <SignalColor> value is used as fallback to calculate low/mid/high colors using HSL colorspace, see /src/waveform/renderers/waveformsignalcolors.cpp and http://www.chaospro.de/documentation/html/paletteeditor/colorspace_hsl.htm

Depending on the luminance of the <SignalColor> base value, the low/mid/high colors calculation can have effects as per bug description.

To solve the inconsistency, skins should provide <SignalHighColor>, <SignalMidColor> and <SignalLowColor>. We might discuss what the best suited default colors are. Currently #FFE300, #0099FF, #FF0035 are used in some skins.

Another exiting issue with drawing in waveformsignalcolors.cpp is the use of transparency that leads to washed-out colors. We might consider another type of image composition, like overlay, for drawing crisp and distinguishable waveform layers.

Changed in mixxx:
milestone: none → 1.12.0
importance: Undecided → Low
status: New → Confirmed
tags: added: easy polish skin usability
Revision history for this message
Stéphane Guillou (stephane-guillou) wrote :

From looking at the three skins available in the latest master build, there are two skins that should be fixed:
- Decks 1 and 2 in "LateNight" decks as the treble is dark and the bass is light (deck 3 and 4 are fine)
- Decks 1, 3 and 4 in "Deere" for the same reason (the orange deck is ok).

I don't know how to switch to 4 decks in "shade" (or if it is implemented...?) so I am not sure about decks 3 and 4 in this one.

I checked all preview decks too, and they seem all fine.

The colours I changed, I based on the DeckColor and used an online colour picker (http://www.workwithcolor.com/hsl-color-picker-01.htm) to vary the luminance and have the same for each set:
High 65%
Mid 50%
Low 35%

Attached is the result with Deere. Let me know what you think. We might want to increase the luminance difference between mid and high.

Also, how do I assign this bug to myself?

Cheers

Changed in mixxx:
assignee: nobody → Stéphane Guillou (stephane-guillou)
status: Confirmed → In Progress
Revision history for this message
Stéphane Guillou (stephane-guillou) wrote :

Oh I figured that assigning thing out, all good :/

Revision history for this message
jus (jus) wrote :

Looking at the picture, it looks better then with current master.
Hard to make out MID and HIGH maybe you could tweak a bit.

However, it is probably because of the the use of transparency for the different waveform layers, we should try a different composite mode. http://qt-project.org/doc/qt-4.8/demos-composition.html

You should submit a pull request for your changes, see http://mixxx.org/wiki/doku.php/using_git#issuing_a_pull_request

Info: Shade skin does currently not support 4 decks.

Revision history for this message
Stéphane Guillou (stephane-guillou) wrote :

Thank you, jus.

I changed my mind and ended up only changing the DeckColor values so waveformsignalcolors.cpp would create shades in the same way for each deck. (0.1 < lightness < 0.5)

It is still hard to differentiate mids and highs but I think that we might need to sort out that transparency thing and maybe enhance waveformsignalcolors.cpp? Not sure.

Anyway, that should fix this bug for now so I will issue a pull request for each skin.

Revision history for this message
Stéphane Guillou (stephane-guillou) wrote :

Corresponding pull request for both skins: https://github.com/mixxxdj/mixxx/pull/492

Changed in mixxx:
status: In Progress → Fix Committed
Revision history for this message
Owen Williams (ywwg) wrote :

fix isn't committed until pull request is complete

Changed in mixxx:
status: Fix Committed → In Progress
Owen Williams (ywwg)
Changed in mixxx:
status: In Progress → Fix Committed
RJ Skerry-Ryan (rryan)
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:
https://github.com/mixxxdj/mixxx/issues/7480

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.