Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
impulse_response.hpp File Reference
#include <pulp/signal/resampler.hpp>
#include <pulp/audio/audio_file.hpp>
#include <pulp/audio/format_registry.hpp>
#include <algorithm>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <optional>
#include <string>
#include <vector>

Go to the source code of this file.

Classes

struct  pulp::audio::ImpulseResponseLoadOptions

Namespaces

namespace  pulp
namespace  pulp::audio
namespace  pulp::audio::detail

Functions

std::optional< std::vector< float > > pulp::audio::detail::finish_impulse_response (std::vector< float > mono, double file_sr, double session_sr, const ImpulseResponseLoadOptions &opts)
 The post-decode half of the IR pipeline, shared by every entry point: resample the mono buffer from file_sr to session_sr, drop the resampler's leading group delay, clamp to the cap, reject non-finite content, and (optionally) unit-energy normalize.
std::optional< std::vector< float > > pulp::audio::read_impulse_response_pcm (const float *samples, std::size_t frames, std::uint32_t channels, double src_rate, double target_sample_rate, const ImpulseResponseLoadOptions &opts={})
 Read already-decoded PCM → mono → resampled to target_sample_rate → (optionally) unit-energy normalized.
std::optional< std::vector< float > > pulp::audio::read_impulse_response (const std::string &path, double target_sample_rate, const ImpulseResponseLoadOptions &opts={})
 Read an IR file → mono → resampled to target_sample_rate → (optionally) unit-energy normalized.

Variables

constexpr double pulp::audio::kMinIrSampleRate = 4000.0
constexpr double pulp::audio::kMaxIrSampleRate = 400000.0