surge-synthesizer / surge

Synthesizer plug-in (previously released as Vember Audio Surge)
https://surge-synthesizer.github.io/
GNU General Public License v3.0
3.16k stars 399 forks source link

Replace all dB-based Width params in all FX with %-based one #6992

Open mkruselj opened 1 year ago

mkruselj commented 1 year ago

Currently, all effects with Width slider (except Conditioner) use a pretty uncommon (and just wrong sounding) dB-based Width slider which adjusts the volume of the side component of the signal. Trouble is, this slider goes +/-24 dB, which is far too much of a swing as it's really easy to heavily distort the signal when going above 0 dB.

Proposal: break this completely in XT2 and change the behavior so that side component is adjusted linearly in +/-2 range (with 1 being the default). The parameter type should change from ct_decibel_narrow to ct_percent_bipolar200 and a call to storage->db_to_linear() when setting the width param value can then be removed.

baconpaul commented 1 year ago

Immediate:

in ssd-effects I can add an FXConfig::isWidthLinear constexpr bool (or even better sifnae it into existance as false if its not there) and switch off that today constexpr style so shortcircuit and others pick up this new default in the interim