Audio Processing Framework (APF) version 0.5.0
Public Member Functions | List of all members
apf::conv::Output Class Reference

Convolution engine (output part). More...

#include <apf/convolver.h>

Inheritance diagram for apf::conv::Output:
Inheritance graph
[legend]

Public Member Functions

 Output (const Input &input)
 
void set_filter (const Filter &filter)
 Set a new filter. More...
 
bool queues_empty () const
 Check if there are still valid partitions in the queues. More...
 
void rotate_queues ()
 Update filter queues. More...
 
- Public Member Functions inherited from apf::conv::OutputBase
float * convolve (float weight=1.0f)
 Fast convolution of one audio block. More...
 
size_t block_size () const
 
size_t partitions () const
 

Additional Inherited Members

- Protected Types inherited from apf::conv::OutputBase
using filter_ptrs_t = fixed_vector< const fft_node * >
 
- Protected Member Functions inherited from apf::conv::OutputBase
 OutputBase (const Input &input)
 
- Protected Attributes inherited from apf::conv::OutputBase
fft_node _empty_partition
 
filter_ptrs_t _filter_ptrs
 

Detailed Description

Convolution engine (output part).

See also
Input, StaticOutput

Definition at line 634 of file convolver.h.

Constructor & Destructor Documentation

◆ Output()

apf::conv::Output::Output ( const Input input)
inline

Definition at line 637 of file convolver.h.

Member Function Documentation

◆ set_filter()

void apf::conv::Output::set_filter ( const Filter filter)

Set a new filter.

The first filter partition is updated immediately, the later partitions are updated with rotate_queues().

Parameters
filterContainer with filter partitions. If too few partitions are given, the rest is set to zero, if too many are given, the rest is ignored.

Definition at line 659 of file convolver.h.

◆ queues_empty()

bool apf::conv::Output::queues_empty ( ) const

Check if there are still valid partitions in the queues.

If this function returns false, rotate_queues() should be called.

Note
This is important for crossfades: even if set_filter() wasn't used, older partitions may still change! If the queues are empty, no crossfade is necessary (except weight was changed in convolve()).

Definition at line 683 of file convolver.h.

◆ rotate_queues()

void apf::conv::Output::rotate_queues ( )

Update filter queues.

If queues_empty() returns true, calling this function is unnecessary.

Note
This can lead to artifacts, so a crossfade is recommended.

Definition at line 700 of file convolver.h.


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