|
DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
|
Classic analog-modeled phaser effect using LFO-modulated allpass filter stages. More...
#include "../Core/Oscillator.h"#include "../Core/DryWetMixer.h"#include "../Core/AudioSpec.h"#include "../Core/AudioBuffer.h"#include "../Core/DspMath.h"#include "../Core/StateBlob.h"#include <algorithm>#include <array>#include <atomic>#include <cmath>#include <cstddef>#include <cstdint>#include <numbers>#include <vector>

Go to the source code of this file.
Classes | |
| class | dspark::Phaser< T > |
| Zero-latency, highly optimized allpass-based phaser. More... | |
| struct | dspark::Phaser< T >::FirstOrderAllpass |
Namespaces | |
| namespace | dspark |
| Main namespace for the DSPark framework. | |
Classic analog-modeled phaser effect using LFO-modulated allpass filter stages.
Creates the sweeping "jet" sound by passing the signal through a series of first-order allpass filters whose cutoff frequencies are modulated by an LFO. Includes an analog-style saturation stage in the feedback loop to emulate classic hardware behavior and prevent harsh digital clipping.
Three levels of API complexity are provided:
setRate(), setDepth(), setMix()setStages(), setFeedback(), setFrequencyRange()setLfoWaveform(), setCenterFrequency()Threading: prepare() belongs to the setup thread; processBlock() and reset() belong to the audio thread. All setters are lock-free atomic publications, safe from any thread; the LFO rate/waveform/spread are applied on the audio thread at the next block (the oscillators are not thread-safe). Non-finite setter arguments are ignored.
Dependencies: Oscillator.h, DryWetMixer.h, AudioSpec.h, AudioBuffer.h, DspMath.h, StateBlob.h.
Definition in file Phaser.h.