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 &)
 Copy constructor.
 
DelayMatrixoperator= (const DelayMatrix &)
 Copy assignment operator.
 
 DelayMatrix (DelayMatrix &&) noexcept
 Move constructor.
 
DelayMatrixoperator= (DelayMatrix &&) noexcept
 Move assignment operator.
 
void Process (const AudioBuffer &input, AudioBuffer &output) noexcept override
 Processes the input audio buffer through the delay matrix.
 
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 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

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 values for each channel. The size of the delays span must match order.
mixing_matrixthe feedback matrix to apply to the delayed signals. The size of the matrix 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
overridevirtual

Returns the number of input channels this processor expects.

Implements sfFDN::AudioProcessor.

◆ OutputChannelCount()

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

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: