mixxxdj / mixxx

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

Retire Simple GL and GLSL waveforms. #11838

Open daschuer opened 10 months ago

daschuer commented 10 months ago

Feature Description

IMHO they are pretty useless. I can imagine to have a Simple type for the purpose to save CPU, but they are calculated mostly on the GPU. Did we have a simple non GL type that is lost in one of the commits?

m0dB commented 2 months ago

I am all for removing them. But would you remove them only from the UI, or also remove the corresponding source code? (I would like that, there are a lot of additional code cleanups I would like to do, and these will be much more clear with less legacy code around)

Not sure about a simple non GL type.

JoergAtGithub commented 2 months ago

We 've no replacement for the RGB Stacked waveform yet. I don't see a need for the other legacy GLSL and the GL types.

m0dB commented 2 months ago

I can implement the RGB Stacked waveform (GLSL).

m0dB commented 2 months ago

I have to say that by looking at it (without looking at the code) I have a hard time understanding what it does 😅 Edit: okay, got it now, the ghosting of the non-EQed waveform confused me. This will be trivial to implement.

JoergAtGithub commented 2 months ago

When the RGB Stacked waveform was implemented, we had default waveform colors with less saturation. I guess the ghosting was therefore not as dominant as now.

m0dB commented 2 months ago

Hm, I just noticed that Filtered (GLSL) should actually be RGB Stacked (GLSL)

m0dB commented 2 months ago

https://github.com/mixxxdj/mixxx/pull/13151 adds a allshaders version of the legacy GLSL RGB Stacked waveform (which uses textures to transfer the waveform data to the shader). It uses the same code as the legacy GLSL one, but in combination with the allshaders code for the rest of the waveform layers.

It also adds allshaders version of the legacy GLSL RGB and Filtered waveforms, I got this for free, and I believe there are some people who prefer their look over the implementation that doesn't use texture for waveform data transfer.

With that, the amount of options becomes really overwhelming (and redundant), but reducing the options should be in a separate PR. Having them all allows for comparison and testing.