-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Pref EQ: apply & save settings only in slotApply() #4667
Conversation
src/preferences/dialog/dlgprefeq.cpp
Outdated
@@ -45,6 +45,9 @@ DlgPrefEQ::DlgPrefEQ(QWidget* pParent, EffectsManager* pEffectsManager, UserSett | |||
m_pOutputEffectRack = m_pEffectsManager->getOutputsEffectRack(); | |||
|
|||
setupUi(this); | |||
|
|||
loadSettings(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Leave a comment why the settings must be loaded here and not later?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not really. It's fixed in main already.
Also the comment would actually belong to/into slotNumDecksChanged
which is doing the reset.
more to come, after start the EQ boxes are still accessible even though "Bypass EQs" is checked (toggling it off and on again does de/activate comboboxes) |
Note that there were a lot of changes to this code between 2.3 and main so someone is likely to have to deal with merge conflicts which might get messy. |
I know, I'm already looking into the differences 2.3/main. |
Unfortunately, this pref page is a bit of a mess, fixing one bug introduced another regression and so on. Sooo, I could "fix" the actual bug with a few workarounds and additional repetetive widget updates calls, and overhaul the entire page after merging this to main. Thus leaving 2.3 in a rather sub-optimal bu "somehow working" state. Btw it seems to make sense to apply every Master EQ slider change immediately (so it's audible without having to press Apply every time). I'd leave that as is if no one has objections. |
I agree this preference page is a mess to maintain. I think it was a mistake to introduce the nearly useless feature of allowing to configure different EQs for different decks; it adds a lot of complexity to this preferences code that I doubt anyone uses in practice. I think this bug is very minor and it's fine to leave it as is. |
Do not spend any time on these dialogs. Only fix minor bugs (if you really can't hold yourself back) and don't touch anything else. |
Well, after all we'll still have to deal with those dialogs for some time. My aspiration is to -at least- make sure
I'll pack bitesize commits for minimal review time. |
how hard would it be to rip that out? (not for this PR). I would like to lose some cruft if we agree it's not needed I agree that it's best to take a "do as little as possible" approach to the prefs code. Fixes are always appreciated, just don't get sucked too far in :) |
Not sure, but probably not all that hard. No changes would be required in the effects system, only DlgPrefEq. |
Too late. Though I'm not refactoring but consolidating all I will not touch the code that allows 4 individual EQs / QuickEffects. Shouldn't be too hard though. Also, I noticed a bug in the EQ shelve 'validation' / slider/value calculation: if you set low & high shelves above average the values would be lowered with each start until they settle at certain values. Won't fix that here either. |
While testing the changes I noticed another, additional bug in main: I think it makes much sense to fix this stuff now, regardless of a future preferences interface. |
How about getting rid of the redundant bypass EQ option? It does the same thing as picking None in the combobox. |
"None" unloads the EQ effect (and hides the respective mixer controls). Btw: I'd move the Bypass checkbox up above Master EQ. |
eb79d46
to
4c46cc0
Compare
Okay, done:
When testing this, take care not to use your config from main. I had situations where EQs were not processed due to some weird CO being set to 0 (also in Note: In main we can then discuss
|
…otApply so that slotNumDecksChanged uses the config values, not the default GUI state determined by the .ui file
Please don't panic, instead look at the single commits first. What I consider the actual bug here is that reading selections was inconsistent (from both .ui file defaults and config?) and saving/applying was done instantly all over the place.
Of course I'm not going to fix the conflicts chunk by chunk, that would be insane. |
I notice I will probably not have time to respond to reviews and merge to main before I'm travelling. |
I don't understand, is this ready to review or not? If it is, I suggest to not mark it das draft so that people can review it until you are back. |
Yes, ready for review. Though, there'll be non-trivial conflicts with main, and I want to avoid this being merged 'by accident', so "Finishing it" refers to me taking care of conflict resolution / re-implementation in main. So, any reviewer aware of this may unmark this on his own, please. Thank you. |
To clarify my previous comments: if someone else thinks it is a good idea to merge this to 2.3 and is motivated to thoroughly review & test the changes, go ahead. I don't think the risk is worth the minor benefits for a stable branch. I think it would be a better idea to rebase this on main and leave well enough alone on the stable branch. |
All EQ settings are applied instantly, that itself is a bug because the EQ page is not working as expected. I can only recommend to review the entire EQ page in an IDE.Tthat needs to be done anyway, regardless if the changes go to 2.3 or main. |
Officially ready for review. |
This PR is marked as stale because it has been open 90 days with no activity. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have reviewed an tested it and the code locks good and works like expected.
Before merge, I like to clarify the general approach/use case for this:
- Due to this PR the frequency corners are no longer applied immediately.
- They where original applied immediately to test them instantly:
- Kill Low pass
- Move the slider until it sound good
- I understand that this does not fit to the overall concept of the preferences and might be surprising,
- The main EQ is still applied directly even if you change the center frequency with the parametric EQ which is the same like the corner frequencies.
- I do consider no longer "applying the frequency corners instantly" not as a 2.3 bugfix
- Tweaking the frequency corners is only a on-time issue
- Tweaking the main EQ will be done on each venue
This means we have here the issue between "tewaking EQ" vs "manage preferences". This PR shifts the issue a bit but does not solve it.
I am open to merge this anyway as long it fits to future plans.
What are they?
We may consider following changes:
- Revert the to instant adoption of frequency corners, to keep the impact of this PR small
- Add a label that describes the behaviour
- Add a checkbox "[x] Apply changes immediately"
- Move EQ slider to a separate pop-up window ....
What do you think?
Indeed, applying the slider values immediatly is probably desired as that is more practical. So the actual bug IMO is not that the parameters are applied immediatly but that they are written to the config immediatly. Right now, I'd rather close this, and try to fix
(in a rather hackish way) in 2.3. Then rework this page for main so that all values are written to config only in |
Ok, thank you. |
before, "Use the same EQ for all decks" was reset to
true
, overriding the config value.Noticed here https://mixxx.discourse.group/t/mixx-strongly-began-to-heavily-load-the-system-linux/24068/29