5#include "sffdn/audio_buffer.h"
6#include "sffdn/audio_processor.h"
7#include "sffdn/delay.h"
8#include "sffdn/delay_interp.h"
9#include "sffdn/types.h"
43 void SetDelays(std::span<const float> delays, uint32_t block_size = 512);
101 uint32_t block_size_{128};
A class representing an audio buffer with multiple channels of non-interleaved audio data.
Definition audio_buffer.h:20
Base class for audio processors.
Definition audio_processor.h:24
A bank of parallel delay lines, each with its own delay setting.
Definition delaybank.h:26
uint32_t InputChannelCount() const noexcept SFFDN_NONBLOCKING override
Returns the number of input channels this processor expects.
void SetDelays(std::span< const float > delays, uint32_t block_size=512)
Sets the delay values for each channel in the delay bank.
std::vector< float > GetDelays() const
Returns the current delays for each delay line in the bank.
std::unique_ptr< AudioProcessor > Clone() const override
Creates a copy of the delay bank.
void GetNextOutputs(AudioBuffer &output) noexcept SFFDN_NONBLOCKING
Retrieves the next output samples from each delay line in the bank.
void AddNextInputs(const AudioBuffer &input) noexcept SFFDN_NONBLOCKING
Adds the next input samples to each delay line in the bank.
void Clear() override
Clears the internal delay buffers.
uint32_t OutputChannelCount() const noexcept SFFDN_NONBLOCKING override
Returns the number of output channels this processor produces.
void Process(const AudioBuffer &input, AudioBuffer &output) noexcept SFFDN_NONBLOCKING override
Processes a block of multi-channel audio.
DelayBank(const DelayBankOptions &config={})
Constructs a delay bank with a specified set of delays and block size.
Delay line with interpolation.
Definition delay_interp.h:23
DelayInterpolationType
Types of interpolation for fractional delay lengths.
Definition types.h:67
@ None
No interpolation. The delay length will be rounded to the nearest integer value.
Options for configuring a delay bank.
Definition types.h:232