dplug.dsp.smooth

Various DSP smoothers.

Members

Structs

AbsSmoother
struct AbsSmoother(T)

Non-linear smoother using absolute difference. Designed to have a nice phase response. Warning: samplerate-dependent.

AttackReleaseSmoother
struct AttackReleaseSmoother(T)

Same as ExpSmoother but have different attack and release decay factors.

ExpSmoother
struct ExpSmoother(T)

Smooth values exponentially with a 1-pole lowpass. This is usually sufficient for most parameter smoothing.

GammaEnv
struct GammaEnv(T)

"gammaenv" produces smoothed-out S-curve envelope signal with the specified attack and release characteristics. The attack and release times can be further adjusted in real-time. Delay parameter is also specified as the percentage of the total time.

LinearSmoother
struct LinearSmoother(T)

Smooth values over time with a linear slope. This can be useful for some smoothing needs. Intermediate between fast phase and actual smoothing.

MeanFilter
struct MeanFilter(T)

Simple FIR to smooth things cheaply. Introduces (samples - 1) / 2 latency. Converts everything to long for stability purpose. So this may run forever as long as the input is below some threshold.

MedianFilter
struct MedianFilter(T)

Can be very useful when filtering values with outliers. For what it's meant to do, excellent phase response.

UnstableMeanFilter
struct UnstableMeanFilter(T)

Simple FIR to smooth things cheaply. Introduces (samples - 1) / 2 latency. This one doesn't convert to integers internally so it may loose precision over time. Meants for finite signals.

Meta

Authors

Guillaume Piolat