-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Eq band bypass mode #10934
base: main
Are you sure you want to change the base?
Eq band bypass mode #10934
Conversation
Manual PR: mixxxdj/manual#520 |
c818ccb
to
d52b1b9
Compare
@daschuer any ideas on how to approach the tooltips? |
d52b1b9
to
52023a8
Compare
188c6a7
to
ccef417
Compare
So I managed to get the tooltips update when the mode changes. This is ready for review. |
So this is suuposed to allow "level swap", like set the EQ levels for a transition, then disable Bypass on both decks to immediately apply the prepared levels? |
Exactly, just that you will disable bypass on the incoming track so you hear it full level and enable it on the outgoing track to set new eq levels |
double fHigh = knobValueToBesselRatio( | ||
m_pPotHigh->value(), m_pKillHigh->toBool()); | ||
double fLow, fMid, fHigh; | ||
if (m_pEQButtonMode->get() == 0) { |
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.
An enum value for this compare would be nice.
I am unsure what is a best approach here regarding the COs. We have the "intended" model of the controller, that has a clear assignment of buttons and knobs. Than we have the implementation driven: In current main, both are aliased. This allows us to use the deck EQs as effects. In this proposal you keep the alias and add a global mode inside the effect that modifies the behaviour of the effect itself. Looking at the cue button, we have the same. In this case we have single cue COs for different behaviours and the "cue_default" that changes the behaviour according global parameters. My expectation was to do the same here. This would allow to continue to use the EQs in the effect racks independent from the kill button setting of the decks. What do you think? |
HI @daschuer , I'm sorry I don't quite understand what changes are you proposing me to do. Could you elaborate? |
It is just a suggestion for discussion:
Oh,I just realize that we have only one "enable" CO Consequences: loading a EQ into the effect Rack gives access to bypass and kill at the same time. |
The idea is a clear abstraction layer: This way every effect writer is free to decide how the controller should work when loaded into the deck. This is relevant when using a four band EQ or a PlayDifferntly EQ or whatever fancy we like. |
Makes sense, but shouldn't we rename the legacy CO to something more generic anyway? They might not control kill or EQ. |
Renaming COs should only be done in exceptional cases, because we are not sure who works with the old names. My view here is, that the legacy COs match the marking of the controller. In that regards the CO name is good. If we have controllers with different making/EQ concepts, we may add them in addition. Are you aware of one? |
@daschuer something like my last commit? TODO:
|
@daschuer ping |
Yes, exactly. Thank you. |
This PR is marked as stale because it has been open 90 days with no activity. |
Hi @daschuer, I'm trying to bring this to master.
SO IIUC, in this PR I should change all skins and controller mappings to now use e.g. |
I'll take a look asap. I understand the idea but didn't follow this PR closely so I'll need to test it. |
I find this feature quite odd. What advantage does this bypass feature have over just turning the eq knobs to the intended level quickly? |
Well, this could also be said about the kill buttons :) Imagine you are playing Track A and you want to transition to a Track B. Let's say you want to it by swapping the mid frequencies. The typical frequency swap with the kill buttons looks like this:
You first have kill enabled on the upcoming track and at some point you swap kills with the other track. The * Level columns represent the final volume of the track (0 means the audience does not hear that frequency band for that track). Notice how you don't have control over the final volume of the freq. band of the outgoing track, because the kill switch always sets the level to 0. Take a look at how a similar transition would look like with the Bypass feature. Here, the "button work" is reversed: bypass is first enabled on the outgoing track. This allows us to set the Eq knob to a lower level without affecting the track yet. When we do the swap, we then disable bypass on the outgoing track which then sees its volume reduced.
Notice how, unlike with the Kill button, with bypass we have control on the final level of the outgoing track via its eq level knob. Can you do this by quickly moving the knobs? Yes, however you need your 2 hands, thus you cannot do anything else at the same time (for example, you cannot swap 2 frequency bands, you'd need 4 hands for that :) ). You can however use one hand to press the Bypass buttons while your other hand is free. |
I added a preference in settings that allows the EQ buttons to be set in Bypass mode.
In bypass mode, when the button is enabled, the EQ band has no effect (it's parameter is set to 1).
The idea is that you can bypass the EQ of the track you are mixing out, which allows you to set its EQ knobs to a lower level without them immediately affecting the playing track. Then when transitioning to the new track, you disable the bypass of the EQ and the outgoing track sets to lower eq levels which don't have to be total kill, as opposed to the classic "kill swap" transition.
Thus I find this technique more flexible while mixing and I think it's worth the addition. I'm not aware of any Dj software or mixer that implements this, so this is a chance for Mixxx to break new ground :D
TODO: The tooltips need to be updated. I'm not sure whether I should change them to something generic like "Eq button" or try to make them dynamic so they change with the selected eq mode.☑️