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

Everything designed for one tape speed: the gap FIR (speed-only) and the scaled IIR parameters, which are a pure function of geometry once the dimensionless shapes are fitted. More...

#include <tape_loss.hpp>

Public Member Functions

void prepare (double fs, double speed_ips)
 Expensive: fits both dimensionless shapes. Once per instance.
void set_speed (double speed_ips)
 Cheap by comparison: only the gap FIR is redesigned, because only it depends on the speed in a way a scale factor cannot express.
bool empty () const noexcept
double speed_ips () const noexcept
const std::vector< double > & gap_taps () const noexcept
double gap_group_delay_samples () const noexcept
const TapeLossShapes & shapes () const noexcept
TapeLossGeometry geometry_at (double age) const noexcept
 The geometry at a given age: spacing walks the age table, everything else is fixed.
TapeLossIirParams parameters_at (double age) const noexcept
 Filter parameters at age.

Detailed Description

Everything designed for one tape speed: the gap FIR (speed-only) and the scaled IIR parameters, which are a pure function of geometry once the dimensionless shapes are fitted.

Member Function Documentation

◆ empty()

bool pulp::signal::chardelay::TapeLossDesign::empty ( ) const
inlinenoexcept

◆ gap_group_delay_samples()

double pulp::signal::chardelay::TapeLossDesign::gap_group_delay_samples ( ) const
inlinenoexcept

◆ gap_taps()

const std::vector< double > & pulp::signal::chardelay::TapeLossDesign::gap_taps ( ) const
inlinenoexcept

◆ geometry_at()

TapeLossGeometry pulp::signal::chardelay::TapeLossDesign::geometry_at ( double age) const
inlinenoexcept

The geometry at a given age: spacing walks the age table, everything else is fixed.

◆ parameters_at()

TapeLossIirParams pulp::signal::chardelay::TapeLossDesign::parameters_at ( double age) const
inlinenoexcept

Filter parameters at age.

Exact at every age — a scalar multiply of a fitted shape, not an interpolation between fits. Allocation-free.

◆ prepare()

void pulp::signal::chardelay::TapeLossDesign::prepare ( double fs,
double speed_ips )
inline

Expensive: fits both dimensionless shapes. Once per instance.

◆ set_speed()

void pulp::signal::chardelay::TapeLossDesign::set_speed ( double speed_ips)
inline

Cheap by comparison: only the gap FIR is redesigned, because only it depends on the speed in a way a scale factor cannot express.

◆ shapes()

const TapeLossShapes & pulp::signal::chardelay::TapeLossDesign::shapes ( ) const
inlinenoexcept

◆ speed_ips()

double pulp::signal::chardelay::TapeLossDesign::speed_ips ( ) const
inlinenoexcept

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