anthonyalfimov / Stable-Delay

AU, VST3. A WIP delay/chorus/flanger plugin
GNU General Public License v3.0
5 stars 1 forks source link

Use separate set of Rate, Depth, Feedback controls for each FX type? #25

Closed anthonyalfimov closed 3 years ago

anthonyalfimov commented 3 years ago

Rate and Depth controls are shared between Chorus and Flanger modes of the plugin. The Feedback control is shared between Delay and Flanger mode.

Right now, the state of these controls persist when switching between FX types. This means that the state of each FX itself is not preserved. It might be better to have a separate set of these controls for each FX type, so the sound of each FX is preserved, rather than control state.

Note that for the Dry Wet control, preserving the control state when switching modes seems beneficial to me.

anthonyalfimov commented 3 years ago

If we do this for the Feedback parameter, the version for Flanger FX type should have range from -120% to 120%.

SWONIC commented 3 years ago

Hm, depends on the future of the plugin I think. If it's just 3 different modes packed into one plugin, it might not matter or even make sense if the state of the controls persists. Because I would imagine to open the plugin and then choose one of the three modes. You could even start with an empty page then.... on the other hand if you plan to have a possibility of mixing two or more of the modes together in the future I would just right away make them individual controls for each mode/fx type.

I think the dry/wet makes a little bit more sense if it's preserving the control state but on the other hand it doesn't really matter too much. I don't think if I would make a delay sound and then decide to switch to chorus instead the new setting will most likely need a new dry/wet setting as well...

anthonyalfimov commented 3 years ago

I wasn't planning to significantly expand this plugin beyond the current scope. So most likely it will keep to the "choose one of the three modes" formula. I guess you're right, in this case it doesn't really make sense to have separate controls.

One thing I haven't considered before is automation. Currently, if you automate Chorus "Rate", and switch to Flanger, the "Rate" will remain automated. If I switch to internally having separate "Rate" controls for Chorus and Flanger, then it won't be the case anymore. And I would prefer for the automation to still work.

The benefit of having separate controls is that they can have different ranges. This would be useful for Flanger: "Flanger Feedback" could go from -120% to 120% for negative feedback. And "Delay Feedback" could stay 0 to 120%. (Although, negative feedback at very short delay times would be interesting even in "Delay" mode..)

But, the same can be achieved with an "Invert Feedback" button. It's even better, because doubling the range of the "Feedback" knob would reduce precision. And if negative feedback turns out to be useless in "Delay" mode, it's easy to just hide it. Just need to figure out where to place the button.


Thanks! I think the idea of separate controls can be put to rest now. Loosing automation when switching FX types doesn't feel right to me. And negative feedback can be achieved via an "Invert" button #45.

Mixing three FX types is a fun idea, but it would require restructuring the whole UI to make things clear. If it produces interesting results, it would be better off as its own separate plugin built around this idea. Luckily, it's very easy to prototype using multiple instances of the plugin. I'm gonna play with that.