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

A fixed-capacity body-shaped excitation shared by plucked-string voices. More...

#include <commuted_string_excitation.hpp>

Public Member Functions

CommutedStringExcitationPrepareStatus prepare (std::span< const SampleType > base_excitation, std::span< const SampleType > body_impulse_response) noexcept
std::span< const SampleType > samples () const noexcept
std::size_t retained_samples () const noexcept
bool empty () const noexcept
CommutedStringExcitationCursorT< SampleType > make_cursor () const noexcept

Static Public Attributes

static constexpr std::size_t maximum_retained_samples = MaximumRetainedSamples

Detailed Description

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
class pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >

A fixed-capacity body-shaped excitation shared by plucked-string voices.

prepare() performs the finite time-domain convolution of a base excitation and body impulse response. It is a control-thread operation and must not run while a cursor refers to the profile. Invalid input leaves the previous profile unchanged. Successful preparation exposes immutable samples; each voice owns only its independent cursor and feeds next() to its string.

Member Function Documentation

◆ empty()

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
bool pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >::empty ( ) const
inlinenodiscardnoexcept

◆ make_cursor()

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
CommutedStringExcitationCursorT< SampleType > pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >::make_cursor ( ) const
inlinenodiscardnoexcept

◆ prepare()

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
CommutedStringExcitationPrepareStatus pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >::prepare ( std::span< const SampleType > base_excitation,
std::span< const SampleType > body_impulse_response )
inlinenodiscardnoexcept

◆ retained_samples()

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
std::size_t pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >::retained_samples ( ) const
inlinenodiscardnoexcept

◆ samples()

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
std::span< const SampleType > pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >::samples ( ) const
inlinenodiscardnoexcept

Member Data Documentation

◆ maximum_retained_samples

template<typename SampleType = float, std::size_t MaximumRetainedSamples = 16384>
std::size_t pulp::signal::CommutedStringExcitationProfileT< SampleType, MaximumRetainedSamples >::maximum_retained_samples = MaximumRetainedSamples
staticconstexpr

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