|
DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
|
#include <Saturation.h>


Public Member Functions | |
| void | prepare (const AudioSpec &spec) noexcept override |
| Prepares the algorithm with the current audio specification. | |
| void | reset () noexcept override |
| Resets internal states (filters, phase, memory). | |
| Saturation< T >::Algorithm | getType () const noexcept override |
| Identifies the exact algorithm type for CRTP static dispatch. | |
| void | update (T, T, const AudioSpec &spec) noexcept override |
| Updates internal coefficients dependent on block-rate parameters. | |
| T | processSample (T sample, T drive, T character, int ch) noexcept |
Public Member Functions inherited from dspark::detail::SaturationAlgorithm< T > | |
| virtual | ~SaturationAlgorithm ()=default |
| void | setAntialias (bool on) noexcept |
| Enables 1st-order antiderivative anti-aliasing (ADAA) on the memoryless curves (Tanh/Tube/HardClip). Combined with oversampling this is the cleanest known approach (Parker/Zavalishin DAFx-16, Bilbao et al. 2017). No-op for algorithms that do not implement it. Default off (transparent). | |
Additional Inherited Members | |
Static Public Attributes inherited from dspark::detail::SaturationAlgorithm< T > | |
| static constexpr int | kAaCh = 16 |
Protected Attributes inherited from dspark::detail::SaturationAlgorithm< T > | |
| std::atomic< bool > | antialias_ { false } |
Definition at line 447 of file Saturation.h.
|
inlineoverridevirtualnoexcept |
Identifies the exact algorithm type for CRTP static dispatch.
Implements dspark::detail::SaturationAlgorithm< T >.
Definition at line 465 of file Saturation.h.
|
inlineoverridevirtualnoexcept |
Prepares the algorithm with the current audio specification.
Implements dspark::detail::SaturationAlgorithm< T >.
Definition at line 455 of file Saturation.h.
|
inlinenoexcept |
Band-dependent saturation THRESHOLDS at unity small-signal gain: core flux scales like V/f, so lows reach saturation first (harder knee, tanh(1.4x)/1.4, ceiling 0.71) while highs barely do (tanh(0.85x)/0.85, ceiling 1.18). A real transformer's linear response is flat - the previous form left the band factors unnormalised, which was a fixed +2.3/-3.1 dB shelf tilt at 250 Hz that buried mids and highs (worst in the MultiStage cascade), and its resting-bias subtraction ignored the drive scaling, leaking drive-dependent DC.
Definition at line 489 of file Saturation.h.
|
inlineoverridevirtualnoexcept |
Resets internal states (filters, phase, memory).
Implements dspark::detail::SaturationAlgorithm< T >.
Definition at line 461 of file Saturation.h.
|
inlineoverridevirtualnoexcept |
Updates internal coefficients dependent on block-rate parameters.
Reimplemented from dspark::detail::SaturationAlgorithm< T >.
Definition at line 467 of file Saturation.h.