How do we handle external UIs (like in Lv2) for mono effects/instruments?
Also, if we choose 1, will drag-dropping the knob of one UI connect the control of both sides, or just of that one side?
Any ideas/wishes?
FYI, the Lv2 team seems to be against one UI per channel. One arguemnt was also that some instruments have more than 2 channels. Imagine you press "Show UI" and 6 UIs for a "5:1" setup bump up...
I also don't like having two UIs. Imagine you're using a large synth like zynaddsubfx, change one slider on one channel, but forget it on the other... Your sound may become inconsistent if you are not very careful. Some features, like generating a random wave (e.g. in zyn's resonance editor) can not be mapped equally on both channels. (Of course, zyn is stereo, this was just an example)
It's strange that we support Lv2 mono effects, where the controls are duplicated in the host UI (i.e. 2 controls each), though #5095 suggests there is only one host UI (i.e. only 1 control each).
Thanks for the votes so far. They imply that everyone at least wants to have the option to have only one UI. So having one UI could be an accepted solution for everyone, plus this is what Lv2 recommends.
So we should be implementing one plugin UI for both mono and stereo effects, allowing 2 for mono effects would be a possible feature request.
The concept is not clear yet. :grimacing: Assume you have the GUI closed for a mono effect. In the LMMS-internal UI, mono effects have a knob for each side (that's how we made it in LADSPA, so I inherited this for the internal UI). Now, imagine a knob is different between both sides. Then one GUI can't represent both values.
How to deal with this?
Opinions? Better ideas?
@DomClark Can you please help? It's closely related to #4964 and #4899 .
Once #4635 is merged, it should eliminate this problem and we can just use a single UI both internally and externally. If it seems likely that that PR will land in the same release as this one, then it might be best just to stick to a single UI from the start. In the meantime, the same effect can be achieved with FX sends and amplifier/stereo matrix effects.
If we don't want to do that, my personal preference would be this:
Keep the internal two-sided UI, and let the external UI function independently of knob linking (i.e. it can be opened without all the knobs linked, and opening it doesn't link any knobs). Turning a knob in the external UI overwrites the values of both knobs in the internal UI, but doesn't link them. I think this would offer the most user freedom, while remaining reasonably intuitive. You'd expect turning an external knob to overwrite an internal one, so having that act on both channels sounds alright to me.
Poll:
For mono LADSPA effects, LMMS currently allows to apply the effect individually on each side. I.e. our internal LADSPA UIs consist of 1 "UI" for each side. (E.g. try any CAPS mono effect)
For Lv2, we could do the same, but since those shall (according to voting above, and according to Lv2 devs) only have 1 external UI for both sides, it's getting a strange mix: You'd have 2 internal UIs, but if you open the external UI it's only 1.
There are ways to solve the 2 internal vs 1 external UI (see Dom's post right above, last paragraph), but it might be way easier if we just have 1 internal UI. Plus, #4635 would soon allow to pan the D/W amount between sides, especially applying an effect on only 1 side. This might compensate the need for having 2 internal UIs. Until #4635 is completed, the same effect can be achieved with FX sends and amplifier/stereo matrix effects.
What do you think?
While everyone was for only 1 internal UI for mono effects, balancing D/W still does not enable balancing single knobs. That means you can not balance the phase of a phaser, or the frequency or resonance of an effect. Especially the latter seems like a cool feature.
I don't think that 2 knobs are required for each control, but shouldn't there be one normal knob plus one balance knob (left<->right) for each control? Also, 0+x, 1-x might not always suffice, you need min+x, max-x, e.g. also min and max knobs for each control.
Is this over-complicating? Can we say for sure we don't want to balance stuff like resonance between two speakers?
Is there a precedent for this besides our own LADSPA interface? Whether or not other LV2 host implementations have separate UIs for separate channels will likely influence whether LV2 plugin developers rely on this as a feature.
My instinct is that having two UIs adds complexity in every case where it is only needed in a very small subset of cases, and that for those cases, there are workarounds (i.e. processing L and R with separate plugin instances).
Another option might be to give the user the option to have both channels separated if they want, but default it to a single set of controls.
@DomClark What's your opinion to my last post? Especially, I wonder what to do with #4964 . I think the idea of having multiple knobs for one control (one for each channel) does not make sense (like the voting showed), but what about letting the PR provide a panning knob (and minimum/maximum like described in my previous post) for each control?
Balancing dry/wet allows you to apply the plugin twice, pan one left and the other right, at which point you have independent plugins for both channels. Then you can have any knob you like act independently for each channel, which sounds more flexible than adding a balance knob for each knob. It also avoids the difficulty defining what the balance means for each knob, as mentioned in your earlier comment. I don't think it's worth overcomplicating this when we have a simpler solution which was voted for unanimously.
Especially, I wonder what to do with #4964 .
I think the control classes from that are still valuable, even if the linked model stuff isn't as useful any more. That said, what do you want to do about LADSPA? Would you like to keep the linked model code for use there? Or should it eventually be changed to behave the same as LV2, with a single set of controls? Or is it fine just to leave it alone?
Balancing dry/wet allows you to apply the plugin twice, pan one left and the other right, at which point you have independent plugins for both channels. Then you can have any knob you like act independently for each channel, which sounds more flexible than adding a balance knob for each knob.
Why do you think it's more flexible? E.g. how could you balance the resonance of a filter between left and right with only 1 d/w knob?
I think the control classes from that are still valuable, even if the linked model stuff isn't as useful any more.
Good point, I'll leave the control classes in the PR.
That said, what do you want to do about LADSPA? Would you like to keep the linked model code for use there? Or should it eventually be changed to behave the same as LV2, with a single set of controls? Or is it fine just to leave it alone?
Hard to say if the users would vote for changing LADSPA to a single set of controls. I wonder if it's worth the work. In both cases, I wonder if it's good to have those 4 abstract classes in the code if we only use them once.
@JohannesLorenz
Pan effect entirely left => left channel is fully wet, right channel fully dry => all paramters affect left channel only. Set resonance to whatever you want for left side.
Follow that effect with a hard right panned copy of the same effect, set resonance to whatever you want for right side.
Feels a bit inconvenient to me but it should provide identical functionality to having a set of L/R controls in the effect.
Why do you think it's more flexible? E.g. how could you balance the resonance of a filter between left and right with only 1 d/w knob?
You can't, but I don't think it's that useful anyway. Instead of having one knob to control the resonance and another to balance it, you can have one knob to control the left resonance and another to control the right resonance. That way, it's easier to set the desired resonance for each channel, and it avoids the issue of quite what it means to "balance the resonance between left and right".
FWIR , D/W solely affects how much of the original signal is merged into the effect out-signal. It does not change any control, like resonance at all. Of course, merging in more of the original signal will reduce the peak at the resonance frequency, but it will also affect the other frequencies. Correct me if I'm wrong, but what you all suggest is not possible with D/W at all. If you have an effect with 10 knobs, D/W does not allow you to pan/control one single knob, it only allows you to merge in more of the input signal.
We're not talking about the existing D/W knob though, we're talking about #4635. With that PR's pan knob, what I described above is possible.
OK, I get what you mean. Use two effects, pan one to the right, one to the left, control the two resonance knobs independently.
I wonder if that makes it useful to invert a connection between two knobs. I.e. if one knob goes up, the linked knob goes down. But we can probably still decide that later in case of demand.
Thanks for discussing and voting. As this is actually solved now, I'll close in 7 days (in case of no more comments).
Closed, as everything has been clarified.
Most helpful comment
Poll:
For mono LADSPA effects, LMMS currently allows to apply the effect individually on each side. I.e. our internal LADSPA UIs consist of 1 "UI" for each side. (E.g. try any CAPS mono effect)
For Lv2, we could do the same, but since those shall (according to voting above, and according to Lv2 devs) only have 1 external UI for both sides, it's getting a strange mix: You'd have 2 internal UIs, but if you open the external UI it's only 1.
There are ways to solve the 2 internal vs 1 external UI (see Dom's post right above, last paragraph), but it might be way easier if we just have 1 internal UI. Plus, #4635 would soon allow to pan the D/W amount between sides, especially applying an effect on only 1 side. This might compensate the need for having 2 internal UIs. Until #4635 is completed, the same effect can be achieved with FX sends and amplifier/stereo matrix effects.
What do you think?