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

Fixed-capacity, click-free path selector. More...

#include <path_switcher.hpp>

Public Member Functions

bool configure (std::size_t paths, std::size_t initial_path, std::size_t fade_samples) noexcept
bool request_path (std::size_t path) noexcept
void reset () noexcept
std::size_t path_count () const noexcept
std::size_t selected_path () const noexcept
bool switching () const noexcept
std::span< const SampleType > weights () const noexcept
bool next_gains (std::span< SampleType > destination) noexcept
bool process (const SampleType *const *sources, std::size_t source_count, SampleType *destination, std::size_t frames) noexcept

Static Public Attributes

static constexpr std::size_t max_paths = MaxPaths

Detailed Description

template<typename SampleType = float, std::size_t MaxPaths = 16>
class pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >

Fixed-capacity, click-free path selector.

Requests made during a fade begin from the current N-way gain vector, so automation never jumps. The vector is smoothstep-interpolated and L2-normalized on every sample, preserving a constant-power gain law for decorrelated paths. Processing is allocation- free; source buffers must not alias the destination.

Member Function Documentation

◆ configure()

template<typename SampleType = float, std::size_t MaxPaths = 16>
bool pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::configure ( std::size_t paths,
std::size_t initial_path,
std::size_t fade_samples )
inlinenoexcept

◆ next_gains()

template<typename SampleType = float, std::size_t MaxPaths = 16>
bool pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::next_gains ( std::span< SampleType > destination)
inlinenoexcept

◆ path_count()

template<typename SampleType = float, std::size_t MaxPaths = 16>
std::size_t pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::path_count ( ) const
inlinenoexcept

◆ process()

template<typename SampleType = float, std::size_t MaxPaths = 16>
bool pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::process ( const SampleType *const * sources,
std::size_t source_count,
SampleType * destination,
std::size_t frames )
inlinenoexcept

◆ request_path()

template<typename SampleType = float, std::size_t MaxPaths = 16>
bool pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::request_path ( std::size_t path)
inlinenoexcept

◆ reset()

template<typename SampleType = float, std::size_t MaxPaths = 16>
void pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::reset ( )
inlinenoexcept

◆ selected_path()

template<typename SampleType = float, std::size_t MaxPaths = 16>
std::size_t pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::selected_path ( ) const
inlinenoexcept

◆ switching()

template<typename SampleType = float, std::size_t MaxPaths = 16>
bool pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::switching ( ) const
inlinenoexcept

◆ weights()

template<typename SampleType = float, std::size_t MaxPaths = 16>
std::span< const SampleType > pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::weights ( ) const
inlinenoexcept

Member Data Documentation

◆ max_paths

template<typename SampleType = float, std::size_t MaxPaths = 16>
std::size_t pulp::signal::ClickFreePathSwitcherT< SampleType, MaxPaths >::max_paths = MaxPaths
staticconstexpr

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