Class ReverbEffect
Schroeder–Moorer algorithmic reverb in the classic Freeverb topology (Jezar, public domain): per stereo bank, eight parallel low-pass-damped comb filters into four series all-pass filters, with a stereo-spread offset. Low CPU and a dependable sound — the lightweight baseline reverb. Reimplemented idiomatically (denormal-safe, allocation-free steady state); not a transliteration.
public sealed class ReverbEffect : AudioEffect, IAudioEffect, IParameterized
- Inheritance
-
ReverbEffect
- Implements
- Inherited Members
Constructors
ReverbEffect()
Creates the reverb with a sensible default wet/dry mix.
public ReverbEffect()
Properties
Damping
High-frequency damping, 0 (bright) to 1 (dark). Default 0.5.
public float Damping { get; set; }
Property Value
Parameters
Generic parameter list (excludes Bypass/Mix, which are on the base).
public IReadOnlyList<EffectParameter> Parameters { get; }
Property Value
RoomSize
Room size, 0 (small) to 1 (large). Default 0.5.
public float RoomSize { get; set; }
Property Value
Width
Stereo width of the reverb, 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()