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

Linear-interpolated morph across N Wavetables. More...

#include <wavetable.hpp>

Public Member Functions

 WavetableBankT ()=default
 WavetableBankT (std::vector< WavetableT< SampleType > > waveforms)
void set_sample_rate (SampleType sr)
void set_frequency (SampleType hz)
void set_frequency_immediate (SampleType hz)
 Snap every table to the band for hz with no crossfade — the first frequency after construction/reset, where there is no audible band to fade from.
void set_position (SampleType pos)
SampleType next ()
void reset ()
std::size_t size () const

Detailed Description

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

Linear-interpolated morph across N Wavetables.

Position 0..1 selects the wavetable: 0 = first, 1 = last, with linear interpolation between adjacent entries.

RT contract: construction and vector ownership changes allocate. Setters and next() allocate no memory once the bank is built.

Constructor & Destructor Documentation

◆ WavetableBankT() [1/2]

template<typename SampleType = float>
pulp::signal::WavetableBankT< SampleType >::WavetableBankT ( )
default

◆ WavetableBankT() [2/2]

template<typename SampleType = float>
pulp::signal::WavetableBankT< SampleType >::WavetableBankT ( std::vector< WavetableT< SampleType > > waveforms)
inlineexplicit

Member Function Documentation

◆ next()

template<typename SampleType = float>
SampleType pulp::signal::WavetableBankT< SampleType >::next ( )
inline

◆ reset()

template<typename SampleType = float>
void pulp::signal::WavetableBankT< SampleType >::reset ( )
inline

◆ set_frequency()

template<typename SampleType = float>
void pulp::signal::WavetableBankT< SampleType >::set_frequency ( SampleType hz)
inline

◆ set_frequency_immediate()

template<typename SampleType = float>
void pulp::signal::WavetableBankT< SampleType >::set_frequency_immediate ( SampleType hz)
inline

Snap every table to the band for hz with no crossfade — the first frequency after construction/reset, where there is no audible band to fade from.

See WavetableT::set_frequency_immediate.

◆ set_position()

template<typename SampleType = float>
void pulp::signal::WavetableBankT< SampleType >::set_position ( SampleType pos)
inline

◆ set_sample_rate()

template<typename SampleType = float>
void pulp::signal::WavetableBankT< SampleType >::set_sample_rate ( SampleType sr)
inline

◆ size()

template<typename SampleType = float>
std::size_t pulp::signal::WavetableBankT< SampleType >::size ( ) const
inline

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