Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::chardelay::JilesAthertonHysteresis Class Reference

The hysteresis stage for one channel, in normalized units. More...

#include <hysteresis.hpp>

Public Member Functions

void prepare (double solver_rate_hz) noexcept
void reset () noexcept
void set_character (double drive, double bias) noexcept
 drive and bias come from the tape character table; both are re-mapped onto physical constants here rather than being used as gain and offset.
double process (double field) noexcept
 One solver step.
std::size_t converged_steps () const noexcept
 Diagnostics for the acceptance suite: how often the solver converged inside the iteration cap versus ran out of iterations.
std::size_t capped_steps () const noexcept
void clear_solver_counters () noexcept

Detailed Description

The hysteresis stage for one channel, in normalized units.

Member Function Documentation

◆ capped_steps()

std::size_t pulp::signal::chardelay::JilesAthertonHysteresis::capped_steps ( ) const
inlinenoexcept

◆ clear_solver_counters()

void pulp::signal::chardelay::JilesAthertonHysteresis::clear_solver_counters ( )
inlinenoexcept

◆ converged_steps()

std::size_t pulp::signal::chardelay::JilesAthertonHysteresis::converged_steps ( ) const
inlinenoexcept

Diagnostics for the acceptance suite: how often the solver converged inside the iteration cap versus ran out of iterations.

◆ prepare()

void pulp::signal::chardelay::JilesAthertonHysteresis::prepare ( double solver_rate_hz)
inlinenoexcept

◆ process()

double pulp::signal::chardelay::JilesAthertonHysteresis::process ( double field)
inlinenoexcept

One solver step.

Input and output are normalized magnetic field and magnetization respectively.

◆ reset()

void pulp::signal::chardelay::JilesAthertonHysteresis::reset ( )
inlinenoexcept

◆ set_character()

void pulp::signal::chardelay::JilesAthertonHysteresis::set_character ( double drive,
double bias )
inlinenoexcept

drive and bias come from the tape character table; both are re-mapped onto physical constants here rather than being used as gain and offset.

drive → a (the anhysteretic shape parameter: smaller a is a steeper approach to saturation, i.e. more saturation for the same field, which is what a drive control should do) bias → c (the reversible fraction: less reversibility means a wider loop and more odd-harmonic content — a worn machine) k and α stay at their published γ-Fe2O3 values. [the mapping CURVES are design parameters; the endpoints they map onto are published]


The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/character_delay/hysteresis.hpp