Prepared, frame-quantized spectral delay built on SpectralFrameEngineT. More...
#include <pulp/runtime/seqlock.hpp>#include <pulp/runtime/triple_buffer.hpp>#include <pulp/signal/checked_allocation.hpp>#include <pulp/signal/spectral_frame_engine.hpp>#include <algorithm>#include <cmath>#include <complex>#include <cstddef>#include <cstdint>#include <limits>#include <memory>#include <optional>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Namespaces | |
| namespace | pulp |
| namespace | pulp::signal |
Typedefs | |
| using | pulp::signal::SpectralDelayMatrix = SpectralDelayMatrixT<float> |
| using | pulp::signal::SpectralDelayMatrix64 = SpectralDelayMatrixT<double> |
Functions | |
| template<typename SampleType> | |
| std::optional< SpectralDelayMatrixGeometry< SampleType > > | pulp::signal::checked_spectral_delay_matrix_geometry (const SpectralDelayMatrixConfig &config, std::uint64_t target_max_bytes=kTargetAddressMaximumBytes) noexcept |
| bool | pulp::signal::compile_spectral_delay_matrix_table (const SpectralDelayMatrixRecipe &recipe, int num_bins, int analysis_hop, double sample_rate, int maximum_delay_frames, SpectralDelayMatrixTable &out_table) |
Variables | |
| constexpr std::size_t | pulp::signal::kSpectralDelayMinimumRetainedBytes = std::size_t{1} << 20u |
| constexpr std::size_t | pulp::signal::kSpectralDelayMaximumRetainedBytes = std::size_t{1} << 29u |
Prepared, frame-quantized spectral delay built on SpectralFrameEngineT.
RT contract: prepare(), compile_table(), and publish_table() are control-thread operations. After prepare(), process(), reset(), and purge() allocate no memory, take no locks, perform no I/O, and throw no exceptions. Complete tables cross to the audio thread through a three-slot latest-value publication and are adopted only between spectral frames.