anthonyalfimov / Stable-Delay

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

Delay self-oscillation tends to fade out when Feedback is not inverted #63

Open anthonyalfimov opened 3 years ago

anthonyalfimov commented 3 years ago

When Feedback parameter is set to above 100%, the delay starts self-oscillating if some input is present. Once self-oscillation started, no input signal is required anymore.

When Feedback is not inverted, this self-oscillation often quickly decays to no audible signal. This behaviour has not been observed when Feedback is inverted. "Decayed" self-oscillation still registers on level meters, while spectroscopes usually detect nothing. Voxengo SPAN displays the signal as the lowest possible frequency. Very likely it means we are dealing with a DC offset:

Screenshot 2021-07-23 at 20 18 26

Inverting the Feedback restores self-oscillation to being audible. Disabling inverted Feedback may result either in stable audible self-oscillation, or a blip of audible oscillation quickly fading out to no audible signal.

In addition to toggling "Feedback Invert" switch back and forth, the decay of un-inverted self-oscillation can be triggered by the input signal.

It appears that this decay behaviour only occurs at low Delay Time settings.


Comparing the spectra of inverted and non-inverted self-oscillation, it appears that inverted self-oscillation spectrum never features the extremely low frequency (DC?) component. On the other hand, non-inverted self-oscillation usually (but not always!) does.

Inverted Feedback self-oscillation spectrum

Screenshot 2021-07-23 at 20 28 29

Non-Inverted Feedback self-oscillation spectrum

Screenshot 2021-07-23 at 20 29 58

Side note: self-oscillation waveform

When toggling the "Feedback Invert" switch back and forth, the resulting oscillations of the same type (inverted or non-inverted) don't sound the same. Perhaps, this is due to distortion of the waveform by the flipping polarity of the Feedback parameter.

anthonyalfimov commented 3 years ago

Confirmed: self-oscillation decays to a DC offset.

anthonyalfimov commented 3 years ago

When feedback oscillation decays to DC offset, it becomes audible again while significant input signal is present. In practice, this results in a pretty useful effect: the feedback oscillation follows the input signal and fades away when no signal is present. This might be even more desirable than the "correct" inverted feedback oscillation, that is constantly droning regardless of the input.

Should we strive to turn this into a togglable behaviour? Or make it a sub-feature of ducking #56: when delay feedback is over 100%, ducking works in reverse? Or should reverse ducking be an option?

EDIT: I believe that adding an option of "inverse" ducking is the best solution here. So, we still need to fix the fade-to-DC behaviour.

anthonyalfimov commented 2 years ago

It appears that the fade-to-DC behaviour is more common when the input signal level is low (significantly lower than the 0 dBFS threshold of the folder-clipper in the feedback path).

anthonyalfimov commented 2 years ago

Perhaps, dithering could fix this?

anthonyalfimov commented 2 years ago

Check back after the decision on wether to use dynamic clipping #62 is made.