DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
Delay.h File Reference

Professional delay line with Hermite interpolation, analog feedback saturation, and stereo processing. More...

#include "../Core/AudioBuffer.h"
#include "../Core/AudioSpec.h"
#include "../Core/DspMath.h"
#include "../Core/Smoothers.h"
#include "../Core/StateBlob.h"
#include <algorithm>
#include <array>
#include <atomic>
#include <cmath>
#include <cstdint>
#include <cstring>
#include <vector>
Include dependency graph for Delay.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  dspark::Delay< SampleType >
 
struct  dspark::Delay< SampleType >::ChannelState
 

Namespaces

namespace  dspark
 Main namespace for the DSPark framework.
 

Detailed Description

Professional delay line with Hermite interpolation, analog feedback saturation, and stereo processing.

Features:

  • Power-of-two circular buffer with bitmask wrapping.
  • 3rd-order Hermite interpolation for artifact-free fractional delays.
  • Analog-modeled feedback loop with soft clipping and one-pole filtering.
  • Multiple smoother choices for glitch-free parameter modulation.
  • Fully independent channel write indices for safe interleaved or sequential processing.
  • Zero-allocation, lock-free, cache-friendly architecture.

Dependencies: Core/AudioBuffer.h, Core/AudioSpec.h, Core/DspMath.h, Core/Smoothers.h, Core/StateBlob.h.

Threading: prepare() belongs to the setup thread. The processing calls and reset() belong to the audio thread. Parameter setters are safe from any thread (atomics with a publish/apply handoff consumed at the top of the next processing call); non-finite setter values are ignored.

Template Parameters
SampleTypefloat or double.

Definition in file Delay.h.