Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::ReedExciterT< SampleType > Class Template Reference

A normalized pressure-controlled reed valve. More...

#include <waveguide_reed_exciter.hpp>

Public Member Functions

void set_closing_pressure (SampleType value) noexcept
void set_flow_gain (SampleType value) noexcept
void set_bore_impedance (SampleType value) noexcept
SampleType closing_pressure () const noexcept
SampleType flow_gain () const noexcept
SampleType bore_impedance () const noexcept
SampleType process (SampleType mouth_pressure, SampleType bore_incident) noexcept
 Evaluates the explicit bounded valve equation.
void reset () noexcept

Static Public Attributes

static constexpr SampleType minimum_closing_pressure = SampleType{0.05}
static constexpr SampleType maximum_closing_pressure = SampleType{1}
static constexpr SampleType default_closing_pressure = SampleType{0.35}
static constexpr SampleType minimum_flow_gain = SampleType{0.01}
static constexpr SampleType maximum_flow_gain = SampleType{4}
static constexpr SampleType default_flow_gain = SampleType{1}
static constexpr SampleType minimum_bore_impedance = SampleType{1.0e-6}
static constexpr SampleType maximum_bore_impedance = std::numeric_limits<SampleType>::max()
static constexpr SampleType default_bore_impedance = SampleType{1}

Detailed Description

template<typename SampleType = float>
class pulp::signal::ReedExciterT< SampleType >

A normalized pressure-controlled reed valve.

bore_incident is the arriving traveling-wave pressure proxy used by the bounded Matthew/MSW-inspired scalar model; this type does not claim an implicit physical pressure-junction solve. It owns no oversampler because the composition that owns the recursive waveguide loop must oversample the entire feedback path. The signed law permits reverse flow, so zero mouth pressure is an exact equilibrium but not a passive closed termination after a disturbance; closing requires controls that clamp the opening to zero.

Member Function Documentation

◆ bore_impedance()

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::bore_impedance ( ) const
inlinenodiscardnoexcept

◆ closing_pressure()

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::closing_pressure ( ) const
inlinenodiscardnoexcept

◆ flow_gain()

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::flow_gain ( ) const
inlinenodiscardnoexcept

◆ process()

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::process ( SampleType mouth_pressure,
SampleType bore_incident )
inlinenodiscardnoexcept

Evaluates the explicit bounded valve equation.

Non-finite input or an unrepresentable result returns the previous finite output without changing fallback state.

◆ reset()

template<typename SampleType = float>
void pulp::signal::ReedExciterT< SampleType >::reset ( )
inlinenoexcept

◆ set_bore_impedance()

template<typename SampleType = float>
void pulp::signal::ReedExciterT< SampleType >::set_bore_impedance ( SampleType value)
inlinenoexcept

◆ set_closing_pressure()

template<typename SampleType = float>
void pulp::signal::ReedExciterT< SampleType >::set_closing_pressure ( SampleType value)
inlinenoexcept

◆ set_flow_gain()

template<typename SampleType = float>
void pulp::signal::ReedExciterT< SampleType >::set_flow_gain ( SampleType value)
inlinenoexcept

Member Data Documentation

◆ default_bore_impedance

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::default_bore_impedance = SampleType{1}
staticconstexpr

◆ default_closing_pressure

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::default_closing_pressure = SampleType{0.35}
staticconstexpr

◆ default_flow_gain

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::default_flow_gain = SampleType{1}
staticconstexpr

◆ maximum_bore_impedance

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::maximum_bore_impedance = std::numeric_limits<SampleType>::max()
staticconstexpr

◆ maximum_closing_pressure

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::maximum_closing_pressure = SampleType{1}
staticconstexpr

◆ maximum_flow_gain

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::maximum_flow_gain = SampleType{4}
staticconstexpr

◆ minimum_bore_impedance

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::minimum_bore_impedance = SampleType{1.0e-6}
staticconstexpr

◆ minimum_closing_pressure

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::minimum_closing_pressure = SampleType{0.05}
staticconstexpr

◆ minimum_flow_gain

template<typename SampleType = float>
SampleType pulp::signal::ReedExciterT< SampleType >::minimum_flow_gain = SampleType{0.01}
staticconstexpr

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