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(
const std::span<const float> delays, uint32_t block_size = 512);
97 std::unique_ptr<AudioProcessor>
Clone()
const override;
100 std::vector<DelayInterp> delays_;
101 uint32_t block_size_{128};
A class representing an audio buffer with multiple channels of non-interleaved audio data.
Definition audio_buffer.h:18
Base class for audio processors.
Definition audio_processor.h:23
A bank of parallel delay lines, each with its own delay setting.
Definition delaybank.h:26
void SetDelays(const std::span< const float > delays, uint32_t block_size=512)
Sets the delay values for each channel in the delay bank.
void GetNextOutputs(AudioBuffer &output)
Retrieves the next output samples from each delay line in the 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.
uint32_t InputChannelCount() const override
Returns the number of input channels this processor expects.
uint32_t OutputChannelCount() const override
Returns the number of output channels this processor produces.
void Clear() override
Clears the internal delay buffers.
void AddNextInputs(const AudioBuffer &input)
Adds the next input samples to each delay line in the bank.
DelayBank(const DelayBankOptions &config={})
Constructs a delay bank with a specified set of delays and block size.
void Process(const AudioBuffer &input, AudioBuffer &output) noexcept override
Processes a block of multi-channel audio.
DelayInterpolationType
Types of interpolation for fractional delay lengths.
Definition types.h:65
@ None
No interpolation. The delay length will be rounded to the nearest integer value.
Options for configuring a delay bank.
Definition types.h:198