Class FdnReverbEffect
Feedback-delay-network reverb in the clean, modulated-FDN style described by Signalsmith Audio: eight delay lines mixed each sample through an orthonormal Hadamard matrix, with per-line frequency damping and slow delay-length modulation for a smooth, dense, metallic-free tail. Decay is set directly as an RT60 time. The flagship quality reverb. (Algorithm/topology reference only — original implementation.)
public sealed class FdnReverbEffect : AudioEffect, IAudioEffect, IParameterized
- Inheritance
-
FdnReverbEffect
- Implements
- Inherited Members
Constructors
FdnReverbEffect()
Creates the reverb with a sensible default wet/dry mix.
public FdnReverbEffect()
Properties
Damping
High-frequency damping, 0 (bright) to 1 (dark). Default 0.3.
public float Damping { get; set; }
Property Value
DecaySeconds
Reverb decay time (RT60) in seconds. Default 2.0 s.
public float DecaySeconds { get; set; }
Property Value
ModulationDepthMs
Delay-modulation depth in milliseconds (lush detune). Default 0.5 ms.
public float ModulationDepthMs { get; set; }
Property Value
ModulationRateHz
Delay-modulation rate in Hz. Default 0.5 Hz.
public float ModulationRateHz { get; set; }
Property Value
Parameters
Generic parameter list (excludes Bypass/Mix, which are on the base).
public IReadOnlyList<EffectParameter> Parameters { get; }
Property Value
PreDelayMs
Pre-delay before the reverb tail, in milliseconds. Default 20 ms.
public float PreDelayMs { get; set; }
Property Value
Size
Room size multiplier applied to the delay lengths, 0.1–2. Default 1.
public float Size { get; set; }
Property Value
Width
Stereo width, 0 (mono) to 1 (wide). Default 1.
public float Width { get; set; }
Property Value
Methods
OnConfigure(WaveFormat)
Called by Configure(WaveFormat) after the format is stored. Derived effects allocate and size their sample-rate-dependent state here.
protected override void OnConfigure(WaveFormat format)
Parameters
formatWaveFormat
ProcessBlock(Span<float>)
Transforms buffer in place into the fully-wet signal. The
base class handles dry/wet mixing and bypass around this call.
protected override void ProcessBlock(Span<float> buffer)
Parameters
Reset()
Clears internal state (delay lines, envelopes, smoothers) so the next block starts as if from silence.
public override void Reset()