|
DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
|
FFT-based partitioned convolution for long impulse responses. More...
#include "AudioBuffer.h"#include "AudioSpec.h"#include "FFT.h"#include "SimdOps.h"#include <algorithm>#include <cassert>#include <memory>#include <vector>

Go to the source code of this file.
Classes | |
| class | dspark::Convolver< T > |
| Real-time partitioned convolution using overlap-save with FFT. More... | |
Namespaces | |
| namespace | dspark |
| Main namespace for the DSPark framework. | |
FFT-based partitioned convolution for long impulse responses.
Implements the uniform partitioned overlap-save algorithm, which is the standard approach for real-time convolution with long impulse responses (reverb IRs, cabinet simulations, etc.). Breaks the IR into blocks, transforms each block with FFT, and convolves in the frequency domain.
Complexity: O(N log N) per block, vs O(N * M) for direct convolution. For a 2-second reverb IR at 48 kHz (96000 samples), direct convolution would require ~96000 multiplies per sample. FFT-based convolution needs ~20.
Dependencies: FFT.h, AudioBuffer.h, AudioSpec.h, SimdOps.h.
Definition in file Convolver.h.