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

Fixed-capacity arbitrary transfer curves with lock-free publication. More...

#include <pulp/runtime/triple_buffer.hpp>
#include <pulp/signal/modulation_curve.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <cstddef>
#include <optional>
#include <span>
#include <type_traits>

Go to the source code of this file.

Classes

struct  pulp::signal::TransferCurvePointT< SampleType >
struct  pulp::signal::PreparedTransferCurveT< SampleType, MaxPoints >
class  pulp::signal::TransferCurveT< SampleType, MaxPoints >
 Audio-thread processor for a fixed-capacity arbitrary transfer curve. More...

Namespaces

namespace  pulp
namespace  pulp::signal

Typedefs

using pulp::signal::TransferCurvePoint = TransferCurvePointT<float>
using pulp::signal::TransferCurvePoint64 = TransferCurvePointT<double>
using pulp::signal::PreparedTransferCurve = PreparedTransferCurveT<float, 32>
using pulp::signal::PreparedTransferCurve64 = PreparedTransferCurveT<double, 32>
using pulp::signal::TransferCurve = TransferCurveT<float, 32>
using pulp::signal::TransferCurve64 = TransferCurveT<double, 32>

Functions

template<typename SampleType = float, std::size_t MaxPoints = 32>
std::optional< PreparedTransferCurveT< SampleType, MaxPoints > > pulp::signal::prepare_transfer_curve (std::span< const TransferCurvePointT< SampleType > > points, SampleType input_min, SampleType input_max, SampleType output_min, SampleType output_max) noexcept
 Validate and prepare a piecewise transfer curve.
template<typename SampleType, std::size_t MaxPoints>
SampleType pulp::signal::evaluate_transfer_curve (const PreparedTransferCurveT< SampleType, MaxPoints > &curve, SampleType input) noexcept
 Evaluate a prepared curve.

Detailed Description

Fixed-capacity arbitrary transfer curves with lock-free publication.