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

Analog-style random modulation: white/pink/brown drift generators. More...

#include <algorithm>
#include <array>
#include <atomic>
#include <chrono>
#include <cmath>
#include <cstdint>
#include <span>
#include <type_traits>
#include "AnalogConstants.h"
Include dependency graph for AnalogRandom.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  dspark::AnalogRandom::Detail::Xoshiro256pp
 A compact xoshiro256++ PRNG implementation (non-threadsafe). More...
 
class  dspark::AnalogRandom::Generator< Real >
 Main generator class for analog-style random modulation. More...
 

Namespaces

namespace  dspark
 Main namespace for the DSPark framework.
 
namespace  AnalogRandom
 Main namespace for the analog random generation library.
 
namespace  dspark::AnalogRandom
 
namespace  dspark::AnalogRandom::Detail
 

Enumerations

enum class  dspark::AnalogRandom::NoiseType { dspark::AnalogRandom::Pink , dspark::AnalogRandom::Brown , dspark::AnalogRandom::White }
 Defines the spectral distribution of the random fluctuations. More...
 
enum class  dspark::AnalogRandom::BpmDivision {
  dspark::AnalogRandom::One , dspark::AnalogRandom::Half , dspark::AnalogRandom::Quarter , dspark::AnalogRandom::Eighth ,
  dspark::AnalogRandom::Sixteenth , dspark::AnalogRandom::ThirtySecond , dspark::AnalogRandom::HalfTriplet , dspark::AnalogRandom::QuarterTriplet ,
  dspark::AnalogRandom::EighthTriplet , dspark::AnalogRandom::SixteenthTriplet , dspark::AnalogRandom::DottedHalf , dspark::AnalogRandom::DottedQuarter ,
  dspark::AnalogRandom::DottedEighth
}
 
enum class  dspark::AnalogRandom::AnalogComponent {
  dspark::AnalogRandom::TapeMachine , dspark::AnalogRandom::VacuumTube , dspark::AnalogRandom::Transistor , dspark::AnalogRandom::Compressor ,
  dspark::AnalogRandom::Equalizer
}
 

Detailed Description

Analog-style random modulation: white/pink/brown drift generators.

Header-only C++20 generator of smooth, analog-style random values for modulation. Supports white, pink, and brown noise types.

Features:

  • True audio-rate analog drift (continuous 1/f and 1/f^2 filtering).
  • Sample-and-Hold LFO behavior with 1-pole smoothing.
  • Zero allocations, cache-friendly block processing.
  • Lock-free thread safety between GUI and audio threads.
  • DC-free denormal mitigation.

Dependencies: AnalogConstants.h, C++20 standard library (<algorithm>, <array>, <atomic>, <chrono>, <cmath>, <cstdint>, , <type_traits>).

Definition in file AnalogRandom.h.