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

#include <adsr.hpp>

Classes

struct  Params

Public Types

enum class  Stage {
  idle , attack , decay , sustain ,
  release
}

Public Member Functions

void set_params (const Params &p)
void set_sample_rate (SampleType sr)
void note_on ()
void note_off ()
void reset ()
SampleType next ()
bool is_active () const
Stage stage () const
void apply_to_buffer (SampleType *buffer, int start_sample, int num_samples)
 Multiply num_samples of buffer (starting at start_sample) by successive envelope values.
void apply_to_buffer (SampleType *const *channels, int num_channels, int start_sample, int num_samples)
 Multiply each channel of a planar multi-channel buffer by the same envelope.

Member Enumeration Documentation

◆ Stage

template<typename SampleType = float>
enum class pulp::signal::AdsrT::Stage
strong
Enumerator
idle 
attack 
decay 
sustain 
release 

Member Function Documentation

◆ apply_to_buffer() [1/2]

template<typename SampleType = float>
void pulp::signal::AdsrT< SampleType >::apply_to_buffer ( SampleType * buffer,
int start_sample,
int num_samples )
inline

Multiply num_samples of buffer (starting at start_sample) by successive envelope values.

Advances the envelope by num_samples. Real-time safe; no allocations.

adsr.apply_to_buffer(audio_data, 0, block_size); // amplitude envelope

◆ apply_to_buffer() [2/2]

template<typename SampleType = float>
void pulp::signal::AdsrT< SampleType >::apply_to_buffer ( SampleType *const * channels,
int num_channels,
int start_sample,
int num_samples )
inline

Multiply each channel of a planar multi-channel buffer by the same envelope.

All channels see the same envelope progression — the envelope advances once per sample, not per (sample, channel) pair.

◆ is_active()

template<typename SampleType = float>
bool pulp::signal::AdsrT< SampleType >::is_active ( ) const
inline

◆ next()

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

◆ note_off()

template<typename SampleType = float>
void pulp::signal::AdsrT< SampleType >::note_off ( )
inline

◆ note_on()

template<typename SampleType = float>
void pulp::signal::AdsrT< SampleType >::note_on ( )
inline

◆ reset()

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

◆ set_params()

template<typename SampleType = float>
void pulp::signal::AdsrT< SampleType >::set_params ( const Params & p)
inline

◆ set_sample_rate()

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

◆ stage()

template<typename SampleType = float>
Stage pulp::signal::AdsrT< SampleType >::stage ( ) const
inline

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