|
sfFDN
|
DelayMatrix implementation as presented in [1]. More...
#include <delay_matrix.h>
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. | |
| DelayMatrix & | operator= (const DelayMatrix &other) |
| Copy assignment operator. | |
| DelayMatrix (DelayMatrix &&other) noexcept | |
| Move constructor. | |
| DelayMatrix & | operator= (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< AudioProcessor > | Clone () 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 | |
| AudioProcessor & | operator= (const AudioProcessor &)=default |
| AudioProcessor (AudioProcessor &&) noexcept=default | |
| AudioProcessor & | operator= (AudioProcessor &&) noexcept=default |
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.
| 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.
| order | the size of the square matrix (order x order) |
| delays | the 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_matrix | the gain matrix to apply to the delayed signals (row-major, y = A*x). Its size must match order x order. |
|
overridevirtual |
Clears the internal delay buffers.
This sets all delay buffers to zero without changing the delay values or mixing matrix.
Implements sfFDN::AudioProcessor.
|
overridevirtual |
Creates a copy of the delay matrix.
Implements sfFDN::AudioProcessor.
|
overridevirtualnoexcept |
Returns the number of input channels this processor expects.
Implements sfFDN::AudioProcessor.
|
overridevirtualnoexcept |
Returns the number of output channels this processor produces.
Implements sfFDN::AudioProcessor.
| void sfFDN::DelayMatrix::PrintInfo | ( | ) | const |
Prints information about the delay matrix.
For debugging purposes.
|
overridevirtualnoexcept |
Processes the input audio buffer through the delay matrix.
| input | the input audio buffer |
| output | the output audio buffer |
Implements sfFDN::AudioProcessor.