DSP

Windows
MacOS
Linux

Filters

Classes

Name

Description

Public class

FAcousticEchoCancellation

This class uses an adaptive filter to cancel out any rendered audio signal that might be picked up by the mic.

Public class

FAdaptiveFilter

This filter takes a precomputed set of FIR weights in the frequency domain, and linearly converges to it.

Public class

FAlignedBlockBuffer

First In First Out Buffer designed for audio buffers.

Public class

FAllPassFractionalDelay

Performs a fractional delay utilzing a single order all pass filter.

Public class

FAmp

Class which manages scaling audio input and performing panning operations.

Public class

FAsyncSpectrumAnalyzer

SpectrumAnalyzer for computing spectrum in async task.

Public class

FAsyncSpectrumAnalyzerScopeLock

Public class

FAudioFFTAlgorithmFactory

FFT Algorithm factory for this FFT implementation.

Public class

FAudioFileWriter

Public class

FBaseChannelFormatConverter

FBaseChannelFormatConverter implements channel conversion using a simple mixing matrix.

Public class

FBiquad

Simple biquad filter structure handling a biquad formulation See: https://en.wikipedia.org/wiki/Digital_biquad_filter Calculations of coefficients are handled outside this class.

Public class

FBiquadFilter

Biquad filter class which wraps a biquad filter struct Handles multi-channel audio to avoid calculating filter coefficients for multiple channels of audio.

Public class

FBitCrusher

Bit crushing effect https://en.wikipedia.org/wiki/Bitcrusher

Public class

FBlockCorrelator

Correlation calculator which utilizes FFT to perform fast correlation calculations.

Public struct

FBlockCorrelatorSettings

Settings for block correlator

Public class

FBufferLinearEase

Class which handles a vectorized interpolation of an entire buffer to the values of a target buffer

Public class

FBufferOnePoleLPF

Simple 1-pole lowpass filter.

Public class

FChorus

Public class

FContiguousSparse2DKernelTransform

FContiguousSparse2DKernelTransform

Public class

FConvolutionFactory

FConvolutionFactory

Public struct

FConvolutionSettings

FConvolutionSettings

Public class

FDelay

Circular Buffer Delay Line.

Public class

FDelayAPF

Implementation of a delay line with a feedback/feedforward gain coefficient APF filters pass all frequencies but changes phase relationships of frequencies

Public class

FDelayStereo

Public class

FDynamicDelayAPF

All Pass Filter with a long fractional delay which can be set per a sample.

Public class

FDynamicsProcessor

Dynamic range compressor https://en.wikipedia.org/wiki/Dynamic_range_compression

Public class

FEarlyReflections

Basic implementation of a 4x4 Feedback Delay Network.

Public class

FEarlyReflectionsFast

Basic implementation of early reflections using a predelay, low pass filter and feedback delay network (FDN).

Public struct

FEarlyReflectionsFastSettings

Public struct

FEarlyReflectionsSettings

Public class

FEnvelope

Envelope class generates ADSR style envelope.

Public class

FEnvelopeFollower

A simple utility that returns a smoothed value given audio input using an RC circuit.

Public class

FEqualizer

Equalizer filter An equalizer is a cascaded (serial) band of parametric EQs This filter allows for setting each band with variable Bandwidth/Q, Frequency, and Gain

Public struct

FEventQuantizationSettings

Public class

FEventQuantizer

Class which handles the details of event quantization.

Public class

FExponentialEase

Simple exponential easing class. Useful for cheaply and smoothly interpolating parameters.

Public class

FFDAPFilterComputer

This class takes an incoming signal and an outgoing signal, Correlates them, and returns the frequency values of the weight targets to pass to an adaptive filter.

Public struct

FFDNCoefficients

Filter coefficients of 4 channel feedback delay network.

Public struct

FFDNDelaySettings

Delay settings of 4 channel feedback delay network.

Public class

FFeedbackDelayNetwork

4 channel feedback delay network (FDN) for artificial reverberation.

Public class

FFFTConvolver

Public class

FFFTFactory

FFFTFactory

Public struct

FFFTSettings

FFFTSettings

Public class

FFoldbackDistortion

Foldback distortion effect https://en.wikipedia.org/wiki/Foldback_(power_supply_design))

Public struct

FFTFreqDomainData

Public struct

FFTTimeDomainData

Public class

FGrain

Class representing a grain of audio.

Public struct

FGrainData

Public class

FGrainEnvelope

Simple class that generates an envelope and lets you retrieve interpolated values at any given fraction.

Public class

FGranularSynth

A stereo granulator.

Public class

FIntegerDelay

An adjustable delay line. Delays values are limited to integer values.

Public class

FInterpolatedHPF

Public class

FInterpolatedLPF

Public class

FLadderFilter

Public class

FLateReflectionsFast

FLateReflections generates the long tail reverb of an input audio signal using a relatively fast algorithm using all pass filter delay lines.

Public struct

FLateReflectionsFastSettings

Settings for controlling the FLateReflections.

Public class

FLateReflectionsPlate

Single plate channel for plate reverberation.

Public struct

FLateReflectionsPlateDelays

Delay line settings for reverb plate delay Tap locations are determined by analyzing these delay values.

Public struct

FLateReflectionsPlateOutputs

Structure to hold the various delay line tap outputs produced from a plate.

Public class

FLFO

Low frequency oscillator.

Public class

FLinearEase

Simple easing function used to help interpolate params.

Public class

FLinearInterpFractionalDelay

Fractional delay using linear interpolation.

Public struct

FLinkwitzRileyBandFilter

Public class

FLinkwitzRileyBandSplitter

Helper for Multi-Band processing to generate Linwitz-Riley filtered outputs from input https://en.wikipedia.org/wiki/Linkwitz%E2%80%93Riley_filter

Public class

FLongDelayAPF

All Pass Filter with a long delay.

Public struct

FMelSpectrumKernelSettings

Settings for a mel kernel which transforms an linearly space spectrum (e.g. FFT Magnitude) to a mel spectrum

Public class

FModulationMatrix

Public class

FMovingAverager

This class buffers audio while maintaining a running average of the underlying buffer.

Public class

FMovingVectorAverager

Vectorized version of FMovingAverager.

Public struct

FMultibandBuffer

Public class

FOnePoleFilter

A virtual analog one-pole filter. Defaults to a low-pass mode, but can be switched to high-pass

Public class

FOnePoleLPF

Simple 1-pole lowpass filter.

Public class

FOnePoleLPFBank

One pole LPF filter for multiple channels

Public class

FOsc

Pitched oscillator.

Public struct

FOscFrequencyMod

Struct which wraps all factors which contribute to pitch of the oscillator.

Public class

FParam

Public struct

FPassiveFilterParams

Public struct

FPatch

Public struct

FPatchDestination

Public class

FPatchInput

Handle to a patch. Should only be used by a single thread.

Public class

FPatchMixer

This class is used for retrieving and mixing down audio from multiple threads.

Public class

FPatchMixerSplitter

This class is used to mix multiple inputs from disparate threads to a single mixdown and deliver that mixdown to multiple outputs.

Public struct

FPatchOutput

This class can be thought of as an output for a single constructed instance of FPatchInput.

Public struct

FPatchSource

Public class

FPatchSplitter

This class is used to post audio from one source to multiple threads.

Public class

FPhaser

Public class

FPinkNoise

Pink noise generator 1/Frequency noise spectrum

Public class

FPlateReverb

Public class

FPlateReverbFast

The Plate Reverb emulates the interactions between a sound, the listener and the space they share.

Public struct

FPlateReverbFastSettings

Settings for plate reverb.

Public struct

FPlateReverbSettings

Public struct

FPseudoConstantQ

Public struct

FPseudoConstantQBandSettings

Settings for a single constant q band.

Public struct

FPseudoConstantQKernelSettings

Settings for Pseudo Constant Q Kernel generation.

Public struct

FrequencyBuffer

Public class

FRingModulation

Ring modulation effect https://en.wikipedia.org/wiki/Ring_modulation

Public class

FSampleBufferReader

Public class

FSilenceDetection

This object will return buffered audio while the input signal is louder than the specified threshold, and buffer audio when the input signal otherwise.

Public class

FSineOsc

FOsc Direct-form sinusoid oscillator.

Public class

FSlowAdaptiveGainControl

This object accepts an input buffer and current amplitude estimate of that input buffer, Then applies a computed gain target.

Public class

FSpectrumAnalysisAsyncWorker

Public class

FSpectrumAnalyzer

Class built to be a rolling spectrum analyzer for arbitrary, monaural audio data.

Public class

FSpectrumAnalyzerBuffer

This class locks an input buffer (for writing) and an output buffer (for reading).

Public class

FSpectrumAnalyzerScopeLock

Public struct

FSpectrumAnalyzerSettings

Public struct

FSpectrumBandExtractorSettings

Settings for band extractor.

Public struct

FSpectrumBandExtractorSpectrumSettings

Settings describing the spectrum used for in the band extractor.

Public class

FStateVariableFilter

Public class

FVariablePoleFilter

Public struct

FViterbi

Public class

FVolumeFader

Control-rate fader for managing volume fades of various standard shapes.

Public class

FWaveShaper

A digital wave shaping effect to cause audio distortion https://en.wikipedia.org/wiki/Waveshaper

Public class

FWaveTableOsc

A wave table oscillator class.

Public struct

FWetDry

Public class

FWhiteNoise

White noise generator Flat spectrum

Public class

FWindow

Class used to generate, contain and apply a DSP window of a given type.

Public class

IChannelFormatConverter

Inteface for Channel Format Converters which process deinterleaved audio.

Public class

IConvolutionAlgorithm

IConvolutionAlgorithm

Public class

IConvolutionAlgorithmFactory

IConvolutionAlgorithmFactory

Public class

IFFTAlgorithm

IFFTAlgorithm

Interface for FFT algorithm.

Public class

IFFTAlgorithmFactory

IFFTAlgorithmFactory

Public class

IFilter

Base class for filters usable in synthesis.

Public class

IOscBase

Oscillator base class.

Public class

IQuantizedEventListener

Event listener interface.

Public class

ISampleRateConverter

Public class

ISpectrumBandExtractor

Interface for spectrum band extractors.

Public class

IViterbiInitialProbability

Interface class for viterbi initial log probabilities.

Public class

IViterbiObservations

Interface class for viterbi observations.

Public class

IViterbiTransitionProbability

Interface class for viterbi transition log probabilities.

Public class

TAutoDeinterleaveView

TAutoDeinterleaveView

Public class

TAutoSlidingWindow

TAutoSlidingWindow

Public class

TCircularAudioBuffer

Basic implementation of a circular buffer built for pushing and popping arbitrary amounts of data at once.

Public class

TDeinterleaveView

TDeinterleaveView

Public struct

TGetPower

This allows us to write a compile time exponent of a number.

Public class

TParams

Simple parameter object which uses critical section to write to and read from data.

Public class

TSample

TSample Variant type to simplify converting and performing operations on fixed precision and floating point samples.

Public class

TSampleRef

TSampleRef Ref version of TSample.

Public class

TScopedSlidingWindow

TScopedSlidingWindow

Public class

TSlidingBuffer

TSlidingBuffer

Public class

TSlidingWindow

Forward delcaration.

Constants

Name

Description

Audio::MaxFilterChannels

Typedefs

Enums

Name

Description

Public enum

Audio::EBiquadFilter::Type

Enumeration of filter types.

Public enum

Audio::EChorusDelays::Type

Public enum

Audio::EDynamicsProcessingMode::Type

What mode the compressor is in.

Public enum

Audio::EDynamicsProcessorChannelLinkMode

NON-UOBJECT LAYER:

Public enum

Audio::EEventQuantization

NON-UOBJECT LAYER:

Public enum

Audio::EFaderCurve

Type of fade to use when adjusting a fader's volume over time.

Public enum

Audio::EFFTScaling

EFFTScaling

Public enum

Audio::EFilter::Type

Public enum

Audio::EFilterOrder

NON-UOBJECT LAYER:

Public enum

Audio::EGrainEnvelopeType

NON-UOBJECT LAYER:

Public enum

Audio::EGranularSynthMode

NON-UOBJECT LAYER:

Public enum

Audio::ELFO::Type

Public enum

Audio::ELFOMode::Type

Public enum

Audio::EMelNormalization

Normalization methods for a mel transform.

Public enum

Audio::EOsc::Type

Public enum

Audio::EPeakMode::Type

Different modes for the envelope follower.

Public enum

Audio::EPseudoConstantQNormalization

Band normalization schemes

Public enum

Audio::ESeekType::Type

Public enum

Audio::ESpectrumType

Types of spectrums which can be directly derived from FFTFreqDomainData.

Public enum

Audio::EStereoDelayMode::Type

The different stereo delay modes.

Public enum

Audio::EWaveTable::Type

Wavetable oscillator types.

Public enum

Audio::EWindowType

NON-UOBJECT LAYER:

Functions

Name Description

Public function

void

 

Audio::ArrayComplexToPower

(
    TArrayView< float > InComplexSample...,
    TArray< float >& OutPowerSamples
)

Compute power of complex data.

Public function

void

 

Audio::BufferComplexToMagnitudeFast

(
    const float*restrict InRealS...,
    const float*
restrict InImagi...,
    float*__restrict OutPowerSampl...,
    const int32 InNum
)

Compute magnitude of complex data.

Public function

void

 

Audio::BufferComplexToMagnitudeFast

(
    const FAlignedFloatBuffer& InRealS...,
    const FAlignedFloatBuffer& InImagi...,
    FAlignedFloatBuffer& OutPowerSampl...
)

Compute magnitude of complex data.

Public function Static

void

 

Audio::CheckSample

(
    float InSample,
    float Threshold
)

Utility to check for sample clipping.

Public function Static

float

 

Audio::ConvertToDecibels

(
    const float InLinear,
    const float InFloor
)

Function converts linear scale volume to decibels.

Public function Static

float

 

Audio::ConvertToLinear

(
    const float InDecibels
)

Function converts decibel to linear scale.

Public function Static

void

 

Audio::DecodeMidSide

(
    float& MidChannel,
    float& SideChannel
)

This function decodes a stereo Mid/Side signal into a stereo Left/Right signal.

Public function Static

void

 

Audio::EncodeMidSide

(
    float& LeftChannel,
    float& RightChannel
)

This function encodes a stereo Left/Right signal into a stereo Mid/Side signal.

Public function Static

float

 

Audio::EvaluateChebyshevPolynomial

(
    float FrequencyRatio,
    int32 Order
)

Public function Static

float

 

Audio::FastSin

(
    const float X
)

Low precision, high performance approximation of sine using parabolic polynomial approx Valid on interval [-PI, PI]

Public function Static

float

 

Audio::FastSin2

(
    const float X
)

Slightly higher precision, high performance approximation of sine using parabolic polynomial approx.

Public function Static

float

 

Audio::FastSin3

(
    const float X
)

Sine approximation using Bhaskara I technique discovered in 7th century.

Public function Static

float

 

Audio::FastTan

(
    float X
)

Based on sin parabolic approximation.

Public function Static

float

 

Audio::FastTanh

(
    float X
)

Fast tanh based on pade approximation.

Public function Static

void

 

Audio::Filter

(
    TArrayView< float >& Signal,
    const FPassiveFilterParams& InPara...
)

This can be called on any TArrayView whose length is a power of 2.

Public function Static

void

 

Audio::Filter

(
    TArray< float >& Signal,
    const FPassiveFilterParams& InPara...
)

Static function for applying a filter to any time series.

Public function Static

float

 

Audio::GetBandwidthFromQ

(
    const float InQ
)

Helper function to get bandwidth from Q.

Public function Static

float

 

Audio::GetBipolar

(
    const float X
)

Gets polar value from unipolar.

Public function Static

float

 

Audio::GetFrequencyFromMidi

(
    const float InMidiNote
)

Using midi tuning standard, compute frequency in hz from midi value.

Public function Static

float

 

Audio::GetFrequencyMultiplier

(
    const float InPitchSemitones
)

Returns the frequency multiplier to scale a base frequency given the input semitones.

Public function Static

float

 

Audio::GetGainForFrequency

(
    float NormalizedFreq,
    const FPassiveFilterParams& InPara...
)

Public function Static

float

 

Audio::GetGainFromVelocity

(
    const float InVelocity
)

Given a velocity value [0,127], return the linear gain.

Public function Static

float

 

Audio::GetLinearFrequencyClamped

(
    const float InFrequencyValue,
    const FVector2D& Domain,
    const FVector2D& Range
)

Returns the linear frequency of the input value. Maps log domain and range values to linear output (good for linear slider representation/visualization of log frequency). Reverse of GetLogFrequencyClamped.

Public function Static

float

 

Audio::GetLogFrequencyClamped

(
    const float InValue,
    const FVector2D& Domain,
    const FVector2D& Range
)

Returns the log frequency of the input value. Maps linear domain and range values to log output (good for linear slider controlling frequency)

Public function Static

float

 

Audio::GetMidiFromFrequency

(
    const float InFrequency
)

Using midi tuning standard, compute midi from frequency in hz.

Public function Static

float

 

Audio::GetPitchScaleFromMIDINote

(
    int32 BaseMidiNote,
    int32 TargetMidiNote
)

Return a pitch scale factor based on the difference between a base midi.

Public function Static

float

 

Audio::GetQFromBandwidth

(
    const float InBandwidth
)

Helper function get Q from bandwidth.

Public function Static

void

 

Audio::GetStereoPan

(
    const float InLinearPan,
    float& OutLeft,
    float& OutRight
)

Calculates equal power stereo pan using sinusoidal-panning law and cheap approximation for sin InLinear pan is [-1.0, 1.0] so it can be modulated by a bipolar LFO

Public function Static

float

 

Audio::GetUnipolar

(
    const float X
)

Converts bipolar value to unipolar.

Public function Static

float

 

Audio::LagrangianInterpolation

(
    const TArray< FVector2D > Points,
    const float Alpha
)

Polynomial interpolation using lagrange polynomials.

Public function Static

bool

 

Audio::QuadraticPeakInterpolation

(
    const float InValues,
    float& OutPeakLoc,
    float& OutPeakValue
)

Given three values, determine peak location and value of quadratic fitted to the data.

Public function Static

float

 

Audio::UnderflowClamp

(
    const float InValue
)

Clamps floats to 0 if they are in sub-normal range.

Public function

void

 

BreakWhenAudible

(
    float* InBuffer,
    int32 NumSamples
)

Public function

void

 

BreakWhenTooLoud

(
    float* InBuffer,
    int32 NumSamples
)

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss