DSPark 1.8.0
Header-only C++20 DSP for real-time and offline audio
Loading...
Searching...
No Matches
dspark::TransformerModel< T > Class Template Reference

Physical audio-transformer coloration (flux-domain JA hysteresis). More...

#include <TransformerModel.h>

Public Member Functions

void prepare (const AudioSpec &spec)
 Allocates per-channel circuit state. Invalid specs (non-positive or non-finite rate, block size or channel count) are ignored: the previous state is kept and an unprepared instance stays pass-through.
 
void reset () noexcept
 Clears all signal state. RT-safe.
 
void setDrive (T db) noexcept
 Core drive in dB [-12, +24]; loudness-compensated. Non-finite values are ignored.
 
void setCoreSize (T size) noexcept
 Core size [0, 1]: small chokes at 40 Hz and saturates early, big rings to 5 Hz with more low-end headroom. Default 0.5. Non-finite values are ignored.
 
void setResonance (T amount) noexcept
 Leakage/capacitance HF bell amount [0, 1] (Jensen-style). Non-finite values are ignored.
 
void setMix (T mix) noexcept
 Dry/wet mix [0, 1]; the dry path is delayed to getLatency() and the mix is ramped over at least 20 ms. Non-finite values are ignored.
 
T getDrive () const noexcept
 
T getCoreSize () const noexcept
 
T getResonance () const noexcept
 
T getMix () const noexcept
 
void setOversampling (int factor)
 Configures internal oversampling of the core. SETUP THREAD ONLY: it reallocates the filters and re-runs the calibration exactly like prepare(); never call it concurrently with processBlock().
 
int getOversamplingFactor () const noexcept
 Active oversampling factor (1 = off, 2 = default).
 
int getLatency () const noexcept
 Latency in samples: the active oversampler's group delay (0 at 1x). The model itself is minimum-phase IIR and memoryless NR.
 
int getLatencySamples () const noexcept
 Compatibility alias of getLatency(), in prepared-rate samples.
 
std::vector< uint8_t > getState () const
 Serializes the parameter state (setup/UI threads; allocates).
 
bool setState (const uint8_t *data, size_t size)
 Restores parameters from a blob (tolerant; rejects foreign ids). Setup thread: a stored oversampling factor other than the active one re-prepares, as setOversampling() does. Blobs from before the factor was stored restore the default, 2.
 
void processBlock (AudioBufferView< T > buffer) noexcept
 Processes a block in-place. Pass-through until prepare() succeeds. Blocks longer than the prepared maximum are processed in pieces.
 

Detailed Description

template<FloatType T>
class dspark::TransformerModel< T >

Physical audio-transformer coloration (flux-domain JA hysteresis).

Template Parameters
TSample type (float or double).

Definition at line 98 of file TransformerModel.h.

Member Function Documentation

◆ getCoreSize()

template<FloatType T>
T dspark::TransformerModel< T >::getCoreSize ( ) const
inlinenoexcept

Definition at line 214 of file TransformerModel.h.

◆ getDrive()

template<FloatType T>
T dspark::TransformerModel< T >::getDrive ( ) const
inlinenoexcept

Definition at line 213 of file TransformerModel.h.

◆ getLatency()

template<FloatType T>
int dspark::TransformerModel< T >::getLatency ( ) const
inlinenoexcept

Latency in samples: the active oversampler's group delay (0 at 1x). The model itself is minimum-phase IIR and memoryless NR.

Definition at line 242 of file TransformerModel.h.

◆ getLatencySamples()

template<FloatType T>
int dspark::TransformerModel< T >::getLatencySamples ( ) const
inlinenoexcept

Compatibility alias of getLatency(), in prepared-rate samples.

Definition at line 245 of file TransformerModel.h.

◆ getMix()

template<FloatType T>
T dspark::TransformerModel< T >::getMix ( ) const
inlinenoexcept

Definition at line 216 of file TransformerModel.h.

◆ getOversamplingFactor()

template<FloatType T>
int dspark::TransformerModel< T >::getOversamplingFactor ( ) const
inlinenoexcept

Active oversampling factor (1 = off, 2 = default).

Definition at line 238 of file TransformerModel.h.

◆ getResonance()

template<FloatType T>
T dspark::TransformerModel< T >::getResonance ( ) const
inlinenoexcept

Definition at line 215 of file TransformerModel.h.

◆ getState()

template<FloatType T>
std::vector< uint8_t > dspark::TransformerModel< T >::getState ( ) const
inline

Serializes the parameter state (setup/UI threads; allocates).

Definition at line 248 of file TransformerModel.h.

◆ prepare()

template<FloatType T>
void dspark::TransformerModel< T >::prepare ( const AudioSpec &  spec)
inline

Allocates per-channel circuit state. Invalid specs (non-positive or non-finite rate, block size or channel count) are ignored: the previous state is kept and an unprepared instance stays pass-through.

Definition at line 107 of file TransformerModel.h.

◆ processBlock()

template<FloatType T>
void dspark::TransformerModel< T >::processBlock ( AudioBufferView< T >  buffer)
inlinenoexcept

Processes a block in-place. Pass-through until prepare() succeeds. Blocks longer than the prepared maximum are processed in pieces.

Definition at line 281 of file TransformerModel.h.

◆ reset()

template<FloatType T>
void dspark::TransformerModel< T >::reset ( )
inlinenoexcept

Clears all signal state. RT-safe.

Definition at line 151 of file TransformerModel.h.

◆ setCoreSize()

template<FloatType T>
void dspark::TransformerModel< T >::setCoreSize ( T  size)
inlinenoexcept

Core size [0, 1]: small chokes at 40 Hz and saturates early, big rings to 5 Hz with more low-end headroom. Default 0.5. Non-finite values are ignored.

Definition at line 188 of file TransformerModel.h.

◆ setDrive()

template<FloatType T>
void dspark::TransformerModel< T >::setDrive ( T  db)
inlinenoexcept

Core drive in dB [-12, +24]; loudness-compensated. Non-finite values are ignored.

Definition at line 178 of file TransformerModel.h.

◆ setMix()

template<FloatType T>
void dspark::TransformerModel< T >::setMix ( T  mix)
inlinenoexcept

Dry/wet mix [0, 1]; the dry path is delayed to getLatency() and the mix is ramped over at least 20 ms. Non-finite values are ignored.

Definition at line 207 of file TransformerModel.h.

◆ setOversampling()

template<FloatType T>
void dspark::TransformerModel< T >::setOversampling ( int  factor)
inline

Configures internal oversampling of the core. SETUP THREAD ONLY: it reallocates the filters and re-runs the calibration exactly like prepare(); never call it concurrently with processBlock().

Parameters
factorPower of two in {1, 2, 4, 8, 16}. 1 = off (zero latency; the loop's harmonics above the base Nyquist then fold into the band). 2 is the default. Other values are ignored. getLatency() reflects the new factor after this call.

Definition at line 228 of file TransformerModel.h.

◆ setResonance()

template<FloatType T>
void dspark::TransformerModel< T >::setResonance ( T  amount)
inlinenoexcept

Leakage/capacitance HF bell amount [0, 1] (Jensen-style). Non-finite values are ignored.

Definition at line 197 of file TransformerModel.h.

◆ setState()

template<FloatType T>
bool dspark::TransformerModel< T >::setState ( const uint8_t *  data,
size_t  size 
)
inline

Restores parameters from a blob (tolerant; rejects foreign ids). Setup thread: a stored oversampling factor other than the active one re-prepares, as setOversampling() does. Blobs from before the factor was stored restore the default, 2.

Definition at line 265 of file TransformerModel.h.


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