Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Simplify waveform preferences panel #13226

Open
ywwg opened this issue May 10, 2024 · 8 comments
Open

Simplify waveform preferences panel #13226

ywwg opened this issue May 10, 2024 · 8 comments

Comments

@ywwg
Copy link
Member

ywwg commented May 10, 2024

Feature Description

context: https://mixxx.zulipchat.com/#narrow/stream/109171-development/topic/Future.20of.20Waveform
Old bug: #6428

There was a discussion about the increasing complexity of the waveform preferences panel, and we talked on Zulip for a while to redesign the options. Please read that discussion before commenting here.

We have settled on this rough design for the UX:

[ ] - Enable Waveforms

      Waveform Style:

      * RGB
      * Stacked
      * HSV
      * Filtered
      * Simple
      
      [ ] Stereo Coloration
      [ ] High detail
      [ ] Software fallback

"Stereo Coloration" could also be "Split Left/Right Channel Colors" or, inverted, "Blend Stereo Colors"

"High Detail" refers to the waveform texture transfer that can cause performance issues but some users (me) prefer :).

Various options might gray out other options. "Software Fallback" would gray out everything.

@ywwg ywwg added the feature label May 10, 2024
@ywwg
Copy link
Member Author

ywwg commented May 10, 2024

@acolombier comment here and I can assign you to this

@ywwg ywwg self-assigned this May 10, 2024
@acolombier
Copy link
Member

Quick mock-up without gray out just for reference
image
Relates to #6428 and #13220

@ywwg
Copy link
Member Author

ywwg commented May 10, 2024

This replaces #6428 because that was very old and meandering and this one is more focused

@ywwg
Copy link
Member Author

ywwg commented May 10, 2024

Also relates to #13151

@ywwg
Copy link
Member Author

ywwg commented May 10, 2024

There was a comment in the other thread about "if acceleration is available, always use it". There are enough instances of bizarre hardware issues that it'd be better to leave this option available to workaround those problems easily.

@acolombier
Copy link
Member

acolombier commented May 22, 2024

Just to help clarifying what is happening with all the waveform type, here is the summary of my understanding

Ref Widget Type Family Action Case Note
#0 EmptyWaveform - - Keep Waveforms=disabled
#2 SoftwareWaveform Software Filtered Keep Family=Filtered,Software Unavailable on Mac
#8 HSVWaveform Software HSV Keep Family=HSV,Software Unavailable on Mac
#9 GLVSyncTest GL VSync (test) Keep (?) Developer,Family=VSync
#10 RGBWaveform Software RGB Keep Family=RGB,Software Unavailable on Mac
#17 AllShaderRGBWaveform all-shaders RGB Keep Family=RGB,Hardware
#19 AllShaderFilteredWaveform all-shaders Filtered Keep Family=Filtered,Hardware
#20 AllShaderSimpleWaveform all-shaders Simple Keep Family=Simple,Hardware
#21 AllShaderHSVWaveform all-shaders HSV Keep Family=HSV,Hardware
#24 AllShaderTexturedStacked all-shaders Stacked Keep Family=Stacked,Hardware
#18 AllShaderLRRGBWaveform all-shaders RGB Merge Family=RGB,Hardware,Stereo
#22 AllShaderTexturedFiltered all-shaders Filtered Merge Family=Filtered,Hardware,HighDetail
#23 AllShaderTexturedRGB all-shaders RGB Merge Family=RGB,Hardware,HighDetail
#25 AllShaderRGBStackedWaveform all-shaders Stacked Merge Family=Stacked,Hardware,HighDetail
#5 GLSimpleWaveform GL Simple Deprecate - Still usable programmatically
#6 GLFilteredWaveform GL Filtered Deprecate - Still usable programmatically
#7 GLSLFilteredWaveform GLSL Filtered Deprecate - Still usable programmatically
#11 GLRGBWaveform GL RGB Deprecate - Still usable programmatically
#12 GLSLRGBWaveform GLSL RGB Deprecate - Still usable programmatically
#16 GLSLRGBStackedWaveform GL Stacked Deprecate - Still usable programmatically
#1 SoftwareSimpleWaveform - - Remove - Never implemented - 12 yo TODO
#3 QtSimpleWaveform Qt (GL/GL ES) Simple Remove - Not included in 2.4
#4 QtWaveform Qt (GL/GL ES) Filtered Remove - Not included in 2.4
#13 QtVSyncTest Qt (GL/GL ES) VSync (test) Remove - Not included in 2.4
#14 QtHSVWaveform Qt (GL/GL ES) HSV Remove - Not included in 2.4
#15 QtRGBWaveform Qt (GL/GL ES) RGB Remove - Not included in 2.4

Possible options in the UI

Family Software fallback Use Hardware Split stereo High Detail
Filtered ✔️ ✔️ ✔️
HSV ✔️ ✔️
RGB ✔️ ✔️ ✔️ ✔️
Simple ✔️
Stacked ✔️ ✔️

Edit: The Ref was meant to be the enum value to help understanding test cases - completely forgot it will ref issues and PR...

@m0dB
Copy link
Contributor

m0dB commented May 22, 2024

Thanks for adding table, @acolombier , this is very helpful, and it looks like it's in line with #13250

Do you want me to rebase 13250 on your feat/simplify-waveform-combobox branch, or would that be conflicting with your work?

@acolombier
Copy link
Member

I think it might be a good idea, yes!
I feel like #13220 should be ready to merge so hopefully you don't have to. Perhaps you can rebase it against feat/simplify-waveform-combobox but keep it as-is, the the Mixxx organisation?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants