DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
dspark::AnalogRandom::Generator< Real > Class Template Reference

Main generator class for analog-style random modulation. More...

#include <AnalogRandom.h>

Public Member Functions

 Generator () noexcept
 
 Generator (std::uint64_t seed) noexcept
 
 Generator (Generator &&other) noexcept
 
Generatoroperator= (Generator &&other) noexcept
 
 Generator (const Generator &)=delete
 
Generatoroperator= (const Generator &)=delete
 
void prepare (double sampleRate) noexcept
 Prepare the generator with the audio sample rate.
 
void reset () noexcept
 Reset internal state (phase, smoothing, noise states).
 
void reseed (std::uint64_t newSeed) noexcept
 Request a lock-free reseed of the internal PRNG.
 
Real getNextSample () noexcept
 Generate and return the next modulation sample.
 
void getNextBlock (std::span< Real > outputBuffer) noexcept
 Generate a block of modulation samples.
 
Real getCurrentValue () const noexcept
 
Real getPhase () const noexcept
 
void setNoiseType (NoiseType type) noexcept
 
void setRateHz (Real rateInHz) noexcept
 
void setRateBPM (double bpm, BpmDivision division) noexcept
 
void updateBPM (double newBpm) noexcept
 
template<typename T >
void setRange (T min, T max) noexcept
 Set the output range for values. Safe from tearing.
 
void setSmoothing (bool shouldBeEnabled, Real timeInMs=static_cast< Real >(50.0)) noexcept
 
void setQuantization (Real step) noexcept
 
void setAnalogDefault (AnalogComponent component) noexcept
 
template<typename Int >
Int getNextDiscrete (Int imin, Int imax) noexcept
 
int getNextDiscreteInt (int imin, int imax) noexcept
 

Detailed Description

template<typename Real = float>
class dspark::AnalogRandom::Generator< Real >

Main generator class for analog-style random modulation.

Template Parameters
RealFloating point type to represent values (float or double).

Definition at line 149 of file AnalogRandom.h.

Constructor & Destructor Documentation

◆ Generator() [1/4]

template<typename Real = float>
dspark::AnalogRandom::Generator< Real >::Generator ( )
inlinenoexcept

Definition at line 155 of file AnalogRandom.h.

◆ Generator() [2/4]

template<typename Real = float>
dspark::AnalogRandom::Generator< Real >::Generator ( std::uint64_t  seed)
inlineexplicitnoexcept

Definition at line 160 of file AnalogRandom.h.

◆ Generator() [3/4]

template<typename Real = float>
dspark::AnalogRandom::Generator< Real >::Generator ( Generator< Real > &&  other)
inlinenoexcept

Definition at line 170 of file AnalogRandom.h.

◆ Generator() [4/4]

template<typename Real = float>
dspark::AnalogRandom::Generator< Real >::Generator ( const Generator< Real > &  )
delete

Member Function Documentation

◆ getCurrentValue()

template<typename Real = float>
Real dspark::AnalogRandom::Generator< Real >::getCurrentValue ( ) const
inlinenoexcept

Definition at line 367 of file AnalogRandom.h.

◆ getNextBlock()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::getNextBlock ( std::span< Real >  outputBuffer)
inlinenoexcept

Generate a block of modulation samples.

Parameters
outputBufferC++20 span representing the destination buffer.
Note
Highly optimized SIMD/Cache-friendly path.

Definition at line 311 of file AnalogRandom.h.

◆ getNextDiscrete()

template<typename Real = float>
template<typename Int >
Int dspark::AnalogRandom::Generator< Real >::getNextDiscrete ( Int  imin,
Int  imax 
)
inlinenoexcept

Definition at line 471 of file AnalogRandom.h.

◆ getNextDiscreteInt()

template<typename Real = float>
int dspark::AnalogRandom::Generator< Real >::getNextDiscreteInt ( int  imin,
int  imax 
)
inlinenoexcept

Definition at line 491 of file AnalogRandom.h.

◆ getNextSample()

template<typename Real = float>
Real dspark::AnalogRandom::Generator< Real >::getNextSample ( )
inlinenoexcept

Generate and return the next modulation sample.

Returns
Next modulation value mapped into [min, max].
Note
Safe for real-time audio thread. Mitigates denormals dynamically.

Definition at line 270 of file AnalogRandom.h.

◆ getPhase()

template<typename Real = float>
Real dspark::AnalogRandom::Generator< Real >::getPhase ( ) const
inlinenoexcept

Definition at line 368 of file AnalogRandom.h.

◆ operator=() [1/2]

template<typename Real = float>
Generator & dspark::AnalogRandom::Generator< Real >::operator= ( const Generator< Real > &  )
delete

◆ operator=() [2/2]

template<typename Real = float>
Generator & dspark::AnalogRandom::Generator< Real >::operator= ( Generator< Real > &&  other)
inlinenoexcept

Definition at line 195 of file AnalogRandom.h.

◆ prepare()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::prepare ( double  sampleRate)
inlinenoexcept

Prepare the generator with the audio sample rate.

Parameters
sampleRateSample rate in Hz (must be > 0).

Definition at line 232 of file AnalogRandom.h.

◆ reseed()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::reseed ( std::uint64_t  newSeed)
inlinenoexcept

Request a lock-free reseed of the internal PRNG.

Parameters
newSeedNew seed value. Applied on the next audio tick.

Definition at line 255 of file AnalogRandom.h.

◆ reset()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::reset ( )
inlinenoexcept

Reset internal state (phase, smoothing, noise states).

Definition at line 241 of file AnalogRandom.h.

◆ setAnalogDefault()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::setAnalogDefault ( AnalogComponent  component)
inlinenoexcept

Definition at line 433 of file AnalogRandom.h.

◆ setNoiseType()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::setNoiseType ( NoiseType  type)
inlinenoexcept

Definition at line 374 of file AnalogRandom.h.

◆ setQuantization()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::setQuantization ( Real  step)
inlinenoexcept

Definition at line 427 of file AnalogRandom.h.

◆ setRange()

template<typename Real = float>
template<typename T >
void dspark::AnalogRandom::Generator< Real >::setRange ( min,
max 
)
inlinenoexcept

Set the output range for values. Safe from tearing.

Definition at line 401 of file AnalogRandom.h.

◆ setRateBPM()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::setRateBPM ( double  bpm,
BpmDivision  division 
)
inlinenoexcept

Definition at line 385 of file AnalogRandom.h.

◆ setRateHz()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::setRateHz ( Real  rateInHz)
inlinenoexcept

Definition at line 379 of file AnalogRandom.h.

◆ setSmoothing()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::setSmoothing ( bool  shouldBeEnabled,
Real  timeInMs = static_cast<Real>(50.0) 
)
inlinenoexcept

Definition at line 409 of file AnalogRandom.h.

◆ updateBPM()

template<typename Real = float>
void dspark::AnalogRandom::Generator< Real >::updateBPM ( double  newBpm)
inlinenoexcept

Definition at line 392 of file AnalogRandom.h.


The documentation for this class was generated from the following file: