Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
sample_interpolation.hpp File Reference
#include <pulp/audio/loop_types.hpp>
#include <pulp/audio/sample_sinc_kernel.hpp>
#include <pulp/signal/interpolator.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstdint>
#include <cstdlib>
#include <limits>
#include <span>
#include <string_view>
#include <type_traits>

Go to the source code of this file.

Classes

struct  pulp::audio::SampleInterpolationPolicyInfo
 Stable serialization/UI metadata for one interpolation policy. More...
struct  pulp::audio::SampleInterpolationFootprint
struct  pulp::audio::PreparedSampleInterpolation
struct  pulp::audio::ResolvedSampleInterpolationPosition

Namespaces

namespace  pulp
namespace  pulp::audio

Enumerations

enum class  pulp::audio::SampleInterpolationPolicy : std::uint8_t {
  pulp::audio::Hold = 0 , pulp::audio::Nearest = 1 , pulp::audio::Linear = 2 , pulp::audio::CubicHermite = 3 ,
  pulp::audio::CubicLagrange = 4 , pulp::audio::RatioTrackingSinc = 5
}

Functions

constexpr const SampleInterpolationPolicyInfo * pulp::audio::sample_interpolation_policy_info (SampleInterpolationPolicy policy) noexcept
constexpr const SampleInterpolationPolicyInfo * pulp::audio::sample_interpolation_policy_info (std::string_view id) noexcept
constexpr std::string_view pulp::audio::sample_interpolation_policy_id (SampleInterpolationPolicy policy) noexcept
constexpr std::string_view pulp::audio::sample_interpolation_policy_name (SampleInterpolationPolicy policy) noexcept
constexpr bool pulp::audio::valid_sample_interpolation (SampleInterpolationPolicy policy) noexcept
constexpr SampleInterpolationFootprint pulp::audio::sample_interpolation_footprint (SampleInterpolationPolicy policy, float fraction, const SampleSincKernelSelection &sinc={}) noexcept
float pulp::audio::evaluate_sample_interpolation (SampleInterpolationPolicy policy, float fraction, std::span< const float > taps, const SampleSincKernelSelection &sinc={}) noexcept
bool pulp::audio::same_sample_interpolation (const PreparedSampleInterpolation &left, const PreparedSampleInterpolation &right) noexcept
ResolvedSampleInterpolationPosition pulp::audio::resolve_sample_interpolation_position (double normalized_position, const PreparedSampleInterpolation &interpolation) noexcept
constexpr bool pulp::audio::valid_loop_interpolation (LoopInterpolationMode mode) noexcept
constexpr SampleInterpolationPolicy pulp::audio::sample_interpolation_policy (LoopInterpolationMode mode) noexcept

Variables

constexpr std::uint32_t pulp::audio::kMaximumSampleInterpolationTaps = 128
constexpr std::array< SampleInterpolationPolicyInfo, 6 > pulp::audio::kSampleInterpolationPolicies