UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ReverbFast.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
7#include "DSP/IntegerDelay.h"
8#include "DSP/LongDelayAPF.h"
10#include "DSP/DynamicDelayAPF.h"
13
14namespace Audio
15{
16 // Settings for plate reverb
18 {
19 // EQuadBehavior describes how reverb is generated when there are 5 or more output channels.
20 enum class EQuadBehavior : uint8
21 {
22 // Only produce reverb in front left and front right.
24 // Produce reverb in front left and front right. Copy front left to rear left and front right to rear right.
26 // Produce reverb in front left and front right. Copy front left to rear right and front right to rear left.
28 };
29
31
33
35
36 // EarlyReflectionSettings controls the initial perceived echoes from a sound, modeling the first few
37 // orders of reflections from a sound source to the listener's ears.
39
40 // LateReflectionSettings controls the long tail diffused echo modeling the higher order reflections
41 // from a sound source to the listener's ears.
43
44 // Enables / Disables early reflections.
46
47 // Enables / Disables late reflections.
49
50 // Set how reverb module generates reverb when there are 5 or more output channels.
52 };
53
54 // The Plate Reverb emulates the interactions between a sound, the listener and the space they share. Early reflections
55 // are modeled using a feedback delay network while late reflections are modeled using a plate reverb. This
56 // class aims to support a flexible and pleasant sounding reverb balanced with computational efficiency.
58 public:
60
61 // InMaxInternalBufferSamples sets the maximum number of samples used in internal buffers.
63
65
66 // Copies, clamps and applies settings.
68
70
71 // Creates reverberated audio in OutSamples based upon InSamples
72 // InNumChannels can be 1 or 2 channels.
73 // OutSamples must be greater or equal to 2.
75
77
78 // Clamp individual settings to values supported by this class.
80
81 private:
82 // Copy reverberated samples to interleaved output samples. Map channels according to internal settings.
84
85 void ApplySettings();
86
87
88 float SampleRate;
89
91 FEarlyReflectionsFast EarlyReflections;
92 FLateReflectionsFast LateReflections;
93
94 FAlignedFloatBuffer FrontLeftLateReflectionsSamples;
95 FAlignedFloatBuffer FrontRightLateReflectionsSamples;
96 FAlignedFloatBuffer FrontLeftEarlyReflectionsSamples;
97 FAlignedFloatBuffer FrontRightEarlyReflectionsSamples;
98 FAlignedFloatBuffer FrontLeftReverbSamples;
99 FAlignedFloatBuffer FrontRightReverbSamples;
100 FAlignedFloatBuffer LeftAttenuatedSamples;
101 FAlignedFloatBuffer RightAttenuatedSamples;
102 FAlignedFloatBuffer ScaledInputBuffer;
103
104 };
105}
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition EarlyReflectionsFast.h:42
Definition LateReflectionsFast.h:225
Definition ReverbFast.h:57
SIGNALPROCESSING_API const FPlateReverbFastSettings & GetSettings() const
Definition ReverbFast.cpp:65
static SIGNALPROCESSING_API void ClampSettings(FPlateReverbFastSettings &InOutSettings)
Definition ReverbFast.cpp:151
SIGNALPROCESSING_API void SetSettings(const FPlateReverbFastSettings &InSettings)
Definition ReverbFast.cpp:44
static SIGNALPROCESSING_API const FPlateReverbFastSettings DefaultSettings
Definition ReverbFast.h:59
SIGNALPROCESSING_API void FlushAudio()
SIGNALPROCESSING_API ~FPlateReverbFast()
Definition ReverbFast.cpp:41
SIGNALPROCESSING_API void ProcessAudio(const FAlignedFloatBuffer &InSamples, const int32 InNumChannels, FAlignedFloatBuffer &OutSamples, const int32 OutNumChannels)
Definition ReverbFast.cpp:70
NO_LOGGING.
Definition AudioMixerPlatformAndroid.cpp:53
Definition EarlyReflectionsFast.h:15
Definition LateReflectionsFast.h:192
Definition ReverbFast.h:18
SIGNALPROCESSING_API FPlateReverbFastSettings()
Definition ReverbFast.cpp:8
EQuadBehavior
Definition ReverbFast.h:21
SIGNALPROCESSING_API bool operator!=(const FPlateReverbFastSettings &Other) const
Definition ReverbFast.cpp:26
FEarlyReflectionsFastSettings EarlyReflections
Definition ReverbFast.h:38
bool bEnableEarlyReflections
Definition ReverbFast.h:45
bool bEnableLateReflections
Definition ReverbFast.h:48
SIGNALPROCESSING_API bool operator==(const FPlateReverbFastSettings &Other) const
Definition ReverbFast.cpp:14
FLateReflectionsFastSettings LateReflections
Definition ReverbFast.h:42
EQuadBehavior QuadBehavior
Definition ReverbFast.h:51