![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include <UniformPartitionConvolution.h>
Inheritance diagram for Audio::FUniformPartitionConvolution:Public Types | |
| using | FSharedFFTRef = TSharedRef< IFFTAlgorithm > |
FUniformPartitionConvolution implements a fft based convolution algorithm supporting multiple inputs, impulse responses and outputs. The algorithm subdivides an impulse response into uniform blocks which results in several positive side effects:
1. Latency is set to the block size which in many cases is less than the length of the impulse response. 2. Increased performance over brute time domain convolution. 3. Reuse of fourier transformed data when inputs are mapped to multiple outputs.
The block size and latency is determined by the FFT algorithm passed to the constructor. BlockSize = FFTAlgorithm->Size() / 2 Latency = FFTAlgorithm->Size() / 2
Shared reference to FFT algorithm.
| Audio::FUniformPartitionConvolution::FUniformPartitionConvolution | ( | const FUniformPartitionConvolutionSettings & | InSettings, |
| FSharedFFTRef | InFFTAlgorithm | ||
| ) |
Create a Uniform Partition Convolution Algorithm
@params InSettings - Settings for algorithm.
| InFFTAlgorithm | - FFTAlgorithm used to transform inputs, outputs and impulse responses. |
|
virtual |
Destructor.
|
overridevirtual |
Gets the gain between an audio input channel, impulse response and audio output channel.
([audio inputs] * [impulse responses]) x [gain matrix] = [audio outputs]
Gets the gain between an audio input, impulse response and audio output.
([audio inputs] * [impulse responses]) x [gain matrix] = [audio outputs]
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Maximum supported length of impulse response.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Returns number of audio inputs.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Returns number of audio outputs.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Return the number of impulse responses.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Return the number of samples in an impulse response.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Returns the number of samples in an audio block.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Process one block of audio.
InSamples is processed by the impulse responses. The output is placed in OutSamples.
@params InSamples - A 2D array of input deinterleaved audio samples. InSamples[GetNumAudioInputs()][GetNumSamplesInBlock()] @params OutSamples - A 2D array of output deinterleaved audio samples. OutSamples[GetNumAudioOutputs()][GetNumSamplesInBlock()]
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Reset internal history buffer for all audio inputs.
Reset internal history buffers .
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Set impulse response values.
Implements Audio::IConvolutionAlgorithm.
|
overridevirtual |
Sets the gain between an audio input channel, impulse response and audio output channel.
([audio inputs] * [impulse responses]) x [gain matrix] = [audio outputs]
Sets the gain between an audio input, impulse response and audio output.
([audio inputs] * [impulse responses]) x [gain matrix] = [audio outputs]
Implements Audio::IConvolutionAlgorithm.