mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.5k stars 1.28k forks source link

Switch to RGB (GL) waveform display as new default #7752

Closed mixxxbot closed 2 years ago

mixxxbot commented 2 years ago

Reported by: esbrandt Date: 2014-12-21T11:15:18Z Status: Fix Released Importance: High Launchpad Issue: lp1404637 Tags: easy, waveform


I propose to switch to the RGB (GL) waveform for both main waveforms as overview waveforms as well. The user can always set back to one of the many other waveform options.

* RGB`s are the most useful waveforms, as they display many nuances of the track`s spectrum at a glance.
* No negative performance impact compared to the current default (filtered GL)
* The filtered GL waveforms are in current skins are flawed, e.g. lp:1321562
* We can apply separate color config for RGB (GL) waveforms using <SignalRGB$Color> key from within the skin. Allows to have e.g. x-ray,  spectrum, or colorblind colors
* Other software brag about having "vibrant" waveforms, so we should show-off.

My vote is going RGB (GL) by default, i`d be happy if we decide for the 1.12 release.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2014-12-21T18:28:30Z


Hm, Filtered (GL) is super slow for me compared to GLSL. I was planning on making GLSL the default purely for performance reasons.

We could make a GLSL RGB waveform. I agree it's really useful compared to the regular filtered waveforms.

mixxxbot commented 2 years ago

Commented by: esbrandt Date: 2014-12-21T19:10:46Z


Hm, haven`t thought that way around. Never tried GLSL much because it was labeled experimental. On my low end Intel HD Graphics 3000 GLSL has currently nearly 10% lower CPU utilization with 2 decks playing. Nice.

GLSL RGB default sounds reasonable then, if it does not take too much of your time :-)
Bonus points if it also allows <SignalRGB$Color>.

On Dec 21, 2014, at 7:28 PM, RJ Ryan

We could make a GLSL RGB waveform. I agree it's really useful compared to the regular filtered waveforms.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2014-12-21T19:41:23Z


You propose to switch to the "Moodbar" by default?

This is my default for the overview. But I do not use it for the detailed waveform, because a IMHO its moving is too eye catching for me (a pastel colored version might help here) and a base kick is harder to see there. But since this is a preference option, I do not care much about the default ..

I am jumping in here for two other things: 1: Bug #⁠1074392 and especially my comment https://bugs.launchpad.net/mixxx/+bug/1074392/comments/17 The current a moodbar is "washed out" compared to the original one, used in Clementine and Amarok. I think all waveforms will benefit from a brick wall filter in the waveform. If moodbar will become our default, it should be polished. Do we have time to change the filters before release? 2: We have still users complaining about crashes caused by waveform settings. If we decide for a GLSL waveform as default, a failsafe mode becomes more important: Bug #⁠1017858

mixxxbot commented 2 years ago

Commented by: rryan Date: 2014-12-22T03:39:23Z


We shouldn't call this a moodbar -- that implies there's something smart or a semantic meaning behind the colors when it's really 3 crossover filter outputs visualized in a fancy way.

+1 to a good safe mode -- I think we need that for 1.12.0

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2014-12-22T04:05:53Z


As far as a "pastel" version, I agree that the current version can be pretty harsh. One way to do reduce that would be to lower the saturation of all the three colors -- mix in some of all three channels so it can never be fully red or green or blue. I think that will take some of the garishness away. (If you are defining colors via HSL that would be even easier, but my guess is not)

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2014-12-22T04:07:39Z


It looks really cool though, I would be ok having it in as-is except that I really need a ghost version of the original waveform in case I kill the bass EQ -- I need to see where the kicks are so I can see when to bring it back in.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2015-01-01T21:02:24Z


Ok, added a GLSL RGB waveform. It's so useful compared to the old ones that I'm really on board with making this the default.

Also GLSL is ready to be the default if it is supported on the user's system.

On my low end Intel HD Graphics 3000 GLSL has currently nearly 10% lower CPU utilization with 2 decks playing.

Yea! GLSL is the only way 4-decks is usable on my macbook pro. It's so much faster.

mixxxbot commented 2 years ago

Commented by: rryan Date: 2015-01-01T21:02:51Z


Owen -- I added a faded out version of the original signal as you requested.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2015-01-01T23:13:19Z


I like it! I'm ok with having this as the default.

Two artistic nitpicks: first, is it possible to reduce some of the saturation from the faded-out version? Second, you'll notice in the LateNight skin I have the mixxx logo, but I've altered it to match the skin coloration somewhat. I used a blending operation in Gimp to combine the regular logo colors with the latenight-yellow. I wonder if we could do the same with the RGB waveform -- mix the RGB coloration with the skin-specific waveform colors in a way that you can still tell the difference between the bands, but it blends in a little better with the skin. (This especially helps in latenight where the color of the waveforms helps the user know which deck is which). The blend might be something like original_color * theme_color.

mixxxbot commented 2 years ago

Commented by: esbrandt Date: 2015-01-02T13:51:04Z


@Owen
You can use
<SignalRGBLowColor>#</SignalRGBLowColor>
<SignalRGBMidColor>#</SignalRGBMidColor>
<SignalRGBHighColor>#</SignalRGBHighColor>only
to tone the colors of the bands in the RGB waveform renderings to your likings.
Just tested with latest master, and it works with all RGB waveforms not just as previously with the RGB (GL) only.

Good job RJ!

mixxxbot commented 2 years ago

Commented by: rryan Date: 2015-01-03T16:20:37Z


Default changed in https://github.com/mixxxdj/mixxx/commit/192be0b8b32a1c348e2e370963fcb137cefa905f

As for the overview type -- we discussed: 1) switch normalized overview on by default 2) switch to RGB overview

I spent nearly an hour comparing filtered and RGB overviews across my tracks. I tried my best to force myself to be "blind" by predicting what a section would sound like and then jumping to it to see how much the information I gained from the overview aided my predictions.

A lot of times the pixel heights of the 3 bands in Filtered mode didn't tell me much (i.e. I was unsure what a section would sound like) while the RGB colors were fairly informative (I could tell whether a section was low frequency or high frequency based on how red or blue it was). Sections that were purple-ish were a combination of bass-y and high-frequency (hats, chimes, etc.). Sections that were "cool" blues (cyan, light blue) or orange tended to have vocals since they mixed in green. More than that I could see the "structure" of the track much better in RGB mode.

Normalizing the overview was sometimes deceiving. A section that occupied 3/4th of the overview seemed like it would be a high activity section but when I jumped to that section it was sometimes a breakdown / quiet period but just looked high relative to the highest part of the track. I'm ambivalent about turning it on by default because it could be confusing.

mixxxbot commented 2 years ago

Commented by: ywwg Date: 2015-01-04T00:48:26Z


SignalRGB*Color work well, thanks. Although, they don't seem to work on the overviews... looking at the code I don't think the overview code pays attention to those values even though it evaluates the tags correctly.

mixxxbot commented 2 years ago

Commented by: ninomp Date: 2015-03-03T01:35:26Z


SignalRGB*Color tags can now be used for customizing RGB overview - https://github.com/mixxxdj/mixxx/pull/508

mixxxbot commented 2 years ago

Commented by: lazypower Date: 2015-07-28T23:57:14Z


Doesn't appear to be fix released on the MIXXX-1.12.0-BETA1 debs

Can i get confirmation those have been updated to include this?

mixxxbot commented 2 years ago

Issue closed with status Fix Released.