sfFDN
Loading...
Searching...
No Matches
sfFDN::DelayMatrix Class Reference

DelayMatrix implementation as presented in [1]. More...

#include <delay_matrix.h>

Inheritance diagram for sfFDN::DelayMatrix:
[legend]
Collaboration diagram for sfFDN::DelayMatrix:
[legend]

Public Member Functions

 DelayMatrix (uint32_t order, std::span< const uint32_t > delays, const ScalarFeedbackMatrix &mixing_matrix)
 Constructs a DelayMatrix with the specified size and delay values.
 
 DelayMatrix (const DelayMatrix &other)
 Copy constructor.
 
DelayMatrixoperator= (const DelayMatrix &other)
 Copy assignment operator.
 
 DelayMatrix (DelayMatrix &&other) noexcept
 Move constructor.
 
DelayMatrixoperator= (DelayMatrix &&other) noexcept
 Move assignment operator.
 
void Process (const AudioBuffer &input, AudioBuffer &output) noexcept SFFDN_NONBLOCKING override
 Processes the input audio buffer through the delay matrix.
 
uint32_t InputChannelCount () const noexcept SFFDN_NONBLOCKING override
 Returns the number of input channels this processor expects.
 
uint32_t OutputChannelCount () const noexcept SFFDN_NONBLOCKING override
 Returns the number of output channels this processor produces.
 
void Clear () override
 Clears the internal delay buffers.
 
void PrintInfo () const
 Prints information about the delay matrix.
 
std::unique_ptr< AudioProcessorClone () const override
 Creates a copy of the delay matrix.
 
- Public Member Functions inherited from sfFDN::AudioProcessor

Additional Inherited Members

- Protected Member Functions inherited from sfFDN::AudioProcessor
 AudioProcessor (const AudioProcessor &)=default
 
AudioProcessoroperator= (const AudioProcessor &)=default
 
 AudioProcessor (AudioProcessor &&) noexcept=default
 
AudioProcessoroperator= (AudioProcessor &&) noexcept=default
 

Detailed Description

DelayMatrix implementation as presented in [1].

[1] S. J. Schlecht and E. A. P. Habets, "Dense Reverberation with Delay Feedback Matrices," in 2019 IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), Oct. 2019, pp. 150–154. doi: 10.1109/WASPAA.2019.8937284.

Constructor & Destructor Documentation

◆ DelayMatrix()

sfFDN::DelayMatrix::DelayMatrix ( uint32_t order,
std::span< const uint32_t > delays,
const ScalarFeedbackMatrix & mixing_matrix )

Constructs a DelayMatrix with the specified size and delay values.

Parameters
orderthe size of the square matrix (order x order)
delaysthe delay table with order^2 entries in row-major order: delays[destination * order + source] is the tap depth (in samples) applied to the signal traveling from source to destination. The maximum tap depth for each source delay line is automatically derived as the maximum over all destinations.
mixing_matrixthe gain matrix to apply to the delayed signals (row-major, y = A*x). Its size must match order x order.

Member Function Documentation

◆ Clear()

void sfFDN::DelayMatrix::Clear ( )
overridevirtual

Clears the internal delay buffers.

This sets all delay buffers to zero without changing the delay values or mixing matrix.

Implements sfFDN::AudioProcessor.

◆ Clone()

std::unique_ptr< AudioProcessor > sfFDN::DelayMatrix::Clone ( ) const
overridevirtual

Creates a copy of the delay matrix.

Returns
A unique pointer to the cloned delay matrix.

Implements sfFDN::AudioProcessor.

◆ InputChannelCount()

uint32_t sfFDN::DelayMatrix::InputChannelCount ( ) const
overridevirtualnoexcept

Returns the number of input channels this processor expects.

Implements sfFDN::AudioProcessor.

◆ OutputChannelCount()

uint32_t sfFDN::DelayMatrix::OutputChannelCount ( ) const
overridevirtualnoexcept

Returns the number of output channels this processor produces.

Implements sfFDN::AudioProcessor.

◆ PrintInfo()

void sfFDN::DelayMatrix::PrintInfo ( ) const

Prints information about the delay matrix.

For debugging purposes.

◆ Process()

void sfFDN::DelayMatrix::Process ( const AudioBuffer & input,
AudioBuffer & output )
overridevirtualnoexcept

Processes the input audio buffer through the delay matrix.

Parameters
inputthe input audio buffer
outputthe output audio buffer

Implements sfFDN::AudioProcessor.


The documentation for this class was generated from the following file: