|
sfFDN
|
A section of Schroeder allpass filters in series. More...
#include <schroeder_allpass.h>
Public Member Functions | |
| SchroederAllpassSection ()=default | |
| Constructs an empty SchroederAllpassSection. | |
| SchroederAllpassSection (const SchroederAllpassSectionOptions &config) | |
| Constructs a SchroederAllpassSection with a given configuration. | |
| SchroederAllpassSection (uint32_t filter_count) | |
| Constructs a SchroederAllpassSection with a given number of filters. | |
| SchroederAllpassSection (const SchroederAllpassSection &)=delete | |
| SchroederAllpassSection & | operator= (const SchroederAllpassSection &)=delete |
| SchroederAllpassSection (SchroederAllpassSection &&) noexcept | |
| Move constructor for the SchroederAllpassSection. | |
| SchroederAllpassSection & | operator= (SchroederAllpassSection &&) noexcept |
| Move assignment operator for the SchroederAllpassSection. | |
| void | SetFilterCount (uint32_t filter_count) |
| Sets the number of allpass filters in the section. | |
| void | SetParallel (bool parallel) |
| Sets whether the allpass filters in the section are processed in parallel. | |
| void | SetDelays (std::span< const uint32_t > delays) |
| Sets the delays for each allpass filter in the section. | |
| void | SetGains (std::span< const float > gains) |
| Sets the feedback gains for each allpass filter in the section. | |
| void | SetGain (float gain) |
| Sets the feedback gain for all allpass filters in the section. | |
| std::vector< uint32_t > | GetDelays () const |
| Gets the current delays for each allpass filter in the section. | |
| std::vector< float > | GetGains () const |
| Gets the current feedback gains for each allpass filter in the section. | |
| void | Process (const AudioBuffer &input, AudioBuffer &output) noexcept override |
| Processes a block of audio through the section. | |
| uint32_t | InputChannelCount () const override |
| Gets the number of input channels supported. | |
| uint32_t | OutputChannelCount () const override |
| Gets the number of output channels supported. | |
| void | Clear () override |
| Clears the internal state of the processor. | |
| std::unique_ptr< AudioProcessor > | Clone () const override |
| Creates a copy of the SchroederAllpassSection. | |
Public Member Functions inherited from sfFDN::AudioProcessor | |
A section of Schroeder allpass filters in series.
| sfFDN::SchroederAllpassSection::SchroederAllpassSection | ( | const SchroederAllpassSectionOptions & | config | ) |
Constructs a SchroederAllpassSection with a given configuration.
| config | The configuration for the SchroederAllpassSection. |
| sfFDN::SchroederAllpassSection::SchroederAllpassSection | ( | uint32_t | filter_count | ) |
Constructs a SchroederAllpassSection with a given number of filters.
| filter_count | The number of allpass filters in the section. |
|
overridevirtual |
Clears the internal state of the processor.
This function resets the internal state of all allpass filters in the section.
Implements sfFDN::AudioProcessor.
|
overridevirtual |
Creates a copy of the SchroederAllpassSection.
Implements sfFDN::AudioProcessor.
|
overridevirtual |
Gets the number of input channels supported.
This is always 1, as SchroederAllpassSection processes one channel at a time.
Implements sfFDN::AudioProcessor.
|
noexcept |
Move assignment operator for the SchroederAllpassSection.
|
overridevirtual |
Gets the number of output channels supported.
This is always 1, as SchroederAllpassSection processes one channel at a time.
Implements sfFDN::AudioProcessor.
|
overridevirtualnoexcept |
Processes a block of audio through the section.
| input | The input audio buffer. |
| output | The output audio buffer. The input and output buffers must have the same number of samples and channels equal to 1. |
Implements sfFDN::AudioProcessor.
| void sfFDN::SchroederAllpassSection::SetDelays | ( | std::span< const uint32_t > | delays | ) |
Sets the delays for each allpass filter in the section.
| delays | A span of delay values in samples. The size of the span must be equal to the number of filters in the section. |
| void sfFDN::SchroederAllpassSection::SetFilterCount | ( | uint32_t | filter_count | ) |
Sets the number of allpass filters in the section.
| filter_count | The number of allpass filters. |
| void sfFDN::SchroederAllpassSection::SetGain | ( | float | gain | ) |
Sets the feedback gain for all allpass filters in the section.
| gain | The feedback gain value. |
| void sfFDN::SchroederAllpassSection::SetGains | ( | std::span< const float > | gains | ) |
Sets the feedback gains for each allpass filter in the section.
| gains | A span of feedback gain values. The size of the span must be equal to the number of filters in the section. |
| void sfFDN::SchroederAllpassSection::SetParallel | ( | bool | parallel | ) |
Sets whether the allpass filters in the section are processed in parallel.
| parallel | Whether to process the filters in parallel. |