|
| std::optional< std::vector< float > > | 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.
|
| template<typename T> |
| std::vector< T > | intersect_sorted (const std::vector< T > &a, const std::vector< T > &b) |
| constexpr RtSafetyContract | make_rt_safety_contract (std::string_view component, std::string_view operation, RtSafetyClass safety_class, bool audio_callback_allowed, bool may_allocate, bool may_lock, bool may_block, bool requires_prepare, std::string_view owner_boundary, std::string_view notes) noexcept |
| constexpr bool | host_is_little_endian () noexcept |
| Endianness | resolve_endianness (Endianness e) noexcept |
| template<typename T> |
| T | byteswap_int (T value) noexcept |
| template<typename T> |
| T | load_int (const uint8_t *src, Endianness src_endian) noexcept |
| template<typename T> |
| void | store_int (uint8_t *dst, T value, Endianness dst_endian) noexcept |
| int32_t | load_int24 (const uint8_t *src, Endianness src_endian) noexcept |
| void | store_int24 (uint8_t *dst, int32_t value, Endianness dst_endian) noexcept |
| float | finite_or_zero (float v) noexcept |
| std::uint64_t | next_random (std::uint64_t &state) noexcept |
| float | bipolar_random (std::uint64_t &state) noexcept |
| bool | valid_neutral_profile_id (std::string_view id) noexcept |
| std::uint64_t | heritage_next_random (std::uint64_t &state) noexcept |
| float | heritage_bipolar_random (std::uint64_t &state) noexcept |
| void | saturating_add (std::uint64_t &target, std::uint64_t value) noexcept |
| void | set_sample_mip_build_fault_for_testing (SampleMipBuildFaultForTesting fault) noexcept |
| std::string | sample_mip_coordination_key_for_manifest_path (std::string_view normalized_manifest_path, bool case_insensitive) |
| std::string | sample_mip_coordination_key (std::string_view source_path, const runtime::FileIdentity &source_identity) |
| void | apply_sample_starvation_envelope (SampleStarvationEnvelope &envelope, BufferView< float > destination, const SampleStreamVoiceBlockResult &result, std::uint32_t output_frames) noexcept |
| std::optional< std::vector< float > > pulp::audio::detail::finish_impulse_response |
( |
std::vector< float > | mono, |
|
|
double | file_sr, |
|
|
double | session_sr, |
|
|
const ImpulseResponseLoadOptions & | opts ) |
|
inline |
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.
mono is consumed. Returns nullopt on any failure. Off-audio-thread only (it allocates).