Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
fractional_delay.hpp File Reference

Prepared fractional-delay storage with Thiran-1 and Lagrange-3/5 reads. More...

#include <pulp/signal/interpolator.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <limits>
#include <new>
#include <optional>
#include <stdexcept>
#include <type_traits>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::signal::Thiran1Coefficients
struct  pulp::signal::detail::FractionalDelaySplit
struct  pulp::signal::FractionalDelaySampleResult< SampleType >
class  pulp::signal::FractionalDelayHistoryT< SampleType >
 Prepared history shared by any number of stateless Lagrange read heads. More...
struct  pulp::signal::FractionalDelayBlockResult
class  pulp::signal::FractionalDelayLineT< SampleType >
 A prepared mono fractional-delay line. More...

Namespaces

namespace  pulp
namespace  pulp::signal
namespace  pulp::signal::detail
 Round-2 effect-wave vocabulary.

Typedefs

using pulp::signal::FractionalDelayLine = FractionalDelayLineT<float>
using pulp::signal::FractionalDelayLine64 = FractionalDelayLineT<double>
using pulp::signal::FractionalDelayHistory = FractionalDelayHistoryT<float>
using pulp::signal::FractionalDelayHistory64 = FractionalDelayHistoryT<double>

Enumerations

enum class  pulp::signal::FractionalDelayMethod { pulp::signal::thiran1 , pulp::signal::lagrange3 , pulp::signal::lagrange5 }
enum class  pulp::signal::FractionalDelayStatus {
  pulp::signal::ok , pulp::signal::not_prepared , pulp::signal::invalid_argument , pulp::signal::non_finite_input ,
  pulp::signal::invalid_delay , pulp::signal::output_out_of_range
}

Functions

constexpr bool pulp::signal::is_valid_fractional_delay_method (FractionalDelayMethod method) noexcept
Thiran1Coefficients pulp::signal::design_thiran1 (double delay_samples) noexcept
 Designs H(z) = (a + z^-1) / (1 + a z^-1), where a = (1 - D) / (1 + D).
double pulp::signal::thiran1_magnitude (const Thiran1Coefficients &design, double omega) noexcept
double pulp::signal::thiran1_group_delay_samples (const Thiran1Coefficients &design, double omega) noexcept
 Exact group delay of the first-order allpass at angular frequency omega.
std::array< double, 6 > pulp::signal::lagrange5_weights (double fraction) noexcept
template<typename SampleType>
SampleType pulp::signal::lagrange5 (double fraction, SampleType ym2, SampleType ym1, SampleType y0, SampleType y1, SampleType y2, SampleType y3) noexcept
FractionalDelaySplit pulp::signal::detail::split_fractional_delay (double delay_samples) noexcept

Detailed Description

Prepared fractional-delay storage with Thiran-1 and Lagrange-3/5 reads.