4#include "sffdn/types.h"
41 std::vector<single_channel_processor_variant_t> single_channel_processors;
46 std::vector<multi_channel_processor_variant_t> multichannel_processors;
63 std::vector<multi_channel_processor_variant_t> multichannel_processors;
69 std::vector<single_channel_processor_variant_t> single_channel_processors;
76std::unique_ptr<FDN> CreateFDNFromConfig(
const FDNConfig& config);
std::variant< CascadedFeedbackMatrixOptions, ScalarFeedbackMatrixOptions, TimeVaryingFeedbackMatrixOptions > feedback_matrix_variant_t
Variant type for holding different feedback matrix options.
Definition types.h:558
@ Merge
Process each input channel separately and output to one channel.
@ Split
Process input as a single channel and output to multiple channels.
Options for configuring a delay bank.
Definition types.h:232
Options for configuring parallel gain processing.
Definition types.h:208
Configuration for the FDN.
Definition fdn_config.h:17
uint32_t block_size
Internal block size for processing audio. Ideally should match the block size of the system.
Definition fdn_config.h:28
bool transposed
Whether to use transposed configuration.
Definition fdn_config.h:22
DelayBankOptions delay_bank_config
Delay bank configuration.
Definition fdn_config.h:34
uint32_t fdn_size
Size of the FDN (number of channels)
Definition fdn_config.h:19
std::vector< single_channel_processor_variant_t > tone_correction_filters
Tone correction filter block.
Definition fdn_config.h:73
struct sfFDN::FDNConfig::@1 output_block_config
Output gain block.
std::optional< AttenuationFilterBankOptions > attenuation_filter_bank_config
Attenuation filter bank block.
Definition fdn_config.h:53
struct sfFDN::FDNConfig::@0 input_block_config
Input gain Block.
float sample_rate
Sample rate for the FDN. This is used to configure time-based components like delays and filters.
Definition fdn_config.h:31
float direct_gain
Direct path gain.
Definition fdn_config.h:25
feedback_matrix_variant_t feedback_matrix_config
Feedback matrix block.
Definition fdn_config.h:50
std::vector< multi_channel_processor_variant_t > loop_filter_configs
Loop filter block.
Definition fdn_config.h:56