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

#include <supersaw.hpp>

Public Member Functions

bool prepare (SampleType sample_rate, const UnisonSpec &spec) noexcept
 Control-side preparation.
bool trigger (SampleType frequency, std::uint64_t seed, std::uint64_t note_instance_id) noexcept
 Audio-thread-safe note start.
StereoSampleT< SampleType > next (std::uint64_t absolute_frame) noexcept
 Render one stereo sample for the supplied absolute audio-frame index.
void reset () noexcept
 Audio-thread-safe hard reset.
bool prepared () const noexcept
bool active () const noexcept
const UnisonLayout< MaximumVoices > & layout () const noexcept

Member Function Documentation

◆ active()

template<typename SampleType = float, std::size_t MaximumVoices = 16>
bool pulp::signal::SupersawT< SampleType, MaximumVoices >::active ( ) const
inlinenoexcept

◆ layout()

template<typename SampleType = float, std::size_t MaximumVoices = 16>
const UnisonLayout< MaximumVoices > & pulp::signal::SupersawT< SampleType, MaximumVoices >::layout ( ) const
inlinenoexcept

◆ next()

template<typename SampleType = float, std::size_t MaximumVoices = 16>
StereoSampleT< SampleType > pulp::signal::SupersawT< SampleType, MaximumVoices >::next ( std::uint64_t absolute_frame)
inlinenoexcept

Render one stereo sample for the supplied absolute audio-frame index.

Calls are allocation-free. Consecutive frame indices produce output independent of how a host partitions those calls into callbacks.

◆ prepare()

template<typename SampleType = float, std::size_t MaximumVoices = 16>
bool pulp::signal::SupersawT< SampleType, MaximumVoices >::prepare ( SampleType sample_rate,
const UnisonSpec & spec )
inlinenoexcept

Control-side preparation.

The sample rate is in hertz; invalid input leaves the previous configuration and render state unchanged.

◆ prepared()

template<typename SampleType = float, std::size_t MaximumVoices = 16>
bool pulp::signal::SupersawT< SampleType, MaximumVoices >::prepared ( ) const
inlinenoexcept

◆ reset()

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

Audio-thread-safe hard reset.

Subsequent samples are silent until the next successful trigger.

◆ trigger()

template<typename SampleType = float, std::size_t MaximumVoices = 16>
bool pulp::signal::SupersawT< SampleType, MaximumVoices >::trigger ( SampleType frequency,
std::uint64_t seed,
std::uint64_t note_instance_id )
inlinenoexcept

Audio-thread-safe note start.

Frequency is in hertz and must remain below Nyquist after the configured maximum detune and drift. Failure is atomic: the currently sounding note is unchanged.


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